Integration Flow
1) Create Quote
Use exactly one amount mode (crypto_amount or fiat_amount).
expires_at.
2) Create Transaction
Always send:merchant_reference(canonical partner key)Idempotency-Key(safe retries)
- Quote mode:
quote_id - Direct mode:
fiat_amount+crypto_currency+network
idmerchant_referencedeposit_addressexpires_atrateamountcrypto_amountcrypto_currencynetwork
3) Handle Timeouts and Recovery
If create request times out, recover by reference:4) Process Webhooks
- Verify
X-CW-Webhook-Signature. - Deduplicate by webhook
id. - Upsert transaction status only when state progression is valid for your system.
GET /webhooks/eventsGET /webhooks/events/{event_id}POST /webhooks/events/{event_id}/replay
5) Reconcile Periodically
Use list + revenue endpoints with fixed windows and cursors:GET /transactionsGET /revenue
6) Test Lifecycle Progression In Staging
Use the standalone sandbox simulator to trigger partner lifecycle events against a known transaction: You must first create the transaction and then pass the returned transactionid as transaction_id.