Transfers

Quote a transfer intent

Creates a canonical transfer quote. Locked quotes include an opaque confirmation reference.

post/v1/transfers/quotes

Headers

X-API-Keystring

API key

Request body

clientReferenceIdstring

Client's internal reference ID (e.g., order ID, transaction ID)

onBehalfOfstring required

Primary customer ID (on whose behalf the transfer is made)

counterpartyIdstring

Counterparty ID for third-party recipient transfers. Omit for first-party transfers.

remarksstring

Free-form remarks or notes about the transfer (e.g., invoice discrepancy explanations)

internalRemarksstring

Internal remarks visible only within your organization. Never forwarded to payment rails (SWIFT, ACH, etc.) or counterparties.

developerFeeFixednumber

Fixed developer fee in minor units of source currency. Added on top of provider fees and deducted from the transfer amount.

developerFeePercentnumber

Developer fee as decimal percentage (e.g., 0.015 for 1.5%). Deducted from the transfer amount before sending to the destination. Maximum 0.1 (10%).

documentIdsstring[]

Supporting document IDs for the transfer. Required for third-party SWIFT payments (when the destination account is marked as third-party or the destination customer differs from the originating customer).

expiresAtstring date-time

Optional transfer expiration timestamp. If omitted, the transfer expires 7 days after creation when funded by a fiat pay-in (wire/ACH) and 48 hours after creation otherwise.

requiresAuthorizationboolean

If true, this payment must be authorized before it is processed. Attach the supporting invoice via documentIds. The transfer parks in PENDING_AUTHORIZATION and does not move funds until it is approved.

paymentReason'CAPITAL_CONTRIBUTIONS' | 'CHARITABLE_CONTRIBUTIONS' | 'CONSULTING_FEES' | 'CORPORATE_TAX_PAYMENTS' | 'DOWN_PAYMENTS_FOR_REAL_ESTATE' | 'EDUCATION_FEES' | 'EMPLOYEE_SALARIES_OR_WAGES' | 'EXPENSES_REIMBURSEMENT' | 'GIFTS' | 'GOVERNMENT_GRANTS' | 'INCOME_TAX_PAYMENTS' | 'INHERITANCE_PAYMENTS' | 'INSURANCE_CLAIM_PAYOUTS' | 'INSURANCE_PREMIUM_PAYMENTS' | 'INVESTMENTS' | 'LOAN_ADVANCES' | 'MORTGAGE_PAYMENTS' | 'OTHER' | 'PAYMENT_FOR_GOODS_AND_SERVICES' | 'PERSONAL_TRANSFERS' | 'REAL_ESTATE_PURCHASES' | 'REMITTANCES' | 'RENT' | 'REPAYMENT_OF_LOANS' | 'ROYALTIES' | 'SELF' | 'TRADE_SETTLEMENT' | 'TRUST_FUND_DISTRIBUTIONS' | 'UTILITY_BILLS' | 'WELFARE_OR_BENEFITS' | 'WINNINGS_AND_PRIZES' required

Reason for the payment (compliance/AML).

lockboolean

Persist a firm quote that can be confirmed. Preview quotes omit this.

Example request

{
  "clientReferenceId": "order_abc123",
  "onBehalfOf": "cus_abc123",
  "counterpartyId": "cp_abc123",
  "source": {
    "accountId": "inw_abc123",
    "currency": "USDC",
    "paymentRail": "ETHEREUM",
    "direction": "CREDIT",
    "refundAccountId": "inw_abc123"
  },
  "destination": {
    "correspondentBankName": "Bank of America",
    "correspondentBankSwiftCode": "IRVTUS3NXXX",
    "correspondentAccountNumber": "9876543210",
    "accountId": "acc_def456",
    "currency": "USDC",
    "paymentRail": "ETHEREUM",
    "wireMessage": "Payment for invoice INV-2026-001",
    "sepaReference": "INV-2026-001",
    "achReference": "ORDER123",
    "blockchainMemo": "MEMO123456",
    "swiftReference": "Payment for Invoice\\nReference: INV-2026-001",
    "rtpReference": "Payment for invoice INV-2026-001"
  },
  "remarks": "Partial payment - remaining balance to be paid next month",
  "internalRemarks": "Approved by ops on 2026-04-15",
  "developerFeeFixed": 100,
  "developerFeePercent": 0.015,
  "documentIds": [
    "doc_abc123",
    "doc_def456"
  ],
  "expiresAt": "2026-12-31T23:59:59Z",
  "amount": {
    "value": "1000000",
    "side": "SOURCE"
  }
}

Response

Transfer intent quoted successfully.

confirmationReferencestring

Opaque reference used to confirm a locked quote. Omitted for indicative previews.

exchangeRatestring required

All-in exchange rate.

expiresAtstring date-time required

When the quote expires.

supportedboolean required

Whether this intent can be confirmed.

lockableboolean required

Whether a firm quote can be locked before confirm. Non-lockable corridors confirm from the intent body.

Example response

{
  "confirmationReference": "quote_abc123",
  "sourceAmount": {
    "currency": "USD",
    "exponent": 2,
    "value": "12345",
    "displayValue": "123.45"
  },
  "destinationAmount": {
    "currency": "USD",
    "exponent": 2,
    "value": "12345",
    "displayValue": "123.45"
  },
  "exchangeRate": "0.99985",
  "fees": {
    "totalBps": "25"
  },
  "supported": true,
  "estimate": {
    "estimatedReceiveAt": "2026-09-17T10:30:00Z",
    "estimatedMinutes": 2880,
    "nextCutoff": "2026-09-15T15:00:00Z",
    "cutoffTimezone": "Asia/Singapore"
  },
  "lockable": true,
  "minimumAmount": {
    "currency": "USD",
    "exponent": 2,
    "value": "12345",
    "displayValue": "123.45"
  }
}

Changes