--- title: "Pass-through settlement" description: "Learn how the pass-through settlement works." url: "https://docs.adyen.com/platforms/settle-funds/pass-through-settlement" source_url: "https://docs.adyen.com/platforms/settle-funds/pass-through-settlement.md" canonical: "https://docs.adyen.com/platforms/settle-funds/pass-through-settlement" last_modified: "2025-09-04T09:41:00+02:00" language: "en" --- # Pass-through settlement Learn how the pass-through settlement works. The pass-through settlement model is deprecated and not available for new integrations. See [Settle funds](/platforms/settle-funds) for information on sales day settlement. 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. The pass-through settlement model does not allow for reconciliation based on day totals. To [reconcile payments](/platforms/reconciliation-use-cases/reconcile-payments) with this model, you must track the payments in your [accounting reports](/platforms/reports-and-fees/balance-platform-accounting-report). ## How it works 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. 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. ![](/user/pages/reuse/pfs-payments/settle-funds/pass-through-settlement/pass-through-settlement.svg?decoding=auto\&fetchpriority=auto) ### Adjustments to the settlement Before settlement, Adyen adds or subtracts [refunds](/get-started-with-adyen/adyen-glossary/#refund-definition), [chargebacks](/get-started-with-adyen/adyen-glossary/#chargeback), 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. ## Settlement frequency 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. ## Configure pass-through settlement Pass-through settlement is enabled by default on a balance account. If you have configured [sales day settlement](/platforms/settle-funds) and want to revert to pass-through settlement, you can update the `platformPaymentConfiguration` object in a PATCH [/balanceAccounts/{id}](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/patch/balanceAccounts/{id}) request. The following code sample shows how to make this request. **Configure pass-through settlement on an existing balance account** #### curl ```bash curl https://balanceplatform-api-test.adyen.com/bcl/v2/balanceAccounts/BA00000000000000000000001 \ -H 'x-api-key: ADYEN_BALANCE_PLATFORM_API_KEY' \ -H 'content-type: application/json' \ -X PATCH \ -d '{ "platformPaymentConfiguration": { "salesDayClosingTime": "00:00", "settlementDelayDays": null } }' ``` #### Java ```java // Adyen Java API Library v26.2.0 import com.adyen.Client; import com.adyen.enums.Environment; import com.adyen.model.balancePlatform.*; import java.time.OffsetDateTime; import java.util.*; import com.adyen.service.balancePlatform.*; Client client = new Client("ADYEN_API_KEY", Environment.TEST); // Create the request object(s) PlatformPaymentConfiguration platformPaymentConfiguration = new PlatformPaymentConfiguration() .settlementDelayDays(null) .salesDayClosingTime("00:00"); BalanceAccountUpdateRequest balanceAccountUpdateRequest = new BalanceAccountUpdateRequest() .platformPaymentConfiguration(platformPaymentConfiguration); // Send the request BalanceAccountsApi service = new BalanceAccountsApi(client); BalanceAccount response = service.updateBalanceAccount("id", balanceAccountUpdateRequest, null); ``` #### PHP ```php // Adyen PHP API Library v18.2.0 use Adyen\Client; use Adyen\Environment; use Adyen\Model\BalancePlatform\PlatformPaymentConfiguration; use Adyen\Model\BalancePlatform\BalanceAccountUpdateRequest; use Adyen\Service\BalancePlatform\BalanceAccountsApi; $client = new Client(); $client->setXApiKey("ADYEN_API_KEY"); $client->setEnvironment(Environment::TEST); // Create the request object(s) $platformPaymentConfiguration = new PlatformPaymentConfiguration(); $platformPaymentConfiguration ->setSettlementDelayDays(null) ->setSalesDayClosingTime("00:00"); $balanceAccountUpdateRequest = new BalanceAccountUpdateRequest(); $balanceAccountUpdateRequest ->setPlatformPaymentConfiguration($platformPaymentConfiguration); // Send the request $service = new BalanceAccountsApi($client); $response = $service->updateBalanceAccount('id', $balanceAccountUpdateRequest); ``` #### C\# ```cs // Adyen .net API Library v16.1.0 using Adyen; using Environment = Adyen.Model.Environment; using Adyen.Model; using Adyen.Model.BalancePlatform; using Adyen.Service.BalancePlatform; var config = new Config() { XApiKey = "ADYEN_API_KEY", Environment = Environment.Test }; var client = new Client(config); // Create the request object(s) PlatformPaymentConfiguration platformPaymentConfiguration = new PlatformPaymentConfiguration { SettlementDelayDays = null, SalesDayClosingTime = "00:00" }; BalanceAccountUpdateRequest balanceAccountUpdateRequest = new BalanceAccountUpdateRequest { PlatformPaymentConfiguration = platformPaymentConfiguration }; // Send the request var service = new BalanceAccountsService(client); var response = service.UpdateBalanceAccount("id", balanceAccountUpdateRequest); ``` #### NodeJS (JavaScript) ```js // Adyen Node API Library v17.2.0 // Require the parts of the module you want to use const { Client, BalancePlatformAPI } = require('@adyen/api-library'); // Initialize the client object const client = new Client({apiKey: "ADYEN_API_KEY", environment: "TEST"}); // Create the request object(s) const balanceAccountUpdateRequest = { platformPaymentConfiguration: { salesDayClosingTime: "00:00", settlementDelayDays: null } } // Send the request const balancePlatformAPI = new BalancePlatformAPI(client); const response = balancePlatformAPI.BalanceAccountsApi.updateBalanceAccount("id", balanceAccountUpdateRequest); ``` #### Go ```go // Adyen Go API Library v10.2.0 import ( "context" "github.com/adyen/adyen-go-api-library/v9/src/common" "github.com/adyen/adyen-go-api-library/v9/src/adyen" "github.com/adyen/adyen-go-api-library/v9/src/balancePlatform" ) client := adyen.NewClient(&common.Config{ ApiKey: "ADYEN_API_KEY", Environment: common.TestEnv, }) // Create the request object(s) platformPaymentConfiguration := balancePlatform.PlatformPaymentConfiguration{ SettlementDelayDays: common.PtrInt32(null), SalesDayClosingTime: common.PtrString("00:00"), } balanceAccountUpdateRequest := balancePlatform.BalanceAccountUpdateRequest{ PlatformPaymentConfiguration: &platformPaymentConfiguration, } // Send the request service := client.BalancePlatform() req := service.BalanceAccountsApi.UpdateBalanceAccountInput("id").BalanceAccountUpdateRequest(balanceAccountUpdateRequest) res, httpRes, err := service.BalanceAccountsApi.UpdateBalanceAccount(context.Background(), req) ``` #### Python ```py # Adyen Python API Library v12.5.0 import Adyen adyen = Adyen.Adyen() adyen.client.xapikey = "ADYEN_API_KEY" adyen.client.platform = "test" # The environment to use library in. # Create the request object(s) json_request = { "platformPaymentConfiguration": { "salesDayClosingTime": "00:00", "settlementDelayDays": null } } # Send the request result = adyen.balancePlatform.balance_accounts_api.update_balance_account(request=json_request, id="id") ``` #### Ruby ```rb # Adyen Ruby API Library v9.5.0 require "adyen-ruby-api-library" adyen = Adyen::Client.new adyen.api_key = 'ADYEN_API_KEY' adyen.env = :test # Set to "live" for live environment # Create the request object(s) request_body = { :platformPaymentConfiguration => { :salesDayClosingTime => '00:00', :settlementDelayDays => null } } # Send the request result = adyen.balancePlatform.balance_accounts_api.update_balance_account(request_body, 'id') ``` #### NodeJS (TypeScript) ```ts // Adyen Node API Library v17.2.0 // Require the parts of the module you want to use import { Client, BalancePlatformAPI, Types } from "@adyen/api-library"; // Initialize the client object const client = new Client({apiKey: "ADYEN_API_KEY", environment: "TEST"}); // Create the request object(s) const platformPaymentConfiguration: Types.balancePlatform.PlatformPaymentConfiguration = { settlementDelayDays: null, salesDayClosingTime: "00:00" }; const balanceAccountUpdateRequest: Types.balancePlatform.BalanceAccountUpdateRequest = { platformPaymentConfiguration: platformPaymentConfiguration }; // Send the request const balancePlatformAPI = new BalancePlatformAPI(client); const response = balancePlatformAPI.BalanceAccountsApi.updateBalanceAccount("id", balanceAccountUpdateRequest); ``` **Response — Balance account updated with pass-through settlement** ```json { "accountHolderId": "AH00000000000000000000001", "defaultCurrencyCode": "EUR", "description": "S.Hopper - Main balance account", "platformPaymentConfiguration": { "salesDayClosingTime": "00:00" }, "timeZone": "Europe/Amsterdam", "balances": [ { "available": 0, "balance": 0, "currency": "EUR", "reserved": 0 } ], "id": "BA00000000000000000000001", "status": "active" } ``` The following table shows the parameters related to the pass-through settlement configuration: | Parameter | Type | Description | | ------------------------------ | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `platformPaymentConfiguration` | Object | Contains key-value pairs to the configure the settlement model in a balance account. | | `salesDayClosingTime` | String | Specifies 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"`. | | `settlementDelayDays` | Integer | Set this value to an integer to enable [sales day settlement](/platforms/settle-funds). | ## See also * [Settle funds](/platforms/settle-funds) * [Reconcile payments](/platforms/reconciliation-use-cases/reconcile-payments)