{"title":"Create recurring top-ups","category":"default","creationDate":1571779920,"content":"<p>You can create recurring top-ups to automatically pull funds into your balance accounts when needed. This ensures that your balance accounts are adequately funded and have sufficient balance for day-to-day activities.<\/p>\n<p>A recurring top-up triggers outgoing direct debit requests to a bank account, based on the settings you configure. These settings determine the amount, frequency, and source of funds for the direct debit requests. Adyen then books the funds from the top-up to your balance account.<\/p>\n<h2>Requirements<\/h2>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Requirement<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><strong>Integration type<\/strong><\/td>\n<td style=\"text-align: left;\"> Adyen Issuing integration. <\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong><a href=\"\/pt\/development-resources\/api-credentials\/roles\/\">API credential roles<\/a><\/strong><\/td>\n<td style=\"text-align: left;\">Make sure that you have the credentials for the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/balanceplatform\/latest\/overview\" class=\" external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Configuration API<\/a> with the following role:<ul><li markdown=\"1\"><strong>BankAPI Advanced Webservice role<\/strong><\/li><\/ul><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong><a href=\"\/pt\/development-resources\/webhooks\">Webhooks<\/a><\/strong><\/td>\n<td style=\"text-align: left;\">Subscribe to the following webhooks: <ul><li markdown=\"1\"> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/balanceplatform-webhooks\/latest\/overview\" class=\" external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Configuration webhooks<\/a><\/li><li markdown=\"1\"> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/transfer-webhooks\/latest\/overview\" class=\" external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Transfer webhooks<\/a><\/li><li markdown=\"1\"> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/transaction-webhooks\/latest\/overview\" class=\" external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Transaction webhooks<\/a><\/li><\/ul><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong><a href=\"\/pt\/issuing\/verification-overview\/capabilities\">Capabilities<\/a><\/strong><\/td>\n<td style=\"text-align: left;\">To top up using a transfer instrument, you need the following capability: <ul><li markdown=\"1\"><strong>receiveFromTransferInstrument<\/strong><\/li><\/ul><br> Before attempting a transfer, verify that this capability is active and has a valid <code>verificationStatus<\/code>. You can check this via the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/balanceplatform\/latest\/get\/accountHolders\/(id)#responses-200-capabilities-verificationStatus\" class=\" external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">verificationStatus<\/a>.<br><br> Note, if you need to enable this capability see request <a href=\"\/pt\/issuing\/manage-account-holders#request-capability\">additional capabilities<\/a>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Limitations<\/strong><\/td>\n<td style=\"text-align: left;\">This feature does not support on-demand top-ups.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Setup steps<\/strong><\/td>\n<td style=\"text-align: left;\">Make sure that your  <a href=\"\/pt\/issuing\/add-manage-funds\/top-ups#top-up-source\">top-up source<\/a>  has enough balance to fund the top-up.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Create a recurring top-up<\/h2>\n<p>To create a recurring top-up, make a POST <code>\/balanceAccounts\/{balanceAccountId}\/recurringTopUps<\/code> request. In your request, specify the following parameters:<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Parameter<\/th>\n<th style=\"text-align: center;\">Type<\/th>\n<th style=\"text-align: center;\">Required<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><code>balanceAccountId<\/code><\/td>\n<td style=\"text-align: center;\">Path<\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td style=\"text-align: left;\">The unique identifier of the balance account.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>counterparty<\/code><\/td>\n<td style=\"text-align: center;\">Request body<\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td style=\"text-align: left;\">An object containing details about the counterparty that is funding the top-up. For more information, see <a href=\"#counterparty\">Counterparty<\/a>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>description<\/code><\/td>\n<td style=\"text-align: center;\">Request body<\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td style=\"text-align: left;\">Your description for the recurring top-up.<br><br><strong>Format<\/strong>: Maximum length is 140 characters. If you set a longer description, it will be cut off at 140 characters.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>topUpAmount<\/code><\/td>\n<td style=\"text-align: center;\">Request body<\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td style=\"text-align: left;\">An object containing the <code>currency<\/code> and <code>value<\/code> of the top-up amount, in minor units. Use this to specify the amount you want to top up the balance account. For more information, see <a href=\"#top-up-amount\">Top-up amount<\/a>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>trigger<\/code><\/td>\n<td style=\"text-align: center;\">Request body<\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td style=\"text-align: left;\">An object containing details about when to trigger the top-up. This includes the minimum balance <code>value<\/code> and <code>currency<\/code> that serves as the threshold. For more information, see <a href=\"#trigger\">Trigger<\/a>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>status<\/code><\/td>\n<td style=\"text-align: center;\">Request body<\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: left;\">The status of the recurring top-up.<br><br><strong>Possible values<\/strong>:<ul><li markdown=\"1\"><strong>active<\/strong> (default)<\/li><li markdown=\"1\"><strong>inactive<\/strong><\/li><\/ul><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>referenceForBeneficiary<\/code><\/td>\n<td style=\"text-align: center;\">Request body<\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: left;\">The reference sent to the counterparty (the source of the funds) for the direct debit request.<br><br><strong>Format<\/strong>: <ul><li markdown=\"1\">Only alphanumeric characters.<\/li><li markdown=\"1\">Maximum length is 80 characters.<\/li><\/ul><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><img alt=\"This is the required icon.\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/requirements-legend\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/> Required for all transactions. <br><img alt=\"This is the conditionally required icon.\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/requirements-legend\/conditionally-required.svg?decoding=auto&amp;fetchpriority=auto\" \/> Required for particular setups. <br><img alt=\"This is the recommended icon.\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/requirements-legend\/recommended.svg?decoding=auto&amp;fetchpriority=auto\" \/> Recommended for all transactions, but not required.<\/p>\n<h3>Counterparty<\/h3>\n<p>In the <code>counterparty<\/code> object, specify the following parameter.<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Parameter<\/th>\n<th style=\"text-align: center;\">Type<\/th>\n<th style=\"text-align: center;\">Required<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><code>transferInstrumentId<\/code><\/td>\n<td style=\"text-align: center;\">Request body<\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td style=\"text-align: left;\"><strong>Use case<\/strong>: Required if the top-up source is a transfer instrument.<br><br>The unique identifier of the transfer instrument that is funding the top-up.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><img alt=\"This is the required icon.\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/requirements-legend\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/> Required for all transactions. <br><img alt=\"This is the conditionally required icon.\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/requirements-legend\/conditionally-required.svg?decoding=auto&amp;fetchpriority=auto\" \/> Required for particular setups. <br><img alt=\"This is the recommended icon.\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/requirements-legend\/recommended.svg?decoding=auto&amp;fetchpriority=auto\" \/> Recommended for all transactions, but not required.<\/p>\n<h3>Top-up amount<\/h3>\n<p>In the <code>topUpAmount<\/code> object, specify <em>one<\/em> of the following parameters. If you specify both parameters, the request fails.<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Parameter<\/th>\n<th style=\"text-align: center;\">Type<\/th>\n<th style=\"text-align: center;\">Required<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><code>fixed<\/code><\/td>\n<td style=\"text-align: center;\">Request body<\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Conditionally required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Conditionally required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/conditionally-required\/conditionally-required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td style=\"text-align: left;\"><strong>Use case<\/strong>: Required if you use a fixed top-up amount.<br><br>The fixed amount with which you want to top up the balance account.<br><br><strong>Format<\/strong>: Use <a href=\"\/pt\/development-resources\/currency-codes\/#minor-units\">minor units<\/a>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>target<\/code><\/td>\n<td style=\"text-align: center;\">Request body<\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Conditionally required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Conditionally required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/conditionally-required\/conditionally-required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td style=\"text-align: left;\"><strong>Use case<\/strong>: Required if you want to top up to a target amount.<br><br>The target balance for the balance account that the top-up must achieve.<br><br><strong>Format<\/strong>: Use <a href=\"\/pt\/development-resources\/currency-codes\/#minor-units\">minor units<\/a>.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><img alt=\"This is the required icon.\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/requirements-legend\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/> Required for all transactions. <br><img alt=\"This is the conditionally required icon.\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/requirements-legend\/conditionally-required.svg?decoding=auto&amp;fetchpriority=auto\" \/> Required for particular setups. <br><img alt=\"This is the recommended icon.\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/requirements-legend\/recommended.svg?decoding=auto&amp;fetchpriority=auto\" \/> Recommended for all transactions, but not required.<\/p>\n<h3>Trigger<\/h3>\n<p>In the <code>trigger<\/code> object, specify the following parameters:<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Parameter<\/th>\n<th style=\"text-align: center;\">Type<\/th>\n<th style=\"text-align: center;\">Required<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><code>schedule<\/code><\/td>\n<td style=\"text-align: center;\">Request body<\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: left;\">The frequency at which to check the available balance on the balance account. If not specified, the balance is continuously monitored.<br><br><strong>Possible values<\/strong>:<ul><li markdown=\"1\"><strong>weekdays<\/strong>: from Monday to Friday at 07:00 AM<\/li><li markdown=\"1\"><strong>weekly<\/strong>: on Mondays at 07:00 AM<\/li><li markdown=\"1\"><strong>monthly<\/strong>: on the 1st of each month at 07:00 AM<\/li><li markdown=\"1\"><strong>null<\/strong> (default): continuous monitoring<\/li><\/ul><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>threshold<\/code><\/td>\n<td style=\"text-align: center;\">Request body<\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td style=\"text-align: left;\">The minimum balance you want to keep in the account. During the regular checks defined in <code>trigger.schedule<\/code>, if the available balance is below the threshold amount, we trigger a top-up.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"accordion-shortcode adl-accordion adl-accordion--max-height-transition\" data-expand=\"true\" data-ignore=\"anchorjs-link\">\n    \n    <div class=\"adl-accordion__item\" style=\"\">\n        <div tabindex=\"0\" role=\"item\" aria-expanded=\"false\" class=\"adl-accordion__header\">\n            <i class=\"adl-accordion__toggle adl-icon-chevron-down\"><\/i>\n            <div class=\"adl-accordion__title-wrapper\" data-accordion=\"#example-create-recurring-top-up\">\n                                    <h3 class=\"adl-accordion__title\">Example - Create recurring top-up<\/h3>\n                            <\/div>\n        <\/div>\n        <div role=\"region\" class=\"adl-accordion__content\">\n            \n<p>You have a balance account with the following details:<\/p>\n<ul>\n<li>Balance account ID: <strong>BA00000000000000000000001<\/strong><\/li>\n<li>Available balance: <strong>USD 500.00<\/strong><\/li>\n<\/ul>\n<p>You want to create a recurring top-up for this balance account with the following settings:<\/p>\n<ul>\n<li>Source of funds: transfer instrument with ID <strong>TI00000000000000000000001<\/strong>.<\/li>\n<li>Top-up amount: a target amount of <strong>USD 1000<\/strong> for the balance account.<\/li>\n<li>Schedule: check the available balance weekly, <strong>every Monday at 7:00 AM<\/strong>.<\/li>\n<li>Threshold: top up the balance account only if the available balance drops below <strong>USD 250<\/strong>.<\/li>\n<\/ul>\n<p>Here is an example request to create this recurring top-up:<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Create recurring top-up'\" :id=\"''\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/balanceplatform-api-beta.adyen.com\\\/bcl\\\/v2\\\/balanceAccounts\\\/BA00000000000000000000001\\\/recurringTopUps \\\\\\n-H 'x-api-key: ADYEN_BALANCE_PLATFORM_API_KEY' \\\\\\n-H 'content-type: application\\\/json' \\\\\\n-X POST \\\\\\n-d '{\\n  \\&quot;counterparty\\&quot;: {\\n    \\&quot;transferInstrumentId\\&quot;: \\&quot;TI00000000000000000000001\\&quot;\\n  },\\n  \\&quot;description\\&quot;: \\&quot;Your description for the recurring top-up\\&quot;,\\n  \\&quot;topUpAmount\\&quot;: {\\n    \\&quot;target\\&quot;: {\\n      \\&quot;value\\&quot;: 100000,\\n      \\&quot;currency\\&quot;: \\&quot;USD\\&quot;\\n    }\\n  },\\n  \\&quot;trigger\\&quot;: {\\n    \\&quot;schedule\\&quot;: {\\n      \\&quot;type\\&quot;: \\&quot;weekly\\&quot;\\n    },\\n    \\&quot;threshold\\&quot;: {\\n      \\&quot;value\\&quot;: 25000,\\n      \\&quot;currency\\&quot;: \\&quot;USD\\&quot;\\n    }\\n  }\\n}'&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>You receive the following response:<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Response - create recurring top-up'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"\\n{\\n \\\"id\\\": \\\"TU0000000000001\\\",\\n \\\"counterparty\\\": {\\n     \\\"transferInstrumentId\\\": \\\"TI00000000000000000000001\\\"\\n },\\n \\\"description\\\": \\\"Your description for the recurring top-up\\\",\\n \\\"topUpAmount\\\": {\\n   \\\"target\\\": {\\n     \\\"value\\\": 100000,\\n     \\\"currency\\\": \\\"USD\\\"\\n   }\\n },\\n \\\"trigger\\\": {\\n   \\\"schedule\\\": {\\n     \\\"type\\\": \\\"weekly\\\"\\n   },\\n   \\\"threshold\\\": {\\n     \\\"value\\\": 25000,\\n     \\\"currency\\\": \\\"USD\\\"\\n   }\\n },\\n \\\"status\\\": \\\"active\\\"\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n\n        <\/div>\n    <\/div>\n<\/div>\n\n<h2>Error messages and failure reasons<\/h2>\n<p>Use the following table to identify and troubleshoot errors returned in the API response during a top-up.<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Error message<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">Unauthorised.<\/td>\n<td style=\"text-align: left;\">The request failed due to invalid credentials.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Could not find balance account with <code>id<\/code>.<\/td>\n<td style=\"text-align: left;\">The user does not have access to the balance account.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">No routes could be found using the provided sweep.<\/td>\n<td style=\"text-align: left;\">No route is configured.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Account top up currency mismatch.<\/td>\n<td style=\"text-align: left;\">There is a currency mismatch between the balance account and the request.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Invalid transfer instrument with id <code>transferInstrumentId<\/code>.<\/td>\n<td style=\"text-align: left;\">The provided <code>transferInstrumentId<\/code> is invalid.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Legal entity not having access to transfer instrument.<\/td>\n<td style=\"text-align: left;\">The legal entity does not have access to the transfer instrument provided.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>balanceAccountHolder<\/code> has invalid account status inactive.<\/td>\n<td style=\"text-align: left;\">The balance account holder has an inactive account status.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Missing Capabilities <strong>receiveFromTransferInstrument<\/strong> for <code>balanceAccountHolder<\/code>.<\/td>\n<td style=\"text-align: left;\">The balance account holder is missing the <strong>receiveFromTransferInstrument<\/strong> capability.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>See also<\/h2>\n<div class=\"next-steps\" id=\"next-steps\" >\n<a href=\"\/issuing\/add-manage-funds\/top-ups\/manage-recurring-top-ups\" class=\"next-steps__step\" style=\"width:45%;\" target=\"_self\"><p class=\"next-steps__body\"><div style=\"text-align: center;\"><h6 class=\"next-steps__title\">Manage recurring top-ups<\/h6><p>Learn how to view, change, and delete recurring top-ups.<\/p><\/div><\/p><\/a><a href=\"\/issuing\/add-manage-funds\/top-ups\/top-up-webhooks\" class=\"next-steps__step\" style=\"width:45%;\" target=\"_self\"><p class=\"next-steps__body\"><div style=\"text-align: center;\"><h6 class=\"next-steps__title\">Top-up webhooks<\/h6><p>Stay updated about changes to the recurring top-ups on your platform.<\/p><\/div><\/p><\/a><\/div>\n","url":"https:\/\/docs.adyen.com\/pt\/issuing\/add-manage-funds\/top-ups\/create-recurring-top-ups","articleFields":{"Menu":"Create recurring top-ups","description":"Learn how to configure recurring top-ups for your balance accounts.","last_edit_on":"11-09-2020 17:20","parameters":{"directoryPath":"\/issuing","integrationType":"issuing"}},"algolia":{"url":"https:\/\/docs.adyen.com\/pt\/issuing\/add-manage-funds\/top-ups\/create-recurring-top-ups","title":"Create recurring top-ups","content":"You can create recurring top-ups to automatically pull funds into your balance accounts when needed. This ensures that your balance accounts are adequately funded and have sufficient balance for day-to-day activities.\nA recurring top-up triggers outgoing direct debit requests to a bank account, based on the settings you configure. These settings determine the amount, frequency, and source of funds for the direct debit requests. Adyen then books the funds from the top-up to your balance account.\nRequirements\n\n\n\nRequirement\nDescription\n\n\n\n\nIntegration type\n Adyen Issuing integration. \n\n\nAPI credential roles\nMake sure that you have the credentials for the  Configuration API with the following role:BankAPI Advanced Webservice role\n\n\nWebhooks\nSubscribe to the following webhooks:  Configuration webhooks Transfer webhooks Transaction webhooks\n\n\nCapabilities\nTo top up using a transfer instrument, you need the following capability: receiveFromTransferInstrument Before attempting a transfer, verify that this capability is active and has a valid verificationStatus. You can check this via the  verificationStatus. Note, if you need to enable this capability see request additional capabilities.\n\n\nLimitations\nThis feature does not support on-demand top-ups.\n\n\nSetup steps\nMake sure that your  top-up source  has enough balance to fund the top-up.\n\n\n\nCreate a recurring top-up\nTo create a recurring top-up, make a POST \/balanceAccounts\/{balanceAccountId}\/recurringTopUps request. In your request, specify the following parameters:\n\n\n\nParameter\nType\nRequired\nDescription\n\n\n\n\nbalanceAccountId\nPath\n\nThe unique identifier of the balance account.\n\n\ncounterparty\nRequest body\n\nAn object containing details about the counterparty that is funding the top-up. For more information, see Counterparty.\n\n\ndescription\nRequest body\n\nYour description for the recurring top-up.Format: Maximum length is 140 characters. If you set a longer description, it will be cut off at 140 characters.\n\n\ntopUpAmount\nRequest body\n\nAn object containing the currency and value of the top-up amount, in minor units. Use this to specify the amount you want to top up the balance account. For more information, see Top-up amount.\n\n\ntrigger\nRequest body\n\nAn object containing details about when to trigger the top-up. This includes the minimum balance value and currency that serves as the threshold. For more information, see Trigger.\n\n\nstatus\nRequest body\n\nThe status of the recurring top-up.Possible values:active (default)inactive\n\n\nreferenceForBeneficiary\nRequest body\n\nThe reference sent to the counterparty (the source of the funds) for the direct debit request.Format: Only alphanumeric characters.Maximum length is 80 characters.\n\n\n\n Required for all transactions.  Required for particular setups.  Recommended for all transactions, but not required.\nCounterparty\nIn the counterparty object, specify the following parameter.\n\n\n\nParameter\nType\nRequired\nDescription\n\n\n\n\ntransferInstrumentId\nRequest body\n\nUse case: Required if the top-up source is a transfer instrument.The unique identifier of the transfer instrument that is funding the top-up.\n\n\n\n Required for all transactions.  Required for particular setups.  Recommended for all transactions, but not required.\nTop-up amount\nIn the topUpAmount object, specify one of the following parameters. If you specify both parameters, the request fails.\n\n\n\nParameter\nType\nRequired\nDescription\n\n\n\n\nfixed\nRequest body\n\nUse case: Required if you use a fixed top-up amount.The fixed amount with which you want to top up the balance account.Format: Use minor units.\n\n\ntarget\nRequest body\n\nUse case: Required if you want to top up to a target amount.The target balance for the balance account that the top-up must achieve.Format: Use minor units.\n\n\n\n Required for all transactions.  Required for particular setups.  Recommended for all transactions, but not required.\nTrigger\nIn the trigger object, specify the following parameters:\n\n\n\nParameter\nType\nRequired\nDescription\n\n\n\n\nschedule\nRequest body\n\nThe frequency at which to check the available balance on the balance account. If not specified, the balance is continuously monitored.Possible values:weekdays: from Monday to Friday at 07:00 AMweekly: on Mondays at 07:00 AMmonthly: on the 1st of each month at 07:00 AMnull (default): continuous monitoring\n\n\nthreshold\nRequest body\n\nThe minimum balance you want to keep in the account. During the regular checks defined in trigger.schedule, if the available balance is below the threshold amount, we trigger a top-up.\n\n\n\n\n    \n    \n        \n            \n            \n                                    Example - Create recurring top-up\n                            \n        \n        \n            \nYou have a balance account with the following details:\n\nBalance account ID: BA00000000000000000000001\nAvailable balance: USD 500.00\n\nYou want to create a recurring top-up for this balance account with the following settings:\n\nSource of funds: transfer instrument with ID TI00000000000000000000001.\nTop-up amount: a target amount of USD 1000 for the balance account.\nSchedule: check the available balance weekly, every Monday at 7:00 AM.\nThreshold: top up the balance account only if the available balance drops below USD 250.\n\nHere is an example request to create this recurring top-up:\n\n    \n\nYou receive the following response:\n\n    \n\n\n        \n    \n\n\nError messages and failure reasons\nUse the following table to identify and troubleshoot errors returned in the API response during a top-up.\n\n\n\nError message\nDescription\n\n\n\n\nUnauthorised.\nThe request failed due to invalid credentials.\n\n\nCould not find balance account with id.\nThe user does not have access to the balance account.\n\n\nNo routes could be found using the provided sweep.\nNo route is configured.\n\n\nAccount top up currency mismatch.\nThere is a currency mismatch between the balance account and the request.\n\n\nInvalid transfer instrument with id transferInstrumentId.\nThe provided transferInstrumentId is invalid.\n\n\nLegal entity not having access to transfer instrument.\nThe legal entity does not have access to the transfer instrument provided.\n\n\nbalanceAccountHolder has invalid account status inactive.\nThe balance account holder has an inactive account status.\n\n\nMissing Capabilities receiveFromTransferInstrument for balanceAccountHolder.\nThe balance account holder is missing the receiveFromTransferInstrument capability.\n\n\n\nSee also\n\nManage recurring top-upsLearn how to view, change, and delete recurring top-ups.Top-up webhooksStay updated about changes to the recurring top-ups on your platform.\n","type":"page","locale":"pt","boost":16,"hierarchy":{"lvl0":"Home","lvl1":"Adyen Issuing","lvl2":"Add and manage funds","lvl3":"Top up accounts","lvl4":"Create recurring top-ups"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/pt","lvl1":"https:\/\/docs.adyen.com\/pt\/issuing","lvl2":"https:\/\/docs.adyen.com\/pt\/issuing\/add-manage-funds","lvl3":"https:\/\/docs.adyen.com\/pt\/issuing\/add-manage-funds\/top-ups","lvl4":"\/pt\/issuing\/add-manage-funds\/top-ups\/create-recurring-top-ups"},"levels":5,"category":"Issuing","category_color":"green","tags":["Create","recurring","top-ups"]}}
