Creates an OFF_RAMP_SELL order with order_subtype = remittance_offramp: the customer sends crypto
to a per-order escrow address. After confirmation, M-Pesa B2C pays the beneficiary (third party).
The client supplies how much fiat the beneficiary should receive (beneficiary_fiat_amount). The server
derives USDT/USDC to escrow using the active pricing profile and FX quote plus fee_bearer
(sender or receiver), matching internal remittance pricing rules.
Liquidity listing (required vendor_id + offer_id): Same JSON keys as other orders. Here they mean the
liquidity provider and liquidity listing the remittance order is priced and validated against—the
marketplace anchor for asset/fiat/network and offer lifecycle—not “who sends John his USDT” (John already
holds crypto in custody).
Requirements: sender_wallet_address must belong to customer_id (verified if external). For M-Pesa,
beneficiary_phone digits must differ from sender_phone. pricing_profile_id and fx_rate_quote_id are required.
Documentation Index
Fetch the complete documentation index at: https://docs.crypto.westminister.tech/llms.txt
Use this file to discover all available pages before exploring further.
Liquidity provider (API field name vendor_id): user id of the account that published the listing.
Not the fiat beneficiary and not the source of the customer’s custody balance.
Liquidity listing (API field name offer_id): the active published terms row (pair, limits, asset)
this order attaches to for validation and lifecycle.
Display / compliance name for the crypto sender
ISO country code for the sender (e.g. GB)
Sender MSISDN. Must differ from beneficiary_phone for M-Pesa
Customer wallet used for network detection and escrow flow. Must belong to customer_id
M-Pesa destination for KES payout
"KE"
Net fiat amount the beneficiary should receive (e.g. KES as decimal string)
"KES"
"mpesa"
Optional beneficiary display name
mpesa, bank Defaults from liquidity listing then receiver
sender, receiver Optional. Defaults to beneficiary_phone for M-Pesa
Remittance off-ramp order created
Liquidity provider (publisher). API name vendor_id.
Liquidity listing id. API name offer_id.
Backward-compatible alias for crypto_amount
pending, processing, confirming, completed, cancelled, failed e.g., mpesa
Database-style nullable string wrapper
Database-style nullable string wrapper
Database-style nullable time wrapper
Database-style nullable time wrapper
Database-style nullable string wrapper
Database-style nullable string wrapper
Database-style nullable string wrapper
Database-style nullable string wrapper
ON_RAMP_BUY, ON_RAMP_SELL, OFF_RAMP_BUY, OFF_RAMP_SELL Distinguishes standard flows from remittance off-ramp. Legacy rows are backfilled as
standard_onramp / standard_offramp.
standard_onramp, standard_offramp, remittance_offramp Database-style nullable string wrapper
Database-style nullable string wrapper
Database-style nullable string wrapper
Database-style nullable string wrapper
Database-style nullable string wrapper
Database-style nullable string wrapper
Database-style nullable string wrapper
Database-style nullable time wrapper