Payments & Money APIs · Money & Payments Fundamentals

Payment Methods, Wallets & Strong Customer Authentication

Cards, wallets, bank debits, real-time payments and 3-D Secure.

Beyond cards: wallets (Apple Pay, Google Pay — tokenized cards with built-in authentication), bank debits (SEPA Direct Debit, ACH — cheap but slow and reversible), real-time account-to-account (UPI, Pix, FedNow, Faster Payments, open-banking payment initiation), BNPL and many local methods (iDEAL, Bancontact, Konbini). In the EEA/UK, PSD2 Strong Customer Authentication requires two factors for many online payments; for cards that's 3-D Secure 2, which may add a challenge step. Design flows for asynchronous confirmation — many methods confirm minutes or days later.

Payment methods

Method Confirmation Reversibility Cost Notes
Cards Seconds (auth) Chargebacks Higher % fees 3DS2 for SCA
Wallets Seconds Like cards Card fees High conversion on mobile
Bank debit (SEPA DD / ACH) Days Returns/disputes possible for weeks Low Mandates required
Real-time A2A (Pix, UPI, FedNow) Seconds Generally final Low Push payments; regional
BNPL Seconds Provider handles High merchant fee Higher AOV
Bank transfer (manual) Hours–days Final Low Reconciliation via reference

Python (PaymentIntent with automatic methods)

intent = stripe.PaymentIntent.create(
    amount=4999, currency="eur",
    automatic_payment_methods={"enabled": True},    # PSP offers eligible methods (cards, wallets, local)
    metadata={"order_id": "ord_123"},
    idempotency_key="pi:ord_123:v1",
)
# Client confirms with the PSP SDK; 3DS challenges are handled there.
# The intent may end in: succeeded | processing (async methods) | requires_action | requires_payment_method

Common pitfalls

  • Assuming every payment confirms instantly.
  • Fulfilling bank debits before the settlement/return window risk is understood.
  • Building 3DS flows by hand instead of using the PSP SDK.

Key points

  • Offer local methods where customers are
  • Design for asynchronous confirmation
  • SCA/3DS handled by PSP SDKs

Further reading: Stripe: Strong Customer Authentication

Practice questions

What is Strong Customer Authentication?

Answer

A PSD2 requirement (EEA/UK) that many electronic payments be authenticated with two of: knowledge, possession, inherence — for cards typically via 3-D Secure 2.

Why must your order flow handle a 'processing' payment state?

Answer

Methods like bank debits confirm asynchronously, so the payment can be pending for days before succeeding or failing.

Open in the app to mark lessons complete, take notes and track your progress.