--- title: "Start gift card transactions" url: "https://docs.adyen.com/point-of-sale/classic-library-deprecation/classic-library-integrations/com-extension-for-windows-integration/extras-com-extension/start-gift-card-transactions-com-extension" source_url: "https://docs.adyen.com/point-of-sale/classic-library-deprecation/classic-library-integrations/com-extension-for-windows-integration/extras-com-extension/start-gift-card-transactions-com-extension.md" canonical: "https://docs.adyen.com/point-of-sale/classic-library-deprecation/classic-library-integrations/com-extension-for-windows-integration/extras-com-extension/start-gift-card-transactions-com-extension" last_modified: "2026-05-23T12:56:20+02:00" language: "en" --- # Start gift card transactions [View source](/point-of-sale/classic-library-deprecation/classic-library-integrations/com-extension-for-windows-integration/extras-com-extension/start-gift-card-transactions-com-extension.md) ## PedDevice Object | Name | Description | | ----------- | ---------------------------------------- | | `PedDevice` | PED object that represents the terminal. | ## Create a special tender request | Name | Description | | ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | | `CreateSpecialTenderRequest` | Use this method to create a request object to hold the special tender details. Instantiates an `Adyen.SpecialTenderRequest` object. | ## Adding Parameters to a SpecialTenderRequest ### Parameters | Key | Type | Required | Description | | ------------------- | -------------------- | ------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `merchantAccount` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The transaction reference provided by the Merchant (reported in the Adyen payments platform). | | `amountValue` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The transaction amount in minor units (100 is 1.00 with EUR). The Amount field should be a strong typed field with a string for currency code and a number (long) for the minor digits value (similar to the current API (of the terminal)). | | `amountCurrency` | long | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The transaction currency. | | `transactionType` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | Type of gift card transaction (Redeem, which uses a card balance to pay for an item, Load, which loads a balance to a card, and Balance Inquiry which returns the current balance of the card). `TransactionType` takes the following values:- redeem - load - balanceInquiry | | `paymentMethodType` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The type of payment method, in this case gift cards. For example, Givex, SVS, EagleEye. `PaymentMethodType` takes the following values:- givex - svs | | `specialOptions` | SpecialTenderOptions | ![-x-](/user/data/smileys/emoji/x.png "-x-") | Holds tender attributes.Activate, load, or refund a balance to a card by creating a special tender and passing the following values as the `loadType` in special options:- **activate** - Activates a gift card. - **load** - Adds a balance to a gift card. - **merchandise\_return** - Add a refund balance back on to a gift card. This uses the same functionally as a load but is separated for accounting purposes.The activate and load values can be piped to chain the tasks by passing "**activate\|load**".Perform a cash back or deactivate a card by creating a special tender and passing a `redemptionType` as a special option. - **cashback -** Cash out the value of a gift card. For SVS, you must create a zero-value transaction to cash out the entire balance of a card. You can not cash out a specific amount. - **deactivate **- Deactivates a gift card.  (Deactivate is not available for SVS). - **gratuity** - Used to provide a tip from a gift card. (For SVS cards only).The cashback and deactivate values can be piped to chain the tasks by passing  "**cashback\|deactivate**". | | `handleReceipt` | Boolean | ![-x-](/user/data/smileys/emoji/x.png "-x-") | Specifies that the POS handles and prints receipts. If omitted, it is required that the PED prints the receipt. If there is no printer unit, the transaction will fail. | Add special options parameters to the `SpecialTenderRequest` using the `SpecialOptions.Add` method.  Remove parameters from the `SpecialTenderRequest` using the `SpecialOptions.Rm` method.  | Name | Type | Required | Description | | ---------------- | ------ | ------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `cardNumber` | String | ![-x-](/user/data/smileys/emoji/x.png "-x-") | The scanned number from the gift card. If this number:- Is passed from the POS, Keyed Entry will not be triggered on the PED. - Is not passed from the POS Keyed Entry will be triggered on the PED. | | `forceEntryMode` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The entry mode for the transaction.You can select from two entry modes:- Keyed - on the PED or POS - Magstripe - Use the magnetic stripe from the card | Not all languages using COM handle empty parameters equally. This has the potential to cause unexpected behavior. To prevent this, provide empty strings or pass `Null` objects for C++/C#, and the default value `Nothing` for vb.net. ### Code example ```vb specialTenderRequest.SpecialOptions.Add("cardNumber", "60362821657200117610") specialTenderRequest.SpecialOptions.Add("cardNumber.expiryMonth", "12") specialTenderRequest.SpecialOptions.Add("cardNumber.expiryYear", "2049") ``` ## Create a special tender | Name | Description | | --------------------- | -------------------------------------------------------------------------------------------- | | `CreateSpecialTender` | Use this method to create a special tender and pass the `Adyen.SpecialTenderRequest` object. | ## Entry modes The gift card can be presented in three ways:  1. Swipe: the gift card is read using a magnetic stripe reader. 2. MKE on terminal: the card number is manually entered on the payment terminal. The tender should specify that it expects keyed entry on the terminal, and a card mask should be provided. 3. MKE on POS app: scan a barcode on the back of the card from the POS app. In this scenario, the card number, card mask, and expiry should be provided in special options. You can specify entry modes by passing special tender options. See [Gift Cards](/point-of-sale/gift-cards-terminal-api).  ## Callbacks | Name | Description | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | | [Progress Event Callback](/point-of-sale/classic-library-deprecation/classic-library-integrations/com-extension-for-windows-integration/key-steps-com-extension/process-a-basic-transaction-com-extension/handle-progress-events-com-extension) | Reports the progress of a running tender. | | [PrintReceipt Callback](/point-of-sale/classic-library-deprecation/classic-library-integrations/com-extension-for-windows-integration/key-steps-com-extension/process-a-basic-transaction-com-extension/handle-the-print-receipt-callback-com-extension) | Returns the receipt for printing, and requests that the POS confirms it has received the receipt. | | [Final Callback](/point-of-sale/classic-library-deprecation/classic-library-integrations/com-extension-for-windows-integration/key-steps-com-extension/process-a-basic-transaction-com-extension/handle-the-final-state-callback-com-extension) | When the system finishes processing the tender, it triggers the final state callback. |