Skip to main content

Alternative payment methods

An alternative payment method (APM) is anything that is not a card and not a wallet: bank redirects, buy-now-pay-later, e-wallets and vouchers. They all share one property that shapes your integration:
APMs are asynchronous. The charge call does not return a final result — it returns a redirect URL. The shopper authorises on the provider’s page, comes back, and the real outcome arrives on a webhook. Never treat the charge response as a completed payment.

Availability

The TagadaPay column is the managed catalogue. Which of those methods your specific account can charge depends on your configuration and region — resolve it at runtime with paymentSetup, never from this table.

Not supported

These come up often enough to be worth stating plainly. There is no integration for them today: Alipay, WeChat Pay, GrabPay, Swish, Vipps, MobilePay, Satispay, Trustly, MB WAY, Cash App Pay, Giropay and Neteller. Bank debits are also not available. SEPA Direct Debit and ACH appear in some older material and in our internal type definitions, but no processor can charge them today — treat them as unsupported until this page says otherwise.
Giropay and Sofort are being retired by their own schemes across the industry. Sofort remains chargeable on the managed catalogue; Giropay is not.

The three shapes of an APM

Not all APMs behave the same once the shopper commits.

Bank redirect

iDEAL, Bancontact, EPS, Przelewy24, Sofort. The shopper authorises in their bank. Funds are guaranteed on confirmation.

Buy now, pay later

Klarna, Afterpay, Affirm. The provider underwrites the shopper. Usually needs line items and a billing address to get approved.

Voucher

Multibanco, Fawry. The shopper gets a reference and pays later, in cash or at a bank. Settlement can take days — the order stays pending.
Vouchers do not settle at checkout. A Fawry or Multibanco order is unpaid until the shopper goes and pays it, which may never happen. Do not fulfil on the redirect — fulfil on the webhook.

The redirect lifecycle

1

Charge with an explicit method

Send paymentMethod + processorId + customerId + returnUrl, and no paymentInstrumentId — the absence of an instrument is what makes it a redirect APM charge.
2

Handle requireAction

A successful APM charge comes back pending, carrying a redirect.
3

The shopper returns to your returnUrl

Treat this as “the shopper came back”, not “the payment succeeded”. They may have abandoned, failed, or simply hit the back button.
4

Confirm on the webhook

The provider’s confirmation is the only authoritative result. Fulfil there.
See Webhooks & events.

BLIK needs a code

BLIK is the exception to “redirect and wait”. The shopper generates a six-digit code in their banking app and types it into your checkout, and you send it with the charge. The code rides the checkout-session pay path (plugin-sdk shown):

Fawry needs a basket

Fawry is a cash voucher, so the shopper has to be reachable and the basket itemised. A charge without lineItems, an email and a phone number is rejected before it leaves us.

Discovery

Do not hard-code the table above into a checkout. Ask what the store has enabled:

The config shape

Keys are two-dimensional. A method routed through exactly one provider is keyed by its own name; a method available through several is keyed method:provider.

Recurring payments

Do not build a subscription on an APM. Almost every APM here authorises one specific amount, once. There is no stored credential to rebill against, so the second charge has nothing to use.
If a funnel mixes a subscription product with an APM, either hide the APM for that cart or collect a card for the renewals. Cards and wallets are the reusable instruments — see Wallets.

Refunds

Refunds are issued against the processor, not the method:
Two caveats worth designing around:
  • A voucher that has not settled yet cannot be refunded — there is no money to return.
  • Some BNPL providers reverse the shopper’s instalment plan on their own schedule, so the shopper may see the refund later than your dashboard does.

Next

Support matrix

Filter every method by processor.

Apple Pay & Google Pay

Wallets follow different rules.

From the SDKs

processApm, payments.process and friends.