Create Treasury Fiat-On-Demand Off-Ramp
Creates an OFF_RAMP_SELL order with order_subtype = treasury_offramp.
This is the company cash-out path. No marketplace offer is required. Coinpool is the counterparty
(vendor_id is set from TREASURY_USER_ID). Customers can use this when no peer offers exist,
or when they prefer to sell crypto directly to the platform even if offers are available.
Fiat payout destination
Customers must set payout_method:
mpesa: Mobile money in Kenya. Requiresfiat_currency=KESandpayout_phonein MSISDN form (2547XXXXXXXX).bank: Bank transfer. Requires a nestedbankobject with bank name, branch name, physical address, account number, account name, and SWIFT code.
Flow:
- Customer creates the order and receives a unique escrow address.
- Customer sends USDT/USDC to escrow (
POST /orders/{id}/send-paymentfor custodial wallets). - Escrow watcher confirms the deposit.
- Platform pays fiat to the customer’s M-Pesa or bank account.
Provide either fiat_amount (desired net payout) or crypto_amount (amount to sell). Pricing uses
an active offramp pricing profile and FX quote.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
USDT, USDC "KES"
Customer custodial or verified external wallet
mpesa, bank Amount of USDT/USDC the customer will send to escrow
Deprecated alias for crypto_amount
Desired net fiat payout. If set
Optional. Defaults to payout_method
Required for mpesa. Kenyan MSISDN such as 2547XXXXXXXX
sender, receiver Required when payout_method is bank
Response
Treasury off-ramp order created
Liquidity provider (publisher). API name vendor_id.
Liquidity listing id. API name offer_id. Nullable for custodial remittance orders.
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 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.
standard_onramp, standard_offramp, remittance_offramp, custodial_remittance_offramp, treasury_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 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