{"title":"Schedule internal funds transfers","category":"default","creationDate":1571779920,"content":"<p>Automate internal funds transfers by configuring <em>sweeps<\/em>, in the same manner as setting up scheduled payouts. A sweep automatically pushes out or pulls in funds from a balance account based on a pre-defined schedule, amount, and source or destination. For more information, refer to <a href=\"\/pt\/platforms\/payout-to-users\/scheduled-payouts#how-sweeps-work\">How sweeps work<\/a>.<\/p>\n<p>Configure a <em>push<\/em> or <em>pull<\/em> sweep depending on the scenario. For example, to maintain balances, you can set up a pull sweep to pull funds from another balance account when the balance goes below a certain amount. If you want to automate sending bonuses from your liable balance account, you can set up a push sweep to push funds from the liable balance account to your user's balance account.<\/p>\n<p>This page explains how to configure sweeps to schedule automatic transfers between balance accounts.<\/p>\n<h2>Requirements<\/h2>\n<p>Before you begin, take into account the following requirements and preparations:<\/p>\n<table>\n    <colgroup>\n        <col span=\"1\" style=\"width: 20%;\">\n        <col span=\"1\" style=\"width: 70%;\">\n    <\/colgroup>\n    <thead>\n        <tr>\n            <th>Requirement<\/th>\n            <th>Description<\/th>\n        <\/tr>\n    <\/thead>\n    <tbody>\n        <tr>\n            <td>\n<p><strong>Integration type<\/strong><\/p>\n<\/td>\n            <td>\n<p>You need an <a href=\"\/adyen-for-platforms-model\">Adyen for Platforms<\/a> integration.<\/p>\n<\/td>\n        <\/tr>\n        <tr>\n            <td>\n<p><strong><a href=\"\/platforms\/manage-access\/api-credentials-web-service\">API credentials<\/a><\/strong><\/p>\n<\/td>\n            <td>\n                Your API credential for the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/transfers\/latest\/overview\" class=\" external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Transfers API<\/a> must have the following <a href=\"\/platforms\/manage-access\/webservice-roles?tab=transfers_2\">role<\/a>:<br>\n                <ul>\n                    <li>\n<p><strong>TransferService Webservice Initiate role<\/strong><\/p>\n<\/li>\n                <\/ul>\n            <\/td>\n        <\/tr>\n        <tr>\n            <td>\n<p><strong><a href=\"\/account\/user-roles\">Customer Area roles<\/a><\/strong><\/p>\n<\/td>\n            <td>You need the following roles:<br>\n                <ul>\n                    <li>\n<p><strong>Initiate internal transfers<\/strong><\/p>\n<\/li>\n                    <li>\n<p><strong>Balance platform base role<\/strong><\/p>\n<\/li>\n                <\/ul>\n            <\/td>\n        <\/tr>\n        <tr>\n            <td>\n<p><strong><a href=\"\/development-resources\/webhooks\/configure-and-manage\">Webhooks<\/a><\/strong><\/p>\n<\/td>\n            <td>\n                <ol>\n                    <li>\n<p>Make sure that your server receives and accepts webhooks.<\/p>\n<\/li>\n                    <li>\n<p>In your Customer Area, subscribe to <a href=\"\/platforms\/webhook-types#transfer-webhooks\">Transfer webhooks<\/a>.<\/p>\n<\/li>\n                <\/ol>\n            <\/td>\n        <\/tr>\n        <tr>\n            <td>\n<p><strong><a href=\"\/platforms\/verification-overview\/capabilities\">Capabilities<\/a><\/strong><\/p>\n<\/td>\n            <td>\n                If the balance accounts involved in the transfer <em>do not belong to the same account holder<\/em>, check the  <a href=\"\/platforms\/verification-overview\/capabilities#capabilities\">capabilities<\/a>  of the account holders:\n                <ul>\n                    <li>\n<p>The account holder of the balance account that sends the the transfer request must have the <strong>sendToBalanceAccount<\/strong> capability.<\/p>\n<\/li>\n                    <li>\n<p>The account holder of the balance account that receives the transfer request must have the <strong>receiveFromBalanceAccount<\/strong> capability.<\/p>\n<\/li>\n                <\/ul>\n            <\/td>\n        <\/tr>\n        <tr>\n            <td>\n<p><strong>Setup steps<\/strong><\/p>\n<\/td>\n            <td>\n<p>Before you begin your integration, contact our <a href=\"https:\/\/ca-test.adyen.com\/ca\/ca\/contactUs\/support.shtml?form=other\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Support Team<\/a> to enable transfers for the source balance account.<\/p>\n<\/td>\n        <\/tr>\n    <\/tbody>\n<\/table>\n<h2 id=\"create-sweep\">Create a sweep<\/h2>\n<p>Configure sweeps by using your <a href=\"https:\/\/ca-test.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Customer Area<\/a>, or making a POST  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/balanceplatform\/latest\/post\/balanceAccounts\/(balanceAccountId)\/sweeps\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/balanceAccounts\/{balanceAccountId}\/sweeps<\/a> request. In this example, we will use a <em>push<\/em> sweep to push funds out of a balance account.<\/p>\n\n<div id=\"tabFvHL9\">\n    <div data-component-wrapper=\"tabs\">\n        <tabs\n                        :items=\"[{&quot;title&quot;:&quot;Customer Area&quot;,&quot;content&quot;:&quot;\\n&lt;p&gt;To configure sweeps in your &lt;a href=\\&quot;https:\\\/\\\/ca-test.adyen.com\\\/\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;Customer Area&lt;\\\/a&gt;, your account must have the &lt;strong&gt;Manage sweep configurations&lt;\\\/strong&gt; &lt;a href=\\&quot;\\\/pt\\\/account\\\/user-roles#platforms\\&quot;&gt;role&lt;\\\/a&gt;.&lt;\\\/p&gt;\\n&lt;ol&gt;\\n&lt;li&gt;\\n&lt;p&gt;Go to &lt;strong&gt;Accounts &amp;amp; balances&lt;\\\/strong&gt; &amp;gt; &lt;strong&gt;Balance accounts&lt;\\\/strong&gt;.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;In the &lt;strong&gt;Balance platform&lt;\\\/strong&gt; dropdown, select the balance platform. You can view balance accounts from one balance platform at a time.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;In the balance account table, select a balance account ID to open the &lt;strong&gt;Balance account details&lt;\\\/strong&gt; page.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;Under &lt;strong&gt;Scheduled transfers&lt;\\\/strong&gt;, select &lt;strong&gt;Add a schedule&lt;\\\/strong&gt;.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;Select &lt;strong&gt;Payout schedule&lt;\\\/strong&gt;.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;Select &lt;strong&gt;Next&lt;\\\/strong&gt;.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;Enter and verify the configuration details in their respective fields.&lt;\\\/p&gt;\\n&lt;div class=\\&quot;sticky-table-container\\&quot;&gt;\\n    \\n&lt;table&gt;\\n&lt;thead&gt;\\n&lt;tr&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Field&lt;\\\/th&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Description&lt;\\\/th&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/thead&gt;\\n&lt;tbody&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;strong&gt;When balance on&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Automatically set to the balance account ID.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;strong&gt;Is more or equal to&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Set a trigger amount. Before paying out the funds, Adyen checks if the  &lt;a href=\\&quot;\\\/pt\\\/platforms\\\/payout-to-users\\\/scheduled-payouts#how-adyen-calculates-the-available-payout-amount\\&quot;&gt;available balance&lt;\\\/a&gt;  is more than or equal to the trigger amount.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;strong&gt;Action&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Select &lt;strong&gt;Push an amount&lt;\\\/strong&gt; or &lt;strong&gt;Maintain a balance&lt;\\\/strong&gt;.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;strong&gt;Push this amount&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt; Select &lt;strong&gt;Entire available balance&lt;\\\/strong&gt; or &lt;strong&gt;Custom&lt;\\\/strong&gt;. Read more on &lt;a href=\\&quot;\\\/pt\\\/platforms\\\/payout-to-users\\\/scheduled-payouts#how-adyen-calculates-the-available-payout-amount\\&quot;&gt;how Adyen calculates the available balance&lt;\\\/a&gt;. &lt;\\\/td&gt;\\n&lt;td&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;strong&gt;Push balance to&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Select &lt;strong&gt;Balance account&lt;\\\/strong&gt;.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;strong&gt;Balance account Id&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Select the ID of the balance account.&lt;\\\/td&gt;\\n&lt;td&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;strong&gt;When schedule matches&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Select one of the predefined schedules or &lt;strong&gt;Custom&lt;\\\/strong&gt; to define your own schedule.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;strong&gt;Schedule&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;If you select a &lt;strong&gt;Custom&lt;\\\/strong&gt; schedule, specify the schedule or a cron expression. Select &lt;strong&gt;Submit&lt;\\\/strong&gt;.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;strong&gt;Activate&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;strong&gt;Immediately after creation&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;strong&gt;Description&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;(Optional) Enter a description for the schedule.&lt;\\\/td&gt;\\n&lt;td&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n\\n&lt;\\\/div&gt;\\n\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;Select &lt;strong&gt;Next&lt;\\\/strong&gt;.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;Review the information that you provided.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;Select &lt;strong&gt;Save&lt;\\\/strong&gt;.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;\\\/ol&gt;\\n&lt;p&gt;The details of your scheduled  transfer  are shown in &lt;strong&gt;Scheduled transfers&lt;\\\/strong&gt;.&lt;\\\/p&gt;\\n&lt;p&gt;The following example shows how to enter the configuration details.&lt;\\\/p&gt;\\n&lt;div class=\\&quot;accordion-shortcode adl-accordion adl-accordion--max-height-transition\\&quot; data-expand=\\&quot;true\\&quot; data-ignore=\\&quot;anchorjs-link\\&quot;&gt;\\n    \\n    &lt;div class=\\&quot;adl-accordion__item\\&quot; style=\\&quot;\\&quot;&gt;\\n        &lt;div tabindex=\\&quot;0\\&quot; role=\\&quot;item\\&quot; aria-expanded=\\&quot;false\\&quot; class=\\&quot;adl-accordion__header\\&quot;&gt;\\n            &lt;i class=\\&quot;adl-accordion__toggle adl-icon-chevron-down\\&quot;&gt;&lt;\\\/i&gt;\\n            &lt;div class=\\&quot;adl-accordion__title-wrapper\\&quot; data-accordion=\\&quot;#example-\\ufffd-maintain-a-balance-by-transferring-funds\\&quot;&gt;\\n                                    &lt;h3 class=\\&quot;adl-accordion__title\\&quot;&gt;Example \\u2014 Maintain a balance by transferring funds&lt;\\\/h3&gt;\\n                            &lt;\\\/div&gt;\\n        &lt;\\\/div&gt;\\n        &lt;div role=\\&quot;region\\&quot; class=\\&quot;adl-accordion__content\\&quot;&gt;\\n            \\n&lt;p&gt;Your user has two balance accounts, &lt;strong&gt;balance account 1&lt;\\\/strong&gt; and &lt;strong&gt;balance account 2&lt;\\\/strong&gt;, which they use for different purposes. On &lt;strong&gt;balance account 1&lt;\\\/strong&gt;, they want to maintain a balance of EUR 200. To do this, they want to check on every Wednesday at 9:30 AM if the funds in &lt;strong&gt;balance account 1&lt;\\\/strong&gt; have exceeded EUR 250 and push this excess to &lt;strong&gt;balance account 2&lt;\\\/strong&gt;.&lt;\\\/p&gt;\\n&lt;p&gt;The following table shows the details you must enter for this case.&lt;\\\/p&gt;\\n&lt;table&gt;\\n&lt;thead&gt;\\n&lt;tr&gt;\\n&lt;th&gt;Field&lt;\\\/th&gt;\\n&lt;th&gt;Details&lt;\\\/th&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/thead&gt;\\n&lt;tbody&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;strong&gt;When balance on&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;strong&gt;BA00000000000000000000001&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;strong&gt;Is more or equal to&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;strong&gt;EUR 250&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;strong&gt;Action&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;strong&gt;Maintain a balance&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;strong&gt;Maintain a balance of&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;strong&gt;EUR 200&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;strong&gt;Push balance to&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;strong&gt;Balance account&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;strong&gt;Balance account&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;strong&gt;BA00000000000000000000002&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;strong&gt;When schedule matches&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;strong&gt;Custom&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;strong&gt;Schedule&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;a href=\\&quot;http:\\\/\\\/www.nncron.ru\\\/help\\\/EN\\\/working\\\/cron-format.htm\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;\\n  &lt;strong&gt;Cron Expression&lt;\\\/strong&gt;\\n&lt;\\\/a&gt; &amp;gt; &lt;strong&gt;30 9 * * 3&lt;\\\/strong&gt; &amp;gt; &lt;strong&gt;Submit&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;strong&gt;Activate&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;strong&gt;Immediately after creation&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n\\n        &lt;\\\/div&gt;\\n    &lt;\\\/div&gt;\\n&lt;\\\/div&gt;\\n\\n&quot;,&quot;altTitle&quot;:&quot;CA-1&quot;,&quot;oldTabId&quot;:&quot;CA-1_1&quot;,&quot;relation&quot;:&quot;&quot;},{&quot;title&quot;:&quot;API&quot;,&quot;content&quot;:&quot;\\n&lt;p&gt;The following instructions describe how to transfer the full available balance in the balance account according to a specific schedule. To change the default behavior, you can include &lt;a href=\\&quot;#optional-configuration\\&quot;&gt;additional objects&lt;\\\/a&gt; in your request.&lt;\\\/p&gt;\\n&lt;p&gt;To create a sweep:&lt;\\\/p&gt;\\n&lt;ol&gt;\\n&lt;li&gt;\\n&lt;p&gt;Make a POST  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/balanceplatform\\\/latest\\\/post\\\/balanceAccounts\\\/(balanceAccountId)\\\/sweeps\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/balanceAccounts\\\/{balanceAccountId}\\\/sweeps&lt;\\\/a&gt; request with the ID of the balance account in the path and the following parameters in the body:&lt;\\\/p&gt;\\n&lt;div class=\\&quot;sticky-table-container\\&quot;&gt;\\n    \\n&lt;table&gt;\\n&lt;thead&gt;\\n&lt;tr&gt;\\n&lt;th&gt;Parameter name&lt;\\\/th&gt;\\n&lt;th style=\\&quot;text-align: center;\\&quot;&gt;Required&lt;\\\/th&gt;\\n&lt;th&gt;Description&lt;\\\/th&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/thead&gt;\\n&lt;tbody&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/balanceplatform\\\/latest\\\/post\\\/balanceAccounts\\\/_balanceAccountId_\\\/sweeps#request-counterparty\\&quot; class=\\&quot;codeLabel external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;counterparty&lt;\\\/a&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: center;\\&quot;&gt;&lt;span class=\\&quot;hint--bottom\\&quot; data-hint=\\&quot;Required\\&quot; markdown=\\&quot;1\\&quot;&gt;&lt;img style=\\&quot;width: 25px;\\&quot; alt=\\&quot;Required\\&quot; src=\\&quot;\\\/user\\\/pages\\\/reuse\\\/image-library\\\/01.icons\\\/required\\\/required.svg?decoding=auto&amp;amp;fetchpriority=auto\\&quot; \\\/&gt;&lt;\\\/span&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/balanceplatform\\\/latest\\\/post\\\/balanceAccounts\\&quot; class=\\&quot; external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;balance account&lt;\\\/a&gt; ID of the destination of the funds.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt; &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/balanceplatform\\\/latest\\\/post\\\/balanceAccounts\\\/(balanceAccountId)\\\/sweeps#request-currency\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;currency&lt;\\\/a&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: center;\\&quot;&gt;&lt;span class=\\&quot;hint--bottom\\&quot; data-hint=\\&quot;Required\\&quot; markdown=\\&quot;1\\&quot;&gt;&lt;img style=\\&quot;width: 25px;\\&quot; alt=\\&quot;Required\\&quot; src=\\&quot;\\\/user\\\/pages\\\/reuse\\\/image-library\\\/01.icons\\\/required\\\/required.svg?decoding=auto&amp;amp;fetchpriority=auto\\&quot; \\\/&gt;&lt;\\\/span&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The currency of the sweep. This must match one of the currencies of the balances.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt; &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/balanceplatform\\\/latest\\\/post\\\/balanceAccounts\\\/(balanceAccountId)\\\/sweeps#request-description\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;description&lt;\\\/a&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: center;\\&quot;&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The description for the resulting transfers, which is used by most recipient banks as the &lt;a href=\\&quot;\\\/pt\\\/platforms\\\/payout-to-users#transfer-statement-description\\&quot;&gt;transfer description&lt;\\\/a&gt;. You can set placeholders to generate &lt;a href=\\&quot;#optional-dynamic-transfer-statement-descriptions\\&quot;&gt;dynamic transfer descriptions&lt;\\\/a&gt;.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt; &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/balanceplatform\\\/latest\\\/post\\\/balanceAccounts\\\/(balanceAccountId)\\\/sweeps#request-referenceForBeneficiary\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;referenceForBeneficiary&lt;\\\/a&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: center;\\&quot;&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The second description field, which is available in most locations. You can set placeholders to generate &lt;a href=\\&quot;#optional-dynamic-transfer-statement-descriptions\\&quot;&gt;dynamic transfer descriptions&lt;\\\/a&gt;.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt; &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/balanceplatform\\\/latest\\\/post\\\/balanceAccounts\\\/(balanceAccountId)\\\/sweeps#request-schedule-CronSweepSchedule-type\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;schedule.type&lt;\\\/a&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: center;\\&quot;&gt;&lt;span class=\\&quot;hint--bottom\\&quot; data-hint=\\&quot;Required\\&quot; markdown=\\&quot;1\\&quot;&gt;&lt;img style=\\&quot;width: 25px;\\&quot; alt=\\&quot;Required\\&quot; src=\\&quot;\\\/user\\\/pages\\\/reuse\\\/image-library\\\/01.icons\\\/required\\\/required.svg?decoding=auto&amp;amp;fetchpriority=auto\\&quot; \\\/&gt;&lt;\\\/span&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The schedule when the sweep is evaluated. Set this parameter to &lt;strong&gt;cron&lt;\\\/strong&gt;.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt; &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/balanceplatform\\\/latest\\\/post\\\/balanceAccounts\\\/(balanceAccountId)\\\/sweeps#request-schedule-CronSweepSchedule-cronExpression\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;schedule.cronExpression&lt;\\\/a&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: center;\\&quot;&gt;&lt;span class=\\&quot;hint--bottom\\&quot; data-hint=\\&quot;Required\\&quot; markdown=\\&quot;1\\&quot;&gt;&lt;img style=\\&quot;width: 25px;\\&quot; alt=\\&quot;Required\\&quot; src=\\&quot;\\\/user\\\/pages\\\/reuse\\\/image-library\\\/01.icons\\\/required\\\/required.svg?decoding=auto&amp;amp;fetchpriority=auto\\&quot; \\\/&gt;&lt;\\\/span&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The &lt;a href=\\&quot;https:\\\/\\\/en.wikipedia.org\\\/wiki\\\/Cron#CRON_expression\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;cron expression&lt;\\\/a&gt; for the schedule when the sweep is evaluated, using the time zone of the balance account.&lt;br&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt; &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/balanceplatform\\\/latest\\\/post\\\/balanceAccounts\\\/(balanceAccountId)\\\/sweeps#request-schedule-type\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;type&lt;\\\/a&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: center;\\&quot;&gt;&lt;\\\/td&gt;\\n&lt;td&gt;Default value is &lt;strong&gt;push&lt;\\\/strong&gt;.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n\\n&lt;\\\/div&gt;\\n\\n&lt;p&gt;In the following example, we create a sweep to transfer the full available balance to another balance account every Wednesday at 9:30 AM.&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n&lt;code-sample :title=\\&quot;&#039;Create a sweep&#039;\\&quot; :id=\\&quot;&#039;create-sweep&#039;\\&quot; :code-data=\\&quot;[{&amp;quot;language&amp;quot;:&amp;quot;bash&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;curl&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;curl https:\\\\\\\/\\\\\\\/balanceplatform-api-test.adyen.com\\\\\\\/bcl\\\\\\\/v2\\\\\\\/balanceAccounts\\\\\\\/BA3227C223222B5B9SCR82TMV\\\\\\\/sweeps \\\\\\\\\\\\n-H &#039;x-api-key: ADYEN_BALANCE_PLATFORM_API_KEY&#039; \\\\\\\\\\\\n-H &#039;content-type: application\\\\\\\/json&#039; \\\\\\\\\\\\n-X POST \\\\\\\\\\\\n-d &#039;{\\\\n    \\\\&amp;quot;counterparty\\\\&amp;quot;: {\\\\n      \\\\&amp;quot;balanceAccountId\\\\&amp;quot;: \\\\&amp;quot;BA00100000000000000000001\\\\&amp;quot;\\\\n    },\\\\n    \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;EUR\\\\&amp;quot;,\\\\n    \\\\&amp;quot;schedule\\\\&amp;quot;: {\\\\n      \\\\&amp;quot;cronExpression\\\\&amp;quot;: \\\\&amp;quot;30 9 * * 3\\\\&amp;quot;,\\\\n      \\\\&amp;quot;type\\\\&amp;quot;: \\\\&amp;quot;cron\\\\&amp;quot;\\\\n    },\\\\n    \\\\&amp;quot;type\\\\&amp;quot;: \\\\&amp;quot;push\\\\&amp;quot;\\\\n}&#039;&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;java&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Java&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Java API Library v33.0.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(\\\\&amp;quot;ADYEN_BALANCE_PLATFORM_API_KEY\\\\&amp;quot;, Environment.TEST);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nSweepSchedule sweepSchedule2 = new SweepSchedule()\\\\n  .cronExpression(\\\\&amp;quot;30 9 * * 3\\\\&amp;quot;)\\\\n  .type(SweepSchedule.TypeEnum.CRON);\\\\n\\\\nSweepCounterparty sweepCounterparty2 = new SweepCounterparty()\\\\n  .balanceAccountId(\\\\&amp;quot;BA00100000000000000000001\\\\&amp;quot;);\\\\n\\\\nCreateSweepConfigurationV2 createSweepConfigurationV2 = new CreateSweepConfigurationV2()\\\\n  .schedule(sweepSchedule2)\\\\n  .counterparty(sweepCounterparty2)\\\\n  .currency(\\\\&amp;quot;EUR\\\\&amp;quot;)\\\\n  .type(CreateSweepConfigurationV2.TypeEnum.PUSH);\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nBalanceAccountsApi service = new BalanceAccountsApi(client);\\\\nSweepConfigurationV2 response = service.createSweep(\\\\&amp;quot;balanceAccountId\\\\&amp;quot;, createSweepConfigurationV2, null);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;php&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;PHP&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;&amp;lt;?php\\\\n\\\\\\\/\\\\\\\/ Adyen PHP API Library v24.0.0\\\\nuse Adyen\\\\\\\\Client;\\\\nuse Adyen\\\\\\\\Environment;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\BalancePlatform\\\\\\\\SweepSchedule;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\BalancePlatform\\\\\\\\SweepCounterparty;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\BalancePlatform\\\\\\\\CreateSweepConfigurationV2;\\\\nuse Adyen\\\\\\\\Service\\\\\\\\BalancePlatform\\\\\\\\BalanceAccountsApi;\\\\n\\\\n$client = new Client();\\\\n$client-&amp;gt;setXApiKey(\\\\&amp;quot;ADYEN_BALANCE_PLATFORM_API_KEY\\\\&amp;quot;);\\\\n$client-&amp;gt;setEnvironment(Environment::TEST);\\\\n\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\n$sweepSchedule2 = new SweepSchedule();\\\\n$sweepSchedule2\\\\n  -&amp;gt;setCronExpression(\\\\&amp;quot;30 9 * * 3\\\\&amp;quot;)\\\\n  -&amp;gt;setType(\\\\&amp;quot;cron\\\\&amp;quot;);\\\\n\\\\n$sweepCounterparty2 = new SweepCounterparty();\\\\n$sweepCounterparty2\\\\n  -&amp;gt;setBalanceAccountId(\\\\&amp;quot;BA00100000000000000000001\\\\&amp;quot;);\\\\n\\\\n$createSweepConfigurationV2 = new CreateSweepConfigurationV2();\\\\n$createSweepConfigurationV2\\\\n  -&amp;gt;setSchedule($sweepSchedule2)\\\\n  -&amp;gt;setCounterparty($sweepCounterparty2)\\\\n  -&amp;gt;setCurrency(\\\\&amp;quot;EUR\\\\&amp;quot;)\\\\n  -&amp;gt;setType(\\\\&amp;quot;push\\\\&amp;quot;);\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\n$service = new BalanceAccountsApi($client);\\\\n$response = $service-&amp;gt;createSweep(&#039;balanceAccountId&#039;, $createSweepConfigurationV2);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;cs&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;C#&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen .net API Library v27.0.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 = \\\\&amp;quot;ADYEN_BALANCE_PLATFORM_API_KEY\\\\&amp;quot;,\\\\n    Environment = Environment.Test\\\\n};\\\\nvar client = new Client(config);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nSweepSchedule sweepSchedule2 = new SweepSchedule\\\\n{\\\\n  CronExpression = \\\\&amp;quot;30 9 * * 3\\\\&amp;quot;,\\\\n  Type = SweepSchedule.TypeEnum.Cron\\\\n};\\\\n\\\\nSweepCounterparty sweepCounterparty2 = new SweepCounterparty\\\\n{\\\\n  BalanceAccountId = \\\\&amp;quot;BA00100000000000000000001\\\\&amp;quot;\\\\n};\\\\n\\\\nCreateSweepConfigurationV2 createSweepConfigurationV2 = new CreateSweepConfigurationV2\\\\n{\\\\n  Schedule = sweepSchedule2,\\\\n  Counterparty = sweepCounterparty2,\\\\n  Currency = \\\\&amp;quot;EUR\\\\&amp;quot;,\\\\n  Type = CreateSweepConfigurationV2.TypeEnum.Push\\\\n};\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nvar service = new BalanceAccountsService(client);\\\\nvar response = service.CreateSweep(\\\\&amp;quot;balanceAccountId\\\\&amp;quot;, createSweepConfigurationV2);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;js&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;NodeJS (JavaScript)&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Node API Library v23.3.0\\\\nconst { Client, BalancePlatformAPI } = require(&#039;@adyen\\\\\\\/api-library&#039;);\\\\n\\\\nconst client = new Client({ apiKey: \\\\&amp;quot;ADYEN_BALANCE_PLATFORM_API_KEY\\\\&amp;quot;, environment: \\\\&amp;quot;TEST\\\\&amp;quot; });\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nconst createSweepConfigurationV2 = {\\\\n  counterparty: {\\\\n    balanceAccountId: \\\\&amp;quot;BA00100000000000000000001\\\\&amp;quot;\\\\n  },\\\\n  currency: \\\\&amp;quot;EUR\\\\&amp;quot;,\\\\n  schedule: {\\\\n    cronExpression: \\\\&amp;quot;30 9 * * 3\\\\&amp;quot;,\\\\n    type: \\\\&amp;quot;cron\\\\&amp;quot;\\\\n  },\\\\n  type: \\\\&amp;quot;push\\\\&amp;quot;\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nconst balancePlatformAPI = new BalancePlatformAPI(client);\\\\nconst response = balancePlatformAPI.BalanceAccountsApi.createSweep(\\\\&amp;quot;balanceAccountId\\\\&amp;quot;, createSweepConfigurationV2);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;go&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Go&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Go API Library v16.3.0\\\\nimport (\\\\n  \\\\&amp;quot;context\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v16\\\\\\\/src\\\\\\\/common\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v16\\\\\\\/src\\\\\\\/adyen\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v16\\\\\\\/src\\\\\\\/balancePlatform\\\\&amp;quot;\\\\n)\\\\nclient := adyen.NewClient(&amp;amp;common.Config{\\\\n  ApiKey:      \\\\&amp;quot;ADYEN_BALANCE_PLATFORM_API_KEY\\\\&amp;quot;,\\\\n  Environment: common.TestEnv,\\\\n})\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nsweepSchedule2 := balancePlatform.SweepSchedule{\\\\n  CronExpression: common.PtrString(\\\\&amp;quot;30 9 * * 3\\\\&amp;quot;),\\\\n  Type: \\\\&amp;quot;cron\\\\&amp;quot;,\\\\n}\\\\n\\\\nsweepCounterparty2 := balancePlatform.SweepCounterparty{\\\\n  BalanceAccountId: common.PtrString(\\\\&amp;quot;BA00100000000000000000001\\\\&amp;quot;),\\\\n}\\\\n\\\\ncreateSweepConfigurationV2 := balancePlatform.CreateSweepConfigurationV2{\\\\n  Schedule: sweepSchedule2,\\\\n  Counterparty: sweepCounterparty2,\\\\n  Currency: \\\\&amp;quot;EUR\\\\&amp;quot;,\\\\n  Type: common.PtrString(\\\\&amp;quot;push\\\\&amp;quot;),\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nservice := client.BalancePlatform()\\\\nreq := service.BalanceAccountsApi.CreateSweepInput(\\\\&amp;quot;balanceAccountId\\\\&amp;quot;).CreateSweepConfigurationV2(createSweepConfigurationV2)\\\\nres, httpRes, err := service.BalanceAccountsApi.CreateSweep(context.Background(), req)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;py&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Python&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;# Adyen Python API Library v13.3.0\\\\nimport Adyen\\\\n\\\\nadyen = Adyen.Adyen()\\\\nadyen.client.xapikey = \\\\&amp;quot;ADYEN_BALANCE_PLATFORM_API_KEY\\\\&amp;quot;\\\\nadyen.client.platform = \\\\&amp;quot;test\\\\&amp;quot; # The environment to use library in.\\\\n\\\\n# Create the request object(s)\\\\njson_request = {\\\\n  \\\\&amp;quot;counterparty\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;balanceAccountId\\\\&amp;quot;: \\\\&amp;quot;BA00100000000000000000001\\\\&amp;quot;\\\\n  },\\\\n  \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;EUR\\\\&amp;quot;,\\\\n  \\\\&amp;quot;schedule\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;cronExpression\\\\&amp;quot;: \\\\&amp;quot;30 9 * * 3\\\\&amp;quot;,\\\\n    \\\\&amp;quot;type\\\\&amp;quot;: \\\\&amp;quot;cron\\\\&amp;quot;\\\\n  },\\\\n  \\\\&amp;quot;type\\\\&amp;quot;: \\\\&amp;quot;push\\\\&amp;quot;\\\\n}\\\\n\\\\n# Send the request\\\\nresult = adyen.balancePlatform.balance_accounts_api.create_sweep(request=json_request, balanceAccountId=\\\\&amp;quot;balanceAccountId\\\\&amp;quot;)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;rb&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Ruby&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;# Adyen Ruby API Library v10.1.1\\\\nrequire \\\\&amp;quot;adyen-ruby-api-library\\\\&amp;quot;\\\\n\\\\nadyen = Adyen::Client.new\\\\nadyen.api_key = &#039;ADYEN_BALANCE_PLATFORM_API_KEY&#039;\\\\nadyen.env = :test # Set to \\\\&amp;quot;live\\\\&amp;quot; for live environment\\\\n\\\\n# Create the request object(s)\\\\nrequest_body = {\\\\n  :counterparty =&amp;gt; {\\\\n    :balanceAccountId =&amp;gt; &#039;BA00100000000000000000001&#039;\\\\n  },\\\\n  :currency =&amp;gt; &#039;EUR&#039;,\\\\n  :schedule =&amp;gt; {\\\\n    :cronExpression =&amp;gt; &#039;30 9 * * 3&#039;,\\\\n    :type =&amp;gt; &#039;cron&#039;\\\\n  },\\\\n  :type =&amp;gt; &#039;push&#039;\\\\n}\\\\n\\\\n# Send the request\\\\nresult = adyen.balancePlatform.balance_accounts_api.create_sweep(request_body, &#039;balanceAccountId&#039;)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;ts&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;NodeJS (TypeScript)&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Node API Library v23.3.0\\\\nimport { Client, BalancePlatformAPI, Types } from \\\\&amp;quot;@adyen\\\\\\\/api-library\\\\&amp;quot;;\\\\n\\\\nconst client = new Client({ apiKey: \\\\&amp;quot;ADYEN_BALANCE_PLATFORM_API_KEY\\\\&amp;quot;, environment: \\\\&amp;quot;TEST\\\\&amp;quot; });\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nconst sweepSchedule2: Types.balancePlatform.SweepSchedule = {\\\\n  cronExpression: \\\\&amp;quot;30 9 * * 3\\\\&amp;quot;,\\\\n  type: Types.balancePlatform.SweepSchedule.TypeEnum.Cron\\\\n};\\\\n\\\\nconst sweepCounterparty2: Types.balancePlatform.SweepCounterparty = {\\\\n  balanceAccountId: \\\\&amp;quot;BA00100000000000000000001\\\\&amp;quot;\\\\n};\\\\n\\\\nconst createSweepConfigurationV2: Types.balancePlatform.CreateSweepConfigurationV2 = {\\\\n  schedule: sweepSchedule2,\\\\n  counterparty: sweepCounterparty2,\\\\n  currency: \\\\&amp;quot;EUR\\\\&amp;quot;,\\\\n  type: Types.balancePlatform.CreateSweepConfigurationV2.TypeEnum.Push\\\\n};\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nconst balancePlatformAPI = new BalancePlatformAPI(client);\\\\nconst response = balancePlatformAPI.BalanceAccountsApi.createSweep(\\\\&amp;quot;balanceAccountId\\\\&amp;quot;, createSweepConfigurationV2);&amp;quot;}]\\&quot; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;In the response, note the following:&lt;\\\/p&gt;\\n&lt;ul&gt;\\n&lt;li&gt;The unique identifier of the sweep.&lt;\\\/li&gt;\\n&lt;li&gt;The default values for the &lt;a href=\\&quot;#optional-configuration\\&quot;&gt;optional configuration&lt;\\\/a&gt;.&lt;\\\/li&gt;\\n&lt;li&gt;The &lt;code&gt;status&lt;\\\/code&gt; of the sweep, which is &lt;strong&gt;active&lt;\\\/strong&gt; by default. You can change it by sending an updated status in a PATCH  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/balanceplatform\\\/latest\\\/patch\\\/balanceAccounts\\\/(balanceAccountId)\\\/sweeps\\\/(sweepId)\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/balanceAccounts\\\/{balanceAccountId}\\\/sweeps\\\/{sweepId}&lt;\\\/a&gt; request.&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n&lt;code-sample :title=\\&quot;&#039;Response - sweep created&#039;\\&quot; :id=\\&quot;&#039;response-sweep-created&#039;\\&quot; :code-data=&#039;[{\\&quot;language\\&quot;:\\&quot;json\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;\\&quot;,\\&quot;content\\&quot;:\\&quot;{\\\\n    \\\\\\&quot;id\\\\\\&quot;: \\\\\\&quot;SWPC4227C223222B5FTD2NT2JV4WN5\\\\\\&quot;,\\\\n    \\\\\\&quot;schedule\\\\\\&quot;: {\\\\n        \\\\\\&quot;type\\\\\\&quot;: \\\\\\&quot;cron\\\\\\&quot;,\\\\n        \\\\\\&quot;cronExpression\\\\\\&quot;: \\\\\\&quot;30 9 * * 3\\\\\\&quot;\\\\n    },\\\\n    \\\\\\&quot;status\\\\\\&quot;: \\\\\\&quot;active\\\\\\&quot;,\\\\n    \\\\\\&quot;targetAmount\\\\\\&quot;: {\\\\n        \\\\\\&quot;currency\\\\\\&quot;: \\\\\\&quot;EUR\\\\\\&quot;,\\\\n        \\\\\\&quot;value\\\\\\&quot;: 0\\\\n    },\\\\n    \\\\\\&quot;triggerAmount\\\\\\&quot;: {\\\\n        \\\\\\&quot;currency\\\\\\&quot;: \\\\\\&quot;EUR\\\\\\&quot;,\\\\n        \\\\\\&quot;value\\\\\\&quot;: 0\\\\n    },\\\\n    \\\\\\&quot;type\\\\\\&quot;: \\\\\\&quot;push\\\\\\&quot;,\\\\n    \\\\\\&quot;counterparty\\\\\\&quot;: {\\\\n        \\\\\\&quot;balanceAccountId\\\\\\&quot;: \\\\\\&quot;BA00100000000000000000001\\\\\\&quot;\\\\n    },\\\\n    \\\\\\&quot;currency\\\\\\&quot;: \\\\\\&quot;EUR\\\\\\&quot;,\\\\n    \\\\\\&quot;description\\\\\\&quot;: \\\\\\&quot;Internal funds transfer every Wednesday at 0930\\\\\\&quot;\\\\n}\\&quot;}]&#039; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;Listen to the &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/#\\\/balanceplatform-webhooks\\\/latest\\\/post\\\/balancePlatform.balanceAccountSweep.created\\&quot; class=\\&quot;codeLabel external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;balancePlatform.balanceAccountSweep.created&lt;\\\/a&gt; webhook to learn whether the sweep was created successfully.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;\\\/ol&gt;\\n&lt;div class=\\&quot;accordion-shortcode adl-accordion adl-accordion--max-height-transition\\&quot; data-expand=\\&quot;true\\&quot; data-ignore=\\&quot;anchorjs-link\\&quot;&gt;\\n    \\n    &lt;div class=\\&quot;adl-accordion__item\\&quot; style=\\&quot;\\&quot;&gt;\\n        &lt;div tabindex=\\&quot;0\\&quot; role=\\&quot;item\\&quot; aria-expanded=\\&quot;false\\&quot; class=\\&quot;adl-accordion__header\\&quot;&gt;\\n            &lt;i class=\\&quot;adl-accordion__toggle adl-icon-chevron-down\\&quot;&gt;&lt;\\\/i&gt;\\n            &lt;div class=\\&quot;adl-accordion__title-wrapper\\&quot; data-accordion=\\&quot;#optional-sweep-configuration\\&quot;&gt;\\n                                    &lt;h4 class=\\&quot;adl-accordion__title\\&quot;&gt;Optional sweep configuration&lt;\\\/h4&gt;\\n                            &lt;\\\/div&gt;\\n        &lt;\\\/div&gt;\\n        &lt;div role=\\&quot;region\\&quot; class=\\&quot;adl-accordion__content\\&quot;&gt;\\n            \\n&lt;p&gt;By default, all the  &lt;a href=\\&quot;\\\/pt\\\/platforms\\\/payout-to-users\\\/scheduled-payouts#how-adyen-calculates-the-available-payout-amount\\&quot;&gt;available balance&lt;\\\/a&gt;  in the balance account is  transferred  at the schedule that you specified. You can change this default behavior by providing additional objects in your API request.&lt;\\\/p&gt;\\n&lt;table&gt;\\n&lt;thead&gt;\\n&lt;tr&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Optional&amp;nbsp;configuration&lt;\\\/th&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Additional object&lt;\\\/th&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Description&lt;\\\/th&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/thead&gt;\\n&lt;tbody&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Set a trigger amount&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt; &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/balanceplatform\\\/latest\\\/post\\\/balanceAccounts\\\/(balanceAccountId)\\\/sweeps#request-triggerAmount\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;triggerAmount&lt;\\\/a&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;When the sweep is evaluated at the schedule you specified, Adyen checks if the  &lt;a href=\\&quot;\\\/pt\\\/platforms\\\/payout-to-users\\\/scheduled-payouts#how-adyen-calculates-the-available-payout-amount\\&quot;&gt;available balance&lt;\\\/a&gt;  is more than or equal to the &lt;code&gt;triggerAmount&lt;\\\/code&gt;. If this condition is met, all funds in the balance account are  transferred.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Maintain a minimum balance&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt; &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/balanceplatform\\\/latest\\\/post\\\/balanceAccounts\\\/(balanceAccountId)\\\/sweeps#request-targetAmount\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;targetAmount&lt;\\\/a&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;You can set a minimum balance for the balance account, for example, to maintain balances for day-to-day operational purposes. The amount in excess of the &lt;code&gt;targetAmount&lt;\\\/code&gt; is  transferred to the counterparty balance account. The  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/balanceplatform\\\/latest\\\/post\\\/balanceAccounts\\\/(balanceAccountId)\\\/sweeps#request-triggerAmount\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;triggerAmount&lt;\\\/a&gt; must be higher than the &lt;code&gt;targetAmount&lt;\\\/code&gt;.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Pay out a fixed amount&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt; &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/balanceplatform\\\/latest\\\/post\\\/balanceAccounts\\\/(balanceAccountId)\\\/sweeps#request-sweepAmount\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;sweepAmount&lt;\\\/a&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;You can  transfer a specific amount, instead of the full available balance. The  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/balanceplatform\\\/latest\\\/post\\\/balanceAccounts\\\/(balanceAccountId)\\\/sweeps#request-triggerAmount\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;triggerAmount&lt;\\\/a&gt; must be equal to or higher than the &lt;code&gt;sweepAmount&lt;\\\/code&gt;.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&lt;p&gt;The following example request shows how you can update the &lt;a href=\\&quot;#response-sweep-created\\&quot;&gt;previous sweep&lt;\\\/a&gt; to only trigger a payout when the amount in the balance account exceeds EUR&amp;nbsp;250 and to keep a minimum balance of EUR&amp;nbsp;200.&lt;\\\/p&gt;\\n&lt;p&gt;If the user has EUR&amp;nbsp;620 on their balance account, EUR&amp;nbsp;420 will be paid out to them. If they have EUR&amp;nbsp;230 on their balance account the week after, their funds will not be paid out.&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Update sweep to maintain a minimum balance&#039;\\&quot; :id=\\&quot;&#039;minimum-balance-sweep&#039;\\&quot; :code-data=\\&quot;[{&amp;quot;language&amp;quot;:&amp;quot;bash&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;curl https:\\\\\\\/\\\\\\\/balanceplatform-api-test.adyen.com\\\\\\\/bcl\\\\\\\/v2\\\\\\\/balanceAccounts\\\\\\\/BA3227C223222B5B9SCR82TMV\\\\\\\/sweeps\\\\\\\/SWPC4227C224555B5FTD2NT2JV4WN5 \\\\\\\\\\\\n-H &#039;x-api-key: ADYEN_BALANCE_PLATFORM_API_KEY&#039; \\\\\\\\\\\\n-H &#039;content-type: application\\\\\\\/json&#039; \\\\\\\\\\\\n-X PATCH \\\\\\\\\\\\n-d &#039;{\\\\n  \\\\&amp;quot;triggerAmount\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;value\\\\&amp;quot;: 25000,\\\\n    \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;EUR\\\\&amp;quot;\\\\n  },\\\\n  \\\\&amp;quot;targetAmount\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;value\\\\&amp;quot;: 20000,\\\\n    \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;EUR\\\\&amp;quot;\\\\n  }\\\\n}&#039;&amp;quot;}]\\&quot; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;p&gt;The response returns the updated sweep resource. Adyen also sends a corresponding &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/#\\\/balanceplatform-webhooks\\\/latest\\\/post\\\/balancePlatform.balanceAccountSweep.updated\\&quot; class=\\&quot;codeLabel external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;balancePlatform.balanceAccountSweep.updated&lt;\\\/a&gt;  webhook to your server.&lt;\\\/p&gt;\\n\\n        &lt;\\\/div&gt;\\n    &lt;\\\/div&gt;\\n&lt;\\\/div&gt;\\n\\n&lt;div class=\\&quot;accordion-shortcode adl-accordion adl-accordion--max-height-transition\\&quot; data-expand=\\&quot;true\\&quot; data-ignore=\\&quot;anchorjs-link\\&quot;&gt;\\n    \\n    &lt;div class=\\&quot;adl-accordion__item\\&quot; style=\\&quot;\\&quot;&gt;\\n        &lt;div tabindex=\\&quot;0\\&quot; role=\\&quot;item\\&quot; aria-expanded=\\&quot;false\\&quot; class=\\&quot;adl-accordion__header\\&quot;&gt;\\n            &lt;i class=\\&quot;adl-accordion__toggle adl-icon-chevron-down\\&quot;&gt;&lt;\\\/i&gt;\\n            &lt;div class=\\&quot;adl-accordion__title-wrapper\\&quot; data-accordion=\\&quot;#optional-dynamic-transfer-statement-descriptions\\&quot;&gt;\\n                                    &lt;h4 class=\\&quot;adl-accordion__title\\&quot;&gt;Optional dynamic transfer statement descriptions&lt;\\\/h4&gt;\\n                            &lt;\\\/div&gt;\\n        &lt;\\\/div&gt;\\n        &lt;div role=\\&quot;region\\&quot; class=\\&quot;adl-accordion__content\\&quot;&gt;\\n            \\n&lt;p&gt;When &lt;a href=\\&quot;#create-sweep\\&quot;&gt;creating a sweep using the API&lt;\\\/a&gt;, you can use placeholders to set dynamic descriptions. &lt;\\\/p&gt;\\n&lt;div class=\\&quot;notices blue\\&quot;&gt;\\n&lt;p&gt;Setting a description overrides &lt;a href=\\&quot;#before-you-begin\\&quot;&gt;default descriptions&lt;\\\/a&gt; for your platform.&lt;\\\/p&gt;\\n&lt;\\\/div&gt;\\n&lt;p&gt;To dynamically change the transfer descriptions, set any of the following placeholders in the &lt;code&gt;description&lt;\\\/code&gt; and\\\/or &lt;code&gt;remittanceForBeneficiary&lt;\\\/code&gt; fields:&lt;\\\/p&gt;\\n&lt;table&gt;\\n&lt;thead&gt;\\n&lt;tr&gt;\\n&lt;th&gt;Placeholder&lt;\\\/th&gt;\\n&lt;th&gt;Description&lt;\\\/th&gt;\\n&lt;th&gt;Example value in the statement&lt;\\\/th&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/thead&gt;\\n&lt;tbody&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;strong&gt;$balanceAccountId&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The ID of the balance account.&lt;\\\/td&gt;\\n&lt;td&gt;BA32272223222B5FL6CTMBJPR&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;strong&gt;$balanceAccountReference&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td&gt;Your reference for the balance account.&lt;\\\/td&gt;\\n&lt;td&gt;BA reference&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;strong&gt;$balanceAccountDescription&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td&gt;Your description for the balance account.&lt;\\\/td&gt;\\n&lt;td&gt;BA description&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;strong&gt;$accountHolderId&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The ID of the account holder.&lt;\\\/td&gt;\\n&lt;td&gt;AH32272223222B5FL6CQTBJLD&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;strong&gt;$accountHolderReference&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td&gt;Your reference of the account holder.&lt;\\\/td&gt;\\n&lt;td&gt;23564762354654&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;strong&gt;$accountHolderDescription&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td&gt;Your description for the account holder.&lt;\\\/td&gt;\\n&lt;td&gt;Dean&#039;s Donuts&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;strong&gt;$transferReference&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The 30-character Adyen-generated reference for the resulting transfer.&lt;\\\/td&gt;\\n&lt;td&gt;SWPE12345678901234567890123456&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;strong&gt;$shortTransferReference&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The 15-character Adyen-generated reference for the resulting transfer.&lt;\\\/td&gt;\\n&lt;td&gt;S12345678901234&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&lt;p&gt;For example, setting the &lt;code&gt;description&lt;\\\/code&gt; to &lt;strong&gt;$accountHolderId and $accountHolderDescription&lt;\\\/strong&gt; when creating a sweep generates a transfer request with the description &lt;strong&gt;AH32272223222B5FL6CQTBJLD and Dean&#039;s Donuts&lt;\\\/strong&gt;.&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Use placeholders when creating a sweep&#039;\\&quot; :id=\\&quot;&#039;sweep-placeholder&#039;\\&quot; :code-data=\\&quot;[{&amp;quot;language&amp;quot;:&amp;quot;bash&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;curl&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;curl https:\\\\\\\/\\\\\\\/balanceplatform-api-test.adyen.com\\\\\\\/bcl\\\\\\\/v2\\\\\\\/balanceAccounts\\\\\\\/BA3227C223222B5B9SCR82TMV\\\\\\\/sweeps \\\\\\\\\\\\n-H &#039;x-api-key: ADYEN_BALANCE_PLATFORM_API_KEY&#039; \\\\\\\\\\\\n-H &#039;content-type: application\\\\\\\/json&#039; \\\\\\\\\\\\n-X POST \\\\\\\\\\\\n-d &#039;{\\\\n    \\\\&amp;quot;counterparty\\\\&amp;quot;: {\\\\n      \\\\&amp;quot;transferInstrumentId\\\\&amp;quot;: \\\\&amp;quot;SE322KH223222D5FM372M6337\\\\&amp;quot;\\\\n    },\\\\n    \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;EUR\\\\&amp;quot;,\\\\n    \\\\&amp;quot;description\\\\&amp;quot;: \\\\&amp;quot;$accountHolderId and $accountHolderDescription\\\\&amp;quot;,\\\\n    \\\\&amp;quot;schedule\\\\&amp;quot;: {\\\\n      \\\\&amp;quot;cronExpression\\\\&amp;quot;: \\\\&amp;quot;54 15 * * *\\\\&amp;quot;,\\\\n      \\\\&amp;quot;type\\\\&amp;quot;: \\\\&amp;quot;cron\\\\&amp;quot;\\\\n    },\\\\n    \\\\&amp;quot;status\\\\&amp;quot;: \\\\&amp;quot;active\\\\&amp;quot;,\\\\n    \\\\&amp;quot;type\\\\&amp;quot;: \\\\&amp;quot;push\\\\&amp;quot;\\\\n}&#039;&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;java&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Java&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Java API Library v25.0.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(\\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;, Environment.TEST);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nSweepSchedule sweepSchedule2 = new SweepSchedule()\\\\n  .cronExpression(\\\\&amp;quot;54 15 * * *\\\\&amp;quot;)\\\\n  .type(SweepSchedule.TypeEnum.CRON);\\\\n\\\\nSweepCounterparty sweepCounterparty2 = new SweepCounterparty()\\\\n  .transferInstrumentId(\\\\&amp;quot;SE322KH223222D5FM372M6337\\\\&amp;quot;);\\\\n\\\\nCreateSweepConfigurationV2 createSweepConfigurationV2 = new CreateSweepConfigurationV2()\\\\n  .schedule(sweepSchedule2)\\\\n  .counterparty(sweepCounterparty2)\\\\n  .description(\\\\&amp;quot;$accountHolderId and $accountHolderDescription\\\\&amp;quot;)\\\\n  .currency(\\\\&amp;quot;EUR\\\\&amp;quot;)\\\\n  .type(CreateSweepConfigurationV2.TypeEnum.PUSH)\\\\n  .status(CreateSweepConfigurationV2.StatusEnum.ACTIVE);\\\\n\\\\n\\\\\\\/\\\\\\\/ Make the API call\\\\nBalanceAccountsApi service = new BalanceAccountsApi(client);\\\\nSweepConfigurationV2 response = service.createSweep(\\\\&amp;quot;balanceAccountId\\\\&amp;quot;, createSweepConfigurationV2, null);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;php&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;PHP&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen PHP API Library v17.4.0\\\\nuse Adyen\\\\\\\\Client;\\\\nuse Adyen\\\\\\\\Environment;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\BalancePlatform\\\\\\\\SweepSchedule;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\BalancePlatform\\\\\\\\SweepCounterparty;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\BalancePlatform\\\\\\\\CreateSweepConfigurationV2;\\\\nuse Adyen\\\\\\\\Service\\\\\\\\BalancePlatform\\\\\\\\BalanceAccountsApi;\\\\n\\\\n$client = new Client();\\\\n$client-&amp;gt;setXApiKey(\\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;);\\\\n$client-&amp;gt;setEnvironment(Environment::TEST);\\\\n\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\n$sweepSchedule2 = new SweepSchedule();\\\\n$sweepSchedule2\\\\n  -&amp;gt;setCronExpression(\\\\&amp;quot;54 15 * * *\\\\&amp;quot;)\\\\n  -&amp;gt;setType(\\\\&amp;quot;cron\\\\&amp;quot;);\\\\n\\\\n$sweepCounterparty2 = new SweepCounterparty();\\\\n$sweepCounterparty2\\\\n  -&amp;gt;setTransferInstrumentId(\\\\&amp;quot;SE322KH223222D5FM372M6337\\\\&amp;quot;);\\\\n\\\\n$createSweepConfigurationV2 = new CreateSweepConfigurationV2();\\\\n$createSweepConfigurationV2\\\\n  -&amp;gt;setSchedule($sweepSchedule2)\\\\n  -&amp;gt;setCounterparty($sweepCounterparty2)\\\\n  -&amp;gt;setDescription(\\\\&amp;quot;\\\\\\\\$accountHolderId and \\\\\\\\$accountHolderDescription\\\\&amp;quot;)\\\\n  -&amp;gt;setCurrency(\\\\&amp;quot;EUR\\\\&amp;quot;)\\\\n  -&amp;gt;setType(\\\\&amp;quot;push\\\\&amp;quot;)\\\\n  -&amp;gt;setStatus(\\\\&amp;quot;active\\\\&amp;quot;);\\\\n\\\\n\\\\\\\/\\\\\\\/ Make the API call\\\\n$service = new BalanceAccountsApi($client);\\\\n$response = $service-&amp;gt;createSweep(&#039;balanceAccountId&#039;, $createSweepConfigurationV2);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;cs&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;C#&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen .net API Library v14.4.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 = \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n    Environment = Environment.Test\\\\n};\\\\nvar client = new Client(config);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nSweepSchedule sweepSchedule2 = new SweepSchedule\\\\n{\\\\n  CronExpression = \\\\&amp;quot;54 15 * * *\\\\&amp;quot;,\\\\n  Type = SweepSchedule.TypeEnum.Cron\\\\n};\\\\n\\\\nSweepCounterparty sweepCounterparty2 = new SweepCounterparty\\\\n{\\\\n  TransferInstrumentId = \\\\&amp;quot;SE322KH223222D5FM372M6337\\\\&amp;quot;\\\\n};\\\\n\\\\nCreateSweepConfigurationV2 createSweepConfigurationV2 = new CreateSweepConfigurationV2\\\\n{\\\\n  Schedule = sweepSchedule2,\\\\n  Counterparty = sweepCounterparty2,\\\\n  Description = \\\\&amp;quot;$accountHolderId and $accountHolderDescription\\\\&amp;quot;,\\\\n  Currency = \\\\&amp;quot;EUR\\\\&amp;quot;,\\\\n  Type = CreateSweepConfigurationV2.TypeEnum.Push,\\\\n  Status = CreateSweepConfigurationV2.StatusEnum.Active\\\\n};\\\\n\\\\n\\\\\\\/\\\\\\\/ Make the API call\\\\nvar service = new BalanceAccountsService(client);\\\\nvar response = service.CreateSweep(\\\\&amp;quot;balanceAccountId\\\\&amp;quot;, createSweepConfigurationV2);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;js&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;NodeJS (JavaScript)&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Node API Library v16.2.0\\\\n\\\\\\\/\\\\\\\/ Require the parts of the module you want to use\\\\nconst { Client, BalancePlatformAPI } = require(&#039;@adyen\\\\\\\/api-library&#039;);\\\\n\\\\\\\/\\\\\\\/ Initialize the client object\\\\nconst client = new Client({apiKey: \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;, environment: \\\\&amp;quot;TEST\\\\&amp;quot;});\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nconst createSweepConfigurationV2 = {\\\\n  counterparty: {\\\\n    transferInstrumentId: \\\\&amp;quot;SE322KH223222D5FM372M6337\\\\&amp;quot;\\\\n  },\\\\n  currency: \\\\&amp;quot;EUR\\\\&amp;quot;,\\\\n  description: \\\\&amp;quot;$accountHolderId and $accountHolderDescription\\\\&amp;quot;,\\\\n  schedule: {\\\\n    cronExpression: \\\\&amp;quot;54 15 * * *\\\\&amp;quot;,\\\\n    type: \\\\&amp;quot;cron\\\\&amp;quot;\\\\n  },\\\\n  status: \\\\&amp;quot;active\\\\&amp;quot;,\\\\n  type: \\\\&amp;quot;push\\\\&amp;quot;\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Make the API call\\\\nconst balancePlatformAPI = new BalancePlatformAPI(client);\\\\nconst response = balancePlatformAPI.BalanceAccountsApi.createSweep(\\\\&amp;quot;balanceAccountId\\\\&amp;quot;, createSweepConfigurationV2);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;go&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Go&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Go API Library v9.3.0\\\\nimport (\\\\n  \\\\&amp;quot;context\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v9\\\\\\\/src\\\\\\\/common\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v9\\\\\\\/src\\\\\\\/adyen\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v9\\\\\\\/src\\\\\\\/balancePlatform\\\\&amp;quot;\\\\n)\\\\nclient := adyen.NewClient(&amp;amp;common.Config{\\\\n  ApiKey:      \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n  Environment: common.TestEnv,\\\\n})\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nsweepSchedule2 := balancePlatform.SweepSchedule{\\\\n  CronExpression: common.PtrString(\\\\&amp;quot;54 15 * * *\\\\&amp;quot;),\\\\n  Type: \\\\&amp;quot;cron\\\\&amp;quot;,\\\\n}\\\\n\\\\nsweepCounterparty2 := balancePlatform.SweepCounterparty{\\\\n  TransferInstrumentId: common.PtrString(\\\\&amp;quot;SE322KH223222D5FM372M6337\\\\&amp;quot;),\\\\n}\\\\n\\\\ncreateSweepConfigurationV2 := balancePlatform.CreateSweepConfigurationV2{\\\\n  Schedule: sweepSchedule2,\\\\n  Counterparty: sweepCounterparty2,\\\\n  Description: common.PtrString(\\\\&amp;quot;$accountHolderId and $accountHolderDescription\\\\&amp;quot;),\\\\n  Currency: \\\\&amp;quot;EUR\\\\&amp;quot;,\\\\n  Type: common.PtrString(\\\\&amp;quot;push\\\\&amp;quot;),\\\\n  Status: common.PtrString(\\\\&amp;quot;active\\\\&amp;quot;),\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Make the API call\\\\nservice := client.BalancePlatform()\\\\nreq := service.BalanceAccountsApi.CreateSweepInput(\\\\&amp;quot;balanceAccountId\\\\&amp;quot;).CreateSweepConfigurationV2(createSweepConfigurationV2)\\\\nres, httpRes, err := service.BalanceAccountsApi.CreateSweep(context.Background(), req)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;py&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Python&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;# Adyen Python API Library v12.2.0\\\\nimport Adyen\\\\n\\\\nadyen = Adyen.Adyen()\\\\nadyen.client.xapikey = \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;\\\\nadyen.client.platform = \\\\&amp;quot;test\\\\&amp;quot; # The environment to use library in.\\\\n\\\\n# Create the request object(s)\\\\njson_request = {\\\\n  \\\\&amp;quot;counterparty\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;transferInstrumentId\\\\&amp;quot;: \\\\&amp;quot;SE322KH223222D5FM372M6337\\\\&amp;quot;\\\\n  },\\\\n  \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;EUR\\\\&amp;quot;,\\\\n  \\\\&amp;quot;description\\\\&amp;quot;: \\\\&amp;quot;$accountHolderId and $accountHolderDescription\\\\&amp;quot;,\\\\n  \\\\&amp;quot;schedule\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;cronExpression\\\\&amp;quot;: \\\\&amp;quot;54 15 * * *\\\\&amp;quot;,\\\\n    \\\\&amp;quot;type\\\\&amp;quot;: \\\\&amp;quot;cron\\\\&amp;quot;\\\\n  },\\\\n  \\\\&amp;quot;status\\\\&amp;quot;: \\\\&amp;quot;active\\\\&amp;quot;,\\\\n  \\\\&amp;quot;type\\\\&amp;quot;: \\\\&amp;quot;push\\\\&amp;quot;\\\\n}\\\\n\\\\n# Make the API call\\\\nresult = adyen.balancePlatform.balance_accounts_api.create_sweep(request=json_request, balanceAccountId=\\\\&amp;quot;balanceAccountId\\\\&amp;quot;)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;rb&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Ruby&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;# Adyen Ruby API Library v9.3.0\\\\nrequire \\\\&amp;quot;adyen-ruby-api-library\\\\&amp;quot;\\\\n\\\\nadyen = Adyen::Client.new\\\\nadyen.api_key = &#039;ADYEN_API_KEY&#039;\\\\nadyen.env = :test # Set to \\\\&amp;quot;live\\\\&amp;quot; for live environment\\\\n\\\\n# Create the request object(s)\\\\nrequest_body = {\\\\n  :counterparty =&amp;gt; {\\\\n    :transferInstrumentId =&amp;gt; &#039;SE322KH223222D5FM372M6337&#039;\\\\n  },\\\\n  :currency =&amp;gt; &#039;EUR&#039;,\\\\n  :description =&amp;gt; &#039;$accountHolderId and $accountHolderDescription&#039;,\\\\n  :schedule =&amp;gt; {\\\\n    :cronExpression =&amp;gt; &#039;54 15 * * *&#039;,\\\\n    :type =&amp;gt; &#039;cron&#039;\\\\n  },\\\\n  :status =&amp;gt; &#039;active&#039;,\\\\n  :type =&amp;gt; &#039;push&#039;\\\\n}\\\\n\\\\n# Make the API call\\\\nresult = adyen.balancePlatform.balance_accounts_api.create_sweep(request_body, &#039;balanceAccountId&#039;)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;ts&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;NodeJS (TypeScript)&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Node API Library v16.2.0\\\\n\\\\\\\/\\\\\\\/ Require the parts of the module you want to use\\\\nimport { Client, BalancePlatformAPI, Types } from \\\\&amp;quot;@adyen\\\\\\\/api-library\\\\&amp;quot;;\\\\n\\\\\\\/\\\\\\\/ Initialize the client object\\\\nconst client = new Client({apiKey: \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;, environment: \\\\&amp;quot;TEST\\\\&amp;quot;});\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nconst sweepSchedule2: Types.balancePlatform.SweepSchedule = {\\\\n  cronExpression: \\\\&amp;quot;54 15 * * *\\\\&amp;quot;,\\\\n  type: Types.balancePlatform.SweepSchedule.TypeEnum.Cron\\\\n};\\\\n\\\\nconst sweepCounterparty2: Types.balancePlatform.SweepCounterparty = {\\\\n  transferInstrumentId: \\\\&amp;quot;SE322KH223222D5FM372M6337\\\\&amp;quot;\\\\n};\\\\n\\\\nconst createSweepConfigurationV2: Types.balancePlatform.CreateSweepConfigurationV2 = {\\\\n  schedule: sweepSchedule2,\\\\n  counterparty: sweepCounterparty2,\\\\n  description: \\\\&amp;quot;$accountHolderId and $accountHolderDescription\\\\&amp;quot;,\\\\n  currency: \\\\&amp;quot;EUR\\\\&amp;quot;,\\\\n  type: Types.balancePlatform.CreateSweepConfigurationV2.TypeEnum.Push,\\\\n  status: Types.balancePlatform.CreateSweepConfigurationV2.StatusEnum.Active\\\\n};\\\\n\\\\n\\\\\\\/\\\\\\\/ Make the API call\\\\nconst balancePlatformAPI = new BalancePlatformAPI(client);\\\\nconst response = balancePlatformAPI.BalanceAccountsApi.createSweep(\\\\&amp;quot;balanceAccountId\\\\&amp;quot;, createSweepConfigurationV2);&amp;quot;}]\\&quot; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;p&gt;To automate the reconciliation of payouts, we recommend that you use the &lt;strong&gt;$shortTransferReference&lt;\\\/strong&gt;. This appears in: &lt;\\\/p&gt;\\n&lt;ul&gt;\\n&lt;li&gt;Customer Area Transfer Details page under Description&lt;\\\/li&gt;\\n&lt;li&gt;Transfer Confirmation Letter under Description&lt;\\\/li&gt;\\n&lt;li&gt;Balance Platform Payout Report under Description&lt;\\\/li&gt;\\n&lt;li&gt;Beneficiary bank statements as remittance information. This is provided by all banks, but the location in the bank statement can differ.&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;\\n\\n        &lt;\\\/div&gt;\\n    &lt;\\\/div&gt;\\n&lt;\\\/div&gt;\\n\\n&quot;,&quot;altTitle&quot;:&quot;API-1&quot;,&quot;oldTabId&quot;:&quot;API-1_2&quot;,&quot;relation&quot;:&quot;&quot;}]\"\n            :should-update-when-url-changes='true'>\n        <\/tabs>\n    <\/div>\n<\/div>\n\n<h2 id=\"get-updates-sweep\">Step 2. Get updates when a transfer results from a sweep<\/h2>\n<p>For every internal transfer request that results from a sweep, Adyen sends multiple <a href=\"\/pt\/platforms\/internal-fund-transfers\/internal-transfer-webhooks\">webhooks<\/a> to your server: a series of webhooks for the balance account where the transfer is an outgoing request, and a series of webhooks for the balance account where the transfer is an incoming request.<\/p>\n<p>Using these webhooks, you can track the status of the transfer: <strong>received<\/strong>, then <strong>authorised<\/strong>, and finally <strong>booked<\/strong>. The webhooks also inform you if the transfer failed.<\/p>\n<p>You can also <a href=\"\/pt\/platforms\/view-transfers-details\">view the transfer details in your Customer Area<\/a>. Each transfer of funds between balance accounts appears in the Customer Area as two transfer entries: one for the balance account that is credited, and one for the balance account that is debited.<\/p>\n<h2>Troubleshooting<\/h2>\n<p>If an internal fund transfer fails, verify if there are enough funds in the source balance account:<\/p>\n<ol>\n<li>Make a GET  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/balanceplatform\/latest\/get\/balanceAccounts\/(id)\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/balanceAccounts\/{id}<\/a> request, specifying the source balance account's ID in the path.<\/li>\n<li>Check the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/balanceplatform\/latest\/get\/balanceAccounts\/(id)#responses-200-balances-available\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">available<\/a> balance.<\/li>\n<li>If the amount is lower than the transfer amount, you can:\n<ul>\n<li>Ask your user to <a href=\"\/pt\/platforms\/top-up-balance-account\">top up<\/a> their balance account.<\/li>\n<li>Make an internal transfer from your liable balance account to your user's balance account.<\/li>\n<\/ul><\/li>\n<\/ol>\n<p>If there are enough funds in the balance account, but the transfer still fails, contact our <a href=\"https:\/\/ca-test.adyen.com\/ca\/ca\/contactUs\/support.shtml?form=other\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Support Team<\/a>.<\/p>\n<h2 id=\"sweep-details\">View sweep details<\/h2>\n<p>After you create a sweep, you can view the details of the resulting scheduled transfer in your <a href=\"https:\/\/ca-test.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Customer Area<\/a>. These details include:<\/p>\n<ul>\n<li>Transfer amount<\/li>\n<li>Source and destination of the transfer<\/li>\n<li>Completed and upcoming scheduled transfers<\/li>\n<\/ul>\n<p>You can view the details of all <a href=\"\/pt\/platforms\/payout-to-users\/scheduled-payouts\">payout schedules<\/a> and internal transfer schedules in the <strong>Balance account details<\/strong> page, under <strong>Scheduled transfers<\/strong>. To do this, your account must have the <strong>Balance platform base<\/strong> <a href=\"\/pt\/account\/user-roles\/\">role<\/a>.<\/p>\n<p>To view the details of a scheduled transfer:<\/p>\n<ol>\n<li>Select <strong>Accounts &amp; balances<\/strong> &gt; <strong>Balance accounts<\/strong>.<\/li>\n<li>In the <strong>Balance platform<\/strong> dropdown, select the balance platform. You can view balance accounts from one balance platform at a time.<\/li>\n<li>In the balance account table, select a balance account ID to open the <strong>Balance account details<\/strong> page.<\/li>\n<li>Under <strong>Scheduled transfers<\/strong>, select a scheduled transfer.<\/li>\n<li>Open the <strong>Details<\/strong> tab to view information about the scheduled transfer.<\/li>\n<li>Open the <strong>Events<\/strong> tab to track the event history of the scheduled transfer. You can:\n<ul>\n<li>View the date of the next scheduled transfer.<\/li>\n<li>View a history of past transfer events, including their execution dates and statuses.<\/li>\n<\/ul><\/li>\n<\/ol>\n<h3>Transfer statuses<\/h3>\n<p>The table below explains the statuses you may see in the <strong>Events<\/strong> tab for each scheduled transfer, along with their possible reasons:<\/p>\n<table>\n<thead>\n<tr>\n<th>Status<\/th>\n<th>Description<\/th>\n<th>Possible reasons<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Not sent<\/strong><\/td>\n<td>The transfer schedule initiated a transfer request, but the transfer request was not successful.<\/td>\n<td><strong>Not enough balance<\/strong>: Check that the balance account has enough funds. If needed, you can <a href=\"\/pt\/platforms\/top-up-balance-account\">top up the balance account<\/a>.<br> <strong>Missing capabilities<\/strong>: Verify that the account holder is allowed to use the <a href=\"#requirements\">required capabilities<\/a>.<\/td>\n<\/tr>\n<tr>\n<td><strong>Failed<\/strong><\/td>\n<td>The transfer failed.<\/td>\n<td><strong>Unauthorized<\/strong>: The transfer was not authorized.<\/td>\n<\/tr>\n<tr>\n<td><strong>Success<\/strong><\/td>\n<td>The transfer was created.<br>The details include the transfer amount, the transfer ID, and a link to the transfer details page.<\/td>\n<td>Not applicable.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","url":"https:\/\/docs.adyen.com\/pt\/platforms\/internal-fund-transfers\/scheduled-fund-transfers","articleFields":{"description":"Create a schedule to automatically transfer funds between balance accounts within your platform.","last_edit_on":"11-09-2020 17:20","cache_enable":false,"search_tags":["sweep","sweeps","push sweep","pull sweep","pull a balance"],"parameters":{"counterpartyType":"balanceAccount","directoryPath":"\/platforms","model":"platform","payoutType":"scheduled"}},"algolia":{"url":"https:\/\/docs.adyen.com\/pt\/platforms\/internal-fund-transfers\/scheduled-fund-transfers","title":"Schedule internal funds transfers","content":"Automate internal funds transfers by configuring sweeps, in the same manner as setting up scheduled payouts. A sweep automatically pushes out or pulls in funds from a balance account based on a pre-defined schedule, amount, and source or destination. For more information, refer to How sweeps work.\nConfigure a push or pull sweep depending on the scenario. For example, to maintain balances, you can set up a pull sweep to pull funds from another balance account when the balance goes below a certain amount. If you want to automate sending bonuses from your liable balance account, you can set up a push sweep to push funds from the liable balance account to your user's balance account.\nThis page explains how to configure sweeps to schedule automatic transfers between balance accounts.\nRequirements\nBefore you begin, take into account the following requirements and preparations:\n\n    \n        \n        \n    \n    \n        \n            Requirement\n            Description\n        \n    \n    \n        \n            \nIntegration type\n\n            \nYou need an Adyen for Platforms integration.\n\n        \n        \n            \nAPI credentials\n\n            \n                Your API credential for the  Transfers API must have the following role:\n                \n                    \nTransferService Webservice Initiate role\n\n                \n            \n        \n        \n            \nCustomer Area roles\n\n            You need the following roles:\n                \n                    \nInitiate internal transfers\n\n                    \nBalance platform base role\n\n                \n            \n        \n        \n            \nWebhooks\n\n            \n                \n                    \nMake sure that your server receives and accepts webhooks.\n\n                    \nIn your Customer Area, subscribe to Transfer webhooks.\n\n                \n            \n        \n        \n            \nCapabilities\n\n            \n                If the balance accounts involved in the transfer do not belong to the same account holder, check the  capabilities  of the account holders:\n                \n                    \nThe account holder of the balance account that sends the the transfer request must have the sendToBalanceAccount capability.\n\n                    \nThe account holder of the balance account that receives the transfer request must have the receiveFromBalanceAccount capability.\n\n                \n            \n        \n        \n            \nSetup steps\n\n            \nBefore you begin your integration, contact our Support Team to enable transfers for the source balance account.\n\n        \n    \n\nCreate a sweep\nConfigure sweeps by using your Customer Area, or making a POST  \/balanceAccounts\/{balanceAccountId}\/sweeps request. In this example, we will use a push sweep to push funds out of a balance account.\n\n\n    \n        \n        \n    \n\n\nStep 2. Get updates when a transfer results from a sweep\nFor every internal transfer request that results from a sweep, Adyen sends multiple webhooks to your server: a series of webhooks for the balance account where the transfer is an outgoing request, and a series of webhooks for the balance account where the transfer is an incoming request.\nUsing these webhooks, you can track the status of the transfer: received, then authorised, and finally booked. The webhooks also inform you if the transfer failed.\nYou can also view the transfer details in your Customer Area. Each transfer of funds between balance accounts appears in the Customer Area as two transfer entries: one for the balance account that is credited, and one for the balance account that is debited.\nTroubleshooting\nIf an internal fund transfer fails, verify if there are enough funds in the source balance account:\n\nMake a GET  \/balanceAccounts\/{id} request, specifying the source balance account's ID in the path.\nCheck the  available balance.\nIf the amount is lower than the transfer amount, you can:\n\nAsk your user to top up their balance account.\nMake an internal transfer from your liable balance account to your user's balance account.\n\n\nIf there are enough funds in the balance account, but the transfer still fails, contact our Support Team.\nView sweep details\nAfter you create a sweep, you can view the details of the resulting scheduled transfer in your Customer Area. These details include:\n\nTransfer amount\nSource and destination of the transfer\nCompleted and upcoming scheduled transfers\n\nYou can view the details of all payout schedules and internal transfer schedules in the Balance account details page, under Scheduled transfers. To do this, your account must have the Balance platform base role.\nTo view the details of a scheduled transfer:\n\nSelect Accounts &amp; balances &gt; Balance accounts.\nIn the Balance platform dropdown, select the balance platform. You can view balance accounts from one balance platform at a time.\nIn the balance account table, select a balance account ID to open the Balance account details page.\nUnder Scheduled transfers, select a scheduled transfer.\nOpen the Details tab to view information about the scheduled transfer.\nOpen the Events tab to track the event history of the scheduled transfer. You can:\n\nView the date of the next scheduled transfer.\nView a history of past transfer events, including their execution dates and statuses.\n\n\nTransfer statuses\nThe table below explains the statuses you may see in the Events tab for each scheduled transfer, along with their possible reasons:\n\n\n\nStatus\nDescription\nPossible reasons\n\n\n\n\nNot sent\nThe transfer schedule initiated a transfer request, but the transfer request was not successful.\nNot enough balance: Check that the balance account has enough funds. If needed, you can top up the balance account. Missing capabilities: Verify that the account holder is allowed to use the required capabilities.\n\n\nFailed\nThe transfer failed.\nUnauthorized: The transfer was not authorized.\n\n\nSuccess\nThe transfer was created.The details include the transfer amount, the transfer ID, and a link to the transfer details page.\nNot applicable.\n\n\n\n","type":"page","locale":"pt","boost":17,"hierarchy":{"lvl0":"Home","lvl1":"Platforms","lvl2":"Transfer funds internally","lvl3":"Schedule internal funds transfers"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/pt","lvl1":"https:\/\/docs.adyen.com\/pt\/platforms","lvl2":"https:\/\/docs.adyen.com\/pt\/platforms\/internal-fund-transfers","lvl3":"\/pt\/platforms\/internal-fund-transfers\/scheduled-fund-transfers"},"levels":4,"category":"Platforms","category_color":"green","tags":["sweep","sweeps","push sweep","pull sweep","pull a balance"]}}
