Search

Are you looking for test card numbers?

Would you like to contact support?

Payment-method icon

Gift cards for API only

Add gift card payments to an existing API-only integration.

Accept gift card payments using our APIs, and build your own payment form to have full control over the look and feel of your checkout page.

Before you begin

These instructions explain how to add gift cards to your existing API-only integration. The API-only integration works the same way for all payment methods. If you haven't done this integration yet, refer to our API-only integration guide.

Before starting your integration make sure you:

  1. Set up your back end implementation.
  2. Onboard with a gift card provider, then contact our Support Team to add the gift card to your test Customer Area.

Build your payment form for gift cards

You must build a separate integration for each gift card provider.

You can process payments for gift cards provided by Givex, Stored Value Solutions (SVS), ValueLink, and key local gift card providers in several countries.

For more information on how to process gift card transactions other than payments, see other gift card transactions.

Show gift cards as an available payment method in countries where they are supported. When the shopper selects a type of gift card, they are presented with the payment sheet.

We provide logos for gift card providers which you can use on your payment form. For more information, refer to Downloading logos.

If you are using the /paymentMethods request to show the available payment methods to your shopper, specify the following in your request:

In the response, you receive the gift cards available to your shopper as elements in the paymentMethods array, for example "paymentMethods.type" = "givex".

Make a payment

From your server, make a /payments request, specifying:

  • paymentMethod.type: The value for the gift card provider, for example givex.
  • paymentMethod.number: The gift card number without separators.
  • paymentMethod.cvc: The card verification code.
{
  "amount":{
    "currency":"EUR",
    "value":1000
  },
  "reference":"YOUR_ORDER_NUMBER",
  "paymentMethod": {
    "type": "givex",
    "number": "62805011000000000000",
    "cvc": "73737"
  },
  "merchantAccount":"YOUR_MERCHANT_ACCOUNT"
}
{
  "pspReference": "851572424333194G",
  "resultCode": "Authorised",
  "merchantReference": "YOUR_ORDER_NUMBER"
}
curl https://checkout-test.adyen.com/v64/payments \
-H "X-API-key: YOUR_X-API-KEY" \
-H "Content-Type: application/json" \
-d '{
  "amount":{
    "currency":"EUR",
    "value":1000
  },
  "reference":"YOUR_ORDER_NUMBER",
  "paymentMethod": {
    "type": "givex",
    "number": "62805011000000000000",
    "cvc": "73737"
  },
  "merchantAccount":"YOUR_MERCHANT_ACCOUNT"
}'
# Set your X-API-KEY with the API key from the Customer Area.
adyen = Adyen::Client.new
adyen.api_key = "YOUR_X-API-KEY"

response = adyen.checkout.payments({
  :amount => {
    :currency => "EUR",
    :value => 1000
  },
  :reference => "YOUR_ORDER_NUMBER",
  :paymentMethod => {
    :type => "givex",
    :number => "62805011000000000000",
    :cvc => "73737"
  },
  :merchantAccount => "YOUR_MERCHANT_ACCOUNT"
})
// Set your X-API-KEY with the API key from the Customer Area.
$client = new \Adyen\Client();
$client->setXApiKey("YOUR_X-API-KEY");
$service = new \Adyen\Service\Checkout($client);

$params = array(
  "amount" => array(
    "currency" => "EUR",
    "value" => 1000
  ),
  "reference" => "YOUR_ORDER_NUMBER",
  "paymentMethod" => array(
    "type" => "givex",
    "number" => "62805011000000000000",
    "cvc" => "73737"
  ),
  "merchantAccount" => "YOUR_MERCHANT_ACCOUNT"
);
$result = $service->payments($params);
# Set your X-API-KEY with the API key from the Customer Area.
adyen = Adyen.Adyen()
adyen.client.xapikey = 'YOUR_X-API-KEY'

result = adyen.checkout.payments({
  "amount": {
    "currency": "EUR",
    "value": 1000
  },
  "reference":"YOUR_ORDER_NUMBER",
  "paymentMethod": {
    "type": "givex",
    "number": "62805011000000000000",
    "cvc": "73737"
  },
  "merchantAccount": "YOUR_MERCHANT_ACCOUNT"
})
// Set your X-API-KEY with the API key from the Customer Area.
const {Client, Config, CheckoutAPI} = require('@adyen/api-library');
const config = new Config();
config.apiKey = '[API_KEY]';
config.merchantAccount = '[YOUR_MERCHANT_ACCOUNT]';
const client = new Client({ config });
client.setEnvironment("TEST");
const checkout = new CheckoutAPI(client);
checkout.payments({
    amount: { currency: "EUR", value: 1000 },
    paymentMethod: {
        type: 'givex',
        cvc: "73737",
        number: "62805011000000000000"
    },
    reference: "YOUR_ORDER_NUMBER",
    merchantAccount: config.merchantAccount,
}).then(res => res);

The /payments response contains:

Present the payment result

Use the resultCode from the /payments response to present the payment result to your shopper.
You will also receive the outcome of the payment asynchronously in a webhook notification. For gift card payments, you can receive the following resultCode values:

resultCode Description Action to take
Authorised The payment was successful. Inform the shopper that the payment has been successful.
If you are using manual capture, you also need to capture the payment.
Cancelled The shopper cancelled the payment. Ask the shopper whether they want to continue with the order, or ask them to select a different payment method.
Error There was an error when the payment was being processed. For more information, check the refusalReason field. Inform the shopper that there was an error processing their payment.
Refused The payment was refused. For more information, check the refusalReason field. Ask the shopper to try the payment again using a different payment method.

Test and go live

Before making live gift card payments:

  1. Test your integration using our test card numbers.
    You can check the status of test payments in your test Customer Area > Transactions > Payments.
  2. Contact our Support Team to add the gift card to your live Customer Area.

See also