Adyen-for-platform icon

Configuration-based surcharge

Define rules for surcharge amounts or percentages, and when to apply them.

Using Management API settings, you can configure surcharge rules for your Adyen company or merchant account, store, or individual terminals. Your rules need to take into account all applicable compliance requirements and aspects such as payment method (card brand), funding source, issuing country, and currency.

Based on the rules you configured, surcharges are then automatically calculated and applied to your in-person payments. In your payment requests, you can use split instructions to define how to book the surcharge amount.

Depending on your use case, you can combine configuration-based surcharge with dynamic surcharge.

Requirements

In addition to the general surcharge requirements, take into account the following information.

Requirement Description
Integration type Configuration-based surcharge is supported with: When using payment terminals, note the required terminal software version:
  • v1.108 to apply a maximum surcharge amount per transaction.
  • v1.112 to differentiate between commercial and consumer cards.
  • v1.115 to exclude gratuities (tips) from surcharging.
  • v1.117 to apply surcharges to Mail Order/Telephone Order (MOTO) and Manual Key Entry (MKE) payments.
API credentials You must have an API credential with an API key and the following roles:
  • Management API—Terminal settings read
  • Management API—Terminal settings read and write
If you have a Terminal API integration with cloud-based communications, you can use the existing API key that you use for Terminal API requests.
Webhooks It is recommended to subscribe to Standard webhooks and enable receiving the surcharge amount in AUTHORISATION webhook messages.
Hardware Configuration-based surcharge is not supported with SFO1 terminals or with NYC1 card readers (in a Mobile solution).
Limitations Note the following:
Setup steps For surcharges on Tap to Pay transactions, ask our Support Team to enable single tap.

How it works

After the surcharge amounts and/or percentages are configured:

  1. You make a payment request like you normally do. There are no special parameters required to trigger the surcharge.

  2. The payment terminal or mobile device shows a screen with the purchase amount and instructs your user's customer to present their card.

  3. Based on the card that the customer presents, the terminal or Mobile SDK calculates the surcharge using the surcharge amounts and/or percentages you configured.

  4. Depending on your configuration and solution, the surcharge confirmation screen appears. This enables your user's customer to accept the surcharge, or cancel the transaction.

    In a Mobile solution or if you choose to skip the confirmation screen, you must provide another form of disclosure.

  5. If your user's customer accepts the surcharge, the payment is processed and the payment response shows the surcharge amount in the TotalFeesAmount field.

Configure surcharges

The payment acceptance fee charged to your user depends on the payment method brand (scheme), funding source (credit or debit), currency, and the country/region that issued the payment method (domestic or international). Therefore, the surcharge that your user passes on to the customer must be specific for the combination of brand, funding source, currency, and country/region.

The surcharge can be a fixed amount for each transaction, a percentage of the sum of the purchase amount and the tip, or both a fixed amount and a percentage. You can configure the surcharge logic for payments based on the agreements you have with your users.

In addition, you can:

  • Specify a maximum surcharge amount.
  • Indicate if the surcharge should only be applied if the payment method is a commercial/business card. This is important in countries/regions where surcharges on consumer cards are not allowed.
  • Indicate if the surcharge should not be applied to gratuities (tips). This is important in countries/regions where it is prohibited to apply charges to tips.
  • Indicate if the surcharge confirmation screen should be shown. If you hide this screen, regulations require you to provide another form of surcharge disclosure.

To configure surcharges:

  1. Check the current surcharge configuration (if any) by making a GET request to the /terminalSettings endpoint for the company account, merchant account, store or terminal, and checking the surcharge object.

  2. Create an overview of all surcharges that you want to apply. For example:

    Brand Only commercial cards Funding source Country/ region Currency Percentage Amount Max. amount
    eftpos false Debit AUD (none) AUD 0.10 (none)
    Mastercard false Credit AUD 0.58 % AUD 1 (none)
    Mastercard false Debit AUD 0.58 % (none) AUD 10
    Visa false Credit or Debit AU, NZ AUD 0.63 % (none) (none)
    Visa false Credit or Debit AUD 1.63 % (none) (none)
    Visa true Credit or Debit NL EUR 1.63 % (none) (none)

    Specifying a country/region applies the surcharge settings only to payment methods issued in that country/region. If not specified, the surcharge applies to all payment methods that meet the rest of the conditions.

  3. Make a PATCH request to the /terminalSettings endpoint for the company account, merchant account, store or terminal.
    In the request body, specify a surcharge object with the following properties:

    Parameter Data type Description
    askConfirmation Boolean Indicates whether to show (true) or hide (false) the surcharge confirmation screen on the payment terminal.
    excludeGratuityFromSurcharge Boolean Indicates whether to apply surcharges only to the purchase amount (true) or to the total of purchase amount and tip amount (false). Set this parameter to true if your country/region prohibits deducting charges from the tips that customers leave for the employees.
    configurations Array[Object] Array of payment methods for which to apply surcharges. Each payment method is an array item that includes details about how to apply the surcharge.
    The order of array items inside the configurations array impacts the order of execution. The condition that is met first is executed without checking the rest of the configuration.

    For each array item in the configurations object, specify:

    Parameter Required Description
    brand -white_check_mark- A payment method supported for Management API, for example eftpos_australia or mc.
    currencies -white_check_mark- An object with:
    • currencyCode: (required) the three-character ISO currency code.
    • percentage: surcharge percentage per transaction up to two decimal places. For example, 1% or 2.27%.
    • amount: surcharge amount per transaction, in minor units.
    • maxAmount: the maximum surcharge amount per transaction, in minor units.

    This object must contain the currencyCode and a percentage or an amount (or both).
    sources Can be: Credit or Debit. If not specified, the currencies settings apply to all possible funding sources for the brand.
    country The country/region of the issuer, in two-letter ISO 3166-1 alpha-2 country code format. If used, the surcharge settings only apply if the payment method was issued in that country/region.
    commercial Set to true to indicate that the surcharge should be applied only in case of a commercial/business card. If not specified, the default value false is used. This setting is important in countries/regions where a surcharge is not allowed for consumer cards.
    This check is not supported on mobile devices used in a Mobile solution. On payment terminals this check is not supported when the internet connection is down.

    The response returns the surcharge settings as well as all other terminal settings at the level where you made the request.

  4. (Optional) Ask our Support Team to configure single tap. When this feature is enabled, the customer doesn't need to present their contactless card again after the terminal has calculated the total amount.

    When accepting payments with surcharges using Tap to Pay on a mobile device, only the single tap flow is available. Ask our Support Team to configure single tap.

Book the surcharge to your user

To ensure the automatically calculated surcharge is booked to your user's balance account

  1. When you gather the split instructions for the payment, add a split item for the surcharge:

    • Increase the split.nrOfItems by one, to accommodate the surcharge split item you are adding.
    • In the split item for the surcharge, specify:

      Key Description
      split.item[ITEM_NUMBER].type The type of split. Set this to Surcharge.
      split.item[ITEM_NUMBER].account The account that will receive the surcharge. This is the balanceAccountID of one of your user's balance accounts.
      You cannot split the surcharge between multiple balance accounts.
      split.item[ITEM_NUMBER].reference Your reference for the surcharge, reflected in the Balance Platform Accounting Report.
      split.item[ITEM_NUMBER].description Your description of the surcharge, reflected in the Balance Platform Accounting Report.

    Because the surcharge amount is only calculated after the customer presents their card, you do not need to include a surcharge amount in the split.totalAmount field or add a split.item[ITEM_NUMBER].amount field for the surcharge.

  2. Format the split data in one of the following ways:

    • Option 1: as a string of form-encoded key-value pairs (using & as a separator).
    • Option 2: as a JSON object converted to a Base64-encoded string.

    As an example, we use a payment of USD 626.00 that is split into:

    • USD 600.00 to be booked to your user's first balance account as the sale amount.
    • USD 20.00 to be booked to your liable account as your platform's commission.
    • The payment fee to be booked to your user's first balance account. This will be deducted from the sale amount.
    • USD 6.00 to be booked to your user's first balance account as the surcharge.

    In this case, the split.nrOfItems is 4 and the split.totalAmount is 62000 because the amounts for the payment fee and the surcharge are not known when sending the request.

  3. Make a Terminal API payment request, passing the formatted string of split instructions in the SaleToAcquirerData field of the PaymentRequest object.

  4. In the PaymentResponse note the following:

    • POIData.POITransactionID.TransactionID: The transaction identifier in the format tenderReference.pspReference. Use the PSP reference to keep track of the payment.
    • PaymentResult.AmountsResp:
      • TotalFeesAmount: The surcharge amount.
      • AuthorizedAmount: The total authorized amount, consisting of the original amount plus the surcharge amount.
    • Response.AdditionalResponse:

      • posAuthAmountValue: The total authorized amount in minor units.
      • surchargeAmount: The surcharge amount in minor units.

Opting out for MOTO and MKE

With terminal software version v1.117 and later, the surcharge configuration that you set up also applies to Mail Order/Telephone Order (MOTO) and Manual Key Entry (MKE) payments.

If you have previously developed your own solution for surcharging MOTO and MKE payments, there is a risk of double surcharging: once through the surcharge configuration, and once through your own solution. To avoid this issue, you can opt out of the Adyen surcharge feature for MOTO and MKE payments. You can set this on any level: company account, merchant account, store, or individual payment terminals.

Reach out to your Adyen account manager or technical contact if you want to opt out.

See also