3G/4G alternative
To avoid offline payments, you can process payments over a cellular connection when the internet is down.
To process a transaction, the payment terminal needs to have internet access. When there's a temporary loss of internet connectivity, you can continue making point-of-sale payments by enabling offline payments.
Offline payments are suitable for:
- Standalone payment terminals with a built-in printer.
- Payment terminals using local communications to communicate with your POS app.
If your integration uses cloud communications, it might not make sense to enable offline payments.
This is because the Adyen payments platform routes the request from your POS app to your payment terminal. An offline payment can only work if the loss of internet access happens after the terminal has already received the payment request from your POS app. The payment terminal can then proceed with an offline payment even though there is no internet.
How it works
- You initiate a payment like you usually do.
- When the shopper completes 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 payment terminal reached its maximum number of store-and-forward offline payments yet?
- Is the transaction amount within the maximum transaction amount 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.
- If you are using a standalone terminal, it will print the receipt.
- In a local integration, the terminal 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.
Risk with offline payments
When you enable offline payments, your integration approves payments before the money is received from the shopper's account. That means it is 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 payments. 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 payments: 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 payments: the payment terminal approves payments without any verification. Because of this, the risk of payments being declined by the issuer is higher than for offline EMV transactions. In practice the authorization rates range from 95% in some industries to several percentage points higher. We use Adyen's Auto Rescue to automatically retry failed store-and-forward payments to increase authorization rates.
Store and Forward is supported for contact chip and contactless transactions by the major credit and debit card schemes and also by some local card schemes. Any Cardholder Verification Method (CVM), such as PIN and signature, can be processed.
Store and Forward is not supported for most local card schemes, QR code wallets, magnetic stripe transactions, or cashbacks.
Contact our Support Team to learn whether Store and Forward is supported for a specific local card scheme.
If you enable both types of offline payment, the terminal will try offline EMV first, then Store and Forward.
Configure offline payments
To set up offline payments:
-
Ask our Support Team to enable offline payments and give them the following information:
-
Type of offline payments you want to enable: offline EMV and/or Store and Forward.
-
Whether you want to enable Store and Forward for payments that normally require a PIN as CVM.
This includes initial transactions that create recurring details for a shopper for loyalty use cases or later recurring payments using a token. -
For offline EMV, the following limits:
- Chip floor limit: the maximum transaction amount that the terminal accepts for an offline EMV transaction where the shopper inserts their chip card into the chip card reader. Transactions above this amount will be declined.
- Offline swipe limit: the maximum transaction amount up to which swiped cards are accepted offline.
- Contactless floor limit: the maximum transaction amount up to which the terminal will approve contactless transactions offline.
-
For Store and Forward, the following limits:
- Store-and-forward max. amount: the maximum transaction amount that the terminal accepts for a store-and-forward transaction. Transactions above this amount will be declined.
- Max. payments: the maximum number of store-and-forward transactions per terminal that you can process while offline.
-
For Store and Forward, the Supported card types: normally, store-and-forward settings apply to all credit, debit, and prepaid cards in your account. If you want to exclude some of them, inform our Support Team.
-
For Store and Forward, enable the Store and Forward mechanism that makes use of Auto Rescue to automatically retry failed payments.
-
-
After offline payments have been enabled, check the settings in your Customer Area:
- Go to In-person payments > Terminal settings > Payment features.
- For offline EMV, check the settings under Offline processing.
- For Store and Forward, check the settings under Store-and-forward payments.
-
Take care of any extra configuration on your side to reconcile payments that are made offline.
Some card schemes have specific requirements that override your offline payments settings. For example:
- In Germany, girocard allows offline EMV payments even when this is not enabled for your account. Settlement is guaranteed in these cases.
- In Australia, American Express doesn't accept offline payments.
Recognize the offline payment response
Compared to an online payment response, the Terminal API response for an offline payment differs in some respects. Data that is generated by the Adyen payments platform, such as the PSP reference, is missing because your integration is unable to connect to Adyen. Authorisation data is missing as well, because the issuer hasn't authorized the payment yet. The response also includes some values to indicate the payment took place offline.
These differences are important because:
- They have consequences for refunding and reconciling offline payments.
- If your POS system normally uses the PSP reference, you need to make sure it is also able to handle responses that do not include a PSP reference.
To recognize store-and-forward payments in your Customer Area, under Transactions > Payments, use the gear icon to show the Store and forward column.
Offline payment response details
The PaymentResponse
for an offline transaction has the following characteristics:
-
POIData.POITransactionID.Transaction.ID
: misses the PSP reference. Only contains the tender reference. -
PaymentResult.AuthenticationMethod
: OfflinePIN -
PaymentResult.OnlineFlag
: false -
PaymentResult.PaymentAcquirerData
: misses theAcquirerTransactionID
andApprovalCode
parameters. -
Response.AdditionalResponse
includes:-
offline
: true -
offlineAuthCode
: indicates the type of offline payment.- Offline approved indicates an offline EMV payment.
-
Failed go online offline declined indicates a store-and-forward transaction.
-
unconfirmedBatchCount
: the number of payments that the terminal hasn't been able to send to the Adyen payments platform.
-
-
There are also fields missing from the
Response.AdditionalResponse
. The most important missing data are:- authorization data:
authCode
,authorisationMID
,authorisedAmountCurrency
,authorisedAmountValue
,refusalReasonRaw
- PSP reference:
pspReference
,transactionReferenceNumber
- authorization data:
Below is an example of an offline EMV or store-and-forward payment response.
The next example shows the AdditionalResponse
(converted to JSON format) for an offline EMV payment.
The next example shows the AdditionalResponse
(converted to JSON format) for a store-and-forward payment.
Refunding while offline
While your integration is offline, it is possible to issue refunds. However, there are some restrictions:
- You can only make unreferenced refunds. Referenced refunds are not supported.
- The payment terminal will try to process the refund as an offline EMV transaction. This means that the request may be declined. Processing the refund as a store-and-forward transaction is not supported.
- To allow making refunds while offline, you need to contact our Support Team to set an Offline refund maximum transaction amount.
To refund a payment when there is no internet access:
- Make an unreferenced refund using a
PaymentRequest
withPaymentType
Refund. To make reconciliation easier, we recommend including the tender reference of the original payment inSaleData.SaleTransactionID.TransactionID
.
Refunding offline payments when back online
If your internet connection is restored and you want to refund a payment that was completed offline, you need to manage the fact that the response for the offline payment doesn't contain the PSP reference.
Use one of these options, taking into account that referenced refunds are safer than unreferenced refunds:
-
Make an unreferenced refund using a
PaymentRequest
withPaymentType
Refund. To make reconciliation easier, we recommend including the tender reference of the original payment inSaleData.SaleTransactionID.TransactionID
. -
Make a referenced refund using a
ReversalRequest
with the tender reference of the offline payment and the POIID of the payment terminal that was used for the offline payment. Even though you do not know the PSP reference, you can still make a referenced refund in this way. -
Find the PSP reference for the offline payment in your Customer Area or in the webhook (if you set that up). Then make a regular referenced refund using a
ReversalRequest
with the PSP reference.
Reconcile 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 webhooks. When your integration is online again, you will receive webhooks for the stored payments, and these webhooks include the PSP reference.
As an alternative, you can use the tender reference, which is generated by the terminal, to reconcile your payments.
Also note that you can add the POS Store and Forward indicator column to your Received payment details report.
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.
Retry failed store-and-forward authorizations
A store-and-forward authorization might fail for reasons such as insufficient funds. The payment authorization may still succeed when submitted again at a later point in time. With Adyen's Auto Rescue, failed store-and-forward payments that are eligible will be automatically retried for one calendar month. Payments that were flagged as fraud are not eligible.
You need to subscribe to webhook events to be informed when a retry attempt is successful or unsuccessful and when the retry period ends.
Retry attempts have a unique pspReference
, but have the same tenderReference
as the original transaction. The merchantOrderReference
of the retry attempt is the pspReference
of the original transaction. If you want to see all payments initiated by Auto Rescue, contact our Support Team to add the Payment Requester Type column to your Received payment details report. See Auto Rescue Reports for more details.
Test offline payments
To test an offline payment, proceed as follows.
- Make sure offline payments are configured.
- 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 are 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 webhooks received for the test payment (if you set up webhooks).
- View the Received payment details report.
This information should help your financial operations specialist to adapt your financial system to offline payments.