Skip to main content
POST

Body

application/json
customer_id
string<uuid>
required

Customer UUID who is placing the order

vendor_id
string<uuid>
required

Vendor UUID offering the trade

offer_id
string<uuid>
required

Offer UUID that this order is based on

crypto_amount
string
required

Amount of USDT or USDC in the order (e.g., "1200.00")

fiat_amount
string
required

Equivalent fiat amount (e.g., "175200.00")

fiat_currency
string
required

Fiat currency code (e.g., "KES")

Example:

"KES"

wallet_address
string
required

Customer's wallet address. Used differently based on order type:

  • On-ramp (ON_RAMP_BUY): Address where customer will receive USDT/USDC
  • Off-ramp (OFF_RAMP_SELL): Used to detect network (Tron if starts with "T", Ethereum otherwise) Must be a valid Tron (TRC20) or Ethereum (ERC20) address.
payment_method
string
required

Payment method for fiat transactions

Example:

"mpesa"

order_type
enum<string>
required

Order type determines the transaction flow:

  • ON_RAMP_BUY: Customer buys crypto with fiat (mobile money → USDT/USDC)
  • OFF_RAMP_SELL: Customer sells crypto for fiat (USDT/USDC → mobile money)
Available options:
ON_RAMP_BUY,
ON_RAMP_SELL,
OFF_RAMP_BUY,
OFF_RAMP_SELL
usdt_amount
string
deprecated

Deprecated alias for crypto_amount

status
enum<string>

Order status. If not provided, defaults to:

  • On-ramp: "pending" (waiting for mobile money payment)
  • Off-ramp: "awaiting_crypto" (waiting for crypto deposit to escrow)
Available options:
pending,
processing,
confirming,
completed,
cancelled,
awaiting_crypto
expires_at
string<date-time>

Order expiration timestamp (RFC3339 format, e.g., "2025-12-31T23:59:59Z")

payout_phone
string

Phone number for receiving mobile money payout (MSISDN format, e.g., "254727648169").

  • Required for: OFF_RAMP_SELL orders only
  • Not used in: ON_RAMP_BUY orders format: Country code + number without leading zeros (e.g., 2547XXXXXXXX for Kenya)

Response

201 - application/json

Order created

id
string<uuid>
customer_id
string<uuid>
vendor_id
string<uuid>

Liquidity provider (publisher). API name vendor_id.

offer_id
string<uuid> | null

Liquidity listing id. API name offer_id. Nullable for custodial remittance orders.

asset
string | null
crypto_amount
string
usdt_amount
string | null

Backward-compatible alias for crypto_amount

fiat_amount
string
fiat_currency
string
wallet_address
string
status
enum<string>
Available options:
pending,
processing,
confirming,
completed,
cancelled,
failed
payment_method
string

e.g., mpesa

payment_txn_id
object

Database-style nullable string wrapper

blockchain_txn_hash
object

Database-style nullable string wrapper

expires_at
string<date-time>
completed_at
object

Database-style nullable time wrapper

created_at
string<date-time>
updated_at
string<date-time>
deleted_at
object

Database-style nullable time wrapper

merchant_request_id
object

Database-style nullable string wrapper

checkout_request_id
object

Database-style nullable string wrapper

mpesa_receipt_number
object

Database-style nullable string wrapper

payment_phone_number
object

Database-style nullable string wrapper

order_type
enum<string>
Available options:
ON_RAMP_BUY,
ON_RAMP_SELL,
OFF_RAMP_BUY,
OFF_RAMP_SELL
order_subtype
enum<string>

Distinguishes marketplace, remittance, custodial remittance, and company fiat-on-demand off-ramp flows. Legacy rows are backfilled as standard_onramp/standard_offramp. treasury_offramp has no offer_id. Vendor is the platform treasury.

Available options:
standard_onramp,
standard_offramp,
remittance_offramp,
custodial_remittance_offramp,
treasury_offramp
sender_name
object

Database-style nullable string wrapper

sender_country
object

Database-style nullable string wrapper

sender_phone
object

Database-style nullable string wrapper

beneficiary_bank_name
object

Database-style nullable string wrapper

beneficiary_bank_code
object

Database-style nullable string wrapper

beneficiary_bank_branch
object

Database-style nullable string wrapper

beneficiary_bank_address
object

Database-style nullable string wrapper

beneficiary_account_name
object

Database-style nullable string wrapper

beneficiary_account_number
object

Database-style nullable string wrapper

beneficiary_swift_code
object

Database-style nullable string wrapper

escrow_wallet_address
object

Database-style nullable string wrapper

escrow_network
object

Database-style nullable string wrapper

escrow_reference
object

Database-style nullable string wrapper

deposit_tx_hash
object

Database-style nullable string wrapper

deposit_confirmations
integer
deposit_detected_at
object

Database-style nullable time wrapper