Skip to main content
POST
Create Swift payment

Overview

This endpoint creates SWIFT payments for international wire transfers. The payment is validated and submitted to the correspondent banking network.

Idempotent Endpoint

This endpoint supports idempotency to prevent duplicate transactions.

How to Use

  • Include an Idempotency-Key header with a unique value (UUID recommended)
  • The API returns the existing transaction when you reuse the same key
  • Retry requests safely without creating duplicates

Key Features

  • Supports multiple currencies
  • Handles correspondent bank routing
  • Validates BIC codes and account formats
  • Provides transaction tracking

Amounts and currency precision

Send amount and charges.amount as integers in the selected currency’s minor units. Do not include a decimal point. The number of minor units in one major unit follows ISO 4217: For charges, use the fraction digits of charges.currency, which may differ from the payment currency. The API supports ISO 4217 currencies with 0 to 3 fraction digits. The supported 3-decimal currencies are BHD, IQD, JOD, KWD, LYD, OMR, and TND. It rejects currencies with more than 3 fraction digits, including CLF, and codes without a defined minor unit, including XAU and XAG. An unsupported payment or charge currency returns a 400 validation error stating that the currency must have 0-3 fraction digits.

Maximum amount length

CBPR+ accepts at most 14 digits in an amount, counting both the integer and fractional parts. Keep the integer sent in amount to 14 digits or fewer. The API currently accepts longer integers, but SWIFT rejects the resulting payment with a VAL error. For example, these 15-digit amounts exceed the SWIFT limit:
  • 123456789012345 with KWD represents 123456789012.345 KWD.
  • 123456789012345 with EUR represents 1234567890123.45 EUR.

Reading minor-unit amounts

Payment response amounts remain integers in minor units:
  • GET /v2/transactions/search returns currency_fraction_digits for each transaction.
  • GET /v3/payments/{id} returns instructedCurrencyFractionDigits for instructedAmount and instructedCurrency.
  • GET /v3/payments does not return a fraction-digits field.

Headers

Idempotency-Key
string
required

Unique identifier in scope of payment creation endpoints required to prevent unintended duplicate payments

Body

application/json

SWIFT payment request for creating cross-border payments

amount
integer
required

Transaction amount in minor currency units

Example:

10102

creditor
object
required

Creditor (beneficiary) information

currency
string
required

Currency code (ISO 4217, 3-letter uppercase). Must have 0 to 3 fraction digits. Unsupported: codes with no defined minor unit (XAU, XAG, XPT, XPD, XDR, XSU, XUA, XTS, XXX, XBA, XBB, XBC, XBD, XFO, XFU) and codes with more than 3 fraction digits.

Minimum string length: 1
Pattern: ^[A-Z]{3}$
Example:

"EUR"

debtor
object
required

Debtor (payer) information

priority
enum<string>
required

Instruction priority: NORM (normal), HIGH (high)

Available options:
NORM,
HIGH
settlement
object
required

Settlement information

categoryPurposeCode
enum<string> | null

Category purpose code. Indicates the high-level purpose of the payment at a business level for accounting inside the payer/beneficiary company and for interbank and regulatory interpretation. Mutually exclusive with categoryPurposeProprietary.

Available options:
BONU,
CASH,
CBLK,
CCRD,
CORT,
DCRD,
DIVI,
DVPM,
EPAY,
FCIN,
FCOL,
GOVT,
HEDG,
ICCP,
IDCP,
INTC,
INTE,
LOAN,
MP2B,
MP2P,
OTHR,
PENS,
RPRE,
RRCT,
RVPM,
SALA,
SECU,
SSBE,
SUPP,
TAXS,
TRAD,
TREA,
VATX,
WHLD
categoryPurposeProprietary
string | null

Category purpose proprietary value. Free text alternative to categoryPurposeCode for non-standard category purposes. Mutually exclusive with categoryPurposeCode. Must contain at least one non-whitespace character. Maximum length is 35 characters.

Maximum string length: 35
Pattern: (\s*[^\s]\s*)+
charges
object | null

Charge information (optional)

clearingChannel
enum<string> | null

Clearing channel: BOOK (book transfer), MPNS (mass payment net system), RTGS (real-time gross settlement), RTNS (real-time net settlement) (optional)

Available options:
BOOK,
MPNS,
RTGS,
RTNS
endToEndId
string | null

End-to-end identification assigned by the initiating party; transliterated to the CBPR+ restricted character set (optional, defaults to NOTPROVIDED if not provided)

Required string length: 1 - 35
metadata
string[]

For linking the payment to your internal records, for example a billing run, order, or customer ID. Set at creation only and cannot be changed afterwards. Stored only in the payment gateway: never included in any outgoing SEPA or SWIFT (MX/MT) message and never visible to the counterparty. Returned in transaction details and filterable in Transactions list v2 using exact match on the full value. Do not store sensitive personal data, card numbers, or secrets here. Examples: ["billing-run-2026-07"] or ["salary", "executive", "vacation"].

Maximum array length: 10
Maximum string length: 140
Example:
purposeCode
enum<string> | null

Category purpose code. Allowed values: 'ADVA' - Advance payment, 'TAXS' - Tax payment,
'CSDB' - Cash Disbursement/Cash Management,
'GDSV' - Purchase Sale Of Goods And Services, 'GSCB' - Purchase Sale Of Goods And Services With Cash Back,
'COMP' - Compensation Payment, 'FEES' - Payment Of Fees, 'ICCP' - Irrevocable Credit Card Payment,
'IDCP' - Irrevocable Debit Card Payment, 'REFU' - Refund, 'RRCT' - Reimbursement Received Credit Transfer,
'RRTP' - Related Request To Pay, 'GVEA' - Austrian Government Employees Category A,
'GVEB' - Austrian Government Employees Category B, 'GVEC' - Austrian Government Employees Category C,
'GVED' - Austrian Government Employees Category D

Available options:
ADVA,
TAXS,
CSDB,
GDSV,
GSCB,
COMP,
FEES,
ICCP,
IDCP,
REFU,
RRCT,
RRTP,
GVEA,
GVEB,
GVEC,
GVED
remittance
string | null

Unstructured remittance information (payment details)

Maximum string length: 140
serviceLevel
enum<string> | null

Service level code: BKTR (book transfer), NUGP (non-urgent priority), NURG (non-urgent), SDVA (same day value), URGP (urgent payment), URNS (urgent net settlement) (optional)

Available options:
BKTR,
NUGP,
NURG,
SDVA,
URGP,
URNS

Response

A new SWIFT payment has been created

SWIFT payment creation response

amount
integer
required

Transaction amount in minor currency units

createdAt
string<date-time>
required

Transaction creation timestamp

creditor
object
required

Creditor information

currency
string
required

Currency code

debtor
object
required

Debtor information

endToEndId
string
required

End-to-end identification

method
enum<string>
required

Transaction method (always SWIFT)

Available options:
SEPA,
INST,
SDD,
SWIFT,
T2,
VIBER
settlementDate
string<date>
required

Settlement date

status
string
required

Transaction status

transactionId
integer<int64>
required

Unique transaction identifier

remittance
string | null

Remittance information

Last modified on September 23, 2026