Marketpay icon

Transaction fees

Learn how to handle the fees incurred on a payment.

Transaction fees refer to the costs you incur on a transaction in your platform, that are not known at the time of payment. They are calculated by Adyen after we receive the /payments or /sessions request.

By default, these fees are deducted from your liable balance account. However, you can also book them directly your user. This is useful if you want to pass on the transaction fees, instead of settling this later by transferring funds between balance accounts. You can charge the following fees directly to your user:

  • Interchange
  • Scheme Fees
  • Adyen's Markup
  • Adyen's Commission

You can book these fees together to one balance account, or the separately to different balance account.

Processing fees and discounts due to tiered pricing structures cannot be booked directly to the user’s balance account since these are aggregated amounts (inclusive of refused and cancelled transactions) and cannot be allocated to individual payments.

Book the fees to your user

To pass transaction fees on to your user, submit a POST /payments or POST /sessions request with an additional split item in the splits array, specifying the following fields:

Parameter Required Description
account -white_check_mark- The unique identifier of the balance account from which all of the transaction fees must be deducted. You cannot split these fees between multiple balance accounts.
reference -white_check_mark- Your reference for the fees to help you reconcile your balances later.
description -white_check_mark- Your description for the fees to help you reconcile your balances later.
type -white_check_mark- The type of split. Set this to PaymentFee.

We recommend to always include a split item for the transaction fees in your payment or capture request, even if you book the fees against your liable balance account. That way, you can reconcile the fees per transaction using the Balance Platform Accounting Report.

For example, a split payment of USD 400.00 can be split into 3 parts:

  • USD 396.00 is the sale amount (booked to the user’s balance account: BA00000000000000000000001)
  • USD 4.00 is your platform’s commission (booked to your liable balance account).
  • The transaction fees are booked against the user's balance account (BA00000000000000000000001). This will be deducted from the sale amount.

The transaction fees are calculated automatically, so even if you provide an amount for this split item, it will be disregarded. Once the calculations are done, an an internal transfer request is triggered to deduct these fees from the specified balance account. The transfer request includes the type of fee, the currency and the amount charged. You can find a breakdown of the fees on the Payment details page of the transaction in the Customer Area, and in the Balance Platform Accounting Report.

Book transaction fees separately

This feature is in pilot phase. Reach out to your Adyen contact to enable it for your platform.

Transaction fee types

You can book different types of transaction fees to different balance accounts in your platform. Depending on whether you want to aggregate fees or book individual fee types to specific balance accounts, you can include additional split items with a different type in your request.

Type Aggregated fees Description
PaymentFee -white_check_mark- Books the aggregated amount of all transaction fees to the specified balance account.
AcquiringFees -white_check_mark- Books the aggregated amount of the Interchange and Scheme fees to the specified balance account.
Interchange Books the Interchange fees to the specified balance account.
SchemeFee Books the Scheme fees to the specified balance account.
AdyenFees -white_check_mark- Books the aggregated amount of Adyen's Commission and Markup to the specified balance account.
AdyenCommission Books Adyen's Commission to the specified balance account.
AdyenMarkup Books Adyen's Markup to the specified balance account.

The following diagram shows how the transaction fee types relate to each other.

If you send a payment request with multiple split items for different transaction fee types, they are processed based on the granularity of the fee type. The booking instructions sent for more granular fee types override the instructions for the aggregated fees.

Type Behaviour
PaymentFee If another fee type is sent in the request as well, it overrides part of the instructions sent for PaymentFee: that specific fee type is booked to another balance account, while the remaining fee types are booked to the balance account specified for PaymentFee.
AcquiringFees Overrides part of the instructions sent for the PaymentFee split type, booking the Interchange and Scheme fees to another balance account.
Interchange Overrides part of the instructions sent for the PaymentFee or AcquiringFees split types, booking the Interchange to another balance account.
SchemeFee Overrides part of the instructions sent for the PaymentFee or AcquiringFees split types, booking the Scheme fees to another balance account.
AdyenFees Overrides part of the instructions sent for the PaymentFee split type, booking Adyen's Commission and Markup to another balance account.
AdyenCommission Overrides part of the instructions sent for the PaymentFee or AdyenFees split type, booking Adyen's Commission to another balance account.
AdyenMarkup Overrides part of the instructions sent for the PaymentFee or AdyenFees split type, booking Adyen's Markup to another balance account.

For example, you can include two split items for transaction fees in your payment request: one with type PaymentFee booked to your user's balance account, and another with type AdyenMarkup booked to your platform's liable balance account.

If only the PaymentFee were specified in the request, all transaction fees would be booked to the same balance account, because PaymentFee aggregates all fee types, including the Markup. However, because AdyenMarkup is also sent in the request, and it's on a more granular level than PaymentFee, AdyenMarkup overrides PaymentFee for booking the Markup. This means that the Interchange, Scheme fee, and Adyen's Commission are booked to BA00000000000000000000001, while the Markup is booked to BA00000000000000000LIABLE.

The example shows:

  • A split payment request in which the transaction fees are booked to different balance accounts.
  • The API response for the successful payment.

The following sections will discuss the webhooks you receive for the transaction fees, and how these appear in your reports.

Payment request

In this example, you send a payment request for EUR 400.00 split four ways:

  1. EUR 396.00 is booked to your user's balance account as payment for the goods or services rendered.
  2. EUR 4.00 is booked to your liable balance account as your platform's commission.
  3. The Interchange and Scheme fees are booked to your user's balance account.
  4. Adyen's Commission and Markup are booked to your liable balance account.

Payment response

In the response, note that your reference from the request is returned as the merchantReference. You need this information for reconciliation.

Webhooks

After the transaction fees are calculated, you receive balancePlatform.transfer.created and balancePlatform.transfer.updated webhooks for each split type you sent in the payment request.

  1. Once the acquiring fees are calculated, Adyen sends a balancePlatform.transfer.created webhook with direction outgoing, to announce that the acquiring fees will be deducted from your user's balance account. This is the aggregated amount of the interchange and scheme fees.

  2. When the transfer request for the acquiring fees is authorised, Adyen sends a balancePlatform.transfer.updated webhook with status authorised.

  3. When the funds are deducted from your user's balance account, Adyen sends a balancePlatform.transfer.updated webhook with status captured and the transactionId.

Reports and reconciliation

In the Balance Platform Accounting Report, all transaction fee type groups (PaymentFee, AcquiringFees, AdyenFees) have their own rows. In the Amount column on these fee types, we show the aggregated amount of the fees contained in that specific group. For example, the row for all acquiring fees contains the sum of the interchange and scheme fee incurred by the transaction. However, the transaction fee types are also displayed separately, on the highest level, in the four Platform Payment columns (Interchange, Scheme Fee, Markup, Commission).

Here you can download a sample report that would be generated based on the example payment request above.

See also