Cards

Learn how to accept card payments.


The Adyen payments platform supports most global and local card payment methods with a single technical integration.

Any sensitive card information is securely collected and encrypted, so it doesn't touch your server. If you are PCI Level 1 or Level 2 Certified, our API integration also supports raw card data processing.

3D Secure authentication is also available for some cards types.

The following cards and features are supported  

Card Type

3D Secure supported Recurring Refunds Partial Refunds Captures Partial Captures Chargebacks
American Express Yes Yes Yes Yes Yes Yes Yes
CARNET No Yes No No Yes No Yes
Cartes Bancaires Yes Yes Yes Yes Yes Yes Yes
China UnionPay Yes Yes Yes Yes Yes No Yes
Diners Yes Yes Yes Yes Yes Yes Yes
Discover Yes Yes Yes Yes Yes No Yes
Elo No Yes Yes Yes Yes No Yes
Hipercard No Yes Yes Yes Yes No No
JCB Yes Yes Yes No Yes Yes Yes
Maestro Yes No Yes Yes Yes Yes Yes
Mastercard Yes Yes Yes Yes Yes Yes Yes
Troy No Yes Yes Yes Yes No Yes
Visa Yes Yes Yes Yes Yes Yes Yes

Some cards require additional setup before you can accept live payments from shoppers. Contact our Support Team team to enable any new card types.

You can accept card payments with:

Integrate with Checkout SDKs

Our Checkout SDKs support card payments without any additional configuration.

To make a 3D Secure authenticated payment you'll need to make some additional configuration. See our 3D Secure documentation for details.

Integrate with API

In this section we show you the API integration steps for cards.

To integrate 3D Secure authentication you will need to make some additional configuration.

Before you begin this section, make sure you read and understand our API Integration guide.

Step 1: Collect shopper details

When a shopper chooses to pay by card:

  • Collect the following card details from the shopper in your payment form:

    Card details Example
    The card number "4111111111111111"
    The card expiry month "03"
    The card expiry year "30"
    The security code (CVV / CVC) "737"
    Optional: The card holder's name "J Smith"

    Unless you are PCI Level 1 or 2 certified, you'll need to encrypt these details using our Secured Fields JavaScript Library.

Step 2: Make a payment

  • Make a /payments API call, providing:

    • reference: Your unique reference for this payment.

    • amount.

    • paymentMethod.typescheme.
    • encryptedCardNumber: The encrypted card number (without separators).
    • encryptedExpiryMonth: The encrypted card expiry month.

    • encryptedExpiryYear: The encrypted card expiry year.
    • encryptedSecurityCode: The encrypted card verification code.
    • holderName: The card holder's name. This is optional.

    Here we use encrypted card details, generated by our Secured Fields JavaScript Library. If you are PCI Level 1 or 2 certified, you can provide raw card data instead.

    {
      "merchantAccount":"YourMerchantAccount",
      "reference":"credit card test",
      "amount":{
        "currency":"USD",
        "value":"1000"
      },
      "paymentMethod":{
        "type":"scheme",
        "encryptedCardNumber": "adyenjs_0_1_18$MT6ppy0FAMVMLH...",
        "encryptedExpiryMonth": "adyenjs_0_1_18$MT6ppy0FAMVMLH...",
        "encryptedExpiryYear": "adyenjs_0_1_18$MT6ppy0FAMVMLH...",
        "encryptedSecurityCode": "adyenjs_0_1_18$MT6ppy0FAMVMLH..."
      },
      "returnUrl":"https://your-company.com/...",
    }

    If the payment was successful you'll receive an AuthorisedresultCode and a pspReference, which is our unique identifier for this payment.

Step 3: Present payment result

  • Use the resultCode you received from the /payments endpoint to present the shopper with the result of the payment via your website or app. Check our result codes documentation for information on what these mean, and what actions you should take.

Card payment notifications

Accepting notifications is not required for credit cards, but we strongly recommend that you do. Each notification has a:

  • pspReference: identifies which payment is being referred to.
  • eventCode : indicates the status of the payment.

If you haven't already set up notifications, refer to our notifications documentation for instructions.

Successful payments

When a payment has been successful you'll receive a notification for the transaction that has: 

  • eventCodeAUTHORISATION.
  • successtrue.

Recurring card payments

If you have a recurring or subscription business model we recommend tokenizing the shopper's payment details.

When you create a shopper token from a card payment, we store their payment details with the token. The token can be used to make recurring payments for the shopper.

You can create a shopper token with either the SDK or API integrations, but to make recurring payments with the token you'll need to use the  /payments endpoint.

Maestro cards and card payments authenticated with 3D Secure don't support recurring payments.

Create shopper token

Tokenize the shopper's payment details when you make the initial card payment. The steps for doing this depend on whether you integrated with our Checkout SDKs or our API integration.

Checkout SDKs

  1. When you call /paymentSession to create a payment session, additionally include:

    • shopperReference: Your unique ID for this shopper.

    • enableRecurringtrue.

  2. If the shopper's payment details were successfully tokenized, you'll receive a successful payment notification that includes a recurringDetailReference. This is the token you will need to make recurring payments for this shopper.

API integration

  1. When you call /payments to make a payment, additionally include:
    • shopperReference: Your unique ID for this shopper.
    • paymentMethod.storeDetailstrue.
  2. If the shopper's payment details were successfully tokenized, you'll receive a successful payment notification that includes a recurringDetailReference. This is the token you will need to make recurring payments for this shopper.

Make recurring payment

For each recurring payment for this shopper:

  • Make a card payment with a /payments call, and additionally include :
    • recurringDetailReference: Token you received back in the initial payment.
    • shopperReference: The shopper ID you provided when creating the shopper token.
    • shopperInteractionContAuth.
    {
       "merchantAccount":"YourMerchantAccount",
       "reference":"Your Reference Here",
       "amount":{
          "value":1000,
          "currency":"EUR"
       },
       "paymentMethod":{
          "type":"scheme",
          "recurringDetailReference":"7219687191761347"
       },
       "returnUrl":"https://your-company.com/...",
       "shopperReference":"yourShopperId",
       "shopperInteraction":"ContAuth"
    }

    If the payment was successful you'll receive an Authorised  resultCode and a pspReference , our unique identifier for this transaction. 

Testing card payments

Before making live credit card payments, use our test card numbers to test your integration.

You can check the status of a credit card test payment in your Customer Area > Transactions > Payments.

See also