- Reading Your Payment Method Configuration — the same information for your own account, from the API.
- Payin Agreements & Transaction Limits — the same information for your own account, as the Portal renders it.
- Payment Method Enrollment — getting a method added to your account.
Where is the list of supported payment methods and markets?
On Payment Methods. The table has three filters — Type, Country/Region and Subscription — and these columns:
The Country/Region filter is the authoritative answer to “which markets do you
cover?” — read the current option list there rather than from any prose list,
including this page’s.
Two market codes are not countries:
Is India, Morocco, Pakistan or Russia covered?
None of those four markets appears in the published catalogue. Neither do any other markets absent from the Country/Region filter — if a market is not in that filter, there is nothing catalogued for it, and the answer does not change based on who asks. The same test settles the reverse question. A market is covered if it is in the filter; whether your account is contracted for anything in it is a separate question, answered by your own configuration, not by the catalogue.Why does one row cover several countries and currencies?
Because the table aggregates before it displays. Rows in the underlying catalogue are per market, currency and product; the table groups them by payment method name + type and merges the group into one row:
The consequence matters: a row showing three countries and Refundable: Yes does
not promise refunds in all three. The optimistic merge means the table
answers “is this ever true?”, not “is this true for my market?”. For a
per-market, per-currency answer, use the configuration endpoint on your own
account, where each contract is a separate entry.
Why do I see two names that look like the same payment method?
Because market variants of a wallet are separate catalogue entries with separate names and separate contracts — for exampleALIPAY and ALIPAYHK, or
WECHATPAY and WECHATPAYHK. They differ in market, in payment currency, and
in which entry your account is contracted for.
Practical rules:
payMethodNameis what you send, verbatim. Take it from the catalogue or from your own configuration response, not from the name a shopper would recognise. A method’s checkout-facing display name and itspayMethodNameare not always the same string.- Being contracted for one variant does not contract you for the other. If
you send a variant you are not contracted for, order creation fails with
A0018— see Common Errors Troubleshooting. - The same applies across markets for a single name: one method name catalogued in several markets is still one contract per market.
What are the payMethodType categories?
payMethodType is the coarse category, and it is a fixed enumeration. You can
send it on order creation instead of an exact payMethodName to let the shopper
pick within a category, and you can send several comma-separated:
Note the spelling: the card categories are
CREDITCARD and DEBITCARD, one
word, and Korean domestic cards are KOREANCARDS. There is no CARD,
BANK_ACCOUNT or WALLET value.
Four of these categories — VA, OTC, CREDITCARD and DEBITCARD — do not
require you to also name a specific method, because the shopper chooses the
concrete option at the checkout. For every other category, order creation still
expects a payMethodName unless you are deliberately sending the shopper to the
Waffo checkout to choose.
Do Apple Pay and Google Pay need enrolling separately?
Yes. They are their own catalogue categories (APPLEPAY and GOOGLEPAY) with
their own catalogue entries per market, so each is its own contract — being live
on cards does not make either of them live. Both also carry integration work
beyond the contract, which is why they have their own published guides:
Apple Pay and
Google Pay.
The same logic applies to any other method: one contract per catalogue entry,
enrolled through the process in
Payment Method Enrollment.
How do I tell whether a payment method can do recurring billing?
There is no “supports subscription” flag on a single contract. Subscription support is expressed as a separate product:productName on the catalogue
row. The four payin products are:
So a method is available for recurring billing when there is a catalogue entry
for it under
SUBSCRIPTION. On the published table this is the Subscription
column; on your own account it is a payMethodDetails entry whose productName
is SUBSCRIPTION.
Two consequences merchants regularly hit:
- One-time and subscription are enrolled separately. Having a method live for one-time payments does not make it available for recurring billing on your account; that is a second contract.
- Remember the aggregation rule above — on the published table, Subscription: Yes means at least one market/currency combination for that method is under the subscription product, not all of them.
Does the payment method depend on whether the shopper is on web or in an app?
It can, and you declare the context withuserInfo.userTerminal:
WEB is the default when you send nothing. Not every payment method supports
every terminal, so the value can change which methods are usable for an order —
and for the two in-wallet values it is not optional context but the thing that
makes the payment possible at all.
The catalogue does not carry a per-method terminal matrix. The reliable way to
find out is the order-creation response: send the terminal your shopper is
actually on, and let the response tell you whether the method is usable. Do not
infer a terminal restriction from a method’s absence in one context and presence
in another.
What is payOption, and do I enroll each option separately?
payOption is the sub-choice within a payment method — paying from a wallet
balance, from a debit card, from a credit card, and so on. Two things to know:
- On order creation and inquiry it is read-only. It reports what the shopper actually chose, and it comes back empty on methods that offer no choice.
- On your contract it can be priced per option. Where it is, your
Payin agreement page shows one
fee line per option instead of one per method, and a method with no meaningful
per-option distinction renders as
-.
How do the catalogue and my own contracted list differ?
They answer different questions, and mixing them up is the most common cause of “it works in the docs but not on my account”:
Your own list is always the narrower one, and it is the only one your
integration should branch on. Treat the published catalogue as a planning
document for “which markets should we ask to be enrolled in”, never as a runtime
source of truth.
Where do I look next?
- Reading Your Payment Method Configuration — every field of your own configuration response, and the errors it produces
- Payment Method Enrollment — how a method gets added, and what each enrollment status means
- Payment Method Refunds & Limits — refund shapes, refund windows and refund minimums per method
- Checkout Display Rules — how the methods you are contracted for are ordered and grouped on the checkout
- Payment Methods — the catalogue itself