Skip to main content

Transaction Create Modes

POST /transactions supports exactly one pricing mode:
  1. Quote mode: provide quote_id.
  2. Direct mode: provide fiat_amount + crypto_currency + network.
Do not send both modes together. In direct mode, CashWeb uses the latest available market rate when the transaction is created and derives crypto_amount. Partners do not send rate or crypto_amount.

Canonical Reference

merchant_reference is your partner-owned canonical identifier.
  • Unique per partner (case-insensitive).
  • Required for timeout recovery.
  • Recommended as your primary reconciliation key.

Expiry and Deadlines

  • Quote validity: 120 seconds.
  • Transaction deposit expiry: 30 minutes.
If a transaction is near expiry, fetch latest state before any user-facing action.

Create Response Shape

Successful create responses include:
  • id
  • deposit_address
  • network
  • expires_at
  • status
  • rate
  • amount
  • crypto_amount
  • crypto_currency
  • merchant_reference
  • merchant_id
  • terminal_id
Example:

Recovery Endpoints

  • GET /transactions/{id}
  • GET /transactions/reference/{merchant_reference}
Use reference-based recovery when your create call timed out and transaction ID is unknown.

TSQ Response Shape

Transaction status query responses include deposit reconciliation fields:
  • crypto_currency
  • crypto_amount
  • rate
  • amount
  • created_at
  • updated_at
  • deposit_id
  • deposit_status
  • confirmations
  • required_confirmations
  • received_at
  • confirmed_at

List Endpoint (Cursor-Only)

GET /transactions is cursor-based. Use:
  • limit (1..100)
  • cursor from prior next_cursor
Never construct cursor values manually.

Cancellation Rules

POST /transactions/{id}/cancel is idempotent with Idempotency-Key. Cancellation is state-dependent. Non-cancellable states return 409 Conflict.

Seller Identification

seller_phone is optional partner metadata for seller linkage and reconciliation. Partner transaction creation is not blocked by KYC checks.