Skip to main content

Quote and accept

Binding fiat ↔ crypto orders for approved vault customers. Prerequisite: Customer KYC complete — status=approved. Quote with customer_id (pcus_*), not inline customer.

Auth and environment

Flow

1

Discover

GET /partner/catalog?country=KE&order_type=OnRamp → copy momo/bank providers[].id
2

Quote

POST /partner/orders/quote with customer_id, payment_method, asset, amounts
3

Accept

Wait ~2s, then POST /partner/orders/{quote_id}/accept with {}
4

Settle

Webhooks order.processingorder.settled or order.failed

1. Discover network_id

Use providers[].id as payment_method.network_id on quote. Always fetch from your sandbox — do not hardcode UUIDs across environments.

2. Quote (KE OnRamp, momo)

Quote success — what to expect

Save the quote id:

3. Accept

Accept success — what to expect

OnRamp: read data.payment_instructions (when present) for what the customer must do on the fiat rail. OffRamp live: crypto_deposit tells the customer where to send stablecoin.

Request checklist

Field hints per corridor: GET /partner/order-requirements. Copy-paste payloads: Sandbox test payloads.

Common quote errors

Deprecated: inline customer

Deprecated — migrate to vault customer_id. Still supported for existing integrations and sandbox spikes. Do not start new production integrations on inline customer. The API accepts a full customer object on quote instead of customer_id until you migrate. Sandbox-only example (inline, no vault):

Next