Skip to main content
POST
Create a binding quote for a fiat ↔ crypto order.
1

Create quote

POST with corridor, customer, and payment method details.
2

Show pricing

Display returned amounts and payment instructions to the user (OnRamp).
3

Accept

Customer identity

Use one of:
  • customer_id (pcus_* from an approved customer vault case) — recommended for new integrations
  • Inline customer — still supported; pick KE OnRamp — inline customer in Try it or fill the customer object
Do not send both. Corridor-specific inline shapes: Sandbox test payloads.
Try it omits legacy top-level fields (provider, channel_id, destination, rail, …). Omit provider on live calls too — Element Pay auto-routes by corridor.

Discovery before quote

Payment method by rail

mobile_money
  • payment_method.type=mobile_money
  • payment_method.phone_number (E.164)
  • payment_method.network_id (UUID from catalog providers[].id)
bank
  • payment_method.type=bank
  • account_number, account_name
  • payment_method.network_id (from GET /partner/banks or catalog)

Quote IDs

  • OnRamp: yc_receive_<id>
  • OffRamp: yc_send_<id>
The quote expires at data.expires_at.

Authorizations

X-API-Key
string
header
required

Partner API key. Sandbox keys start with is_test_; production keys start with is_live_. Keys are not interchangeable across environments. Send on every request. Never expose in browser or mobile clients.

Body

application/json

Quote body for Mintlify Try it. Includes customer_id or inline customer, asset, and payment_method only. Not shown here (still accepted on live API if needed): provider, channel_id, channel_type, sequence_id, destination, source, sender, recipient, rail, token top-level alias, crypto_currency/crypto_network hints.

order_type
enum<string>
required

OnRamp = fiat to crypto. OffRamp = crypto to fiat.

Available options:
OnRamp,
OffRamp
Example:

"OnRamp"

country
string

ISO country (African corridors). Omit for EUR/USD international bank payin.

Required string length: 2
Example:

"KE"

currency
string
Required string length: 3
Example:

"KES"

local_amount
integer

OnRamp: fiat amount the customer pays.

Required range: x >= 1
Example:

800

crypto_amount
number

OffRamp: stablecoin amount the customer sends.

Example:

20

customer_id
string

Approved vault customer id (pcus_*). Use this or inline customer, not both.

Example:

"pcus_a1b2c3d4e5f6"

customer
object

Inline retail KYC when you do not use customer_id. Corridor extras (BVN, institution): /sandbox/test-payloads.

asset
object

Stablecoin asset block (sandbox default: Base USDC).

payment_method
object

Fiat rail. mobile_money: phone_number + network_id. bank: account_number, account_name, network_id.

wallet_address
string

OnRamp: destination wallet for stablecoin delivery.

Example:

"0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe"

refund_address
string

OffRamp: refund wallet if payout fails.

Example:

"0x3333333333333333333333333333333333333333"

Response

Partner order quote created

status
enum<string>
required
Available options:
success
message
string
required
data
object
required