Skip to content

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:

  1. An adapter that you configure has a leg for the method.
  2. The method exists in the user's country (METHOD_COUNTRIES). A method that is not in that table exists everywhere.
  3. 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 ​

MethodCodeRegionsAdaptersNotes
CardcardAllCoinbase, Transak, MoonPay, Stripe, Meld, Onramper, Swapped
Apple Payapple_payAllCoinbase, Transak, MoonPay, Stripe, Meld, Onramper, SwappedCoinbase guest Apple Pay (no Coinbase account) is US only, with guestCheckout
Google Paygoogle_payAllCoinbase, Transak, MoonPay, Stripe, Meld, Onramper, SwappedCoinbase sends it as CARD
PayPalpaypalAll (catalog decides)MoonPay, Peer (US); Meld, Onramper (catalog)MoonPay: US, UK and EU. Coinbase has PayPal for sell only
Revolut Payrevolut_payAll (catalog decides)MoonPay; Meld, Onramper (catalog)
AstroPayastropayAll (catalog decides)Transak, Meld, Swapped (catalog)Mostly Latin America. Transak id TO VERIFY
AlipayalipayAll (catalog decides)Onramper (catalog)

Europe ​

MethodCodeRegionsAdaptersNotes
SEPAsepaEuro countries, NO, IS, LI, CHTransak, MoonPay, Meld, OnramperMoonPay sepa_bank_transfer also covers SEPA Instant. Swapped sends EUR bank payments as bank_transfer
SEPA Instantsepa_instantEuro countries, NO, IS, LI, CHMeld, OnramperMeld SEPA_INSTANT, Onramper sepainstant
Faster Paymentsfaster_paymentsGBMoonPay, Transak, Meld, OnramperMoonPay and Transak gbp_bank_transfer, Meld UK_FASTER_PAYMENTS, Onramper fasterpaybank
Pay by bank (open banking)open_bankingGB and EEAMoonPay (GB), Transak, Meld, OnramperMoonPay gbp_open_banking_payment, Transak pm_open_banking, Meld OPEN_BANKING, Onramper fasterpayopen (GBP) or openbanking (EUR)
iDEALidealNLMeld, Onramper
BancontactbancontactBEMeld, Onramper
BLIKblikPLMeld; Swapped (catalog)Polish users pay in PLN
SofortsofortAT, BE, CH, DE, ES, IT, NL, PLMeld, Onramper (catalog)
RevolutrevolutUS, GB, EEAPeer; Meld (catalog)
WisewiseAllPeer

Americas ​

MethodCodeRegionsAdaptersNotes
ACHachUSCoinbase, MoonPay, Stripe, Meld, OnramperCoinbase ACH, Onramper iach
VenmovenmoUSMoonPay, Peer; Meld, Onramper (catalog)
Cash App, Zelle, Chimecash_app, zelle, chimeUSPeer; Meld (Cash App, Zelle, catalog)
Interac e-TransferinteracCAMoonPay, Meld, Onramper, PayTrieSwapped has Interac for payouts (withdraw)
SPEIspeiMXMeld, Onramper; Swapped (catalog)Meld also maps STP
PSEpseCOTransak, MeldTransak pm_pse is TO VERIFY per partner account
BancolombiabancolombiaCOOnramper
KhipukhipuCL, ARMeld, OnramperStatic legs take CLP only
PixpixBRMoonPay, Meld, Onramper, Swapped
Mercado PagomercadopagoAR, BR, CL, CO, MX, PE, UYMeld (catalog)Meld code MERCADOPAGO

Asia Pacific (outside Southeast Asia) ​

MethodCodeRegionsAdaptersNotes
UPIupiINTransak, Meld, Onramper, SwappedTransak and Meld ids are TO VERIFY
IMPSimpsINMeld, Onramper
PayIDpayidAUMeld

Southeast Asia ​

Xendit pays into your own merchant account (a merchant fiat destination). The other adapters buy crypto.

MethodCodeRegionsAdaptersNotes
VietQRvietqrVNSwapped
MoMomomoVNSwapped, XenditNot the same as mobile_money
ZaloPayzalopayVNSwapped, Xendit
QRISqrisIDXendit
GoPaygopayIDSwapped
DANAdanaIDSwapped, Xendit
OVOovoIDSwapped, Xendit
LinkAjalinkajaIDNone yetThe code exists for the planner and the UI
ShopeePayshopeepayID, MY, PH, TH, VN, SGTransak, Xendit
QR PhqrphPHXendit
GCashgcashPHSwapped, Transak, Xendit
MayamayaPHSwapped, Transak, Xendit
InstaPayinstapayPHNone yet
GrabPaygrabpayMY, SG, PHSwapped, Transak, Xendit
PromptPaypromptpayTHSwapped, Xendit
TrueMoneytruemoneyTHXendit
DuitNow QRduitnowMYMock only today
Touch 'n GotouchngoMYSwapped, Xendit
FPXfpxMYNone yet
BoostboostMYNone yet
PayNowpaynowSGXendit

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 ​

MethodCodeAdaptersNotes
Pay with walletwalletRelayThe user signs a WALLET_TX in a connected wallet
Transfer cryptotransferRelayThe user sends to a deposit address
From an exchangeexchange_transferMockA deposit address, with exchange wording
Connect exchangeexchangeBinanceThe user pays from their exchange account, and the exchange sends the crypto to the address
Coinbase accountcoinbase_accountCoinbaseThe user pays from the fiat or crypto balance of a Coinbase account (FIAT_WALLET or CRYPTO_WALLET). All Coinbase countries except JP
Binance Paybinance_payMeld (catalog)
Bank transferbank_transferSwapped, Transak, Meld, OnramperA local bank transfer in the user's currency

Africa ​

MethodCodeRegionsAdaptersNotes
M-PesampesaKEMeld; Onramper (catalog)Onramper lists mpesa, but no Kenya query returned it on 2026-10-04
Mobile moneymobile_money29 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:

RegionCountries (currency)
Southeast AsiaVN (VND), ID (IDR), TH (THB), MY (MYR), PH (PHP), SG (SGD)
Rest of Asia PacificIN (INR), AU (AUD), JP (JPY), KR (KRW), HK (HKD), TW (TWD)
AmericasUS (USD), CA (CAD), MX (MXN), BR (BRL), CO (COP), CL (CLP)
EuropeGB (GBP), CH (CHF), PL (PLN), TR (TRY), and every euro country (EUR)
AfricaNG (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:

Add a method ​

  1. Add the code, name and kind to METHODS.
  2. If the method is local, add its countries to METHOD_COUNTRIES.
  3. Add it to the priority list of each country where it is popular (DEFAULT_METHOD_PRIORITY).
  4. If the country has no currency in COUNTRY_CURRENCY, add it.
  5. 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.

MIT licensed