Transfers

Confirm an unlocked transfer intent

Creates a transfer from a previewed corridor that cannot lock a firm quote.

post/v1/transfers/quotes/confirm

Headers

X-API-Keystring

API key

Idempotency-Keystring required

Required UUID preventing duplicate unlocked confirmations.

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 created from the quoted intent.

transferIdstring required
flowstring required

Customer-facing transfer flow.

statusstring required

Current customer-facing transfer status.

fundingRequiredboolean required

Whether customer funding is required.

fundingDeadlinestring date-time

Customer funding deadline when funding is required.

Example response

{
  "transferId": "tfr_abc123",
  "flow": "FIAT_TO_CRYPTO",
  "status": "PENDING",
  "fundingRequired": true,
  "depositInstructions": {
    "type": "crypto",
    "paymentRail": "ETHEREUM",
    "toAddress": "0x1234567890abcdef1234567890abcdef12345678",
    "amount": {
      "currency": "USD",
      "exponent": 2,
      "value": "12345",
      "displayValue": "123.45"
    },
    "accountId": "acc_abc123"
  },
  "fundingInstructions": {
    "reference": "CDX-7K2A9V",
    "currency": "EUR",
    "amount": "10000",
    "supportedRails": [
      "SEPA"
    ],
    "bank": {
      "name": "Commerzbank AG",
      "address": "Mainzer Landstraße 153, 60327 Frankfurt",
      "country": "DE"
    },
    "accounts": [
      {
        "supportedRails": [
          "SEPA"
        ],
        "accountHolderName": "Acme Onramp Ltd",
        "accountNumber": "12345678",
        "iban": "DE89370400440532013000",
        "bic": "COBADEFFXXX",
        "sortCode": "12-34-56",
        "routingNumber": "021000021"
      }
    ],
    "swiftRoutingBanks": [
      {
        "bankName": "Citibank N.A.",
        "bic": "CITIUS33XXX",
        "abaRoutingNumber": "021000089"
      }
    ],
    "expiresAt": "2026-05-26T19:54:00.000Z"
  }
}

Changes