Removes funds from the gift card for a purchase.
public void RedeemCard();
Public Sub RedeemCard()
A Redemption transaction is the process of deducting value from the Gift Card, and is very similar to a Credit Card Sale transaction, except that funds are immediately removed from the balance of the gift card. There are four types of redemptions that can be made with this method, depending on the value of the RedemptionType.
Regular redemptions can be made with TransactionAmounts up to the balance on the card. Attempting to redeem a card for more than the current balance will result in a decline for insufficient funds.
In the case that the customer's gift card does not have enough funds to cover the entire TransactionAmount, the merchant may request that the host perform a Partial Redemption. With the RedemptionType set to rtPartialRedemption, the point of sale is capable of processing a Redemption transaction for more than the card balance, and still receive an approval. All of the funds remaining on the gift card will be put towards the TransactionAmount, and the merchant will be required to obtain an additional form of payment for the remaining balance. The Response PreviousBalance and NewBalance can then be used to calculate the amount actually removed from the card, and the amount the customer still needs to tender (via cash, credit card, etc).
If the merchant allows it, a customer may Cash Out his gift card, and receive the remainder of the gift card's stored value as cash. To cash out a gift card, clear the TransactionAmount and set the RedemptionType to rtCashOut before calling RedeemCard. If successful, the Response NewBalance will be zero, and the PreviousBalance will indicate the total amount removed from the card, which should be given to the customer as cash.
Finally, you can send a Redemption Unlock transaction, which redeems the card and removes a lock that was previously made with the LockCard method.
Important Note: You must ping your list of service provider URLs and update the URL property to the service provider with the shortest response time every 100 transactions, as well as when your application initially starts. This is not a normal ICMP ping - to determine the fastest transaction URL you must use the special Ping method inside the FDMSRegister component. (You may update your list of service provider URLs with the FDMSRegister component's ServiceDiscovery method).
.NET Standard Notes
To call this method in an asynchronous manner call RedeemCardAsync instead. When the method completes (or an error is encountered) the RedeemCardCompleted event will fire.