To avoid offline payments, you could switch to processing payments over a cellular 3G or 4G connection when the internet is down.
If you have a Standalone payment terminal or your integration uses local communications, you can continue making in-store payments when there's a temporary loss of internet connectivity.
Offline payments are not possible if your integration uses cloud communications.
When the internet connection is down and the terminal can't route a payment request to the Adyen payments platform, this is what happens:
- You send a payment request from the cash register to the payment terminal.
- Your staff hands the terminal to the shopper to present their card and complete the payment.
- The terminal tries to reach the Adyen payments platform, but is unable to establish a connection.
- The terminal verifies whether the payment can be completed offline, by running the following checks:
- Are one or more types of offline payment enabled? If no, the payment is Declined.
- Is the card configured by the issuer to process offline payments?
- Has the maximum number of offline transactions been reached yet?
- Is the transaction amount within the floor limit for the type of offline payment?
- Does the payment scheme support offline payments?
- If Approved, the terminal stores the card data and details of the transaction.
The terminal also generates a transaction response including data you can use to generate a receipt.
- Later, when the terminal is able to connect to the internet again, it sends the stored payments to the Adyen payments platform for further processing.
Before you begin
Before you enable offline payments, make sure that you:
- Have read and understood our Terminal API fundamentals.
- Use a Standalone terminal or built a local integration that can make a payment.
Risk with offline payments
When you enable offline payments, your integration approves transactions before the money is received from the shopper's account. That means it's possible that you will not receive the money for the goods that are taken by the shopper. There's also a higher risk that card fraud goes undetected.
You are fully liable for the risk of failed captures, chargebacks, and disputes related to payments that you process offline.
To reduce your exposure to these risks, you need to set a transaction floor limit before your integration can make offline transactions. This is a maximum per-transaction amount that your terminals can approve while they are offline.
Types of offline payment
There are two types of payment that you can do while your integration is offline. Each varies by card type, region, and the risk of the payment being declined by the issuer when it is processed:
Offline EMV transactions: The payment terminal verifies that the PIN entered by the shopper matches the PIN on the EMV chip embedded in the card, and then asks the card to approve the payment. Whether the transaction is approved, depends on how the issuer configured the card. Because the card is in control, the payment can be processed in the clearing stream directly. This ensures a higher approval rate.
Offline EMV transactions are supported by most major credit card schemes. Most debit cards do not support this type of payment.
- Store-and-forward transactions: The payment terminal approves transactions without any verification. Because of this, the risk of payments being declined by the issuer is higher than for offline EMV transactions. Typically up to 10% of store-and-forward payments is declined.
Store-and-forward transactions are supported by the major credit and debit card schemes for contact chip and contactless transactions. Any Cardholder Verification Method (CVM), such as PIN and signature, can be processed.
Store-and-forward is not supported for local card schemes, QR code wallets, and magnetic stripe transactions.
If you enable both types of offline payment, the terminal will try offline EMV first, then store-and-forward.
Enabling offline payments
To enable offline payments, you need to contact our POS Support Team and give them the following information:
- Type of offline transactions you want to enable: offline EMV and/or store-and-forward.
- Transaction limit: The maximum number of transactions per terminal that you can process while the terminal is offline.
- Card types: Normally your offline settings apply to all credit and debit cards in your account. If you want to exclude some of them, inform our POS Support Team.
To enable offline EMV transactions:
Chip floor limit: The maximum value of an offline EMV transaction where the shopper inserts their card into the reader.
Transactions above this amount will be declined.
To enable store-and-forward transactions:
- Floor limit: The maximum value of a store-and-forward transaction that can be approved while your integration is offline. Transactions above this amount will be declined.
Whether you also want to enable store-and-forward for transactions that normally require a PIN as CVM.
Our POS Support team will contact you when offline transactions have been enabled for your integration. You may need to do some extra configuration to reconcile payments that are made offline.
Handling an offline payment response
Compared to the response for an online transaction, the Terminal API response you receive for an offline transaction is a bit different:
The transaction identifier in the offline payment response includes a tender reference, but not a PSP reference.
This is because the PSP reference is generated by the Adyen payments platform, so will not be generated when your integration is offline and unable to connect to Adyen.
AdditionalResponsemisses some data.
Some additional data is generated when Adyen processes the payment, and is therefore not included for an offline payment. For example, the payment method variant (type of card) is not included. If you're using this data in your business logic, expect it to be missing for offline payments.
Other differences in the
AdditionalResponseare that it has the
offlineflag set to true, and that it contains the offline authorisation code Y1 for approved offline transactions.
These differences are important because:
- They have consequences for refunding and reconciling offline payments.
- If your cash register normally uses the PSP reference, you need to make sure it is also able to handle responses that do not include a PSP reference.
Refunding an offline payment
To refund an offline payment, we need the PSP reference of the offline payment. You'd specify this in your
ReversalRequest, preferably in the format
tenderReference.pspReference. But because you don't receive the PSP reference in the offline payment response use one of these options:
Find the PSP reference for the offline payment in your Customer Area or in the notification webhook (if you set that up) and make a
ReversalRequestspecifying the PSP reference. This is called a referenced refund.
Make a referenced refund for the full amount using the same payment terminal that was used for the offline payment, because in that particular case it is enough to specify the
tenderReference. We will then be able to find the corresponding PSP reference.
Do an unreferenced refund. This is a
SaleData.SaleTransactionID.TransactionID: Your unique reference for the refund. To be able to reconcile the refund with the original payment, include the tender reference of the original payment in your transaction ID. In your Customer Area and Adyen reports, this ID will show as the merchant reference for the transaction.
Reconciling offline payments
Because the PSP reference is generated by the Adyen payments platform, the Terminal API response for an offline transaction does not have a PSP reference.
If you are using the PSP reference for reconciliation, we recommend you set up notification webhooks. We will then send you notifications for the stored payments when your integration is online again, and these notifications do include the PSP reference.
As an alternative, you can use the tender reference, which is generated by the cash register, to reconcile your payments.
Because offline payments can be declined by the issuer, your financial operations specialist needs to set up a method of handling this type of declines. This would mean the goods are provided to the shopper and the money is not received for this type of payment. This is the inherent risk of processing store-and-forward transactions.
Testing offline payments
To test an offline payment, proceed as follows.
- Make sure offline payments are enabled.
- Send a payment request to your test terminal and force an internet connection failure.
The most convenient way to force an internet connection failure depends on your network setup. For example, you could unplug the Ethernet cable from a switch. Or if you're using the P400 plus, you could unplug the Ethernet cable from the payment terminal.
- Complete the offline payment using your test card. The test card enforces the configured offline limits.
- Verify that you are handling the offline payment response correctly.
- Re-enable the internet connection.
Verify the result:
- View the details of the test payment in your test Customer Area under Transactions > Payments.
- View the notification received for the test payment (if you set up webhook notifications).
- View the Received payment details report.
This information should help your financial operations specialist to adapt your financial system to offline payments.