Payment methods
A payment method is the way the user pays: a card, a wallet, a bank rail or a local QR code. Each method has a code in METHODS (packages/core/src/codes.ts). Adapters map their provider ids to these codes.
The user sees a method when all of these are true:
- An adapter that you configure has a leg for the method.
- The method exists in the user's country (
METHOD_COUNTRIES). A method that is not in that table exists everywhere. - The leg accepts the local currency of the user's country (
COUNTRY_CURRENCY). A country that is not in the table uses USD.
The planner then sorts the methods by the country's priority list (DEFAULT_METHOD_PRIORITY). See Pathways and legs.
Adapters with a live catalog (Transak, Meld, Onramper, Swapped, Coinbase, MoonPay) can add or remove methods per user. So the exact list can change. The tables show the static legs and the catalog mappings.
Global methods
| Method | Code | Regions | Adapters | Notes |
|---|---|---|---|---|
| Card | card | All | Coinbase, Transak, MoonPay, Stripe, Meld, Onramper, Swapped | |
| Apple Pay | apple_pay | All | Coinbase, Transak, MoonPay, Stripe, Meld, Onramper, Swapped | Coinbase guest Apple Pay (no Coinbase account) is US only, with guestCheckout |
| Google Pay | google_pay | All | Coinbase, Transak, MoonPay, Stripe, Meld, Onramper, Swapped | Coinbase sends it as CARD |
| PayPal | paypal | All (catalog decides) | MoonPay, Peer (US); Meld, Onramper (catalog) | MoonPay: US, UK and EU. Coinbase has PayPal for sell only |
| Revolut Pay | revolut_pay | All (catalog decides) | MoonPay; Meld, Onramper (catalog) | |
| AstroPay | astropay | All (catalog decides) | Transak, Meld, Swapped (catalog) | Mostly Latin America. Transak id TO VERIFY |
| Alipay | alipay | All (catalog decides) | Onramper (catalog) |
Europe
| Method | Code | Regions | Adapters | Notes |
|---|---|---|---|---|
| SEPA | sepa | Euro countries, NO, IS, LI, CH | Transak, MoonPay, Meld, Onramper | MoonPay sepa_bank_transfer also covers SEPA Instant. Swapped sends EUR bank payments as bank_transfer |
| SEPA Instant | sepa_instant | Euro countries, NO, IS, LI, CH | Meld, Onramper | Meld SEPA_INSTANT, Onramper sepainstant |
| Faster Payments | faster_payments | GB | MoonPay, Transak, Meld, Onramper | MoonPay and Transak gbp_bank_transfer, Meld UK_FASTER_PAYMENTS, Onramper fasterpaybank |
| Pay by bank (open banking) | open_banking | GB and EEA | MoonPay (GB), Transak, Meld, Onramper | MoonPay gbp_open_banking_payment, Transak pm_open_banking, Meld OPEN_BANKING, Onramper fasterpayopen (GBP) or openbanking (EUR) |
| iDEAL | ideal | NL | Meld, Onramper | |
| Bancontact | bancontact | BE | Meld, Onramper | |
| BLIK | blik | PL | Meld; Swapped (catalog) | Polish users pay in PLN |
| Sofort | sofort | AT, BE, CH, DE, ES, IT, NL, PL | Meld, Onramper (catalog) | |
| Revolut | revolut | US, GB, EEA | Peer; Meld (catalog) | |
| Wise | wise | All | Peer |
Americas
| Method | Code | Regions | Adapters | Notes |
|---|---|---|---|---|
| ACH | ach | US | Coinbase, MoonPay, Stripe, Meld, Onramper | Coinbase ACH, Onramper iach |
| Venmo | venmo | US | MoonPay, Peer; Meld, Onramper (catalog) | |
| Cash App, Zelle, Chime | cash_app, zelle, chime | US | Peer; Meld (Cash App, Zelle, catalog) | |
| Interac e-Transfer | interac | CA | MoonPay, Meld, Onramper, PayTrie | Swapped has Interac for payouts (withdraw) |
| SPEI | spei | MX | Meld, Onramper; Swapped (catalog) | Meld also maps STP |
| PSE | pse | CO | Transak, Meld | Transak pm_pse is TO VERIFY per partner account |
| Bancolombia | bancolombia | CO | Onramper | |
| Khipu | khipu | CL, AR | Meld, Onramper | Static legs take CLP only |
| Pix | pix | BR | MoonPay, Meld, Onramper, Swapped | |
| Mercado Pago | mercadopago | AR, BR, CL, CO, MX, PE, UY | Meld (catalog) | Meld code MERCADOPAGO |
Asia Pacific (outside Southeast Asia)
| Method | Code | Regions | Adapters | Notes |
|---|---|---|---|---|
| UPI | upi | IN | Transak, Meld, Onramper, Swapped | Transak and Meld ids are TO VERIFY |
| IMPS | imps | IN | Meld, Onramper | |
| PayID | payid | AU | Meld |
Southeast Asia
Xendit pays into your own merchant account (a merchant fiat destination). The other adapters buy crypto.
| Method | Code | Regions | Adapters | Notes |
|---|---|---|---|---|
| VietQR | vietqr | VN | Swapped | |
| MoMo | momo | VN | Swapped, Xendit | Not the same as mobile_money |
| ZaloPay | zalopay | VN | Swapped, Xendit | |
| QRIS | qris | ID | Xendit | |
| GoPay | gopay | ID | Swapped | |
| DANA | dana | ID | Swapped, Xendit | |
| OVO | ovo | ID | Swapped, Xendit | |
| LinkAja | linkaja | ID | None yet | The code exists for the planner and the UI |
| ShopeePay | shopeepay | ID, MY, PH, TH, VN, SG | Transak, Xendit | |
| QR Ph | qrph | PH | Xendit | |
| GCash | gcash | PH | Swapped, Transak, Xendit | |
| Maya | maya | PH | Swapped, Transak, Xendit | |
| InstaPay | instapay | PH | None yet | |
| GrabPay | grabpay | MY, SG, PH | Swapped, Transak, Xendit | |
| PromptPay | promptpay | TH | Swapped, Xendit | |
| TrueMoney | truemoney | TH | Xendit | |
| DuitNow QR | duitnow | MY | Mock only today | |
| Touch 'n Go | touchngo | MY | Swapped, Xendit | |
| FPX | fpx | MY | None yet | |
| Boost | boost | MY | None yet | |
| PayNow | paynow | SG | Xendit |
The mock adapter also has VietQR, QRIS, GoPay, DANA, QR Ph, GCash, PromptPay, DuitNow, Touch 'n Go, PayNow and MoMo, so you can try these flows without an account.
Crypto and exchange methods
| Method | Code | Adapters | Notes |
|---|---|---|---|
| Pay with wallet | wallet | Relay | The user signs a WALLET_TX in a connected wallet |
| Transfer crypto | transfer | Relay | The user sends to a deposit address |
| From an exchange | exchange_transfer | Mock | A deposit address, with exchange wording |
| Connect exchange | exchange | Binance | The user pays from their exchange account, and the exchange sends the crypto to the address |
| Coinbase account | coinbase_account | Coinbase | The user pays from the fiat or crypto balance of a Coinbase account (FIAT_WALLET or CRYPTO_WALLET). All Coinbase countries except JP |
| Binance Pay | binance_pay | Meld (catalog) | |
| Bank transfer | bank_transfer | Swapped, Transak, Meld, Onramper | A local bank transfer in the user's currency |
Africa
| Method | Code | Regions | Adapters | Notes |
|---|---|---|---|---|
| M-Pesa | mpesa | KE | Meld; Onramper (catalog) | Onramper lists mpesa, but no Kenya query returned it on 2026-10-04 |
| Mobile money | mobile_money | 29 countries in Africa and Asia (for example GH, UG, TZ, ZM, RW, KE) | Meld; Swapped (catalog, KE and ZM) | Not the same as momo (MoMo, the Vietnamese wallet) |
Local currencies
COUNTRY_CURRENCY gives the local currency of these countries. Quotes use it, so that the local methods can match:
| Region | Countries (currency) |
|---|---|
| Southeast Asia | VN (VND), ID (IDR), TH (THB), MY (MYR), PH (PHP), SG (SGD) |
| Rest of Asia Pacific | IN (INR), AU (AUD), JP (JPY), KR (KRW), HK (HKD), TW (TWD) |
| Americas | US (USD), CA (CAD), MX (MXN), BR (BRL), CO (COP), CL (CLP) |
| Europe | GB (GBP), CH (CHF), PL (PLN), TR (TRY), and every euro country (EUR) |
| Africa | NG (NGN), KE (KES), GH (GHS), UG (UGX), TZ (TZS), ZM (ZMW), RW (RWF) |
Other countries use USD. An adapter that does not accept the currency gives no legs in that country.
Default order per country
DEFAULT_METHOD_PRIORITY puts the most used methods of each country first. Pathways and legs has the full table. Change it per app with policy.methodPriority in createOpenRamp.
Methods we did not add
No configured provider documents these methods, so they have no code: Trustly, Swish, MobilePay and NEFT. Meld's coverage list has no code for them. Use open_banking for bank payments in those countries.
Sources
Each adapter source file has the source URL next to its mapping. The main sources are:
- MoonPay: widget parameters, buy quote, supported payment methods.
- Transak: live fiat currency list, Get Fiat Currencies, fee table.
- Coinbase: create an onramp session, payment methods.
- Stripe: embedded components overview. Card, Apple Pay, Google Pay and ACH (US) only. No new methods.
- Meld: payment method coverage.
- Onramper: the live lists
GET https://api.onramper.com/supported/payment-typesandGET /supported/payment-types/{fiat}?country=.... - Swapped: get payment methods.
Add a method
- Add the code, name and kind to
METHODS. - If the method is local, add its countries to
METHOD_COUNTRIES. - Add it to the priority list of each country where it is popular (
DEFAULT_METHOD_PRIORITY). - If the country has no currency in
COUNTRY_CURRENCY, add it. - Map the provider id in each adapter that supports it. Write the source URL in a comment. If the id is not confirmed, write
TO VERIFY.