Submits a sale transaction for a debit card.
public void Sale();
Public Sub Sale()
Debit sale transactions differ from credit card authorizations in that they are real-time -- Funds are immediately removed from the customer's bank account. Debit card transactions also must use track2 data read from the card's magnetic stripe. Track1 data is not acceptable, and a debit card may not be manually keyed. The customer enters his or her PIN number into a certified PIN Pad device, and both an EncryptedPIN and KSN (Key Sequence Number) are returned from the pad to the merchant, and must be submitted in the Sale transaction.
Even though debit transactions are real-time, FDMS requires they be settled at the end of the day just like credit card transactions.
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 SaleAsync instead. When the method completes (or an error is encountered) the SaleCompleted event will fire.