Search

Are you looking for test card numbers?

Would you like to contact support?

Issuin icon

Create cards

Learn how to create and activate cards.

After you create an account holder and a balance account, you can start issuing cards. Cards can either be virtual or physical. Cards also have to be associated with a Visa or Mastercard pre-approved use case, called a scheme program. By default, Adyen handles the scheme program for you in the background.

To issue a card, you'll need to create a paymentInstrument resource.

PCI compliance

The scope for PCI compliance depends on your use case—the type of cards you'll issue and how the cards will be used. To know whether PCI compliance requirements apply to your use case, reach out to your Adyen contact.

Visual design for physical cards

Before you can start issuing physical cards to your users, you will need to create a design for your cards and for the mail that the card is sent with. Each card design has to be approved by Visa or Mastercard.

Work with your Adyen contact to finalize the card design and the mailer material before you go live.

Create a card

To issue a card, create a paymentInstrument resource. When making an API request, you set the card form factor to either physical or virtual. The other parameters that you need to include depend on the card form factor.

A virtual card is a card that has no physical form, and can only be used online. You receive the card details in the API response.

To create a virtual card, make a POST /paymentInstruments request specifying:

Parameter Required Description
type -white_check_mark- Set to card.
balanceAccountId -white_check_mark- The balance account ID that should be associated with the card.
card -white_check_mark- Object that contains card configuration such as:

In your request, you can also include optional parameters such as a human-readable description to help your staff differentiate between multiple cards under one balance account. By default, cards are created with an Active status but depending on your use case, you might also want to set the status to Inactive or Requested.

Here is how you would create a virtual card linked to a balance account with id BA1234123412341234:

Create a virtual card
curl https://balanceplatform-api-test.adyen.com/bcl/v1/paymentInstruments \
-u "ws@BalancePlatform.YOUR_BALANCE_PLATFORM":"YOUR_WS_PASSWORD" \
-H "content-type: application/json" \
-d '{
    "type": "card",
    "description": "{hint:Your human-readable description for this card}S.Hopper - Main card{/hint}",
    "balanceAccountId": "BA1234123412341234",
    "issuingCountryCode": "NL",
    "card": {
      "cardholderName": "Sam Hopper",
      "brand": "mc",
      "brandVariant": "mcdebit",
      "formFactor": "virtual"
    }
}'

The response returns the paymentInstrument resource, identified by its unique id.

Response
{
    "balanceAccountId": "BA1234123412341234",
    "description": "S.Hopper - Main card",
    "issuingCountryCode": "NL",
    "status": "Active",
    "type": "card",
    "card": {
        "brand": "mc",
        "brandVariant": "mcdebit",
        "cardholderName": "Sam Hopper",
        "formFactor": "virtual",
        "bin": "555544",
        "cvc": "686",
        "expiration": {
            "month": "07",
            "year": "2023"
        },
        "lastFour": "2787",
        "number": "5555444400092787"
    },
    "id": "PI3227C223222B5BPCMFXD2XG"
}

A physical card is printed and shipped to the cardholder. You do not receive the card details in the API response. Sending a request to create a physical card also starts an order.

When creating a physical card, you'll need to include additional information such as the card manufacturing profile and the delivery details in your API request.

To create a physical card, make a POST /paymentInstruments request specifying:

Parameter Required Description
type -white_check_mark- Set to card.
balanceAccountId -white_check_mark- The balance account ID that should be associated with the card.
card -white_check_mark- Object that contains card configuration such as:
configuration -white_check_mark- Object that contains settings for the physical card, including design and the configurationProfileId.

In your request, you can also include optional parameters such as a human-readable description to help your staff differentiate between multiple cards under one balance account. You might also want to set the status to Inactive or Requested if you don't want to ship an Active card to your user.

Here is how you would create a physical card linked to a balance account with id BA1234123412341234. In this example, we'll create a card with an Inactive status.

Create a physical card
curl https://balanceplatform-api-test.adyen.com/bcl/v1/paymentInstruments \
-u "ws@BalancePlatform.YOUR_BALANCE_PLATFORM":"YOUR_WS_PASSWORD" \
-H "content-type: application/json" \
-d '{
  "type": "card",
  "issuingCountryCode": "NL",
  "balanceAccountId": "BA1234123412341234",
  "status": "Inactive",
  "card": {
    "formFactor": "physical",
    "brand": "mc",
    "brandVariant": "mcdebit",
    "cardholderName": "Sam Hopper",
    "deliveryContact": {
      "address": {
        "city": "Amsterdam",
        "country": "NL",
        "stateOrProvince": "NH",
        "street": "274 Brannan Street, Suite 600",
        "houseNumberOrName": "50",
        "postalCode": "1020CD",
      },
      "name": {
        "firstName": "Sam",
        "lastName": "Hopper"
      }
    },
    "configuration": {
      "configurationProfileId": "YOUR_CONFIGURATION_PROFILE_ID"
    },
    "expiry": {
      "month": 8,
      "year": 2024
    }
  },
  "description": "{hint:Your human-readable description for this card}S.Hopper - Main card{/hint}"
}'

The response returns the paymentInstrument resource, identified by its unique id.

Response
{
  "balanceAccountId": "BA1234123412341234",
  "description": "S.Hopper - Main card",
  "issuingCountryCode": "NL",
  "status": "Inactive",
  "type": "card",
  "card": {
    "brand": "mc",
    "brandVariant": "mcdebit",
    "cardholderName": "Sam Hopper",
    "configuration": {
      "configurationProfileId": "YOUR_CONFIGURATION_PROFILE_ID"
    },
    "formFactor": "physical",
    "bin":"555544",
    "expiration":{
      "month":"08",
      "year":"2023"
    },
    "lastFour":"1589"
  },
  "id": "PI3227C223222B5BPCMFXD2XG"
}

In test environment, you will not receive physical test cards.

Before you start creating live physical cards, you will need to create a visual design for your cards and the mailer the card is sent in. Reach out to your Adyen contact to specify the design and mailing collateral you want to send.

Multiple cardholders under one balance account

This use case is only allowed in specific circumstances. Check with your Adyen contact if this is a functionality you can use.

Some business cases might require having multiple cardholders under one balance account, but only the account holder will go through the KYC process. For example:

  • Creating named cards for multiple employees in one company.
  • Creating additional cards for a spouse or children.

After the main account holder completes the KYC process, you can start creating cards for additional cardholders.

To do this, make another POST /paymentInstruments request.

Here is how you would create another virtual card linked to same balance account BA1234123412341234 for a different cardholder:

POST /paymentInstruments
{
  "type": "card",
  "description": "{hint:Your human-readable description for this card}Supplementary card{/hint}",
  "balanceAccountId": "BA1234123412341234",
  "issuingCountryCode": "NL",
  "card": {
    "cardholderName": "Jean Hopper",
    "brand": "{hint:Card scheme: mc or visa}mc{/hint}",
    "brandVariant": "mcdebit",
     "formFactor": "virtual"
  }
}

Activate a card

For physical cards, we recommend keeping cards inactive until your user has received the card, and confirmed it by providing you the full card number.

To make a card active, make a PATCH /paymentInstruments/{id} request and update the status to Active.

Here is an example updating the status for payment instrument with id PI3227C223222B5BPCMFXD2XG.

Activate card
curl https://balanceplatform-api-test.adyen.com/bcl/v1/paymentInstruments/PI3227C223222B5BPCMFXD2XG \
-u "ws@BalancePlatform.YOUR_BALANCE_PLATFORM":"YOUR_WS_PASSWORD" \
-H "content-type: application/json" \
-X PATCH \
-d '{
    "status":"Active"
}'

Next steps

Before your users can start making purchases with the newly issued card, you will have to choose how to fund the accounts, process payments, and manage the card lifecycle.