Create a partner order quote
Create a binding quote for a fiat ↔ crypto order. Flow: create a quote → show the returned amounts and payment instructions to the user → accept the quote_id with POST /partner/orders/{quote_id}/accept. Discovery before quote: - GET /partner/catalog or GET /partner/payment-methods → rails for the corridor. - GET /partner/catalog?order_type=OnRamp|OffRamp → providers[].id for momo/bank. - GET /partner/order-requirements → exact field names (network_id required for momo/bank). - GET /partner/banks → bank institution UUIDs where applicable. Payment method by rail: - mobile_money: payment_method.type=mobile_money, payment_method.phone_number (E.164), and payment_method.network_id (UUID from catalog providers[].id). - bank: payment_method.type=bank, account_number, account_name, and payment_method.network_id (from GET /partner/banks or catalog). OnRamp response includes payment_instructions — show these to the user before accept. provider is optional. When omitted, ElementPay auto-routes by corridor. Quote id formats: yc_receive_<id> (OnRamp), yc_send_<id> (OffRamp). The quote expires at data.expires_at.
Create quote
POST with corridor, customer, and payment method details.Show pricing
Accept
POST /partner/orders/{quote_id}/accept when the user confirms.Discovery before quote
GET /partner/catalogorGET /partner/payment-methods→ rails for the corridorGET /partner/catalog?order_type=OnRamporOffRamp→providers[].idfor momo/bankGET /partner/order-requirements→ exact field names (network_idrequired for momo/bank)GET /partner/banks→ bank institution UUIDs where applicable
Payment method by rail
mobile_money
payment_method.type=mobile_moneypayment_method.phone_number(E.164)payment_method.network_id(UUID from catalogproviders[].id)
bank
payment_method.type=bankaccount_number,account_namepayment_method.network_id(fromGET /partner/banksor catalog)
provider is optional — when omitted, ElementPay auto-routes by corridor.
Quote IDs
- OnRamp:
yc_receive_<id> - OffRamp:
yc_send_<id>
data.expires_at.Authorizations
Body
Generic partner quote request for the quote -> accept -> webhook flow. provider is optional. When omitted, the partner order router selects the route from country, currency, order type, payment method, asset, and amount. New partner integrations should use the canonical asset, customer, and payment_method blocks. For local fiat rail momo/bank, payment_method.network_id is required (catalog or GET /banks). For mobile money MSISDN, use payment_method.phone_number only — do not fall back to customer.phone. Legacy provider-specific blocks (destination, etc.) are still accepted and mapped to the canonical request fields.
OnRamp/0 = fiat to crypto. OffRamp/1 = crypto to fiat.
OnRamp, OffRamp, onramp, offramp, 0, 1 Optional route override. Omit for ElementPay auto-routing. Use elementpay for native on-chain routes; local fiat rail and international bank for ramp providers.
local fiat rail, international bank, elementpay, native Token contract address or route token hint. local fiat rail currently requires Base USDC or Polygon USDT address.
132retail, institution Canonical crypto asset block. Use token for contract-address based routes and currency + network for provider currency routes.
Stable subject type for providers that require pre-approved PSP customer links (for example international bank USD/EUR IBAN payins).
user, organization Stable subject id used to resolve provider approval/onboarding state.
64Provider crypto currency hint, e.g. USDC or USDC_TEST for international bank.
Provider network hint, e.g. Base or PolygonTestAmoy for international bank.
x >= 1x >= 1x > 0Provider-neutral customer details. Retail: personal KYC fields (name, dob, id_number, …). Institution (type: institution with top-level customer_type: institution): uid, business_name, business_id (legal registration/tax id of the paying business), and email — no DOB / national ID / personal name. Used to derive provider party details when provider-specific fields are omitted.
Provider-neutral fiat rail. For type: mobile_money use phone_number (MSISDN) and network_id (institution UUID from catalog providers[].id). For type: bank use account_number, account_name, and network_id (UUID from GET /banks or catalog). Do not use top-level legacy fields.
Response
Partner order quote created