FX

Accept a firm FX quote and create a trade

post/v1/fx/trades

Headers

X-API-Keystring

API key

Request body

quoteIdstring required

ID of a PENDING firm quote returned by POST /v1/fx/quotes.

Example request

{
  "quoteId": "quote_abc123",
  "payoutDestination": {
    "type": "EXTERNAL_WALLET",
    "address": "0xabc123...",
    "network": "BASE",
    "bankAccountId": "eba_abc123",
    "payoutReference": "INV20260417"
  }
}

Response

Trade created. Deposit funds within depositDeadline.

tradeIdstring required
status'PENDING_WALLET_APPROVAL' | 'AWAITING_DEPOSIT' | 'PROCESSING' | 'COMPLETED' | 'FAILED' | 'CANCELLED' | 'AUTO_CANCELLED' | 'REFUNDED' required

Lifecycle status. PENDING_WALLET_APPROVAL means accept succeeded but the source wallet is still being verified — depositInstructions is omitted until verification clears and the trade transitions to AWAITING_DEPOSIT (delivered via the fx_trade.deposit_instructions_ready webhook).

depositDeadlinestring

Customer-facing deposit deadline (ISO 8601). Present when either depositInstructions or fundingInstructions is present.

screeningDeadlinestring

Deadline by which source-wallet verification must complete (ISO 8601). Present only when status=PENDING_WALLET_APPROVAL. If verification has not cleared by this point the trade transitions to FAILED.

Example response

{
  "tradeId": "tfr_abc123",
  "status": "AWAITING_DEPOSIT",
  "depositInstructions": {
    "address": "0xCustomerInfiniteTxWallet...",
    "network": "BASE",
    "amount": "10000000",
    "expiresAt": "2026-05-26T19:54:00.000Z"
  },
  "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"
  },
  "depositDeadline": "2026-05-26T19:54:00.000Z",
  "screeningDeadline": "2026-05-26T19:47:00.000Z"
}

Changes

No recorded changes to this endpoint across all 1 revision of this API.