Skip to content
Last updated

Pass Processing Fees to Sub-Accounts

Overview

As described in the 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.

FeeDescriptionPricing Model
gatewayFeeAny fixed cost incurred by Ryft for processing the transaction with the payment gatewayBlended, ICC++
processorThe Ryft's processing fee markupBlended, ICC++
interchangeThe fee paid to the card issuer for each transaction within the card networkICC++
networkThe fee paid to the card scheme (e.g. Visa or Mastercard) for using their networkICC++
miscPassThroughThe various miscellaneous fees that are passed through from third partiesICC++
combinedAn aggregate field which refers to all of the above. This can be used to request that all fees be charged to a given sub accountICC++

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:

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:

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 guide.