Corridors overview
African local fiat corridors share the same integration pattern. Differences are field requirements,network_id values, and sandbox test identities.
Discovery endpoints
Always run discovery on your environment —
network_id UUIDs are not portable across sandbox resets.
Order types
Provider lists in catalog differ by direction — filter with
?order_type=OnRamp or OffRamp.
Payment rails
Mobile money
payment_method.type:mobile_moneypayment_method.phone_number: E.164 MSISDN (routing identity)payment_method.network_id: from catalogpayment_methods.*.providers[].idorGET /partner/payment-methodsmethods[].networks[]
Bank
payment_method.type:bankpayment_method.network_id: fromGET /partner/payment-methodsmethods[].networks[]or catalogpayment_methods.bank.providers[].id(preferred for African local fiat, especially NG)account_number,account_namerequired- Skip ids that look like deposit-account ledger rails (e.g. codes/labels such as
NGN_ACCOUNT_USDC/ “NGN account to USDC”) — those needentity_id+account_id, not retail bank transfer
Customer type (retail vs institution)
Local fiat quotes default to retail. For B2B, passcustomer_type: "institution" (and customer.type: "institution"). Institution KYC uses business_name, business_id, and email instead of personal name / DOB / national ID. Discover exact fields with GET /partner/order-requirements?…&customer_type=institution. See Kenya and Sandbox test payloads.
Supported markets (local fiat)
Source of truth for the partner: call discovery on your API key and environment. Do not hardcode country lists from this page alone — corridors can be enabled per partner, and provider availability differs by OnRamp vs OffRamp.onramp.countries / offramp.countries, each country has payment_methods.mobile_money and/or bank with providers[] (id = network_id on quote).
African corridors on the local fiat rail (indicative)
OnRamp/OffRamp flags and exact providers (Safaricom, banks, etc.) come from
GET /partner/catalog?order_type=….
Need a market not listed or missing in your catalog? Email compliance@elementpay.net — we enable corridors per partner; do not assume every country in our wider network is live for your key.
Documented playbooks
Other countries: use catalog + order-requirements; request enablement if empty.Supported stablecoins (asset)
Passasset.token, asset.currency, and asset.network on every quote.Local fiat corridors currently support two contract addresses only:
Partner guidance: use Base USDC for all OnRamp and OffRamp sandbox examples unless we tell you otherwise. Quickstart and corridor samples use Base USDC. Polygon USDT remains available on the rail but can behave differently for direct settlement — stick to Base USDC unless QA has confirmed USDT for your corridor.
Same addresses apply on sandbox and production for these rails.