Create External Buy
Create an external-wallet crypto buy transaction.
Price lock (quote_id)
Pass quote_id to create this transaction against a price-locked quote previously issued by the External Buy Quote endpoint (POST /api/v2/wallet/w/quote). When quote_id is supplied, the locked currency pair, payment method, amounts, network, and fees are resolved from the stored quote; the matching request fields become optional and any values sent for them are ignored. crypto_wallet_address is always required. When quote_id is absent the endpoint behaves as before and the original fields remain required.
{
"quote_id": "421b9fb7-6800-4d9d-ba17-083ad662733b",
"crypto_wallet_address": "0xf82010290b2c3169ffaB5354d7Bbd09Eb2822724",
"source_id": "94b00193-301d-4750-b310-207393d987c9",
"bank_transaction_id": "501610337776"
}
Response field values
| Field | Possible Values |
|---|---|
status | Typically PROCESSING immediately after creation |
failure_code, failure_desc | Empty string until the transaction fails |
If crypto_wallet_address is POOL_TRANSFER, the handler may also surface broker or deposit-address service errors directly with their underlying code and message.
Headers
Your API key (configured in credentials)
HMAC-SHA256 signature (auto-generated) To test manually: HMAC-SHA256 of apiKey + timestamp (or apiKey + timestamp + userId when X-User-Id is required), keyed with your API secret. The HMAC Generator flow computes this for you.
Unix timestamp in seconds (auto-generated) Unix seconds, e.g. Math.floor(Date.now() / 1000). Must match the timestamp used in the X-Signature computation.
Unique request identifier (auto-generated) Any unique string per request, e.g. a UUID.
User UUID (set above)
Body
Deposit payment method. Ignored when quote_id is provided (taken from the quote).
Destination wallet address.
Crypto network. Ignored when quote_id is provided (taken from the quote).
Fiat or source currency. Ignored when quote_id is provided (taken from the quote).
Crypto or destination currency. Ignored when quote_id is provided (taken from the quote).
Source amount. Must be greater than zero. Ignored when quote_id is provided (taken from the quote).
Optional UUID of a price-locked quote from the External Buy Quote endpoint. When provided, the price-lock flow is enabled: from_currency, to_currency, payment_method, from_amount, to_amount, and network are taken from the quote and any values sent for them are ignored. crypto_wallet_address is still required. The quote must be unexpired, unused, belong to the calling client, and match this transaction type.
Optional destination amount. Ignored when quote_id is provided (taken from the quote).
Optional client reference UUID.
Optional source instrument id.
Optional provider reference.
Payment verification code when applicable.
Card CVV when applicable.
Save payment method for future use.
Network tag or memo.
Related topics
External Buy QuoteGet External Buy DetailCreate External SellCreate Pool Buy TransactionAvailable Flows