Skip to main content
POST
/
api
/
v1
/
auth
/
remittance
/
off-ramp
/
orders
Create Remittance Off-Ramp Order
curl --request POST \
  --url https://crypto.westminister.tech/api/v1/auth/remittance/off-ramp/orders \
  --header 'Content-Type: application/json' \
  --data '
{
  "customer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "vendor_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "offer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "sender_name": "<string>",
  "sender_country": "<string>",
  "sender_phone": "<string>",
  "sender_wallet_address": "<string>",
  "beneficiary_phone": "<string>",
  "beneficiary_country": "KE",
  "beneficiary_fiat_amount": "<string>",
  "fiat_currency": "KES",
  "payment_method": "mpesa",
  "expires_at": "2023-11-07T05:31:56Z",
  "pricing_profile_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "fx_rate_quote_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "beneficiary_name": "<string>",
  "payout_method": "mpesa",
  "fee_bearer": "sender",
  "payout_phone": "<string>",
  "beneficiary_bank_name": "<string>",
  "beneficiary_bank_code": "<string>",
  "beneficiary_account_name": "<string>",
  "beneficiary_account_number": "<string>"
}
'
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "customer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "vendor_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "offer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "asset": "<string>",
  "crypto_amount": "<string>",
  "usdt_amount": "<string>",
  "fiat_amount": "<string>",
  "fiat_currency": "<string>",
  "wallet_address": "<string>",
  "status": "pending",
  "payment_method": "<string>",
  "payment_txn_id": {
    "String": "<string>",
    "Valid": true
  },
  "blockchain_txn_hash": {
    "String": "<string>",
    "Valid": true
  },
  "expires_at": "2023-11-07T05:31:56Z",
  "completed_at": {
    "Time": "2023-11-07T05:31:56Z",
    "Valid": true
  },
  "created_at": "2023-11-07T05:31:56Z",
  "updated_at": "2023-11-07T05:31:56Z",
  "deleted_at": {
    "Time": "2023-11-07T05:31:56Z",
    "Valid": true
  },
  "merchant_request_id": {
    "String": "<string>",
    "Valid": true
  },
  "checkout_request_id": {
    "String": "<string>",
    "Valid": true
  },
  "mpesa_receipt_number": {
    "String": "<string>",
    "Valid": true
  },
  "payment_phone_number": {
    "String": "<string>",
    "Valid": true
  },
  "order_type": "ON_RAMP_BUY",
  "order_subtype": "standard_onramp",
  "sender_name": {
    "String": "<string>",
    "Valid": true
  },
  "sender_country": {
    "String": "<string>",
    "Valid": true
  },
  "sender_phone": {
    "String": "<string>",
    "Valid": true
  },
  "escrow_wallet_address": {
    "String": "<string>",
    "Valid": true
  },
  "escrow_network": {
    "String": "<string>",
    "Valid": true
  },
  "escrow_reference": {
    "String": "<string>",
    "Valid": true
  },
  "deposit_tx_hash": {
    "String": "<string>",
    "Valid": true
  },
  "deposit_confirmations": 123,
  "deposit_detected_at": {
    "Time": "2023-11-07T05:31:56Z",
    "Valid": true
  }
}

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.

Body

application/json
customer_id
string<uuid>
required
vendor_id
string<uuid>
required

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.

offer_id
string<uuid>
required

Liquidity listing (API field name offer_id): the active published terms row (pair, limits, asset) this order attaches to for validation and lifecycle.

sender_name
string
required

Display / compliance name for the crypto sender

sender_country
string
required

ISO country code for the sender (e.g. GB)

sender_phone
string
required

Sender MSISDN. Must differ from beneficiary_phone for M-Pesa

sender_wallet_address
string
required

Customer wallet used for network detection and escrow flow. Must belong to customer_id

beneficiary_phone
string
required

M-Pesa destination for KES payout

beneficiary_country
string
required
Example:

"KE"

beneficiary_fiat_amount
string
required

Net fiat amount the beneficiary should receive (e.g. KES as decimal string)

fiat_currency
string
required
Example:

"KES"

payment_method
string
required
Example:

"mpesa"

expires_at
string<date-time>
required
pricing_profile_id
string<uuid>
required
fx_rate_quote_id
string<uuid>
required
beneficiary_name
string

Optional beneficiary display name

payout_method
enum<string>
default:mpesa
Available options:
mpesa,
bank
fee_bearer
enum<string>

Defaults from liquidity listing then receiver

Available options:
sender,
receiver
payout_phone
string

Optional. Defaults to beneficiary_phone for M-Pesa

beneficiary_bank_name
string
beneficiary_bank_code
string
beneficiary_account_name
string
beneficiary_account_number
string

Response

Remittance off-ramp order created

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

Liquidity provider (publisher). API name vendor_id.

offer_id
string<uuid>

Liquidity listing id. API name offer_id.

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 standard flows from remittance off-ramp. Legacy rows are backfilled as standard_onramp / standard_offramp.

Available options:
standard_onramp,
standard_offramp,
remittance_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

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