# Platform Fee ## Overview The **Platform Fee** model allows Marketplace Main Account holders to designate a specific Sub-Account under which the payment will be routed. As the platform owner you can optionally choose how much to collect from the payment as your commission. For more information about Platform Fees, please refer to [this](/documentation/overview/payment_types/platform_fee_split_payments#platform-fee) page. ## Practical Example Let’s consider a customer placing an order through a food delivery platform. All items in the order belong to the same restaurant, which in Ryft is represented by a Sub-Account: | Quantity | Item Name | Item Price | | --- | --- | --- | | 1 | Margherita Pizza | £12.50 | | 2 | Garlic Bread | £3.00 | | 1 | Cola | £2.00 | | **Total** | | **£20.50** | In this scenario, the **Main Account** processes the payment on behalf of the **Sub-Account** (i.e. the restaurant). For providing the platform and facilitating the transaction, the Main Account decides to charge a **Platform Fee of 10%**, which in this case amounts to £2.05. ## Payment Session The related Payment Session considering this scenario when using the **Platform Fee** model will be structured as follows: Payload ```json paymentSessionCreate - Payload Example { "amount": 2050, "currency": "GBP", "customerEmail": "customer@mail.com", "platformFee": 205 } ``` Headers ```json paymentSessionCreate - Headers Example { "Authorization": "", "Account": "ac_XXXXXX" // Sub-Account ID } ``` With this set-up: - The **Customer** is charged exactly the amount specified in the `amount` field: £20.50 - The **Main Account** receives a Platform Fee of £2.05, minus any applicable Ryft processing fees - The **Sub-Account** (restaurant) receives £18.45, which is the total amount (£20.50) minus the Platform Fee (£2.05). The API will return a payload containing various details. Among these, the most important field is the `clientSecret` value, which will be required to process the payment. ## Dynamic Statement Descriptor A **Statement Descriptor** refers to the text displayed to customers on their bank statements and/or in banking apps. Its purpose is to help identify the specific merchant from whom the purchase was made. For marketplace payments, we strongly recommend providing a dynamic value that clearly reflects the Sub-Account involved in the transaction. A statement descriptor can be set during Payment Session creation by including the following fields: ```json paymentSessionCreate - Statement Descriptor Example { "statementDescriptor": { "descriptor": "ABC Pizza", "city": "London" } } ``` ## Viewing Platform Fee Payments in the Ryft Portal Payments created and processed using the **Platform Fee** model can be viewed in the Ryft Portal as follows: - For **Main Account** holders: - Via the **Platform Fee** page, or - On the **Payments** page by applying filters: set *Account Type* to *Sub-accounts* and enter the relevant Sub-Account ID. - For **Sub-Accounts onboarded using the Hosted** flow, via the **Payments** page. ## Next Steps - Process payment - see [here](/documentation/get_started/process_payments). - Update payment - see [here](/documentation/get_started/manage_payments). - View payment details - see [here](/documentation/get_started/portal/platform_fees).