{"title":"Pass-through settlement","category":"default","creationDate":1605004500,"content":"<div class=\"sc-notice warning\"><div>\n<p>The pass-through settlement model is deprecated and not available for new integrations. See <a href=\"\/pt\/platforms\/settle-funds\">Settle funds<\/a> for information on sales day settlement.<\/p>\n<\/div><\/div>\n<p>With pass-through settlement, sales funds are settled according to the timelines of schemes and payment methods involved in the transaction. This means the funds from a sales day could be settled in more than one business day.<\/p>\n<p>The pass-through settlement model does not allow for reconciliation based on day totals. To <a href=\"\/pt\/platforms\/reconciliation-use-cases\/reconcile-payments\">reconcile payments<\/a> with this model, you must track the payments in your <a href=\"\/pt\/platforms\/reports-and-fees\/balance-platform-accounting-report\">accounting reports<\/a>.<\/p>\n<h2>How it works<\/h2>\n<p>Sales are assigned to a settlement batch as soon as the schemes or payment methods send the funds to Adyen. After the settlement batch closes, Adyen settles the funds on the next business day.<\/p>\n<p>For example, let's consider a balance account on pass-through settlement with a daily settlement frequency. The sales from Monday, January 1 are settled in separate batches over the subsequent days, from January 2 to January 7. Each settlement therefore contains funds from several sales days. The following image illustrates this example.<\/p>\n<p><img alt=\"\" src=\"\/user\/pages\/reuse\/pfs-payments\/settle-funds\/pass-through-settlement\/pass-through-settlement.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/p>\n<h3>Adjustments to the settlement<\/h3>\n<p>Before settlement, Adyen adds or subtracts <a href=\"\/pt\/get-started-with-adyen\/adyen-glossary\/#refund-definition\">refunds<\/a>, <a href=\"\/pt\/get-started-with-adyen\/adyen-glossary\/#chargeback\">chargebacks<\/a>, and other adjustments from the funds in the settlement batch. These adjustments are included as they occur, which can be in a different date from the sales day.<\/p>\n<h2 id=\"settlement-frequency\">Settlement frequency<\/h2>\n<p>Adyen settles any available funds daily on working days (Monday to Friday), excluding bank holidays. The settlement delay increases when a bank holiday falls on the capture day.<\/p>\n<h2>Configure pass-through settlement<\/h2>\n<p>Pass-through settlement is enabled by default on a balance account. If you have configured <a href=\"\/pt\/platforms\/settle-funds\">sales day settlement<\/a> and want to revert to pass-through settlement, you can update the <code>platformPaymentConfiguration<\/code> object in a PATCH <a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/balanceplatform\/latest\/patch\/balanceAccounts\/{id}\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/balanceAccounts\/{id}<\/a> request.<\/p>\n<p>The following code sample shows how to make this request.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Configure pass-through settlement on an existing balance account'\" :id=\"'pass-through-existing'\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;curl&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/balanceplatform-api-test.adyen.com\\\/bcl\\\/v2\\\/balanceAccounts\\\/BA00000000000000000000001 \\\\\\n-H 'x-api-key: ADYEN_BALANCE_PLATFORM_API_KEY' \\\\\\n-H 'content-type: application\\\/json' \\\\\\n-X PATCH \\\\\\n-d '{\\n    \\&quot;platformPaymentConfiguration\\&quot;: {\\n        \\&quot;salesDayClosingTime\\&quot;: \\&quot;00:00\\&quot;,\\n        \\&quot;settlementDelayDays\\&quot;: null\\n    }\\n}'&quot;},{&quot;language&quot;:&quot;java&quot;,&quot;tabTitle&quot;:&quot;Java&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Java API Library v26.2.0\\nimport com.adyen.Client;\\nimport com.adyen.enums.Environment;\\nimport com.adyen.model.balancePlatform.*;\\nimport java.time.OffsetDateTime;\\nimport java.util.*;\\nimport com.adyen.service.balancePlatform.*;\\n\\nClient client = new Client(\\&quot;ADYEN_API_KEY\\&quot;, Environment.TEST);\\n\\n\\\/\\\/ Create the request object(s)\\nPlatformPaymentConfiguration platformPaymentConfiguration = new PlatformPaymentConfiguration()\\n  .settlementDelayDays(null)\\n  .salesDayClosingTime(\\&quot;00:00\\&quot;);\\n\\nBalanceAccountUpdateRequest balanceAccountUpdateRequest = new BalanceAccountUpdateRequest()\\n  .platformPaymentConfiguration(platformPaymentConfiguration);\\n\\n\\\/\\\/ Send the request\\nBalanceAccountsApi service = new BalanceAccountsApi(client);\\nBalanceAccount response = service.updateBalanceAccount(\\&quot;id\\&quot;, balanceAccountUpdateRequest, null);&quot;},{&quot;language&quot;:&quot;php&quot;,&quot;tabTitle&quot;:&quot;PHP&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen PHP API Library v18.2.0\\nuse Adyen\\\\Client;\\nuse Adyen\\\\Environment;\\nuse Adyen\\\\Model\\\\BalancePlatform\\\\PlatformPaymentConfiguration;\\nuse Adyen\\\\Model\\\\BalancePlatform\\\\BalanceAccountUpdateRequest;\\nuse Adyen\\\\Service\\\\BalancePlatform\\\\BalanceAccountsApi;\\n\\n$client = new Client();\\n$client-&gt;setXApiKey(\\&quot;ADYEN_API_KEY\\&quot;);\\n$client-&gt;setEnvironment(Environment::TEST);\\n\\n\\n\\\/\\\/ Create the request object(s)\\n$platformPaymentConfiguration = new PlatformPaymentConfiguration();\\n$platformPaymentConfiguration\\n  -&gt;setSettlementDelayDays(null)\\n  -&gt;setSalesDayClosingTime(\\&quot;00:00\\&quot;);\\n\\n$balanceAccountUpdateRequest = new BalanceAccountUpdateRequest();\\n$balanceAccountUpdateRequest\\n  -&gt;setPlatformPaymentConfiguration($platformPaymentConfiguration);\\n\\n\\\/\\\/ Send the request\\n$service = new BalanceAccountsApi($client);\\n$response = $service-&gt;updateBalanceAccount('id', $balanceAccountUpdateRequest);&quot;},{&quot;language&quot;:&quot;cs&quot;,&quot;tabTitle&quot;:&quot;C#&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen .net API Library v16.1.0\\nusing Adyen;\\nusing Environment = Adyen.Model.Environment;\\nusing Adyen.Model;\\nusing Adyen.Model.BalancePlatform;\\nusing Adyen.Service.BalancePlatform;\\n\\nvar config = new Config()\\n{\\n    XApiKey = \\&quot;ADYEN_API_KEY\\&quot;,\\n    Environment = Environment.Test\\n};\\nvar client = new Client(config);\\n\\n\\\/\\\/ Create the request object(s)\\nPlatformPaymentConfiguration platformPaymentConfiguration = new PlatformPaymentConfiguration\\n{\\n  SettlementDelayDays = null,\\n  SalesDayClosingTime = \\&quot;00:00\\&quot;\\n};\\n\\nBalanceAccountUpdateRequest balanceAccountUpdateRequest = new BalanceAccountUpdateRequest\\n{\\n  PlatformPaymentConfiguration = platformPaymentConfiguration\\n};\\n\\n\\\/\\\/ Send the request\\nvar service = new BalanceAccountsService(client);\\nvar response = service.UpdateBalanceAccount(\\&quot;id\\&quot;, balanceAccountUpdateRequest);&quot;},{&quot;language&quot;:&quot;js&quot;,&quot;tabTitle&quot;:&quot;NodeJS (JavaScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v17.2.0\\n\\\/\\\/ Require the parts of the module you want to use\\nconst { Client, BalancePlatformAPI } = require('@adyen\\\/api-library');\\n\\\/\\\/ Initialize the client object\\nconst client = new Client({apiKey: \\&quot;ADYEN_API_KEY\\&quot;, environment: \\&quot;TEST\\&quot;});\\n\\n\\\/\\\/ Create the request object(s)\\nconst balanceAccountUpdateRequest = {\\n  platformPaymentConfiguration: {\\n    salesDayClosingTime: \\&quot;00:00\\&quot;,\\n    settlementDelayDays: null\\n  }\\n}\\n\\n\\\/\\\/ Send the request\\nconst balancePlatformAPI = new BalancePlatformAPI(client);\\nconst response = balancePlatformAPI.BalanceAccountsApi.updateBalanceAccount(\\&quot;id\\&quot;, balanceAccountUpdateRequest);&quot;},{&quot;language&quot;:&quot;go&quot;,&quot;tabTitle&quot;:&quot;Go&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Go API Library v10.2.0\\nimport (\\n  \\&quot;context\\&quot;\\n  \\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/common\\&quot;\\n  \\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/adyen\\&quot;\\n  \\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/balancePlatform\\&quot;\\n)\\nclient := adyen.NewClient(&amp;common.Config{\\n  ApiKey:      \\&quot;ADYEN_API_KEY\\&quot;,\\n  Environment: common.TestEnv,\\n})\\n\\n\\\/\\\/ Create the request object(s)\\nplatformPaymentConfiguration := balancePlatform.PlatformPaymentConfiguration{\\n  SettlementDelayDays: common.PtrInt32(null),\\n  SalesDayClosingTime: common.PtrString(\\&quot;00:00\\&quot;),\\n}\\n\\nbalanceAccountUpdateRequest := balancePlatform.BalanceAccountUpdateRequest{\\n  PlatformPaymentConfiguration: &amp;platformPaymentConfiguration,\\n}\\n\\n\\\/\\\/ Send the request\\nservice := client.BalancePlatform()\\nreq := service.BalanceAccountsApi.UpdateBalanceAccountInput(\\&quot;id\\&quot;).BalanceAccountUpdateRequest(balanceAccountUpdateRequest)\\nres, httpRes, err := service.BalanceAccountsApi.UpdateBalanceAccount(context.Background(), req)&quot;},{&quot;language&quot;:&quot;py&quot;,&quot;tabTitle&quot;:&quot;Python&quot;,&quot;content&quot;:&quot;# Adyen Python API Library v12.5.0\\nimport Adyen\\n\\nadyen = Adyen.Adyen()\\nadyen.client.xapikey = \\&quot;ADYEN_API_KEY\\&quot;\\nadyen.client.platform = \\&quot;test\\&quot; # The environment to use library in.\\n\\n# Create the request object(s)\\njson_request = {\\n  \\&quot;platformPaymentConfiguration\\&quot;: {\\n    \\&quot;salesDayClosingTime\\&quot;: \\&quot;00:00\\&quot;,\\n    \\&quot;settlementDelayDays\\&quot;: null\\n  }\\n}\\n\\n# Send the request\\nresult = adyen.balancePlatform.balance_accounts_api.update_balance_account(request=json_request, id=\\&quot;id\\&quot;)&quot;},{&quot;language&quot;:&quot;rb&quot;,&quot;tabTitle&quot;:&quot;Ruby&quot;,&quot;content&quot;:&quot;# Adyen Ruby API Library v9.5.0\\nrequire \\&quot;adyen-ruby-api-library\\&quot;\\n\\nadyen = Adyen::Client.new\\nadyen.api_key = 'ADYEN_API_KEY'\\nadyen.env = :test # Set to \\&quot;live\\&quot; for live environment\\n\\n# Create the request object(s)\\nrequest_body = {\\n  :platformPaymentConfiguration =&gt; {\\n    :salesDayClosingTime =&gt; '00:00',\\n    :settlementDelayDays =&gt; null\\n  }\\n}\\n\\n# Send the request\\nresult = adyen.balancePlatform.balance_accounts_api.update_balance_account(request_body, 'id')&quot;},{&quot;language&quot;:&quot;ts&quot;,&quot;tabTitle&quot;:&quot;NodeJS (TypeScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v17.2.0\\n\\\/\\\/ Require the parts of the module you want to use\\nimport { Client, BalancePlatformAPI, Types } from \\&quot;@adyen\\\/api-library\\&quot;;\\n\\\/\\\/ Initialize the client object\\nconst client = new Client({apiKey: \\&quot;ADYEN_API_KEY\\&quot;, environment: \\&quot;TEST\\&quot;});\\n\\n\\\/\\\/ Create the request object(s)\\nconst platformPaymentConfiguration: Types.balancePlatform.PlatformPaymentConfiguration = {\\n  settlementDelayDays: null,\\n  salesDayClosingTime: \\&quot;00:00\\&quot;\\n};\\n\\nconst balanceAccountUpdateRequest: Types.balancePlatform.BalanceAccountUpdateRequest = {\\n  platformPaymentConfiguration: platformPaymentConfiguration\\n};\\n\\n\\\/\\\/ Send the request\\nconst balancePlatformAPI = new BalancePlatformAPI(client);\\nconst response = balancePlatformAPI.BalanceAccountsApi.updateBalanceAccount(\\&quot;id\\&quot;, balanceAccountUpdateRequest);&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Response \u2014 Balance account updated with pass-through settlement'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n    \\\"accountHolderId\\\": \\\"AH00000000000000000000001\\\",\\n    \\\"defaultCurrencyCode\\\": \\\"EUR\\\",\\n    \\\"description\\\": \\\"S.Hopper - Main balance account\\\",\\n    \\\"platformPaymentConfiguration\\\": {\\n        \\\"salesDayClosingTime\\\": \\\"00:00\\\"\\n    },\\n    \\\"timeZone\\\": \\\"Europe\\\/Amsterdam\\\",\\n    \\\"balances\\\": [\\n        {\\n            \\\"available\\\": 0,\\n            \\\"balance\\\": 0,\\n            \\\"currency\\\": \\\"EUR\\\",\\n            \\\"reserved\\\": 0\\n        }\\n    ],\\n    \\\"id\\\": \\\"BA00000000000000000000001\\\",\\n    \\\"status\\\": \\\"active\\\"\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>The following table shows the parameters related to the pass-through settlement configuration:<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Parameter<\/th>\n<th style=\"text-align: left;\">Type<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><code>platformPaymentConfiguration<\/code><\/td>\n<td style=\"text-align: left;\">Object<\/td>\n<td style=\"text-align: left;\">Contains key-value pairs to the configure the settlement model in a balance account.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>salesDayClosingTime<\/code><\/td>\n<td style=\"text-align: left;\">String<\/td>\n<td style=\"text-align: left;\">Specifies at what time a sales day ends.<br>Possible values: Time in <code>HH:MM<\/code> format. <code>HH<\/code> ranges from <code>00<\/code> to <code>07<\/code> and <code>MM<\/code> must be <code>00<\/code>.<br>Default value: <code>\"00:00\"<\/code>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>settlementDelayDays<\/code><\/td>\n<td style=\"text-align: left;\">Integer<\/td>\n<td style=\"text-align: left;\">Set this value to an integer to enable <a href=\"\/pt\/platforms\/settle-funds\">sales day settlement<\/a>.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>See also<\/h2>\n<div class=\"see-also-links output-inline\" id=\"see-also\">\n<ul><li><a href=\"\/platforms\/settle-funds\"\n                        target=\"_self\"\n                        >\n                    Settle funds\n                <\/a><\/li><li><a href=\"\/platforms\/reconciliation-use-cases\/reconcile-payments\"\n                        target=\"_self\"\n                        >\n                    Reconcile payments\n                <\/a><\/li><\/ul><\/div>\n","url":"https:\/\/docs.adyen.com\/pt\/platforms\/settle-funds\/pass-through-settlement","articleFields":{"description":"Learn how the pass-through settlement works.","last_edit_on":"04-09-2025 09:41","parameters":{"directoryPath":"\/platforms","model":"platform"},"feedback_component":true,"filters_component":false,"decision_tree":"[]","page_id":"89b96d12-d4e8-4b2d-a665-b31810893288"},"algolia":{"url":"https:\/\/docs.adyen.com\/pt\/platforms\/settle-funds\/pass-through-settlement","title":"Pass-through settlement","content":"\nThe pass-through settlement model is deprecated and not available for new integrations. See Settle funds for information on sales day settlement.\n\nWith pass-through settlement, sales funds are settled according to the timelines of schemes and payment methods involved in the transaction. This means the funds from a sales day could be settled in more than one business day.\nThe pass-through settlement model does not allow for reconciliation based on day totals. To reconcile payments with this model, you must track the payments in your accounting reports.\nHow it works\nSales are assigned to a settlement batch as soon as the schemes or payment methods send the funds to Adyen. After the settlement batch closes, Adyen settles the funds on the next business day.\nFor example, let's consider a balance account on pass-through settlement with a daily settlement frequency. The sales from Monday, January 1 are settled in separate batches over the subsequent days, from January 2 to January 7. Each settlement therefore contains funds from several sales days. The following image illustrates this example.\n\nAdjustments to the settlement\nBefore settlement, Adyen adds or subtracts refunds, chargebacks, and other adjustments from the funds in the settlement batch. These adjustments are included as they occur, which can be in a different date from the sales day.\nSettlement frequency\nAdyen settles any available funds daily on working days (Monday to Friday), excluding bank holidays. The settlement delay increases when a bank holiday falls on the capture day.\nConfigure pass-through settlement\nPass-through settlement is enabled by default on a balance account. If you have configured sales day settlement and want to revert to pass-through settlement, you can update the platformPaymentConfiguration object in a PATCH \/balanceAccounts\/{id} request.\nThe following code sample shows how to make this request.\n\n    \n\n\n    \n\nThe following table shows the parameters related to the pass-through settlement configuration:\n\n\n\nParameter\nType\nDescription\n\n\n\n\nplatformPaymentConfiguration\nObject\nContains key-value pairs to the configure the settlement model in a balance account.\n\n\nsalesDayClosingTime\nString\nSpecifies at what time a sales day ends.Possible values: Time in HH:MM format. HH ranges from 00 to 07 and MM must be 00.Default value: \"00:00\".\n\n\nsettlementDelayDays\nInteger\nSet this value to an integer to enable sales day settlement.\n\n\n\nSee also\n\n\n                    Settle funds\n                \n                    Reconcile payments\n                \n","type":"page","locale":"pt","boost":17,"hierarchy":{"lvl0":"Home","lvl1":"Platforms","lvl2":"Settle funds","lvl3":"Pass-through settlement"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/pt","lvl1":"https:\/\/docs.adyen.com\/pt\/platforms","lvl2":"https:\/\/docs.adyen.com\/pt\/platforms\/settle-funds","lvl3":"\/pt\/platforms\/settle-funds\/pass-through-settlement"},"levels":4,"category":"Platforms","category_color":"green","tags":["Pass-through","settlement"]},"articleFiles":{"pass-through-settlement.svg":"<img alt=\"\" src=\"https:\/\/docs.adyen.com\/user\/pages\/docs\/05.platforms\/29.settle-funds\/03.pass-through-settlement\/pass-through-settlement.svg\" \/>"}}
