Skip to main content
Cards are available on every Dodo Payments checkout, in every supported country and currency. Dodo Payments accepts the major card networks, replaces card numbers with tokens, and runs the checks that card payments need, so you don’t handle raw card data.

Supported Card Networks

Dodo Payments accepts global networks and several regional networks.

Global Networks

Regional Networks

Configuration

Cards use two values in allowed_payment_method_types: This session offers card payments only:
Include both credit and debit unless you have a specific reason to exclude one. Many customers prefer to pay by debit card.

3D Secure Authentication

3D Secure (3DS) asks the cardholder’s bank to confirm the cardholder’s identity, for example with a one-time code, a biometric check, or approval in the bank’s app. This reduces fraud and chargebacks.

When 3DS is Triggered

Dodo Payments requests 3DS when:
  • The card network requires it.
  • A regional regulation requires it, such as PSD2 in Europe.
  • The transaction is flagged as high-risk.

Force 3DS

To require 3DS on every card payment for your business, turn on 3D Secure under Settings → Pricing. To override that setting for one checkout session, pass force_3ds:
Requiring 3DS on every transaction reduces fraud but can lower conversion, because some customers abandon checkout during authentication.

Handling Authentication Failures

When a payment needs 3DS authentication, the payment moves through intermediate states before it succeeds or fails: If authentication doesn’t complete, the payment fails with one of these decline codes:
  • AUTHENTICATION_FAILURE: the customer could not be authenticated.
  • AUTHENTICATION_REQUIRED: authentication is required but was not performed.
  • AUTHENTICATION_TIMEOUT: the customer did not respond in time.
The Transaction Failures reference lists the recommended action for each code.

At Checkout vs. on Renewal

  • At checkout (customer present): The 3DS challenge appears during checkout. If it fails, ask the customer to retry or use another card.
  • On subscription renewal (customer not present): A 3DS challenge can’t be shown in real time. If a renewal requires authentication and fails, the subscription moves to on_hold, or to past_due first if you set a grace period. To recover it, prompt the customer to return and update their payment method. See Handle Payment Failures and Subscription Dunning.

Saved Payment Methods

Returning customers can pay with a card saved from an earlier checkout.

Tokenized

Original card numbers are never stored.

PCI Compliant

Dodo Payments handles PCI compliance.

Customer-Scoped

Each saved card belongs to one customer.

Enable Saved Cards

To show a returning customer’s saved cards at checkout, pass show_saved_payment_methods: true with the existing customer_id. The default is false.

One-Click Purchases

To charge a saved card without showing checkout, pass its payment_method_id with confirm: true and the existing customer_id. The session charges the card directly and returns no checkout_url, so use webhooks to learn the payment result.

Testing

Use these cards in test mode. For more test data, see Testing Process.
Test cards work only in test mode. In live mode, a payment made with a test card fails.

Security & Compliance

Dodo Payments applies these protections to card payments:

Best Practices

Don’t restrict card types unless you need to. Customers expect their preferred card to work.
Show Visa, Mastercard, and Amex logos on your site to build trust.
Show clear error messages. Don’t show raw error codes to customers.
Saved payment methods make repeat purchases faster for returning customers.

Troubleshooting

Causes: Insufficient funds, an expired card, an incorrect CVV, or the bank’s fraud protection.Solution: Ask the customer to check their details or try a different card. Look up the decline’s error code and its recommended action in the Transaction Failures reference. See Handle Payment Failures to handle declines in code.
Causes: The customer abandoned the challenge, the bank’s system was unavailable, or the challenge timed out.Solution: Retry, or ask the customer to contact their bank. See Handling Authentication Failures for the payment states and decline codes involved.
Causes: The regional network isn’t supported, or the card is a restricted prepaid card.Solution: Ask the customer to try a card from a major network.

Payment Methods Overview

All supported payment methods.

Upsells & Downsells

One-click purchases with saved cards.

Testing Process

Test data for every payment method.

Subscriptions

Recurring billing with cards.
Last modified on September 26, 2026