POST/v2/cross-border

Submit - Send Cross Border Payment

Submits a cross-border payment using the payment instrument ID, purpose, description, destination amount/currency, and optional supporting document (File ID from Upload File). If QuoteID is omitted, a new quote is generated automatically.

Optional header `x-idempotency-key` (max 255 chars): when provided, must be unique. A retry with an already used key is detected *before* SupportingDocument validation and returns HTTP 200 with only `ResponseData.TransactionNumber` of the original payment, without creating a second payment.

Headers

FieldTypeRequiredPossible valuesDescription
AuthorizationstringRequiredBearer {SessionToken}Session token from Get Session Token, sent as `Authorization: Bearer {SessionToken}`. Replace with the value from the `x-refresh-token` response header when present (typically within 2 minutes of expiry). Secured calls must use the same IP as the auth request.
x-idempotency-keystringOptional7b2c8f1a-4e3d-4a1b-9c0e-123456789abcOptional client-supplied idempotency key (max 255 characters). When provided, it is stored on the payment and must be unique. Reusing the same key on payment create does not create a second payment: the request short-circuits before SupportingDocument validation and returns HTTP 200 with only `ResponseData.TransactionNumber` of the original payment. Use a new key for each distinct payment; reuse the same key only when retrying the same logical request.

Request body

FieldTypeRequiredPossible valuesDescription
BeneficiaryPaymentInstrumentIDstringRequired{paymentInstrumentID}Payment instrument ID linked to the beneficiary (from List or Create Payment Instrument).
PurposestringRequiredAsset_Purchase | Contract_Payment | Other | Education_Payment | Payroll | dividends | Mortgage_Payments | Materials_Purchase | Loan_Payments | Professional_Service_Payments | Invoice_Payment | Investment_Purchase | Savings | Rent_Utility_Payments | reimbursements | Tax_Payments | Personal_Family_Payment | settlement_trade | treasury_movement | gift_donation | remittanceRegulatory purpose code for the payment. Must be one of the allowed values.
DescriptionstringRequiredTest API PaymentShort memo or narrative for the transaction (shown in history and details).
DestinationAmountstringRequired150Amount the beneficiary receives, in destination currency, as a decimal string.
DestinationCurrencystringRequiredEURCurrency the beneficiary receives (e.g. EUR, USD, GBP, ARS).
CryptoBuySellActivitystringRequiredYes | NoWhether the transaction involves buying or selling cryptocurrency: `Yes` or `No`.
SupportingDocumentstringRequired{fileID}File ID from Upload File (`customField`: Payment_Invoice) for invoice or supporting documentation.
DocumentReferenceNumberstringRequired13214654987Reference number for the supporting document (e.g. passport or driver license number).
QuoteIDstringOptionalQuote ID from Preview - Send Cross Border Payment. Locks the FX rate; if omitted, a new quote is created at submit time.

Example request

{
  "BeneficiaryPaymentInstrumentID": "{paymentInstrumentID}",
  "Purpose": "Savings",
  "Description": "Testing SEPA payments",
  "DestinationAmount": "830",
  "DestinationCurrency": "EUR",
  "CryptoBuySellActivity": "Yes",
  "SupportingDocument": "{fileID}",
  "DocumentReferenceNumber": "324324324"
}

Response

FieldTypePossible valuesDescription
ResponseCodeinteger200 | 201 | 204 | 400 | 401 | 403 | 404 | 410 | 422 | 500 | 301 | 503 | 422API result code in the response envelope. Indicates success or the error category (e.g. 200 success, 400 bad request, 401 unauthorized).
ResponseMessagestringSuccess | Created | NoContent | BadRequest | Unauthorized | Forbidden | NotFound | Gone | UnprocessableContent | ServerError | ResourceMoved | ServiceUnAvailable | UnProcessableEntityHuman-readable label paired with ResponseCode (e.g. Success, BadRequest, Unauthorized). Use with ResponseCode to interpret the outcome.
ResponseDataObjetPlease refer to below example for response bodyContains TransactionNumber for use with Get Transaction Details.

Example response

{
  "ResponseCode": 200,
  "ResponseMessage": "Success",
  "ResponseData": {
    "TransactionNumber": "FV000007938"
  }
}

Requires `Authorization: Bearer {SessionToken}` from Get Session Token. Refresh via `x-refresh-token` when supplied; use the same client IP as authentication.

Search guide books, endpoints, paths, or parameters

↑↓navigateopenEscclose