> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ebury.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Embedded finance

Ideal for businesses who provide a platform to their customers, wanting to expand their offering through new customer journeys.

Enable financial services in your ecosystem, and at your customers’ point of need to gain competitive edge, increase customer stickiness and generate new revenue streams.

Below is one of the use cases of Embedded Finance where the client offers their underlying clients the possibility to make payments on their platform, as a part of the wider offering. Should you have any other use cases for Embedded Finance, please reach out to us.

## API endpoints call sequence

Here is an example of how the APIs can be initiated in a specific sequence to address the use case described above. Feel free to align with our Implementation team if you are looking for additional requirements and optimisations:

* Create a beneficiary
* Request for quote
* Create a trade
* Initiate the payment
* Webhooks (get notified on payment status)

## Code snippets

## Step 1

Trigger the **[Create a beneficiary](https://postman.ebury.io/#e9a5273f-9875-4bfe-871d-90e706aa65d9)** endpoint to specify the payee.

```sh theme={null}
curl --location -g '{{APP_URL}}/beneficiaries?client_id={{client_id}}' \
--header 'Authorization: Bearer {{token}}' \
--header 'X-Contact-ID: {{contact_id}}' \
--header 'Content-Type: application/json' \
--header 'x-api-key: {{api_key}}' \
--data-raw '{
    "name": "Sergio Robles",
    "email_addresses": [
        "sergio.robles@ebury.com"
    ],
    "email_notification": "True",
    "address_line_1": "Puerta del Mar nº15",
    "post_code": "29005",
    "country_code": "NL",
    "account_number": "",
    "bank_address_line_1": "Malaga",
    "bank_country_code": "NL",
    "bank_currency_code": "EUR",
    "bank_identifier": "",
    "bank_name": "",
    "correspondent_account": "",
    "correspondent_swift_code": "",
    "iban": "NL38ABNA0462469395",
    "inn": "",
    "kbk": "",
    "kio": "",
    "kpp": "",
    "reason_for_trade": "",
    "reference_information": "Mission Africa",
    "russian_central_bank_account": "",
    "swift_code": "ABNANL2A",
    "vo": ""
}'
```

## Step 2

Trigger the **[Get a quote](https://postman.ebury.io/#23fe154f-273a-49b6-85c9-0272a5d4f0bf)** endpoint in order to obtain a rate (to be used when booking your Trade)

```sh theme={null}
curl --location -g '{{APP_URL}}/quotes?quote_type=quote&client_id={{client_id}}' \
--header 'Authorization: Bearer {{token}}' \
--header 'X-Contact-ID: {{contact_id}}' \
--header 'Content-Type: application/json' \
--header 'x-api-key: {{api_key}}' \
--data '{
  "trade_type": "spot",
  "sell_currency": "GBP",
  "buy_currency": "EUR",
  "amount": 1500,
  "operation": "buy",
  "value_date": "2018-08-31"
}'
```

## Step 3

**[Book the Trade](https://postman.ebury.io/#6d1453dd-f085-4c8b-b146-dc5591e80d62)**, using the quote\_id you got in the previous step

```sh theme={null}
curl --location -g '{{APP_URL}}/trades?quote_id={{quote_id}}&client_id={{client_id}}' \
--header 'X-Contact-ID: {{contact_id}}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{token}}' \
--header 'x-api-key: {{api_key}}' \
--data '{
  "trade_type": "spot",
  "reason": "Any reason",
  “external_reference_id”: “your ID to track trade”
}'
```

## Step 4

Trigger the **[Initiate a payment](https://postman.ebury.io/#4a4282dc-8295-400a-a325-7b4a907365ac)** endpoint.

```sh theme={null}
curl --location -g '{{APP_URL}}/payments?client_id={{client_id}}' \
--header 'Authorization: Bearer {{token}}' \
--header 'X-Contact-ID: {{contact_id}}' \
--header 'x-api-key: {{api_key}}' \
--header 'Content-Type: application/json' \
--data '{
        "trade_id": "EBPOTR003771",
        "payments": [
            {
                "beneficiary_id": "EBPBEN15773",
                "account_id": "12804",
                "amount": "2",
                "email_beneficiary": "false",
                "payment_date": "2019-04-26",
                "reference": "testing"
            }
        ]
    }'
```

## Step 5

Finally **[subscribe to Webhooks](https://postman.ebury.io/#49897e5e-56e1-471f-976a-e89e3f852f49)** to get notifications when statuses change on the payment you just initiated

```sh theme={null}
curl --location -g '{{APP_URL}}/webhooks/graphql?client_id={{client_id}}' \
--header 'X-Contact-ID: {{contact_id}}' \
--header 'Authorization: Bearer {{token}}' \
--header 'x-api-key: {{api_key}}' \
--header 'Content-Type: application/json' \
--data 'mutation createSubscription {
          createSubscription(
             input: {
               active: true
               secret: "secret"
               url: "https://httpbin.org/post"
               types: [PAYMENT_STATUS_CHANGE]
             }
            ){
             subscription {
               id 
             }
          }
      }
}'
```
