Search

Are you looking for test card numbers?

Would you like to contact support?

Payment-method icon

Merge the balance of two gift cards

Transfer the value from one stored-value card to another one of the same type.

The /mergeBalance endpoint of our Stored Value API lets you transfer the full value of a gift card or other type of stored-value card to another one. The source and target card need to be from the same gift card provider.

Transaction per provider and channel

Ecom

Transaction Givex SVS ValueLink
Merge balance -x- -x- -white_check_mark-

Point of sale

Transaction Givex SVS ValueLink
Merge balance -x- -x- -x-

Merge the balance

When you transfer the value from one gift card or stored-value card to another, the way to specify the card details of the target card depends on whether you tokenized a payment that the shopper made with this card.

To transfer the full value from a source gift card to a target card that has not been tokenized:

  • Make a POST request to the /mergeBalance endpoint, specifying:

    • merchantAccount: ID of the merchant account that you want to process the transaction with.
    • store: Optional For transactions flagged as in-store, the ID of the physical store that you want to process the transaction for. Maximum length: 16 characters.
    • sourcePaymentMethod.number: Card number that identifies the card that you want to transfer the value from.
    • sourcePaymentMethod.securityCode: If the source card has a PIN code or other type of security code, obtain it from the shopper and provide it here.
    • sourcePaymentMethod.expiryMonth: Optional Expiry month of the source card.
    • sourcePaymentMethod.expiryYear: Optional Expiry year of the source card.
    • sourcePaymentMethod.holderName: Optional Name of the shopper that the source card belongs to.
    • paymentMethod object with:

      • type: Name or brand of the target card. Accepted values: valuelink.
      • number: Card number that identifies the target card that you want transfer funds to.
      • securityCode: If the target card has a PIN code or other type of security code, obtain it from the shopper and provide it here.
      • expiryMonth: Optional Expiry month of the target card.
      • expiryYear: Optional Expiry year of the target card.
      • holderName: Optional Name of the shopper that the target card belongs to.

    • reference: Your reference to uniquely identify the transaction. To provide multiple references for a transaction, separate them with hyphens ("-"). Maximum length: 80 characters.

    This request transfers the balance of card no. 7777182708544835 to card no. 8888182708544836:

    {
        "merchantAccount": "YOUR_MERCHANT_ACCOUNT",
        "store":"YOUR_STORE_ID",
        "sourcePaymentMethod": {
            "number": "7777182708544835",
            "securityCode": "2329"
        },
        "paymentMethod": {
            "type": "valuelink",
            "number": "8888182708544836",
            "securityCode": "2330"
        },
        "reference": "YOUR_REFERENCE"
    }

Response

You receive a response containing:

  • currentBalance: The currency and total value in minor units of the funds stored on the card.
  • pspReference: Adyen's 16-character unique reference associated with the request.
  • resultCode: Indicates the state of the request. Refer to Result codes for the values that you can receive.

The response may include additional fields, depending on the Additional data settings for your merchant account. In your Customer Area, you'll find these settings under Account > API URLs > Additional data settings.

Sample response:

{
    "currentBalance": {
        "currency": "EUR",
        "value": 5600
    },
    "pspReference": "881564657480267D",
    "resultCode": "Success"
}

To transfer the full value from a source gift card to a target card that has been tokenized:

  • Make a POST request to the mergeBalance endpoint, specifying:

    • merchantAccount: ID of the merchant account that you want to process the transaction with.
    • store: Optional For transactions flagged as in-store, the ID of the physical store that you want to process the transaction for. Maximum length: 16 characters.
    • sourcePaymentMethod.number: Card number that identifies the card that you want to transfer the value from.
    • sourcePaymentMethod.securityCode: If the source card has a PIN code or other type of security code, obtain it from the shopper and provide it here.
    • sourcePaymentMethod.expiryMonth: Optional Expiry month of the source card.
    • sourcePaymentMethod.expiryYear: Optional Expiry year of the source card.
    • sourcePaymentMethod.holderName: Optional Name of the shopper that the source card belongs to.
    • paymentMethod.type: Name or brand of the target card. Accepted values: valuelink.
    • recurringDetailReference: The token that identifies the target card. This was returned in the response when you tokenized the target card.
    • shopperReference: Your unique ID for this shopper. This is the shopperReference that you used when you created the token.
    • shopperInteraction: Specifies the sales channel through which the shopper provided their details. Accepted values: Ecommerce (default for online transactions), ContAuth (online, using previously stored details), Moto (via email or telephone) or POS (using an in-store terminal).
    • reference: Your reference to uniquely identify the transaction. To provide multiple references for a transaction, separate them with hyphens ("-"). Maximum length: 80 characters.

    This request transfers the balance of card no. 7777182708544835 to card no. 8888182708544836:

    {
        "merchantAccount": "YOUR_MERCHANT_ACCOUNT",
        "store":"YOUR_STORE_ID",
        "sourcePaymentMethod": {
            "number": "7777182708544835",
            "securityCode": "2329"
        },
        "paymentMethod": {
            "type": "valuelink"
        },
        "recurringDetailReference": "7219687191761347",
        "shopperReference": "YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j",
        "shopperInteraction": "Ecommerce",
        "reference": "YOUR_REFERENCE"
    }

Response

You receive a response containing:

  • currentBalance: The currency and total value in minor units of the funds stored on the card.
  • pspReference: Adyen's 16-character unique reference associated with the request.
  • resultCode: Indicates the state of the request. Refer to Result codes for the values that you can receive.

The response may include additional fields, depending on the Additional data settings for your merchant account. In your Customer Area, you'll find these settings under Account > API URLs > Additional data settings.

Sample response:

{
    "currentBalance": {
        "currency": "EUR",
        "value": 5600
    },
    "pspReference": "881564657480267D",
    "resultCode": "Success"
}

Next steps

See also