Skip to main content
This endpoint allows you to send payouts in EUR to recipients in any SEPA country (e.g., Germany, France, Spain). The request must include the recipient’s details, payment method, and a valid quoteId.

Endpoint

POST: {{baseURL}}/v2/payout

Request Details

Headers

Include these headers in your request:
HeaderValueRequired
Content-Typeapplication/json✅ Yes
x-api-keyYOUR_API_KEY✅ Yes

Request Examples

Here are examples of how to make a EUR payout request in different languages.
curl --location --request POST '{{baseURL}}/v2/payout' \
--header 'x-api-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
  "quoteId": "a4f7b2c1-ef14-4999-906b-xxxxxxxxxxxxx",
  "reason": "Gift",
  "remark": "Testing",
  "name": "Sam James",
  "address": "12 street",
  "type": "BUSINESS",
  "country": "DE",
  "currency": "EUR",
  "paymentChannel": "BANK_TRANSFER",
  "stored": true,
  "account": {
    "iban": "DE89XXXXXXXX3000",
    "swiftCode": "SWIFT2346",
    "accountNumber": "566432345678765",
    "bankName": "Best Bank",
    "address": "12 brown"
  }
}'

Request Body Breakdown

The following fields are required when making a EUR payout request.
FieldTypeDescriptionRequired
quoteIdStringThe unique ID of the quote for this payout.✅ Yes
reasonStringThe purpose of the transfer (e.g., Payment for services).✅ Yes
remarkStringAn optional, additional note about the transaction.✅ Yes
nameStringThe full name of the recipient.✅ Yes
addressStringThe recipient’s residential or business address.✅ Yes
typeStringThe type of recipient. Enum: INDIVIDUAL, BUSINESS.✅ Yes
countryStringThe recipient’s two-letter ISO country code (e.g., DE).✅ Yes
currencyStringThe ISO currency code. Must be EUR.✅ Yes
paymentChannelStringThe payment method. Must be BANK_TRANSFER for EUR payouts.✅ Yes
storedBooleanA flag indicating whether to save the recipient for future use.✅ Yes
accountObjectAn object containing the recipient’s bank account details.✅ Yes
account.ibanStringThe recipient’s International Bank Account Number (IBAN).✅ Yes
account.swiftCodeStringThe Bank Identifier Code (SWIFT/BIC).✅ Yes
account.accountNumberStringThe recipient’s local bank account number.✅ Yes
account.bankNameStringThe name of the recipient’s bank.✅ Yes
account.addressStringThe address of the recipient’s bank branch.✅ Yes

Success Response (200 OK)

If the payout is successfully created, the API returns the following response:
copy
{
  "message": "Transaction created successfully",
  "status": "success",
  "data": {
    "id": "b2c3d4e5-f6a7-8901-bcde-f1234567890a",
    "reason": "Gift",
    "remark": "Testing",
    "referenceNumber": "EUPAYOUT98765",
    "type": "SEND",
    "state": "COMPLETED",
    "quote": {
      "id": "a4f7b2c1-ef14-4999-906b-xxxxxxxxxxxxx",
      "source": {
        "currency": "USD",
        "country": "US",
        "amount": 108.50
      },
      "target": {
        "currency": "EUR",
        "country": "DE",
        "amount": 100
      },
      "rate": 0.9216,
      "fee": {
        "amount": 3.00
      }
    },
    "recipient": {
      "name": "Sam James",
      "address": "12 street",
      "type": "BUSINESS",
      "account": {
        "iban": "DE89XXXXXXXX3000",
        "swiftCode": "SWIFT2346",
        "accountNumber": "566...765",
        "bankName": "Best Bank",
        "address": "12 brown"
      },
      "paymentChannel": "BANK_TRANSFER",
      "currency": "EUR",
      "country": "DE"
    },
    "created": "2025-09-19T10:15:30.123456Z",
    "processed": "2025-09-19T10:16:45.789101Z"
  }
}


Response Breakdown

This section explains each field returned in a successful response.
FieldTypeDescription
messageStringA confirmation message indicating the result of the request.
statusStringThe overall status of the request, e.g., success.
dataObjectA container for all the transaction data.
data.idStringThe unique identifier for this payout transaction.
data.remarkStringThe remark or note that was provided in the request.
data.reasonStringThe reason for the payout provided in the request.
data.referenceNumberStringA unique reference number generated for the payout.
data.typeStringThe type of transaction, e.g., SEND.
data.stateStringThe current state of the payout (COMPLETED, PENDING, etc.).
data.quoteObjectDetails of the financial quote used for this payout.
data.quote.idStringThe unique ID of the quote.
data.quote.source.currencyStringThe three-letter currency code of the source funds.
data.quote.source.countryStringThe two-letter country code of the transaction origin.
data.quote.source.amountNumberThe amount of money in the source currency.
data.quote.target.currencyStringThe three-letter currency code of the target funds.
data.quote.target.countryStringThe two-letter country code of the destination.
data.quote.target.amountNumberThe converted amount that the recipient will receive.
data.quote.rateNumberThe exchange rate applied to the transaction.
data.quote.fee.amountNumberThe transaction fee, in the source currency.
data.recipientObjectDetails of the recipient.
data.recipient.nameStringThe full name of the recipient.
data.recipient.firstNameStringThe first name of the recipient.
data.recipient.lastNameStringThe last name of the recipient.
data.recipient.relationshipStringThe sender’s relationship to the recipient.
data.recipient.typeStringThe type of recipient entity, e.g., BANK.
data.recipient.account.ibanStringThe recipient’s International Bank Account Number.
data.recipient.account.bicStringThe recipient’s Bank Identifier Code (SWIFT).
data.recipient.paymentChannelStringThe payment method used, e.g., BANK_TRANSFER.
data.recipient.currencyStringThe currency received by the recipient.
data.recipient.countryStringThe country of the recipient.
data.createdStringISO 8601 timestamp of when the transaction was created.
data.processedStringISO 8601 timestamp of when the transaction was processed.

Payout Transaction States

The payout transaction can have one of the following states:
StateDescription
COMPLETEDThe payout was successfully processed.
PENDINGThe payout is still being processed.
FAILEDThe payout failed to process.
REFUNDEDThe payout has been sent back to sender.


Error Handling

Status CodeMeaningExample Response
400Insufficient BalanceInsufficient Balance
401UnauthorizedInvalid API key provided.
403ForbiddenIP not whitelisted
404Not FoundThe requested endpoint does not exist.
422Unprocessable EntityInvalid quote ID provided.
500Internal Server ErrorAn internal error occurred.

Best Practices

  • ✅ Ensure quoteId is valid and linked to an existing quote.
  • ✅ Confirm that the recipient’s bank account number and bank code are correct.
  • ✅ Use a valid API key in the headers.
  • ✅ Handle error responses correctly in your integration.