Payment brands, such as card schemes and debit network providers, charge a fee for accepting payments on their payment network, called a payment acceptance fee. As a platform, you must have agreements in place with your users about how the payment acceptance fee is charged for each payment. Your users can pass on these costs to their customers by adding a surcharge to their payments.
Similar to the other transaction fees, you can use split instructions to define how to book the surcharge. By default, the surcharge amount on a payment is booked to your liable balance account. However, you can book this amount directly to your user's balance account.
Requirements
Before you begin, take into account the following requirements, limitations, and preparations.
| Requirement | Description |
|---|---|
| Integration type | The supported in-person payments solution and hardware differ per surcharge method. For details, see: |
| Limitations | Note the following:
|
| Setup steps | Before you begin:
|
Compliance
Surcharges must comply with legal, regulatory, and card scheme requirements. For example, schemes require that you provide signage to inform customers about the payment methods that are subject to surcharges, and the related costs such as the surcharge percentage.
Surcharging is also subject to specific local/jurisdictional restrictions. For example, in the European Economic Area (EEA) surcharges are not allowed on payments made with a consumer card that was issued in the EEA. And in the US surcharges are not allowed on payments made with a debit card.
The Adyen surcharge feature does not include automated global compliance enforcement. You must validate your setup against the compliance considerations and local mandates. We strongly recommend you consult your own legal advisor on compliance with regulatory and legal implications and use the correct settings based on our Surcharge compliance guide.
Compliant receipts
The Adyen-generated receipt data that you receive in the Terminal API response include the surcharge amount, both in the merchant receipt and in the shopper receipt. We strongly recommend using the Adyen-generated receipt data without alterations.
If you customize receipts, it is your responsibility to ensure that all scheme requirements are met, including requirements for disclosing the surcharge amount on the receipt.
If you use a standalone terminal, the built-in printer automatically prints a compliant receipt.
Surcharge methods
You can add a surcharge to in-person payments using various methods:
-
Configuration-based surcharge.
Using configuration settings, you create rules to apply surcharges depending on aspects such as payment method (card brand), funding source, issuing country, and currency. You can create these rules for your Adyen company or merchant account, store, or individual terminals. The surcharge amount is then calculated and applied automatically. -
Dynamic surcharge.
You use your own logic or a third-party service to calculate the amount of the surcharge. To get the data needed for this calculation, you can send a card acquisition request. Then you specify the calculated surcharge fee in your payment request.
This method is not supported with standalone terminals.
You can use either method, or both. When you use both methods, passing a surcharge amount in the payment request overrules the configuration-based surcharge.
The following considerations can help you choose a surcharge method:
| Use case | Surcharge method(s) |
|---|---|
| You do not have your own logic or a third-party service for the surcharge calculation. | Configuration-based surcharge. |
| You have only standalone terminals, a mix of both integrated and standalone terminals, or want to be able to switch terminals between integrated and standalone mode. | Standalone terminals only support configuration-based surcharge, so you must set up a surcharge configuration. For the integrated terminals you can use the same configuration-based surcharge and/or dynamic surcharge. |
| You want to be able to apply a zero (0) surcharge on specific transactions. For example, for a better customer experience on very high value transactions. | You can use dynamic surcharge for all transactions, or set up configuration-based surcharge and overrule this using dynamic surcharge only when desired. |
| You have your own surcharge calculation logic that you want to apply to both point-of-sale and ecommerce transactions. | Dynamic surcharge. |
| You want to use a third party for the surcharge calculation. This option is especially useful if you want to move terminals between locations (within the country/region that the terminal was ordered for) with different compliance requirements. For example, between different states in the US. |
Dynamic surcharge. |
Surcharge confirmation screen
As part of the surcharge flow on payment terminals, the terminal can show a confirmation screen with the total amount of the payment, the surcharge amount, and the payment method to which the surcharge is applied.

The customer can then:
- Accept the surcharge by selecting Confirm (or the
key). - Reject the surcharge by selecting the button to cancel the transaction (or the
key).
In a Mobile solution, a confirmation screen is currently not supported.
Be aware that regulations require you to inform the customer that a surcharge is added to the payment amount.
You can choose to skip the surcharge confirmation screen provided by Adyen in favor of other forms of disclosure. Reasons for this choice can be, for example:
- The rules and regulations on surcharge disclosure applicable to the location of the store.
- Local habits with regard to the payment flow.
- The use of your own application for surcharge disclosure (for example, in a Mobile solution).
To show or skip the Adyen confirmation screen, you need to use the Management API to configure the terminal setting askConfirmation.
Surcharge or DCC
It is not possible to apply both Dynamic Currency Conversion (DCC) and a surcharge to the same transaction. You can nevertheless integrate both the DCC feature and the surcharge feature:
- If your payment terminals are on a software version earlier than v1.112, we recommend not configuring both features on the same terminals.
- If your payment terminals are on software version v1.112 or later, we automatically skip DCC if the surcharge amount is greater than 0 (zero).
- The flexible surcharge configuration enables you to configure surcharges for some cases and not for other cases, so that you can offer DCC in those other cases.
AUTHORISATION webhooks
To have more visibility on the surcharge amounts that were added to payments, we strongly recommend that you enable receiving the surcharge amount in AUTHORISATION webhook messages.
You can enable this in your Customer Area using either of the following methods:
-
Update the configuration of the Standard webhook type by selecting the additional setting Include Extra Costs Surcharge. For instructions, see Additional settings.
-
Under Developers > Additional data select Surcharge amount and save the change.
AUTHORISATION webhook messages then include an additionalData object with:
extraCostsCurrency: The currency of the surcharge.extraCostsValueSurcharge: The amount of the surcharge in minor units.
Track fund movements
To track the status of the fund transfers initiated by a surcharge:
- Listen to the following webhooks:
- Transfer webhooks: Adyen sends a balancePlatform.transfer.created webhook to inform your server that funds will be credited to balance accounts, and balancePlatform.transfer.updated webhooks after every status change.
- Transaction webhooks: Adyen sends a balancePlatform.transaction.created webhook to inform your server that funds have been credited to a balance account.
- Acknowledge the webhooks. We send these webhooks for every split item in the payment.
- In the balancePlatform.transfer.updated webhook payload, note that the
eventarray includes all previous transfer events, and thesequenceNumberdefines the number of webhooks sent for the transfer, including the current one.
Webhook examples
The following examples show the webhooks you receive for a surcharge. We send webhooks for each balance account involved in the payment, and each split of the payment amount, including the surcharge.
You can identify surcharge-related transfer webhooks by the following values:
| Parameter | Description | Value |
|---|---|---|
| category | Specifies the category of the transfer. | platformPayment |
| direction | The direction of the transfer based on the balance account. | incoming |
| type | Specifies the type of the transfer. | payment |
| platformPaymentType | Specifies the nature of each transfer on the balance platform. This parameter helps categorize transfers so you can reconcile transactions at a later time using the Balance Platform Accounting Report. | Surcharge |
1. Incoming transfer received
When a transfer request is received to credit funds for the surcharge to your user's balance account, Adyen sends a balancePlatform.transfer.created webhook with status received and direction incoming. The webhook provides information about the transfer, such as the payment and split references and which user and balance account is credited with the funds.
2. Incoming transfer authorized
When the transfer request is authorized, Adyen sends a balancePlatform.transfer.updated webhook with status authorised.
3. Incoming transfer captured
When the funds are credited to your user's balance account, Adyen sends a balancePlatform.transfer.updated webhook with status captured and the transactionId.
4. Transaction booked
When the funds are credited, Adyen also sends a balancePlatform.transaction.created webhook, which includes information about the related transaction.
Reports and reconciliation
To have full visibility of the surcharge amounts that were added to payments, we strongly recommend you add an extra column Surcharge Amount to the following reports:
- Payment Accounting Report (PAR)
- Settlement Detail Report (SDR)
If you specify the split type Surcharge in the payment request or in the split configuration, a separate incoming transfer is generated for the surcharge amount. The following reports are affected:
- The Balance Platform Accounting Report (BPAR) contains extra lines with information related to surcharges.
- The Balance Platform Statement Report (BPSR) contains extra lines showing the impact of the surcharges on the balance account.