--- title: "Configure sales day closing time" description: "Learn how you can configure the closing time for a sales day." url: "https://docs.adyen.com/platforms/settle-funds/configure-closing-time" source_url: "https://docs.adyen.com/platforms/settle-funds/configure-closing-time.md" canonical: "https://docs.adyen.com/platforms/settle-funds/configure-closing-time" last_modified: "2026-05-23T12:56:20+02:00" language: "en" --- # Configure sales day closing time Learn how you can configure the closing time for a sales day. [View source](/platforms/settle-funds/configure-closing-time.md) By default, Adyen defines a sales day from midnight (00:00) to midnight of the next day (23:59) in the balance account's local timezone. You can configure your sales day to end later if your user's business closes after midnight. For example, a restaurant owner that operates from noon to 3:00 AM can set the sales day closing to 3:00 AM. This means that the sales day of that business starts at 3:01 AM and ends at 3:00 AM on the next day. ## Requirements Before you begin, take into account the following requirements, limitations, and preparations. | Requirement | Description | | ------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **[API credential roles](/development-resources/api-credentials/roles/)** | Make sure that you have the following role for the [Configuration API](https://docs.adyen.com/api-explorer/balanceplatform/latest/overview):- **Balance Platform BCL role** | | **[Webhooks](/development-resources/webhooks)** | Subscribe to the [Configuration webhooks](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/overview) to receive the following webhooks:- [balancePlatform.balanceAccount.created](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.balanceAccount.created) - [balancePlatform.balanceAccount.updated](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.balanceAccount.updated) | | **Limitations** | You can delay closing times until **7:00 AM**. The funds from certain payment methods or variants are settled according to the payment method's schedule, instead of the sales day closing time:- Affirm - maestro\_USA | ## Configure sales day closing time You can configure sales day settlements on new and existing balance accounts by using the [Configuration API](https://docs.adyen.com/api-explorer/balanceplatform/latest/overview) and including the `platformPaymentConfiguration` object in your request: * Use POST [/balanceAccounts](https://docs.adyen.com/api-explorer/balanceplatform/latest/post/balanceAccounts) when you create a balance account. * Use PATCH [/balanceAccounts/{id}](https://docs.adyen.com/api-explorer/balanceplatform/latest/patch/balanceAccounts/\(id\)) when you update a balance account. In the [platformPaymentConfiguration](https://docs.adyen.com/api-explorer/balanceplatform/latest/post/balanceAccounts#request-platformPaymentConfiguration) object, include the following parameters: | Parameter | Required | Description | | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [salesDayClosingTime](https://docs.adyen.com/api-explorer/balanceplatform/latest/post/balanceAccounts#request-platformPaymentConfiguration-salesDayClosingTime) | ![](/user/pages/reuse/pfs-payments/settle-funds/configure-closing-time/required.svg?decoding=auto\&fetchpriority=auto) | Specifies at what time a sales day ends. Possible values: Time in `"HH:MM"` format, where:- `HH` ranges from **00** to **07**. - `MM` must be **00**.Default value: **00:00**. | | [settlementDelayDays](https://docs.adyen.com/api-explorer/balanceplatform/latest/post/balanceAccounts#request-platformPaymentConfiguration-settlementDelayDays) | ![](/user/pages/reuse/pfs-payments/settle-funds/configure-closing-time/conditionally-required.svg?decoding=auto\&fetchpriority=auto) | Required if different from the default settlement delay applied to the merchant account. Specifies after how many business days the funds in a settlement batch are made available. Possible values: integers from **1** to **20**, and **null** (default). | The following code sample shows how you can configure the closing time where the sales day ends at 1 AM and the funds are made available after two business days. **Configure closing time for 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 '{ "accountHolderId": "AH00000000000000000000001", "description": "S.Eller - Main balance account", "platformPaymentConfiguration": { "salesDayClosingTime": "01:00" } }' ``` #### Java ```java // Adyen Java API Library v38.1.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_BALANCE_PLATFORM_API_KEY", Environment.TEST); // Create the request object(s) PlatformPaymentConfiguration platformPaymentConfiguration = new PlatformPaymentConfiguration() .salesDayClosingTime("01:00"); BalanceAccountUpdateRequest balanceAccountUpdateRequest = new BalanceAccountUpdateRequest() .accountHolderId("AH00000000000000000000001") .description("S.Eller - Main balance account") .platformPaymentConfiguration(platformPaymentConfiguration); // Send the request BalanceAccountsApi service = new BalanceAccountsApi(client); BalanceAccount response = service.updateBalanceAccount("id", balanceAccountUpdateRequest, null); ``` #### PHP ```php setXApiKey("ADYEN_BALANCE_PLATFORM_API_KEY"); $client->setEnvironment(Environment::TEST); // Create the request object(s) $platformPaymentConfiguration = new PlatformPaymentConfiguration(); $platformPaymentConfiguration ->setSalesDayClosingTime("01:00"); $balanceAccountUpdateRequest = new BalanceAccountUpdateRequest(); $balanceAccountUpdateRequest ->setAccountHolderId("AH00000000000000000000001") ->setDescription("S.Eller - Main balance account") ->setPlatformPaymentConfiguration($platformPaymentConfiguration); // Send the request $service = new BalanceAccountsApi($client); $response = $service->updateBalanceAccount('id', $balanceAccountUpdateRequest); ``` #### C\# ```cs // Adyen .net API Library v32.0.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_BALANCE_PLATFORM_API_KEY", Environment = Environment.Test }; var client = new Client(config); // Create the request object(s) PlatformPaymentConfiguration platformPaymentConfiguration = new PlatformPaymentConfiguration { SalesDayClosingTime = "01:00" }; BalanceAccountUpdateRequest balanceAccountUpdateRequest = new BalanceAccountUpdateRequest { AccountHolderId = "AH00000000000000000000001", Description = "S.Eller - Main balance account", PlatformPaymentConfiguration = platformPaymentConfiguration }; // Send the request var service = new BalanceAccountsService(client); var response = service.UpdateBalanceAccount("id", balanceAccountUpdateRequest); ``` #### NodeJS (JavaScript) ```js // Adyen Node API Library v27.0.0 const { Client, BalancePlatformAPI } = require('@adyen/api-library'); const client = new Client({ apiKey: "ADYEN_BALANCE_PLATFORM_API_KEY", environment: "TEST" }); // Create the request object(s) const balanceAccountUpdateRequest = { accountHolderId: "AH00000000000000000000001", description: "S.Eller - Main balance account", platformPaymentConfiguration: { salesDayClosingTime: "01:00" } } // Send the request const balancePlatformAPI = new BalancePlatformAPI(client); const response = balancePlatformAPI.BalanceAccountsApi.updateBalanceAccount("id", balanceAccountUpdateRequest); ``` #### Go ```go // Adyen Go API Library v21.0.0 import ( "context" "github.com/adyen/adyen-go-api-library/v21/src/common" "github.com/adyen/adyen-go-api-library/v21/src/adyen" "github.com/adyen/adyen-go-api-library/v21/src/balancePlatform" ) client := adyen.NewClient(&common.Config{ ApiKey: "ADYEN_BALANCE_PLATFORM_API_KEY", Environment: common.TestEnv, }) // Create the request object(s) platformPaymentConfiguration := balancePlatform.PlatformPaymentConfiguration{ SalesDayClosingTime: common.PtrString("01:00"), } balanceAccountUpdateRequest := balancePlatform.BalanceAccountUpdateRequest{ AccountHolderId: common.PtrString("AH00000000000000000000001"), Description: common.PtrString("S.Eller - Main balance account"), 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 v13.5.0 import Adyen adyen = Adyen.Adyen() adyen.client.xapikey = "ADYEN_BALANCE_PLATFORM_API_KEY" adyen.client.platform = "test" # The environment to use library in. # Create the request object(s) json_request = { "accountHolderId": "AH00000000000000000000001", "description": "S.Eller - Main balance account", "platformPaymentConfiguration": { "salesDayClosingTime": "01:00" } } # Send the request result = adyen.balancePlatform.balance_accounts_api.update_balance_account(request=json_request, id="id") ``` #### Ruby ```rb # Adyen Ruby API Library v10.3.0 require "adyen-ruby-api-library" adyen = Adyen::Client.new adyen.api_key = 'ADYEN_BALANCE_PLATFORM_API_KEY' adyen.env = :test # Set to "live" for live environment # Create the request object(s) request_body = { :accountHolderId => 'AH00000000000000000000001', :description => 'S.Eller - Main balance account', :platformPaymentConfiguration => { :salesDayClosingTime => '01:00' } } # Send the request result = adyen.balancePlatform.balance_accounts_api.update_balance_account(request_body, 'id') ``` #### NodeJS (TypeScript) ```ts // Adyen Node API Library v27.0.0 import { Client, BalancePlatformAPI, Types } from "@adyen/api-library"; const client = new Client({ apiKey: "ADYEN_BALANCE_PLATFORM_API_KEY", environment: "TEST" }); // Create the request object(s) const platformPaymentConfiguration: Types.balancePlatform.PlatformPaymentConfiguration = { salesDayClosingTime: "01:00" }; const balanceAccountUpdateRequest: Types.balancePlatform.BalanceAccountUpdateRequest = { accountHolderId: "AH00000000000000000000001", description: "S.Eller - Main balance account", platformPaymentConfiguration: platformPaymentConfiguration }; // Send the request const balancePlatformAPI = new BalancePlatformAPI(client); const response = balancePlatformAPI.BalanceAccountsApi.updateBalanceAccount("id", balanceAccountUpdateRequest); ``` If the request was successful, the response includes the `platformPaymentConfiguration` object, which contains the data you provided. **Response — Closing time updated** ```json { "accountHolderId": "AH00000000000000000000001", "defaultCurrencyCode": "EUR", "description": "S.Eller - Main balance account", "platformPaymentConfiguration": { "salesDayClosingTime": "01:00" }, "timeZone": "Europe/Amsterdam", "balances": [ { "available": 0, "balance": 0, "currency": "EUR", "reserved": 0 } ], "id": "BA00000000000000000000001", "status": "active" } ``` ## Webhooks After the new closing time is applied to the balance account, we send one of the following webhooks to your server: * For a new balance account, we send the [balancePlatform.balanceAccount.created](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.balanceAccount.created) webhook. * For existing balance accounts, we send the [balancePlatform.balanceAccount.updated](https://docs.adyen.com/api-explorer/balanceplatform-webhooks/latest/post/balancePlatform.balanceAccount.updated) webhook. **Balance account updated** ```json { "data": { "balancePlatform": "YOUR_BALANCE_PLATFORM", "balanceAccount": { "accountHolderId": "AH00000000000000000001", "defaultCurrencyCode": "EUR", "id": "BA00000000000000000001", "status": "active", "platformPaymentConfiguration": { "salesDayClosingTime": "06:00" }, "timeZone": "Europe/Amsterdam" } }, "environment": "test", "timestamp": "2025-04-15T15:42:03+01:00", "type": "balancePlatform.balanceAccount.updated" } ```