--- title: "Processing online payments" description: "Learn how to split transactions with your account holders." url: "https://docs.adyen.com/classic-platforms/processing-payments" source_url: "https://docs.adyen.com/classic-platforms/processing-payments.md" canonical: "https://docs.adyen.com/classic-platforms/processing-payments" last_modified: "2021-08-26T13:50:00+02:00" language: "en" --- # Processing online payments Learn how to split transactions with your account holders. [View source](/classic-platforms/processing-payments.md) This page is for classic Adyen for Platforms integrations. If you are just starting your implementation, refer to our [new integration guide](/adyen-for-platforms-model) instead. With every payment, capture, or refund on Adyen for Platforms, you can split the funds between any number of [accounts in your platform](/classic-platforms/account-structure/#your-platform), including your liable account. For example, when a customer pays on your platform, you can split the funds so that a portion goes to your liable account as platform fee, and the sale amount goes to the account holder's account. You can [provide split instructions through API requests](#providing-split-instructions), or if your integration processes payments through stores, you can also [create a split configuration](/classic-platforms/processing-payments/split-data-in-additionaldata) to automatically split payments. If you do not provide split instructions, the payments and all associated fees are booked to your platform's liable account. ### Supported payment methods Adyen for Platforms supports a wide range of payment methods, such as major card brands (Visa, Mastercard, American Express, Discover/Diners), Apple Pay, Google Pay, SEPA, iDEAL, and more. Restrictions may apply where Adyen is not in the settlement flow. Reach out to your sales manager to confirm. ## Providing split instructions through API requests You can split an incoming or outgoing fund transfer into a maximum of 1000 split items, booked to different [accounts in your platform](/classic-platforms/account-structure/#your-platform), including your liable account. You can provide split instructions: * [At the time of payment](#processing-split-payments). * When [capturing](#split-at-capture) a payment. * When [refunding](#split-a-refund) a payment. To split funds, you'll need to send the [splits](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments#request-splits) array. For each split object in the array, you need to specify the following fields: * [account](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments#request-splits-account): The [accountCode](https://docs.adyen.com/api-explorer/Account/latest/post/getAccountHolder#responses-200-accounts-accountCode) of the account where the split amount will be sent. * [amount.value](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments#request-splits-amount-value): The split amount. * [type](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments#request-splits-type): When sending the amount to any other account in your platform, set the type to **MarketPlace**. Other types such as **Commission** or **VAT** sends the split amount to your liable account. * [reference](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments#request-splits-reference): Your unique identifier for the split. While this field is only required in the API if `type` is **MarketPlace**, we strongly recommend that you send a reference for all other types. You can use the reference to reconcile the split and the associated payment in the transaction overview and in the [reports](/classic-platforms/reconciliation-use-cases). Without a reference, the amounts are merged and you will be unable to reconcile the split. For example, when a customer pays for goods on your platform for USD 400.00, you can split the payment such that: * USD 300.00 goes to the seller's account as payment for the goods. You'll send the payment to the account of the seller account holder with `accountCode` **8516026831348764**. * USD 100.00 goes to your liable account as your platform's commission. **Structure of a splits array** ```json { "splits":[ { "amount":{ "value":30000 }, "type":"MarketPlace", "account":"8516026831348764", "reference":"QXhlbFN0b2x0ZW5iZXJnCg" }, { "amount":{ "value":10000 }, "type":"Commission", "reference":"THVjYXNCbGVkc29lCg" } ] } ``` ### Validating split instructions Adyen frontend systems only validate the format of the split instructions. The accounts provided in split instructions are **not** validated by the frontend. If you provide split instructions with an account that does not exist, or an account belonging to an account holder with a [**Closed** status](/classic-platforms/verification-process#account-holder-statuses), the full amount of the transaction will be sent to the liable account regardless of the original split instructions. You will receive a [PAYMENT\_FAILURE](https://docs.adyen.com/api-explorer/#/NotificationService/latest/PAYMENT_FAILURE) notification of the failed split. You can use [Fund transfer](/classic-platforms/fund-transfer) to correct any account balances. ## Split at payment To split funds at the time of payment, [provide split instructions](#providing-split-instructions) in your POST [/payments](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments) request. You can send split instructions regardless of your [PCI compliance level](/get-started-with-adyen/adyen-glossary/#pci-compliance). If you do not know what the total split will look like for your account holders at the time of a payment, you can skip providing any split instructions at payment and instead [provide split instructions at capture](#split-at-capture). Split data provided at capture overrides any split instructions provided with the initial payment request. Below is an example of a [/payments](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments) request with split instructions. To make test payments, refer to [Test card numbers](/development-resources/test-cards-and-credentials/test-card-numbers). **Split funds at time of payment** ```bash # Set your X-API-KEY with the API key from the Customer Area. curl https://checkout-test.adyen.com/v72/payments \ -H 'x-api-key: ADYEN_API_KEY' \ -H 'content-type: application/json' \ -d '{ "paymentMethod": { "type": "scheme", "number": "4111111111111111", "cvc": "737", "expiryMonth": "03", "expiryYear": "2030", "holderName": "John Smith" }, "amount": { "value": 40000, "currency": "USD" }, "reference": "YOUR_ORDER_NUMBER", "merchantAccount": "YOUR_MERCHANT_ACCOUNT", "returnUrl": "https://your-company.example.com/...", "splits":[ { "amount":{ "value":30000 }, "type":"MarketPlace", "account":"8516026831348764", "reference":"QXhlbFN0b2x0ZW5iZXJnCg" }, { "amount":{ "value":10000 }, "type":"Commission", "reference":"THVjYXNCbGVkc29lCg" } ] }' ``` ### Payment statuses Once a payment has reached the **SentForSettle** state, the transaction will show up in the account as a **PENDING\_CREDIT** transaction. Once Adyen has received the funds for the payment, the transaction will be updated to **CREDITED** and the funds will be available to [pay out on the account](/classic-platforms/payouts). You can always look at the transaction associated with all accounts on a account holder using the [/accountHolderTransactionList](https://docs.adyen.com/api-explorer/Fund/latest/post/accountHolderTransactionList) call. ## Split at capture If you do not know the final split amounts at the time of payment, you can provide split instructions with in your [/payments/{paymentPspReference}/captures](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments/\(paymentPspReference\)/captures) request. You can only split at capture for payment methods that support [separate captures](/online-payments/capture). For example, you cannot split at capture for [iDEAL](/payment-methods/ideal) payments, because iDEAL does not support separate captures. Providing split instructions at capture overrules data from the original payment request. If you do not send split instructions in the capture request, then we'll use the split instructions from the payment authorization. Partial captures require you to supply split instructions. If you do not provide split instructions, then all the funds to go to the liable account. **Split funds at capture** ```bash # Set your X-API-KEY with the API key from the Customer Area. curl https://checkout-test.adyen.com/v72/payments/{paymentPspReference}/captures \ -H 'x-api-key: ADYEN_API_KEY' \ -H 'content-type: application/json' \ -d '{ "merchantAccount": "YOUR_MERCHANT_ACCOUNT", "amount": { "value": 599, "currency": "EUR" }, "reference": "YOUR_REFERENCE_NUMBER", "splits":[ { "amount":{ "value":399 }, "type":"MarketPlace", "account":"151272963", "reference":"Partial capture #1" }, { "amount":{ "value":200 }, "type":"MarketPlace", "account":"181472818", "reference":"Partial capture #2" } ] }' ``` ## Split a refund We recommend that you always provide split instructions in refunds so that you are always in control and can support different refund scenarios, such as partial and multiple partial refunds. ### Tab: Provide split instructions (Recommended) Send split instructions in your refund request to support different refund scenarios, such as a partial and multiple partial refunds. When sending split instructions on a refund request, you must: * Only use accounts that were part of the original split. * Use the same `reference` values from the original split. For example, let's split a USD 10 payment with USD 2 going to your liable account and USD 8 going to `account` **12345.** If you provide a split `reference` of **splitId\_1** for the payment, then on the refund, you will need to use the same split `reference` of **splitId\_1**. Here is the example [/payments](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments) request of USD 10 with USD 2 going to your liable account and USD 8 to `account` **12345**. **Make a payment with split instructions** ```bash # Set your X-API-KEY with the API key from the Customer Area. curl https://checkout-test.adyen.com/v72/payments \ -H 'x-api-key: ADYEN_API_KEY' \ -H 'content-type: application/json' \ -d '{ "paymentMethod":{ "type":"scheme", "number":"4400 0000 0000 0008", "expiryMonth":"03", "expiryYear":"2030", "holderName":"John Smith", "cvc":"737" }, "amount":{ "value":1000, "currency":"USD" }, "reference":"YOUR_REFERENCE_NUMBER", "merchantAccount":"YOUR_MERCHANT_ACCOUNT", "returnUrl":"https://your-company.example.com/...", "splits":[ { "amount":{ "value":200 }, "type":"Commission", "reference":"splitId_1_commission" }, { "amount":{ "value":800 }, "type":"MarketPlace", "account":"12345", "reference":"splitId_1" } ] }' ``` This following example would be the refund of that payment if you were going to split the refund with USD 5 from your liable account and USD 5 from `account` **12345**. Here is an example [/payments/{paymentPspReference}/refunds](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments/\(paymentPspReference\)/refunds) request. **Split a refund with different data** ```bash # Set your X-API-KEY with the API key from the Customer Area. curl https://checkout-test.adyen.com/v72/payments/{paymentPspReference}/refunds \ -H 'x-api-key: ADYEN_API_KEY' \ -H 'content-type: application/json' \ -d '{ "reference":"YOUR_REFERENCE_NUMBER", "merchantAccount":"YOUR_MERCHANT_ACCOUNT", "amount":{ "value":1000, "currency":"USD" }, "splits":[ { "amount":{ "value":500 }, "type":"Commission", "reference":"splitId_1_commission" }, { "amount":{ "value":500 }, "type":"MarketPlace", "account":"12345", "{hint:This is the same reference used in the split payment}reference{/hint}":"splitId_1" } ] }' ``` ### Tab: Use split instructions from payment authorization A refund without split instructions uses the original information from the payment authorization. Only leave the split instructions empty in the following conditions: * The refund amount is the same as the authorized amount. * The payment authorization contained split instructions. * You want to debit the amount based on the original split. If the payment authorization did not have split instructions, by default the full refund amount is debited from the liable balance account. To split a refund using the original split instructions, send a refund request without any split instructions. The refund uses the split instructions from the authorization, *not* the split instructions from a capture. Here is an example [/payments/{paymentPspReference}/refunds](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments/\(paymentPspReference\)/refunds) request without providing split instructions. **Split a refund using the original split instructions** ```bash # Set your X-API-KEY with the API key from the Customer Area. curl https://checkout-test.adyen.com/v72/payments/{paymentPspReference}/refunds \ -H 'x-api-key: ADYEN_API_KEY' \ -H 'content-type: application/json' \ -d '{ "reference":"YOUR_REFERENCE_NUMBER", "merchantAccount":"YOUR_MERCHANT_ACCOUNT", "amount":{ "value":599, "currency":"USD" } }' ``` ## Chargeback and disputes You are responsible for all disputes and [dispute management](/risk-management/understanding-disputes). This includes providing first line support to your sub-merchants and the customers of your platform, clearly communicating your contact details on your website or app, and managing all disputes between your customers and your sub-merchants. ### Split chargebacks Chargebacks, by default, deduct according to original split instructions. Where a chargeback reversal amount does not match the payment amount, funds are deducted entirely from your liable account. You can [transfer funds](/classic-platforms/fund-transfer) to correct any account balances. If you want to configure your platform to deduct chargebacks entirely from your liable account instead, reach out to our [Support Team](https://ca-test.adyen.com/ca/ca/contactUs/support.shtml?form=other). When your platform is liable for chargebacks, you can also book the full amount of chargebacks or chargeback reversals entirely from your liable account regardless of the split. To enable this functionality, contact our [Support Team](https://ca-test.adyen.com/ca/ca/contactUs/support.shtml?form=other). ## Next steps [Pay out to bank accounts](/classic-platforms/payouts) [Make scheduled or one-off payouts to bank accounts.](/classic-platforms/payouts) [Pay out to cards](/classic-platforms/payouts/manual-payout/payout-to-cards) [Make one-off payouts to cards.](/classic-platforms/payouts/manual-payout/payout-to-cards)