Sub-entity payments
Once your sub-entity's payment capabilities have been enabled, you can process payments on behalf of them through our Unified Payments API.
Only Visa and Mastercard payments are currently supported for marketplaces and payment facilitators.
On this page, we explain how to:
- Link a payment with a sub-entity
- Charge a commission on each payment
- Request a payment for a single sub-entity or multiple sub-entities (a split payment)
We also explain what happens when you refund a split payment.
Link a payment with a sub-entity
When processing a payment on behalf of a sub-entity, you use our Unified Payments API as normal. Create a payment request for the total purchase amount and include all relevant fields using our POST/payments
endpoint. See our API reference for all required and optional fields.
However, so we know the payment is on behalf of your sub-entity, you also need to provide the sub-entity's ID.
There are two methods for associating a payment with the correct sub-entity. You can only use one method at a time.
In the marketplace
object:
- Using the
sub_entity_id
field.PayFacs only - Using the
id
field in thesub_entities
array.
The sub-entity ID is returned during the onboarding process.
Charge a sub-entity commission
There are three ways to charge commission on your sub-entities' payments:
- Fixed commission amount in minor currency units
- Variable commission in percentage
- Compound commission – both a fixed and variable commission together
You can only charge commission if you use the marketplace.sub_entities
array.
Request a payment for a single sub-entity
Use our POST/payments
endpoint to provide the payment details as normal.
You can use either option to request a payment for a single sub-entity – the single marketplace.sub_entity_id
string or marketplace.sub_entities
array. However, if you would like to charge a commission, you must use the array.
To associate this payment with the correct sub-entity, use the marketplace
object and provide the ID in the sub_entity_id
field.
{"amount":1000,"currency":"GBP","reference":"ORD-5023","description":"Three chocolate donuts","capture":true,"source":{"type":"card","number":"4242424242424242","expiry_month":11,"expiry_year":2024,"cvv":"100"},"processing_channel_id":"pc_yghfzjebuiwelerjsk3atodrey","marketplace":{"sub_entity_id":"ent_vv2jjkuf2gzj5tcw2x7ptua7zy"}}
processing_channel_id
corresponds to a specific MCC that you are set up to process payments for. Your processing channel IDs will be provided to you after we have completed your setup.
Request a payment for multiple sub-entities
When a customer uses your platform to buy items from multiple sub-entities, you need to request one payment from the customer, and then split that amount appropriately across the different sub-entities. You may also want to take a commission from each sub-entity for facilitating the transaction on your platform. This is known as a split payment.
How to split a payment
Include all relevant fields using our POST/payments
endpoint.
In the marketplace
object, include the sub_entities
array. This is an array of objects, where each object specifies:
- The ID of the sub-entity
- The amount for that sub-entity
- An optional Platform commission
- An optional reference to identify the split later
The sum of all split amounts must be equal to the payment amount.
Split payments example scenario
A customer makes a purchase of £100. The split payment contains three splits, which look like:
- Sub-entity A: £30 for a shirt
- Sub-entity B: £50 for trainers
- Sub-entity C: £20 for socks
If you charge a commission, it will be applied to each split, and cannot exceed the split amount.
Remember our APIs work in the minor currency unit.
Request example
In the example request below, we take the split shown above and demonstrate three ways you can split the payment and specify commission for your platform:
- Fixed commission amount: Charge the sub-entity in this split a fixed commission amount of £2. This sub-entity would receive £28, and you would receive £2 in your currency account.
- Variable commission: Charge the sub-entity in this split a fee of 1.5%. This sub-entity would have 1.5% of £50 deducted, so would receive £49.25. You would receive 75p in your currency account.
- Compound commission: Charge the sub-entity in this split a fee of 1.5%, plus a fixed fee of £2. This sub-entity would have 1.5% of £20 deducted, plus another £2 deducted, so would receive £17.70. You would receive £2.30 in your currency account.
{"source": {"type": "token","token": "tok_4gzeau5o2uqubbk6fufs3m7p54"},"amount": 10000,"currency": "GBP","reference": "ORD-5023-4E89","description": "Multi-seller basket","processing_channel_id": "pc_hpswyyx23geezflc2ocz3exn4y","marketplace": {"sub_entities": [//Fixed commission amount{"id": "ent_pj6fv2w2wchfedchjjyobb4bni","amount": 3000,"reference": "SALE-7627-8389","commission": {"amount": 200}},//Commission percentage{"id": "ent_kjx3tob2sxtl44wb7q7alwdu2m","amount": 5000,"reference": "SALE-1729-3782","commission": {"percentage": 1.5}},//Fixed commission amount + commission percentage{"id": "ent_kklowryxmczwyoqe4z7yvcbwvy","amount": 2000,"reference": "SALE-2127-9735","commission": {"amount": 200,"percentage": 1.5,}}]}}
Response examples
If you receive a successful response, the payment will be automatically associated with the correct sub-entity. A sub-entity's funds will be held in their currency account (as per their default holding currency set up during onboarding). Your commissions will be held in your Platform currency account (set up during your own onboarding with our Platforms solution).
All Checkout fees for processing payments will be charged to you (the platform).
{"id": "pay_kwrzpz644g6uxmdkpe5u6ruecm","action_id": "act_ehwckitpyywunkxzou4e64iwhm","amount": 1000,"currency": "GBP","approved": true,"status": "Authorized","auth_code": "935891","response_code": "10000","response_summary": "Approved","balances": {"total_authorized": 1000,"total_voided": 0,"available_to_void": 1000,"total_captured": 0,"available_to_capture": 1000,"total_refunded": 0,"available_to_refund": 0},"risk": {"flagged": false},"source": {"id": "src_nr35hmfxonjuvkykmuqirkgaoy","type": "card","expiry_month": 10,"expiry_year": 2030,"scheme": "Visa","last4": "6584","fingerprint": "50022A4E8D781BE774F239942C3BE78BA4E27DAF723AF559995749BE910A6E5D","bin": "448504","cvv_check": "Y","payment_account_reference": "V001959323431657433"},"processed_on": "2021-03-26T14:16:31.4428222Z","scheme_id": "314395993984285","processing": {"acquirer_transaction_id": "925794281492281823871","retrieval_reference_number": "645049548991"},"expires_on": "2021-04-25T14:16:31.4428222Z","_links": {"self": {"href": "https://api.sandbox.checkout.com/payments/pay_kwrzpz644g6uxmdkpe5u6ruecm"},"actions": {"href": "https://api.sandbox.checkout.com/payments/pay_kwrzpz644g6uxmdkpe5u6ruecm/actions"},"capture": {"href": "https://api.sandbox.checkout.com/payments/pay_kwrzpz644g6uxmdkpe5u6ruecm/captures"},"void": {"href": "https://api.sandbox.checkout.com/payments/pay_kwrzpz644g6uxmdkpe5u6ruecm/voids"}}}
When you make a payment, we will let you know what stage the payment is at through webhook notifications.
Refund a split payment
When you refund a payment that has been split, the refund amount will come from your currency account, not the sub-entity's.
Partial capture and incremental authorization
Our Unified Payments API allows you to adapt the standard payments flow. However, two features will not produce the desired effects on payments that have been split.
- Incremental authorization will have no effect. It's possible to extend a split payment's authorization validity period, but any extension to the amount will be ignored when the payment is captured.
- Partial capture will treat the payment as if there has been no split and will not be associated to any sub-entity.
Next steps
About making payouts
Full
sub-entities have payout capability. Use this page to find out what you can do.
Find out more
Accounts API
To get a detailed view of all required and optional fields, see our API reference.