# Pass Processing Fees to Sub-Accounts

## Overview

As described in the [Fees](/documentation/overview/core_concepts/fees) section, Main Account holders can choose to **pass on their Processing Fees to their Sub-Account** holders. This means that when a transaction occurs, the fees associated with that transaction can be charged to the Sub-Account holder instead of the Main Account holder.

This feature is not enabled by default. Please contact support if you want to make use of them.

## Fee Types

There are various fees associated with processing a payment that can be passed on to Sub-Accounts, depending on the chosen pricing model.

| Fee | Description | Pricing Model |
|  --- | --- | --- |
| **gatewayFee** | Any fixed cost incurred by Ryft for processing the transaction with the payment gateway | Blended, ICC++ |
| **processor** | The Ryft's processing fee markup | Blended, ICC++ |
| **interchange** | The fee paid to the card issuer for each transaction within the card network | ICC++ |
| **network** | The fee paid to the card scheme (e.g. Visa or Mastercard) for using their network | ICC++ |
| **miscPassThrough** | The various miscellaneous fees that are passed through from third parties | ICC++ |
| **combined** | An aggregate field which refers to all of the above. This can be used to request that all fees be charged to a given sub account | ICC++ |


## Platform Fee Model

When using the **Platform Fee** model, you can choose to pass on the Processing fees to the Sub-Account by setting the `paymentSettings.platform.paymentFees.<any_of_the_above_fee_type>.bookTo.<sub_account_id>` field when creating a Payment Session as shown below:

```json Platform Fee Model - Pass Fees - Payload Example
{
  // Same as previous Platform Fee example
  "amount": 2050,
  "currency": "GBP",
  "customerEmail": "customer@mail.com",
  "platformFee": 205,
  // Pass Processing Fees to Sub-Account
  {
  "paymentSettings": {
    "platform": {
      "paymentFees": {
        "combined": {"bookTo": "ac_XXXXXXX"}  // Sub-Account ID
      }
    }
  }
}
```

In the example above, **any** Processing fee (set by the `combined` keyword) will be passed on to the **Sub-Account**, which will receive the total amount for their food order (£20.50), minus the Platform Fee (£2.05), minus any Processing Fee.

With this set-up, the **Main Account** will receive the total amount of Platform Fee of £2.05 without any other deductions.

## Split Payment Model

When using the **Split Payment** model, you can choose to pass on the Processing fees to the Sub-Account(s) by setting the `paymentSettings.platform.paymentFees.<any_of_the_above_fee_type>.bookTo.<sub_account_id>` field when creating a Payment Session as shown below:

```json Split Payment Model - Pass Fees - Payload Example
{
  // Same as previous Split Payment example
  "amount": 7100,
  "currency": "GBP",
  "customerEmail": "customer@mail.com",
  "splits": {
    "items": [
      {
        "accountId": "ac_123456789",  // Restaurant A
        "amount": 2800,
        "fee": {"amount": 280}
      },
      {
        "accountId": "ac_246810121",  // Restaurant B
        "amount": 2900,
        "fee": {"amount": 290}
      },
      {
        "accountId": "ac_369121518",  // Restaurant C
        "amount": 1400,
        "fee": {"amount": 140}
      }
    ]
  },
  // Pass Processing Fees to Sub-Account
  {
    "paymentSettings": {
      "platform": {
        "paymentFees": {
          "combined": {"bookTo": "ac_123456789"}  // Restaurant A
        }
      }
    }
  }
}
```

In the example above, the `processor` fee will be passed on to the **Sub-Account related to Restaurant A**, which will receive the total amount for their food order (£14.00), minus the Platform Fee (£1.40), minus **any** Processing Fee.

With this set-up, the **Main Account** will receive the total amount of Platform Fee of £7.10 without any other deductions.

## Next Steps

To process a payment with Processing Fees passed to Sub-Accounts, no special SDK configuration is required. You can follow the steps outlined in the [Process Payments](/documentation/get_started/process_payments) guide.