{"title":"Initiate on-demand internal funds transfers","category":"default","creationDate":1571779920,"content":"<p>In your platform, you can set up a <a href=\"\/pt\/platforms\/internal-fund-transfers\/scheduled-fund-transfers\">schedule<\/a> to automatically transfer funds between balance accounts. In addition to or instead of that, you can transfer funds between balance accounts on-demand.<\/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>How it works<\/h2>\n<p>To make an on-demand transfer, you must <a href=\"#initiate-on-demand-payout\">initiate a transfer request<\/a>. The following diagram shows the stages of a transfer request, from initiation to sending the funds.<\/p>\n<p><img alt=\"\" src=\"\/user\/pages\/reuse\/pfs-transfers\/payouts\/on-demand\/how-it-works\/transfer-flow.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/p>\n<p>As shown in the previous diagram, transfer requests go through the following stages:<\/p>\n<ol>\n<li><strong>Transfer request sent<\/strong>: You send a transfer request using the POST  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/transfers\/latest\/post\/transfers\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/transfers<\/a> endpoint or your <a href=\"https:\/\/ca-test.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Customer Area<\/a>.<\/li>\n<li><strong>Capability check<\/strong>: Adyen verifies that your user has the required capabilities.\n<ul>\n<li>If the capabilities are verified, Adyen receives and accepts your transfer request.<\/li>\n<li>If any capabilities are missing, the transfer request fails.<\/li>\n<\/ul><\/li>\n<li><strong>Approval process<\/strong>: Before approving a transfer, Adyen reviews the transfer and performs internal checks. Additionally, you can trigger additional reviews for the transfer request, to make sure that the transfer is also approved by a member of your team.\n<ul>\n<li>If all the required reviews are completed successfully, the transfer request is approved.<\/li>\n<li>If any of the required reviews fails, the transfer request also fails.<\/li>\n<\/ul><\/li>\n<li><strong>Transfer request authorized<\/strong>: The transfer request is instantly authorized.<br \/>\nIf you specified an execution date in the future, the transfer request remains pending until the execution date, and is authorized on that date.<\/li>\n<li><strong>Transfer request booked<\/strong>: The funds are deducted from the user's balance account and sent to the user's transfer instrument.<\/li>\n<\/ol>\n<p>Adyen informs you about the status of a transfer through <a href=\"#get-updates\">webhooks<\/a>.<\/p>\n<h2>Initiate an internal transfer<\/h2>\n<p>Select the following tabs to learn how to initiate transfers between balance accounts using your Customer Area, or using an API call.<\/p>\n\n<div id=\"tab2eIGi\">\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;In your Customer Area, initiate the transfer as follows:&lt;\\\/p&gt;\\n&lt;ol&gt;\\n&lt;li&gt;Go to &lt;strong&gt;Transactions&lt;\\\/strong&gt; &amp;gt; &lt;strong&gt;Transfers&lt;\\\/strong&gt;.&lt;\\\/li&gt;\\n&lt;li&gt;In the &lt;strong&gt;Balance platform&lt;\\\/strong&gt; dropdown, select the balance platform. You can view transfers from one balance platform at a time.&lt;\\\/li&gt;\\n&lt;li&gt;Select &lt;strong&gt;Transfer funds&lt;\\\/strong&gt;.&lt;\\\/li&gt;\\n&lt;li&gt;In the &lt;strong&gt;Source balance account&lt;\\\/strong&gt; field, enter the ID of the &lt;a href=\\&quot;\\\/pt\\\/platforms\\\/account-structure-resources#resources-1\\&quot;&gt;balance account&lt;\\\/a&gt; where the funds will be debited.&lt;\\\/li&gt;\\n&lt;li&gt;In the &lt;strong&gt;Counterparty Type&lt;\\\/strong&gt; field, select &lt;strong&gt;balanceAccount&lt;\\\/strong&gt;.&lt;\\\/li&gt;\\n&lt;li&gt;Select the &lt;strong&gt;Counterparty balance account ID&lt;\\\/strong&gt;. This is where the funds will be credited.&lt;\\\/li&gt;\\n&lt;li&gt;Select the currency and enter the amount to be transferred.&lt;\\\/li&gt;\\n&lt;li&gt;Optional. Enter the following information:\\n&lt;ul&gt;\\n&lt;li&gt;&lt;strong&gt;Reference&lt;\\\/strong&gt;: your reference for the transfer, used internally within your platform. If you do not provide this, Adyen generates a unique reference. Maximum 80 characters.&lt;\\\/li&gt;\\n&lt;li&gt;&lt;strong&gt;Description&lt;\\\/strong&gt;: a description of the transfer that is sent to the recipient of the transfer request. Supported characters: &lt;code&gt;[a-z][A-Z][0-9]\\\/ - ? : ( ) . , &#039; + Space&lt;\\\/code&gt;. We recommend a maximum of 140 characters.&lt;\\\/li&gt;\\n&lt;li&gt;&lt;strong&gt;Reference for beneficiary&lt;\\\/strong&gt;: a reference that is sent to the recipient of the transfer request. It is also sent in all the webhooks related to the transfer. Supported characters: &lt;code&gt;[a-z][A-Z][0-9]&lt;\\\/code&gt;. Maximum 80 characters.&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;&lt;\\\/li&gt;\\n&lt;li&gt;Select &lt;strong&gt;Transfer funds&lt;\\\/strong&gt; &amp;gt; &lt;strong&gt;Yes, Transfer&lt;\\\/strong&gt;.&lt;\\\/li&gt;\\n&lt;\\\/ol&gt;\\n&lt;p&gt;The transfer request is now created. On the &lt;strong&gt;Transactions&lt;\\\/strong&gt; &amp;gt; &lt;strong&gt;Transfers&lt;\\\/strong&gt; tab you can confirm if the transfer has been booked.&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-fund-transfer-between-balance-accounts\\&quot;&gt;\\n                                    &lt;h3 class=\\&quot;adl-accordion__title\\&quot;&gt;Example fund transfer between balance accounts&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;You want to send EUR 150 from your liable balance account to the balance account of your user.&lt;\\\/p&gt;\\n&lt;p&gt;The following table shows the details you need to enter to initiate the transfer:&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;Source balance account&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;strong&gt;BA00000000000000000000001&lt;\\\/strong&gt; (your liable balance account)&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;strong&gt;Counterparty Type&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;strong&gt;balanceAccount&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;strong&gt;Counterparty balance account ID&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;strong&gt;BA00000000000000000000002&lt;\\\/strong&gt; (your user&#039;s balance account)&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;strong&gt;Amount&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;strong&gt;EUR&lt;\\\/strong&gt; &lt;strong&gt;150&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;strong&gt;Reference (optional)&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td&gt;Your internal reference for the transfer&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;strong&gt;Description (optional)&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td&gt;Your description of the transfer&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;strong&gt;Reference for beneficiary (optional)&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td&gt;Your reference for the recipient of the transfer request&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;ol&gt;\\n&lt;li&gt;\\n&lt;p&gt;To move funds between balance accounts, make a POST  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/transfers\\\/latest\\\/post\\\/transfers\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/transfers&lt;\\\/a&gt; request. In the body of the request, specify the following fields:&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;Parameter&lt;\\\/th&gt;\\n&lt;th style=\\&quot;text-align: center;\\&quot;&gt;Required&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;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/transfers\\\/latest\\\/post\\\/transfers#request-amount\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;amount&lt;\\\/a&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: center;\\&quot;&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;An object containing the currency and value of the transfer.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt; &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/transfers\\\/latest\\\/post\\\/transfers#request-balanceAccountId\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;balanceAccountId&lt;\\\/a&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: center;\\&quot;&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;The unique identifier of the source balance account: the balance account that initiates the transfer request.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt; &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/transfers\\\/latest\\\/post\\\/transfers#request-counterparty-balanceAccountId\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;counterparty.balanceAccountId&lt;\\\/a&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: center;\\&quot;&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;The unique identifier of the target balance account: the balance account that receives the transfer.&lt;br&gt; The funds are credited to this balance account.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt; &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/transfers\\\/latest\\\/post\\\/transfers#request-category\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;category&lt;\\\/a&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: center;\\&quot;&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Set to &lt;strong&gt;internal&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;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/transfers\\\/latest\\\/post\\\/transfers#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 style=\\&quot;text-align: left;\\&quot;&gt;Your description of the transfer. You can use this to identify the transfer in the webhooks that you receive.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt; &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/transfers\\\/latest\\\/post\\\/transfers#request-reference\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;reference&lt;\\\/a&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: center;\\&quot;&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Your unique reference for the transfer. You can use this to identify the transfer in the webhooks that you receive.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt; &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/transfers\\\/latest\\\/post\\\/transfers#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 style=\\&quot;text-align: left;\\&quot;&gt;Text to inform the recipient about the push or pull transfer. This reference is also included in all webhooks. Supported characters: a-z, A-Z, 0-9.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&lt;p&gt;The following example shows how to push &lt;strong&gt;EUR&amp;nbsp;100.00&lt;\\\/strong&gt; from your liable balance account to your user&#039;s balance account.&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n&lt;code-sample :title=\\&quot;&#039;Push funds to another balance account&#039;\\&quot; :id=\\&quot;&#039;internal-transfer&#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\\\\\\\/btl\\\\\\\/v4\\\\\\\/transfers \\\\\\\\\\\\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;amount\\\\&amp;quot;: {\\\\n      \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;EUR\\\\&amp;quot;,\\\\n      \\\\&amp;quot;value\\\\&amp;quot;: 10000\\\\n   },\\\\n   \\\\&amp;quot;balanceAccountId\\\\&amp;quot;: \\\\&amp;quot;BA00000000000000000000001\\\\&amp;quot;,\\\\n   \\\\&amp;quot;counterparty\\\\&amp;quot;: {\\\\n      \\\\&amp;quot;balanceAccountId\\\\&amp;quot;: \\\\&amp;quot;BA00000000000000000000002\\\\&amp;quot;\\\\n   },\\\\n   \\\\&amp;quot;category\\\\&amp;quot; : \\\\&amp;quot;internal\\\\&amp;quot;,\\\\n   \\\\&amp;quot;referenceForBeneficiary\\\\&amp;quot;: \\\\&amp;quot;Your-reference-sent-to-the-counterparty\\\\&amp;quot;,\\\\n   \\\\&amp;quot;description\\\\&amp;quot;: \\\\&amp;quot;YOUR_DESCRIPTION_OF_THE_TRANSFER\\\\&amp;quot;,\\\\n   \\\\&amp;quot;reference\\\\&amp;quot;: \\\\&amp;quot;YOUR_UNIQUE_REFERENCE_FOR_THE_TRANSFER\\\\&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.transfers.*;\\\\nimport java.time.OffsetDateTime;\\\\nimport java.util.*;\\\\nimport com.adyen.model.RequestOptions;\\\\nimport com.adyen.service.transfers.*;\\\\n\\\\nClient client = new Client(\\\\&amp;quot;ADYEN_BALANCE_PLATFORM_API_KEY\\\\&amp;quot;, Environment.TEST);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nAmount amount = new Amount()\\\\n  .currency(\\\\&amp;quot;EUR\\\\&amp;quot;)\\\\n  .value(10000L);\\\\n\\\\nCounterpartyInfoV3 counterpartyInfoV3 = new CounterpartyInfoV3()\\\\n  .balanceAccountId(\\\\&amp;quot;BA00000000000000000000002\\\\&amp;quot;);\\\\n\\\\nTransferInfo transferInfo = new TransferInfo()\\\\n  .balanceAccountId(\\\\&amp;quot;BA00000000000000000000001\\\\&amp;quot;)\\\\n  .reference(\\\\&amp;quot;YOUR_UNIQUE_REFERENCE_FOR_THE_TRANSFER\\\\&amp;quot;)\\\\n  .amount(amount)\\\\n  .referenceForBeneficiary(\\\\&amp;quot;Your-reference-sent-to-the-counterparty\\\\&amp;quot;)\\\\n  .counterparty(counterpartyInfoV3)\\\\n  .description(\\\\&amp;quot;YOUR_DESCRIPTION_OF_THE_TRANSFER\\\\&amp;quot;)\\\\n  .category(TransferInfo.CategoryEnum.INTERNAL);\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nTransfersApi service = new TransfersApi(client);\\\\nTransfer response = service.transferFunds(transferInfo, new RequestOptions().idempotencyKey(\\\\&amp;quot;UUID\\\\&amp;quot;));&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\\\\\\\\Transfers\\\\\\\\Amount;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Transfers\\\\\\\\CounterpartyInfoV3;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Transfers\\\\\\\\TransferInfo;\\\\nuse Adyen\\\\\\\\Service\\\\\\\\Transfers\\\\\\\\TransfersApi;\\\\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$amount = new Amount();\\\\n$amount\\\\n  -&amp;gt;setCurrency(\\\\&amp;quot;EUR\\\\&amp;quot;)\\\\n  -&amp;gt;setValue(10000);\\\\n\\\\n$counterpartyInfoV3 = new CounterpartyInfoV3();\\\\n$counterpartyInfoV3\\\\n  -&amp;gt;setBalanceAccountId(\\\\&amp;quot;BA00000000000000000000002\\\\&amp;quot;);\\\\n\\\\n$transferInfo = new TransferInfo();\\\\n$transferInfo\\\\n  -&amp;gt;setBalanceAccountId(\\\\&amp;quot;BA00000000000000000000001\\\\&amp;quot;)\\\\n  -&amp;gt;setReference(\\\\&amp;quot;YOUR_UNIQUE_REFERENCE_FOR_THE_TRANSFER\\\\&amp;quot;)\\\\n  -&amp;gt;setAmount($amount)\\\\n  -&amp;gt;setReferenceForBeneficiary(\\\\&amp;quot;Your-reference-sent-to-the-counterparty\\\\&amp;quot;)\\\\n  -&amp;gt;setCounterparty($counterpartyInfoV3)\\\\n  -&amp;gt;setDescription(\\\\&amp;quot;YOUR_DESCRIPTION_OF_THE_TRANSFER\\\\&amp;quot;)\\\\n  -&amp;gt;setCategory(\\\\&amp;quot;internal\\\\&amp;quot;);\\\\n\\\\n$requestOptions[&#039;idempotencyKey&#039;] = &#039;UUID&#039;;\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\n$service = new TransfersApi($client);\\\\n$response = $service-&amp;gt;transferFunds($transferInfo, $requestOptions);&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 v28.0.0\\\\nusing Adyen;\\\\nusing Environment = Adyen.Model.Environment;\\\\nusing Adyen.Model;\\\\nusing Adyen.Model.Transfers;\\\\nusing Adyen.Service.Transfers;\\\\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)\\\\nAmount amount = new Amount\\\\n{\\\\n  Currency = \\\\&amp;quot;EUR\\\\&amp;quot;,\\\\n  Value = 10000\\\\n};\\\\n\\\\nCounterpartyInfoV3 counterpartyInfoV3 = new CounterpartyInfoV3\\\\n{\\\\n  BalanceAccountId = \\\\&amp;quot;BA00000000000000000000002\\\\&amp;quot;\\\\n};\\\\n\\\\nTransferInfo transferInfo = new TransferInfo\\\\n{\\\\n  BalanceAccountId = \\\\&amp;quot;BA00000000000000000000001\\\\&amp;quot;,\\\\n  Reference = \\\\&amp;quot;YOUR_UNIQUE_REFERENCE_FOR_THE_TRANSFER\\\\&amp;quot;,\\\\n  Amount = amount,\\\\n  ReferenceForBeneficiary = \\\\&amp;quot;Your-reference-sent-to-the-counterparty\\\\&amp;quot;,\\\\n  Counterparty = counterpartyInfoV3,\\\\n  Description = \\\\&amp;quot;YOUR_DESCRIPTION_OF_THE_TRANSFER\\\\&amp;quot;,\\\\n  Category = TransferInfo.CategoryEnum.Internal\\\\n};\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nvar service = new TransfersService(client);\\\\nvar response = service.TransferFunds(transferInfo, requestOptions: new RequestOptions { IdempotencyKey = \\\\&amp;quot;UUID\\\\&amp;quot;});&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, TransfersAPI } = 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 transferInfo = {\\\\n  amount: {\\\\n    currency: \\\\&amp;quot;EUR\\\\&amp;quot;,\\\\n    value: 10000\\\\n  },\\\\n  balanceAccountId: \\\\&amp;quot;BA00000000000000000000001\\\\&amp;quot;,\\\\n  counterparty: {\\\\n    balanceAccountId: \\\\&amp;quot;BA00000000000000000000002\\\\&amp;quot;\\\\n  },\\\\n  category: \\\\&amp;quot;internal\\\\&amp;quot;,\\\\n  referenceForBeneficiary: \\\\&amp;quot;Your-reference-sent-to-the-counterparty\\\\&amp;quot;,\\\\n  description: \\\\&amp;quot;YOUR_DESCRIPTION_OF_THE_TRANSFER\\\\&amp;quot;,\\\\n  reference: \\\\&amp;quot;YOUR_UNIQUE_REFERENCE_FOR_THE_TRANSFER\\\\&amp;quot;\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nconst transfersAPI = new TransfersAPI(client);\\\\nconst response = transfersAPI.TransfersApi.transferFunds(transferInfo, { idempotencyKey: \\\\&amp;quot;UUID\\\\&amp;quot; });&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 v17.0.0\\\\nimport (\\\\n  \\\\&amp;quot;context\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v17\\\\\\\/src\\\\\\\/common\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v17\\\\\\\/src\\\\\\\/adyen\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v17\\\\\\\/src\\\\\\\/transfers\\\\&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)\\\\namount := transfers.Amount{\\\\n  Currency: \\\\&amp;quot;EUR\\\\&amp;quot;,\\\\n  Value: 10000,\\\\n}\\\\n\\\\ncounterpartyInfoV3 := transfers.CounterpartyInfoV3{\\\\n  BalanceAccountId: common.PtrString(\\\\&amp;quot;BA00000000000000000000002\\\\&amp;quot;),\\\\n}\\\\n\\\\ntransferInfo := transfers.TransferInfo{\\\\n  BalanceAccountId: common.PtrString(\\\\&amp;quot;BA00000000000000000000001\\\\&amp;quot;),\\\\n  Reference: common.PtrString(\\\\&amp;quot;YOUR_UNIQUE_REFERENCE_FOR_THE_TRANSFER\\\\&amp;quot;),\\\\n  Amount: amount,\\\\n  ReferenceForBeneficiary: common.PtrString(\\\\&amp;quot;Your-reference-sent-to-the-counterparty\\\\&amp;quot;),\\\\n  Counterparty: counterpartyInfoV3,\\\\n  Description: common.PtrString(\\\\&amp;quot;YOUR_DESCRIPTION_OF_THE_TRANSFER\\\\&amp;quot;),\\\\n  Category: \\\\&amp;quot;internal\\\\&amp;quot;,\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nservice := client.Transfers()\\\\nreq := service.TransfersApi.TransferFundsInput().IdempotencyKey(\\\\&amp;quot;UUID\\\\&amp;quot;).TransferInfo(transferInfo)\\\\nres, httpRes, err := service.TransfersApi.TransferFunds(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;amount\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;EUR\\\\&amp;quot;,\\\\n    \\\\&amp;quot;value\\\\&amp;quot;: 10000\\\\n  },\\\\n  \\\\&amp;quot;balanceAccountId\\\\&amp;quot;: \\\\&amp;quot;BA00000000000000000000001\\\\&amp;quot;,\\\\n  \\\\&amp;quot;counterparty\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;balanceAccountId\\\\&amp;quot;: \\\\&amp;quot;BA00000000000000000000002\\\\&amp;quot;\\\\n  },\\\\n  \\\\&amp;quot;category\\\\&amp;quot;: \\\\&amp;quot;internal\\\\&amp;quot;,\\\\n  \\\\&amp;quot;referenceForBeneficiary\\\\&amp;quot;: \\\\&amp;quot;Your-reference-sent-to-the-counterparty\\\\&amp;quot;,\\\\n  \\\\&amp;quot;description\\\\&amp;quot;: \\\\&amp;quot;YOUR_DESCRIPTION_OF_THE_TRANSFER\\\\&amp;quot;,\\\\n  \\\\&amp;quot;reference\\\\&amp;quot;: \\\\&amp;quot;YOUR_UNIQUE_REFERENCE_FOR_THE_TRANSFER\\\\&amp;quot;\\\\n}\\\\n\\\\n# Send the request\\\\nresult = adyen.transfers.transfers_api.transfer_funds(request=json_request, idempotency_key=\\\\&amp;quot;UUID\\\\&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  :amount =&amp;gt; {\\\\n    :currency =&amp;gt; &#039;EUR&#039;,\\\\n    :value =&amp;gt; 10000\\\\n  },\\\\n  :balanceAccountId =&amp;gt; &#039;BA00000000000000000000001&#039;,\\\\n  :counterparty =&amp;gt; {\\\\n    :balanceAccountId =&amp;gt; &#039;BA00000000000000000000002&#039;\\\\n  },\\\\n  :category =&amp;gt; &#039;internal&#039;,\\\\n  :referenceForBeneficiary =&amp;gt; &#039;Your-reference-sent-to-the-counterparty&#039;,\\\\n  :description =&amp;gt; &#039;YOUR_DESCRIPTION_OF_THE_TRANSFER&#039;,\\\\n  :reference =&amp;gt; &#039;YOUR_UNIQUE_REFERENCE_FOR_THE_TRANSFER&#039;\\\\n}\\\\n\\\\n# Send the request\\\\nresult = adyen.transfers.transfers_api.transfer_funds(request_body, headers: { &#039;Idempotency-Key&#039; =&amp;gt; &#039;UUID&#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, TransfersAPI, 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 amount: Types.transfers.Amount = {\\\\n  currency: \\\\&amp;quot;EUR\\\\&amp;quot;,\\\\n  value: 10000\\\\n};\\\\n\\\\nconst counterpartyInfoV3: Types.transfers.CounterpartyInfoV3 = {\\\\n  balanceAccountId: \\\\&amp;quot;BA00000000000000000000002\\\\&amp;quot;\\\\n};\\\\n\\\\nconst transferInfo: Types.transfers.TransferInfo = {\\\\n  balanceAccountId: \\\\&amp;quot;BA00000000000000000000001\\\\&amp;quot;,\\\\n  reference: \\\\&amp;quot;YOUR_UNIQUE_REFERENCE_FOR_THE_TRANSFER\\\\&amp;quot;,\\\\n  amount: amount,\\\\n  referenceForBeneficiary: \\\\&amp;quot;Your-reference-sent-to-the-counterparty\\\\&amp;quot;,\\\\n  counterparty: counterpartyInfoV3,\\\\n  description: \\\\&amp;quot;YOUR_DESCRIPTION_OF_THE_TRANSFER\\\\&amp;quot;,\\\\n  category: Types.transfers.TransferInfo.CategoryEnum.Internal\\\\n};\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nconst transfersAPI = new TransfersAPI(client);\\\\nconst response = transfersAPI.TransfersApi.transferFunds(transferInfo, { idempotencyKey: \\\\&amp;quot;UUID\\\\&amp;quot; });&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;&lt;code&gt;id&lt;\\\/code&gt;: the unique ID of the transfer.&lt;\\\/li&gt;\\n&lt;li&gt;&lt;code&gt;status&lt;\\\/code&gt;: the result of the transfer.&lt;\\\/li&gt;\\n&lt;li&gt;&lt;code&gt;reason&lt;\\\/code&gt;: an explanation of the status. Check this field if the status is not &lt;strong&gt;authorised&lt;\\\/strong&gt;.&lt;br \\\/&gt;\\nFor example, the reason for a &lt;strong&gt;refused&lt;\\\/strong&gt; status can be &lt;strong&gt;notEnoughBalance&lt;\\\/strong&gt;.&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&#039;\\&quot; :id=\\&quot;&#039;&#039;\\&quot; :code-data=&#039;[{\\&quot;language\\&quot;:\\&quot;json\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;\\&quot;,\\&quot;content\\&quot;:\\&quot;{\\\\n  \\\\\\&quot;creationDate\\\\\\&quot;: \\\\\\&quot;2023-08-08T13:52:08+02:00\\\\\\&quot;,\\\\n  \\\\\\&quot;id\\\\\\&quot;: \\\\\\&quot;48NJIB9TWQJ6L7U7\\\\\\&quot;,\\\\n  \\\\\\&quot;accountHolder\\\\\\&quot;: {\\\\n    \\\\\\&quot;description\\\\\\&quot;: \\\\\\&quot;Your account holder description\\\\\\&quot;,\\\\n    \\\\\\&quot;id\\\\\\&quot;: \\\\\\&quot;AH00000000000000000000001\\\\\\&quot;,\\\\n    \\\\\\&quot;reference\\\\\\&quot;: \\\\\\&quot;Your account holder reference\\\\\\&quot;\\\\n  },\\\\n  \\\\\\&quot;amount\\\\\\&quot;: {\\\\n    \\\\\\&quot;currency\\\\\\&quot;: \\\\\\&quot;EUR\\\\\\&quot;,\\\\n    \\\\\\&quot;value\\\\\\&quot;: 10000\\\\n  },\\\\n  \\\\\\&quot;balanceAccount\\\\\\&quot;: {\\\\n    \\\\\\&quot;description\\\\\\&quot;: \\\\\\&quot;Your balance account description\\\\\\&quot;,\\\\n    \\\\\\&quot;id\\\\\\&quot;: \\\\\\&quot;BA00000000000000000000001\\\\\\&quot;,\\\\n    \\\\\\&quot;reference\\\\\\&quot;: \\\\\\&quot;Your balance account reference\\\\\\&quot;\\\\n  },\\\\n  \\\\\\&quot;category\\\\\\&quot; : \\\\\\&quot;internal\\\\\\&quot;,\\\\n  \\\\\\&quot;categoryData\\\\\\&quot;: {\\\\n    \\\\\\&quot;type\\\\\\&quot;: \\\\\\&quot;internal\\\\\\&quot;\\\\n  },\\\\n  \\\\\\&quot;counterparty\\\\\\&quot;: {\\\\n    \\\\\\&quot;balanceAccountId\\\\\\&quot;: \\\\\\&quot;BA00000000000000000000002\\\\\\&quot;\\\\n  },\\\\n  \\\\\\&quot;description\\\\\\&quot;: \\\\\\&quot;YOUR_DESCRIPTION_OF_THE_TRANSFER\\\\\\&quot;,\\\\n  \\\\\\&quot;direction\\\\\\&quot;: \\\\\\&quot;outgoing\\\\\\&quot;,\\\\n  \\\\\\&quot;reason\\\\\\&quot;: \\\\\\&quot;approved\\\\\\&quot;,\\\\n  \\\\\\&quot;reference\\\\\\&quot;: \\\\\\&quot;YOUR_UNIQUE_REFERENCE_FOR_THE_TRANSFER\\\\\\&quot;,\\\\n  \\\\\\&quot;referenceForBeneficiary\\\\\\&quot;: \\\\\\&quot;Your-reference-sent-to-the-counterparty\\\\\\&quot;,\\\\n  \\\\\\&quot;status\\\\\\&quot;: \\\\\\&quot;authorised\\\\\\&quot;,\\\\n  \\\\\\&quot;type\\\\\\&quot;: \\\\\\&quot;internalTransfer\\\\\\&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;\\\/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;#trigger-additional-reviews\\&quot;&gt;\\n                                    &lt;h3 class=\\&quot;adl-accordion__title\\&quot;&gt;Trigger additional reviews&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;To better control money movement in your platform, you can trigger additional reviews for transfers. Additional reviews require a member of your team to verify a transfer before Adyen processes it.&lt;\\\/p&gt;\\n&lt;ol&gt;\\n&lt;li&gt;\\n&lt;p&gt;You can trigger an additional review by including the  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/transfers\\\/latest\\\/post\\\/transfers#request-review\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;review&lt;\\\/a&gt; object in the POST  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/transfers\\\/latest\\\/post\\\/transfers\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/transfers&lt;\\\/a&gt; request. In the object, specify the following parameter:&lt;\\\/p&gt;\\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\\\/transfers\\\/latest\\\/post\\\/transfers#request-review-numberOfApprovalsRequired\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;review.numberOfApprovalsRequired&lt;\\\/a&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: center;\\&quot;&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;td&gt;Specifies the number of approvals required to process the transfer.&lt;br\\\/&gt;&lt;br\\\/&gt;Possible values: &lt;strong&gt;1&lt;\\\/strong&gt;. Currently, it is possible to request only one additional review per transfer.&lt;\\\/td&gt;\\n&lt;td&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&lt;p&gt;The following code sample shows how to include the &lt;code&gt;review&lt;\\\/code&gt; object.&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n&lt;code-sample :title=\\&quot;&#039;Trigger an additional review&#039;\\&quot; :id=\\&quot;&#039;trigger-additional-review-internal&#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\\\\\\\/btl\\\\\\\/v4\\\\\\\/transfers \\\\\\\\\\\\n-H &#039;x-api-key: YOUR_BALANCE_PLATFORM_API_KEY&#039; \\\\\\\\\\\\n-H &#039;content-type: application\\\\\\\/json&#039; \\\\\\\\\\\\n-X POST \\\\\\\\\\\\n-d &#039;{\\\\n    \\\\&amp;quot;amount\\\\&amp;quot;: {\\\\n        \\\\&amp;quot;value\\\\&amp;quot;: 60000,\\\\n        \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;EUR\\\\&amp;quot;\\\\n    },\\\\n    \\\\&amp;quot;balanceAccountId\\\\&amp;quot;: \\\\&amp;quot;BA00000000000000000000001\\\\&amp;quot;,\\\\n    \\\\&amp;quot;category\\\\&amp;quot;: \\\\&amp;quot;internal\\\\&amp;quot;,\\\\n    \\\\&amp;quot;counterparty\\\\&amp;quot;: {\\\\n        \\\\&amp;quot;balanceAccountId\\\\&amp;quot;: \\\\&amp;quot;BA00000000000000000000002\\\\&amp;quot;\\\\n    },\\\\n    \\\\&amp;quot;description\\\\&amp;quot;: \\\\&amp;quot;Your-description-for-the-transfer\\\\&amp;quot;,\\\\n    \\\\&amp;quot;reference\\\\&amp;quot;: \\\\&amp;quot;YOUR_INTERNAL_REFERENCE\\\\&amp;quot;,\\\\n    \\\\&amp;quot;referenceForBeneficiary\\\\&amp;quot;: \\\\&amp;quot;Your-reference-for-the-beneficiary\\\\&amp;quot;,\\\\n    \\\\&amp;quot;review\\\\&amp;quot;: {\\\\n        \\\\&amp;quot;numberOfApprovalsRequired\\\\&amp;quot;: 1\\\\n    }\\\\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.transfers.*;\\\\nimport java.time.OffsetDateTime;\\\\nimport java.util.*;\\\\nimport com.adyen.model.RequestOptions;\\\\nimport com.adyen.service.transfers.*;\\\\n\\\\nClient client = new Client(\\\\&amp;quot;YOUR_BALANCE_PLATFORM_API_KEY\\\\&amp;quot;, Environment.TEST);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nAmount amount = new Amount()\\\\n  .currency(\\\\&amp;quot;EUR\\\\&amp;quot;)\\\\n  .value(60000L);\\\\n\\\\nTransferRequestReview transferRequestReview = new TransferRequestReview()\\\\n  .numberOfApprovalsRequired(1);\\\\n\\\\nCounterpartyInfoV3 counterpartyInfoV3 = new CounterpartyInfoV3()\\\\n  .balanceAccountId(\\\\&amp;quot;BA00000000000000000000002\\\\&amp;quot;);\\\\n\\\\nTransferInfo transferInfo = new TransferInfo()\\\\n  .balanceAccountId(\\\\&amp;quot;BA00000000000000000000001\\\\&amp;quot;)\\\\n  .reference(\\\\&amp;quot;YOUR_INTERNAL_REFERENCE\\\\&amp;quot;)\\\\n  .amount(amount)\\\\n  .referenceForBeneficiary(\\\\&amp;quot;Your-reference-for-the-beneficiary\\\\&amp;quot;)\\\\n  .review(transferRequestReview)\\\\n  .counterparty(counterpartyInfoV3)\\\\n  .description(\\\\&amp;quot;Your-description-for-the-transfer\\\\&amp;quot;)\\\\n  .category(TransferInfo.CategoryEnum.INTERNAL);\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nTransfersApi service = new TransfersApi(client);\\\\nTransfer response = service.transferFunds(transferInfo, new RequestOptions().idempotencyKey(\\\\&amp;quot;UUID\\\\&amp;quot;));&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\\\\\\\\Transfers\\\\\\\\Amount;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Transfers\\\\\\\\TransferRequestReview;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Transfers\\\\\\\\CounterpartyInfoV3;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Transfers\\\\\\\\TransferInfo;\\\\nuse Adyen\\\\\\\\Service\\\\\\\\Transfers\\\\\\\\TransfersApi;\\\\n\\\\n$client = new Client();\\\\n$client-&amp;gt;setXApiKey(\\\\&amp;quot;YOUR_BALANCE_PLATFORM_API_KEY\\\\&amp;quot;);\\\\n$client-&amp;gt;setEnvironment(Environment::TEST);\\\\n\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\n$amount = new Amount();\\\\n$amount\\\\n  -&amp;gt;setCurrency(\\\\&amp;quot;EUR\\\\&amp;quot;)\\\\n  -&amp;gt;setValue(60000);\\\\n\\\\n$transferRequestReview = new TransferRequestReview();\\\\n$transferRequestReview\\\\n  -&amp;gt;setNumberOfApprovalsRequired(1);\\\\n\\\\n$counterpartyInfoV3 = new CounterpartyInfoV3();\\\\n$counterpartyInfoV3\\\\n  -&amp;gt;setBalanceAccountId(\\\\&amp;quot;BA00000000000000000000002\\\\&amp;quot;);\\\\n\\\\n$transferInfo = new TransferInfo();\\\\n$transferInfo\\\\n  -&amp;gt;setBalanceAccountId(\\\\&amp;quot;BA00000000000000000000001\\\\&amp;quot;)\\\\n  -&amp;gt;setReference(\\\\&amp;quot;YOUR_INTERNAL_REFERENCE\\\\&amp;quot;)\\\\n  -&amp;gt;setAmount($amount)\\\\n  -&amp;gt;setReferenceForBeneficiary(\\\\&amp;quot;Your-reference-for-the-beneficiary\\\\&amp;quot;)\\\\n  -&amp;gt;setReview($transferRequestReview)\\\\n  -&amp;gt;setCounterparty($counterpartyInfoV3)\\\\n  -&amp;gt;setDescription(\\\\&amp;quot;Your-description-for-the-transfer\\\\&amp;quot;)\\\\n  -&amp;gt;setCategory(\\\\&amp;quot;internal\\\\&amp;quot;);\\\\n\\\\n$requestOptions[&#039;idempotencyKey&#039;] = &#039;UUID&#039;;\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\n$service = new TransfersApi($client);\\\\n$response = $service-&amp;gt;transferFunds($transferInfo, $requestOptions);&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 v28.0.0\\\\nusing Adyen;\\\\nusing Environment = Adyen.Model.Environment;\\\\nusing Adyen.Model;\\\\nusing Adyen.Model.Transfers;\\\\nusing Adyen.Service.Transfers;\\\\n\\\\nvar config = new Config()\\\\n{\\\\n    XApiKey = \\\\&amp;quot;YOUR_BALANCE_PLATFORM_API_KEY\\\\&amp;quot;,\\\\n    Environment = Environment.Test\\\\n};\\\\nvar client = new Client(config);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nAmount amount = new Amount\\\\n{\\\\n  Currency = \\\\&amp;quot;EUR\\\\&amp;quot;,\\\\n  Value = 60000\\\\n};\\\\n\\\\nTransferRequestReview transferRequestReview = new TransferRequestReview\\\\n{\\\\n  NumberOfApprovalsRequired = 1\\\\n};\\\\n\\\\nCounterpartyInfoV3 counterpartyInfoV3 = new CounterpartyInfoV3\\\\n{\\\\n  BalanceAccountId = \\\\&amp;quot;BA00000000000000000000002\\\\&amp;quot;\\\\n};\\\\n\\\\nTransferInfo transferInfo = new TransferInfo\\\\n{\\\\n  BalanceAccountId = \\\\&amp;quot;BA00000000000000000000001\\\\&amp;quot;,\\\\n  Reference = \\\\&amp;quot;YOUR_INTERNAL_REFERENCE\\\\&amp;quot;,\\\\n  Amount = amount,\\\\n  ReferenceForBeneficiary = \\\\&amp;quot;Your-reference-for-the-beneficiary\\\\&amp;quot;,\\\\n  Review = transferRequestReview,\\\\n  Counterparty = counterpartyInfoV3,\\\\n  Description = \\\\&amp;quot;Your-description-for-the-transfer\\\\&amp;quot;,\\\\n  Category = TransferInfo.CategoryEnum.Internal\\\\n};\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nvar service = new TransfersService(client);\\\\nvar response = service.TransferFunds(transferInfo, requestOptions: new RequestOptions { IdempotencyKey = \\\\&amp;quot;UUID\\\\&amp;quot;});&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, TransfersAPI } = require(&#039;@adyen\\\\\\\/api-library&#039;);\\\\n\\\\nconst client = new Client({ apiKey: \\\\&amp;quot;YOUR_BALANCE_PLATFORM_API_KEY\\\\&amp;quot;, environment: \\\\&amp;quot;TEST\\\\&amp;quot; });\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nconst transferInfo = {\\\\n  amount: {\\\\n    value: 60000,\\\\n    currency: \\\\&amp;quot;EUR\\\\&amp;quot;\\\\n  },\\\\n  balanceAccountId: \\\\&amp;quot;BA00000000000000000000001\\\\&amp;quot;,\\\\n  category: \\\\&amp;quot;internal\\\\&amp;quot;,\\\\n  counterparty: {\\\\n    balanceAccountId: \\\\&amp;quot;BA00000000000000000000002\\\\&amp;quot;\\\\n  },\\\\n  description: \\\\&amp;quot;Your-description-for-the-transfer\\\\&amp;quot;,\\\\n  reference: \\\\&amp;quot;YOUR_INTERNAL_REFERENCE\\\\&amp;quot;,\\\\n  referenceForBeneficiary: \\\\&amp;quot;Your-reference-for-the-beneficiary\\\\&amp;quot;,\\\\n  review: {\\\\n    numberOfApprovalsRequired: 1\\\\n  }\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nconst transfersAPI = new TransfersAPI(client);\\\\nconst response = transfersAPI.TransfersApi.transferFunds(transferInfo, { idempotencyKey: \\\\&amp;quot;UUID\\\\&amp;quot; });&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 v17.0.0\\\\nimport (\\\\n  \\\\&amp;quot;context\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v17\\\\\\\/src\\\\\\\/common\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v17\\\\\\\/src\\\\\\\/adyen\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v17\\\\\\\/src\\\\\\\/transfers\\\\&amp;quot;\\\\n)\\\\nclient := adyen.NewClient(&amp;amp;common.Config{\\\\n  ApiKey:      \\\\&amp;quot;YOUR_BALANCE_PLATFORM_API_KEY\\\\&amp;quot;,\\\\n  Environment: common.TestEnv,\\\\n})\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\namount := transfers.Amount{\\\\n  Currency: \\\\&amp;quot;EUR\\\\&amp;quot;,\\\\n  Value: 60000,\\\\n}\\\\n\\\\ntransferRequestReview := transfers.TransferRequestReview{\\\\n  NumberOfApprovalsRequired: common.PtrInt32(1),\\\\n}\\\\n\\\\ncounterpartyInfoV3 := transfers.CounterpartyInfoV3{\\\\n  BalanceAccountId: common.PtrString(\\\\&amp;quot;BA00000000000000000000002\\\\&amp;quot;),\\\\n}\\\\n\\\\ntransferInfo := transfers.TransferInfo{\\\\n  BalanceAccountId: common.PtrString(\\\\&amp;quot;BA00000000000000000000001\\\\&amp;quot;),\\\\n  Reference: common.PtrString(\\\\&amp;quot;YOUR_INTERNAL_REFERENCE\\\\&amp;quot;),\\\\n  Amount: amount,\\\\n  ReferenceForBeneficiary: common.PtrString(\\\\&amp;quot;Your-reference-for-the-beneficiary\\\\&amp;quot;),\\\\n  Review: &amp;amp;transferRequestReview,\\\\n  Counterparty: counterpartyInfoV3,\\\\n  Description: common.PtrString(\\\\&amp;quot;Your-description-for-the-transfer\\\\&amp;quot;),\\\\n  Category: \\\\&amp;quot;internal\\\\&amp;quot;,\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nservice := client.Transfers()\\\\nreq := service.TransfersApi.TransferFundsInput().IdempotencyKey(\\\\&amp;quot;UUID\\\\&amp;quot;).TransferInfo(transferInfo)\\\\nres, httpRes, err := service.TransfersApi.TransferFunds(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;YOUR_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;amount\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;value\\\\&amp;quot;: 60000,\\\\n    \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;EUR\\\\&amp;quot;\\\\n  },\\\\n  \\\\&amp;quot;balanceAccountId\\\\&amp;quot;: \\\\&amp;quot;BA00000000000000000000001\\\\&amp;quot;,\\\\n  \\\\&amp;quot;category\\\\&amp;quot;: \\\\&amp;quot;internal\\\\&amp;quot;,\\\\n  \\\\&amp;quot;counterparty\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;balanceAccountId\\\\&amp;quot;: \\\\&amp;quot;BA00000000000000000000002\\\\&amp;quot;\\\\n  },\\\\n  \\\\&amp;quot;description\\\\&amp;quot;: \\\\&amp;quot;Your-description-for-the-transfer\\\\&amp;quot;,\\\\n  \\\\&amp;quot;reference\\\\&amp;quot;: \\\\&amp;quot;YOUR_INTERNAL_REFERENCE\\\\&amp;quot;,\\\\n  \\\\&amp;quot;referenceForBeneficiary\\\\&amp;quot;: \\\\&amp;quot;Your-reference-for-the-beneficiary\\\\&amp;quot;,\\\\n  \\\\&amp;quot;review\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;numberOfApprovalsRequired\\\\&amp;quot;: 1\\\\n  }\\\\n}\\\\n\\\\n# Send the request\\\\nresult = adyen.transfers.transfers_api.transfer_funds(request=json_request, idempotency_key=\\\\&amp;quot;UUID\\\\&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;YOUR_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  :amount =&amp;gt; {\\\\n    :value =&amp;gt; 60000,\\\\n    :currency =&amp;gt; &#039;EUR&#039;\\\\n  },\\\\n  :balanceAccountId =&amp;gt; &#039;BA00000000000000000000001&#039;,\\\\n  :category =&amp;gt; &#039;internal&#039;,\\\\n  :counterparty =&amp;gt; {\\\\n    :balanceAccountId =&amp;gt; &#039;BA00000000000000000000002&#039;\\\\n  },\\\\n  :description =&amp;gt; &#039;Your-description-for-the-transfer&#039;,\\\\n  :reference =&amp;gt; &#039;YOUR_INTERNAL_REFERENCE&#039;,\\\\n  :referenceForBeneficiary =&amp;gt; &#039;Your-reference-for-the-beneficiary&#039;,\\\\n  :review =&amp;gt; {\\\\n    :numberOfApprovalsRequired =&amp;gt; 1\\\\n  }\\\\n}\\\\n\\\\n# Send the request\\\\nresult = adyen.transfers.transfers_api.transfer_funds(request_body, headers: { &#039;Idempotency-Key&#039; =&amp;gt; &#039;UUID&#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, TransfersAPI, Types } from \\\\&amp;quot;@adyen\\\\\\\/api-library\\\\&amp;quot;;\\\\n\\\\nconst client = new Client({ apiKey: \\\\&amp;quot;YOUR_BALANCE_PLATFORM_API_KEY\\\\&amp;quot;, environment: \\\\&amp;quot;TEST\\\\&amp;quot; });\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nconst amount: Types.transfers.Amount = {\\\\n  currency: \\\\&amp;quot;EUR\\\\&amp;quot;,\\\\n  value: 60000\\\\n};\\\\n\\\\nconst transferRequestReview: Types.transfers.TransferRequestReview = {\\\\n  numberOfApprovalsRequired: 1\\\\n};\\\\n\\\\nconst counterpartyInfoV3: Types.transfers.CounterpartyInfoV3 = {\\\\n  balanceAccountId: \\\\&amp;quot;BA00000000000000000000002\\\\&amp;quot;\\\\n};\\\\n\\\\nconst transferInfo: Types.transfers.TransferInfo = {\\\\n  balanceAccountId: \\\\&amp;quot;BA00000000000000000000001\\\\&amp;quot;,\\\\n  reference: \\\\&amp;quot;YOUR_INTERNAL_REFERENCE\\\\&amp;quot;,\\\\n  amount: amount,\\\\n  referenceForBeneficiary: \\\\&amp;quot;Your-reference-for-the-beneficiary\\\\&amp;quot;,\\\\n  review: transferRequestReview,\\\\n  counterparty: counterpartyInfoV3,\\\\n  description: \\\\&amp;quot;Your-description-for-the-transfer\\\\&amp;quot;,\\\\n  category: Types.transfers.TransferInfo.CategoryEnum.Internal\\\\n};\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nconst transfersAPI = new TransfersAPI(client);\\\\nconst response = transfersAPI.TransfersApi.transferFunds(transferInfo, { idempotencyKey: \\\\&amp;quot;UUID\\\\&amp;quot; });&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;If the transfer request is successful, you receive an &lt;strong&gt;HTTP 202 Accepted&lt;\\\/strong&gt; response containing transfer details, including the following parameters:&lt;\\\/p&gt;\\n&lt;table&gt;\\n&lt;thead&gt;\\n&lt;tr&gt;\\n&lt;th&gt;Parameter name&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\\\/transfers\\\/latest\\\/post\\\/transfers#responses-202-review-numberOfApprovalsRequired\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;review.numberOfApprovalsRequired&lt;\\\/a&gt;&lt;\\\/td&gt;\\n&lt;td&gt;Shows the number of approvals required to process the transfer.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&lt;p&gt;After triggering the review, a member of your team must &lt;a href=\\&quot;\\\/platforms\\\/approve-cancel-transfers\\&quot;&gt;approve&lt;\\\/a&gt; the transfer before Adyen continues processing it.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;\\\/ol&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;#process-a-transfer-type-in-a-future-date\\&quot;&gt;\\n                                    &lt;h3 class=\\&quot;adl-accordion__title\\&quot;&gt;Process a transfer in a future date&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;ol&gt;\\n&lt;li&gt;\\n&lt;p&gt;When you make a transfer request, you can specify a future date when you want Adyen to process the transfer. You can do this by including the  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/transfers\\\/latest\\\/post\\\/transfers#request-executionDate\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;executionDate&lt;\\\/a&gt; object in the POST  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/transfers\\\/latest\\\/post\\\/transfers\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/transfers&lt;\\\/a&gt; request.&lt;\\\/p&gt;\\n&lt;p&gt;If your transfer request is successful, the transfer remains in &lt;code&gt;status&lt;\\\/code&gt; &lt;strong&gt;received&lt;\\\/strong&gt; with &lt;code&gt;reason&lt;\\\/code&gt; &lt;strong&gt;pending&lt;\\\/strong&gt; until the execution date. On the execution date, between 00:00 and 03:00 - based on the time zone configured on the Balance Platform by default - Adyen verifies that:&lt;\\\/p&gt;\\n&lt;ul&gt;\\n&lt;li&gt;The source balance account has enough funds.&lt;\\\/li&gt;\\n&lt;li&gt;The transfer was approved by a member of your team, if you triggered an additional review.&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;\\n&lt;p&gt;If all previous conditions are satisfied, Adyen processes the transfer request.&lt;\\\/p&gt;\\n&lt;p&gt;Adyen attempts to process the transfer only one time. In case of any errors, such as having insufficient funds in the balance account, the transfer request ends with &lt;code&gt;status&lt;\\\/code&gt; &lt;strong&gt;failed&lt;\\\/strong&gt;. If this happens, Adyen sends a &lt;a href=\\&quot;#get-status-updates\\&quot;&gt;webhook&lt;\\\/a&gt; with details about the failure.&lt;\\\/p&gt;\\n&lt;p&gt;To specify a future execution date, specify the following parameters:&lt;\\\/p&gt;\\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\\\/transfers\\\/latest\\\/post\\\/transfers#request-executionDate-date\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;executionDate.date&lt;\\\/a&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: center;\\&quot;&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The date when the transfer will be processed. This date must:&lt;ul&gt;&lt;li markdown=\\&quot;1\\&quot;&gt;Be within 30 days of the current date.&lt;\\\/li&gt;&lt;li markdown=\\&quot;1\\&quot;&gt;Be in the &lt;a href=\\&quot;https:\\\/\\\/www.iso.org\\\/iso-8601-date-and-time-format.html\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;ISO 8601 format&lt;\\\/a&gt; &lt;strong&gt;YYYY-MM-DD&lt;\\\/strong&gt;. For example: 2025-01-31.&lt;\\\/li&gt;&lt;\\\/ul&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\\\/transfers\\\/latest\\\/post\\\/transfers#request-executionDate-timezone\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;executionDate.timezone&lt;\\\/a&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: center;\\&quot;&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The timezone that applies to the execution date. Use a timezone identifier from the &lt;a href=\\&quot;https:\\\/\\\/en.wikipedia.org\\\/wiki\\\/List_of_tz_database_time_zones\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;tz database&lt;\\\/a&gt;.&lt;br\\\/&gt;&lt;br\\\/&gt;For example: &lt;strong&gt;America\\\/Los_Angeles&lt;\\\/strong&gt;.&lt;br\\\/&gt;Default value: &lt;strong&gt;Europe\\\/Amsterdam&lt;\\\/strong&gt;.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&lt;p&gt;The following code sample shows how to include the  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/transfers\\\/latest\\\/post\\\/transfers#request-executionDate\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;executionDate&lt;\\\/a&gt; object in a transfer request.&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n&lt;code-sample :title=\\&quot;&#039;Specify an execution date in the future&#039;\\&quot; :id=\\&quot;&#039;transfer-future-date-internal&#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\\\\\\\/btl\\\\\\\/v4\\\\\\\/transfers \\\\\\\\\\\\n-H &#039;x-api-key: YOUR_BALANCE_PLATFORM_API_KEY&#039; \\\\\\\\\\\\n-H &#039;content-type: application\\\\\\\/json&#039; \\\\\\\\\\\\n-X POST \\\\\\\\\\\\n-d &#039;{\\\\n    \\\\&amp;quot;amount\\\\&amp;quot;: {\\\\n        \\\\&amp;quot;value\\\\&amp;quot;: 80000,\\\\n        \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;EUR\\\\&amp;quot;\\\\n    },\\\\n    \\\\&amp;quot;balanceAccountId\\\\&amp;quot;: \\\\&amp;quot;BA00000000000000000000001\\\\&amp;quot;,\\\\n    \\\\&amp;quot;category\\\\&amp;quot;: \\\\&amp;quot;internal\\\\&amp;quot;,\\\\n    \\\\&amp;quot;counterparty\\\\&amp;quot;: {\\\\n        \\\\&amp;quot;balanceAccountId\\\\&amp;quot;: \\\\&amp;quot;BA00000000000000000000002\\\\&amp;quot;\\\\n    },\\\\n    \\\\&amp;quot;executionDate\\\\&amp;quot;: {\\\\n        \\\\&amp;quot;date\\\\&amp;quot;: \\\\&amp;quot;2025-04-18\\\\&amp;quot;,\\\\n        \\\\&amp;quot;timezone\\\\&amp;quot;: \\\\&amp;quot;America\\\\\\\/Los_Angeles\\\\&amp;quot;\\\\n    },\\\\n    \\\\&amp;quot;referenceForBeneficiary\\\\&amp;quot;: \\\\&amp;quot;Your-reference-sent-to-the-beneficiary\\\\&amp;quot;,\\\\n    \\\\&amp;quot;reference\\\\&amp;quot;: \\\\&amp;quot;Your internal reference for the transfer\\\\&amp;quot;,\\\\n    \\\\&amp;quot;description\\\\&amp;quot;: \\\\&amp;quot;Your description for the transfer\\\\&amp;quot;\\\\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;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;If the transfer request is successful, you receive an &lt;strong&gt;HTTP 202 Accepted&lt;\\\/strong&gt; response with the transfer details and the  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/transfers\\\/latest\\\/post\\\/transfers#responses-200-executionDate\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;executionDate&lt;\\\/a&gt; object.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;\\\/ol&gt;\\n&lt;ol&gt;\\n&lt;li&gt;Before the execution date, you can &lt;a href=\\&quot;\\\/platforms\\\/approve-cancel-transfers\\&quot;&gt;cancel the transfer&lt;\\\/a&gt; by making a POST  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/transfers\\\/latest\\\/post\\\/transfers\\\/cancel\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/transfers\\\/cancel&lt;\\\/a&gt; request.&lt;\\\/li&gt;\\n&lt;\\\/ol&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>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=\"get-status-updates\">Get status updates<\/h2>\n<p>For every internal transfer request, 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>See also<\/h2>\n<div class=\"see-also-links output-inline\" id=\"see-also\">\n<ul><li><a href=\"\/platforms\/internal-fund-transfers\/internal-transfer-webhooks\/\"\n                        target=\"_self\"\n                        >\n                    Internal funds transfer webhooks\n                <\/a><\/li><li><a href=\"\/platforms\/view-transfers-details\"\n                        target=\"_self\"\n                        >\n                    View transfer details\n                <\/a><\/li><li><a href=\"\/platforms\/internal-fund-transfers\/scheduled-fund-transfers\"\n                        target=\"_self\"\n                        >\n                    Schedule automatic internal funds transfers\n                <\/a><\/li><li><a href=\"\/platforms\/approve-cancel-transfers\"\n                        target=\"_self\"\n                        >\n                    Approve or cancel transfers\n                <\/a><\/li><\/ul><\/div>\n","url":"https:\/\/docs.adyen.com\/pt\/platforms\/internal-fund-transfers\/on-demand-fund-transfers","articleFields":{"description":"Send funds or initiate an internal direct debit between balance accounts within your platform.","last_edit_on":"11-09-2020 17:20","cache_enable":false,"parameters":{"counterpartyType":"balanceAccount","directoryPath":"\/platforms","model":"platform"}},"algolia":{"url":"https:\/\/docs.adyen.com\/pt\/platforms\/internal-fund-transfers\/on-demand-fund-transfers","title":"Initiate on-demand internal funds transfers","content":"In your platform, you can set up a schedule to automatically transfer funds between balance accounts. In addition to or instead of that, you can transfer funds between balance accounts on-demand.\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\nHow it works\nTo make an on-demand transfer, you must initiate a transfer request. The following diagram shows the stages of a transfer request, from initiation to sending the funds.\n\nAs shown in the previous diagram, transfer requests go through the following stages:\n\nTransfer request sent: You send a transfer request using the POST  \/transfers endpoint or your Customer Area.\nCapability check: Adyen verifies that your user has the required capabilities.\n\nIf the capabilities are verified, Adyen receives and accepts your transfer request.\nIf any capabilities are missing, the transfer request fails.\n\nApproval process: Before approving a transfer, Adyen reviews the transfer and performs internal checks. Additionally, you can trigger additional reviews for the transfer request, to make sure that the transfer is also approved by a member of your team.\n\nIf all the required reviews are completed successfully, the transfer request is approved.\nIf any of the required reviews fails, the transfer request also fails.\n\nTransfer request authorized: The transfer request is instantly authorized.\nIf you specified an execution date in the future, the transfer request remains pending until the execution date, and is authorized on that date.\nTransfer request booked: The funds are deducted from the user's balance account and sent to the user's transfer instrument.\n\nAdyen informs you about the status of a transfer through webhooks.\nInitiate an internal transfer\nSelect the following tabs to learn how to initiate transfers between balance accounts using your Customer Area, or using an API call.\n\n\n    \n        \n        \n    \n\n\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.\nGet status updates\nFor every internal transfer request, 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.\nSee also\n\n\n                    Internal funds transfer webhooks\n                \n                    View transfer details\n                \n                    Schedule automatic internal funds transfers\n                \n                    Approve or cancel transfers\n                \n","type":"page","locale":"pt","boost":17,"hierarchy":{"lvl0":"Home","lvl1":"Platforms","lvl2":"Transfer funds internally","lvl3":"Initiate on-demand 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\/on-demand-fund-transfers"},"levels":4,"category":"Platforms","category_color":"green","tags":["Initiate","on-demand","internal","funds","transfers"]}}
