{"title":"Manage mandates for direct debits in the UK","category":"default","creationDate":1574035980,"content":"<p><span style=\"color: #0ABF53;\"><span style=\"font-size: 20px;\"><strong>Limited availability<\/strong><\/span><\/span><br \/>\nDirect debits in the UK are in pilot phase. Some of the processes and documentation may change as the feature evolves.<\/p>\n<hr \/>\n<p>A mandate is an authorization that your user gives for allowing a counterparty to debit funds from the user's business account. When your user authorizes a one-time or recurring direct debit, the counterparty's bank notifies Adyen, and a mandate is created. <\/p>\n<p>After a mandate is created, you can view, amend, or cancel the mandate using Adyen's APIs. This page explains how to make API requests related to mandates and how to get updates about the result of these requests.<\/p>\n<h2>Requirements<\/h2>\n<p>Before you begin, make sure that you fulfill the following requirements:<\/p>\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;\">You must have an <a href=\"\/pt\/adyen-for-platforms-model\">Adyen for Platforms<\/a> integration that includes business accounts.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong><a href=\"\/pt\/business-accounts\/manage-access#manage-api-credentials\">API credential roles<\/a><\/strong><\/td>\n<td style=\"text-align: left;\">Make sure that your web service API key has the following role: <ul><li><strong>Manage Direct Debit Mandates role<\/strong><\/li><\/ul><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Capabilities<\/strong><\/td>\n<td style=\"text-align: left;\">Make sure that you enabled the following capability for your user: <ul><li><span translate=\"no\"><strong>sendToThirdParty<\/strong><\/span><\/li><\/ul><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Webhooks<\/strong><\/td>\n<td style=\"text-align: left;\">In your Customer Area, subscribe to the following webhook: <ul><li><span translate=\"no\"><strong>Mandate Webhooks<\/strong><\/span><\/li><\/ul><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Limitations<\/strong><\/td>\n<td style=\"text-align: left;\">Currently, these endpoints only support mandates created for accounts in the UK.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Setup steps<\/strong><\/td>\n<td style=\"text-align: left;\">Reach out to your Adyen contact to enable direct debits in the UK.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>View a list of mandates<\/h2>\n<p>You can view a list of all mandates created for a business account, regardless of the status.<\/p>\n<p>To get this list: <\/p>\n<ol>\n<li>\n<p>Make a GET <code>\/mandates<\/code> request, specifying <em>at least one<\/em> of following parameters:<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Parameter name<\/th>\n<th style=\"text-align: left;\">Parameter 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: left;\">Query<\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: left;\">The unique identifier of the balance account linked to your user's business account.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>paymentInstrumentId<\/code><\/td>\n<td style=\"text-align: left;\">Query<\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: left;\">The unique identifier of your user's business account.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The following code example shows a GET <code>\/mandates<\/code> request for a balance account with ID <span translate=\"no\"><strong>BA000000000000000000000001<\/strong><\/span>, linked to a business account with ID <span translate=\"no\"><strong>PI000000000000000000000001<\/strong><\/span>.<\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Example request for getting a list of mandates'\" :id=\"'get-list-mandates'\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/balanceplatform-api-test.adyen.com\\\/bcl\\\/v2\\\/mandates?balanceAccountId=BA000000000000000000000001&amp;paymentInstrumentId=PI000000000000000000000001 \\\\\\n-H 'x-api-key: ADYEN_BALANCE_PLATFORM_API_KEY' \\\\\\n-H 'content-type: application\\\/json' \\\\\\n-X GET \\\\&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>A successful request returns an <span translate=\"no\"><strong>HTTP 200<\/strong><\/span> response.<\/p>\n<\/li>\n<li>\n<p>In the <span translate=\"no\"><strong>HTTP 200<\/strong><\/span> response, verify that you received the following parameters:<\/p>\n<table>\n<thead>\n<tr>\n<th>Response parameter<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>mandates<\/code><\/td>\n<td>An array that contains all mandates that match the query parameters.<\/td>\n<\/tr>\n<tr>\n<td><code>link<\/code><\/td>\n<td>An object that contains links to the next or previous page, when applicable.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Example response for getting a list of mandates'\" :id=\"'get-list-mandates-response'\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n    \\\"mandates\\\": [\\n        {\\n            \\\"id\\\": \\\"MNDT000000000000000000000001\\\",\\n            \\\"type\\\": \\\"bacs\\\",\\n            \\\"balanceAccountId\\\": \\\"BA000000000000000000000001\\\",\\n            \\\"paymentInstrumentId\\\": \\\"PI000000000000000000000001\\\",\\n            \\\"status\\\": \\\"approved\\\",\\n            \\\"counterparty\\\": {\\n                \\\"accountIdentification\\\": {\\n                    \\\"type\\\": \\\"ukLocal\\\",\\n                    \\\"accountNumber\\\": \\\"10809699\\\",\\n                    \\\"sortCode\\\": \\\"405081\\\"\\n                },\\n                \\\"accountHolder\\\": {\\n                    \\\"fullName\\\": \\\"Albert Klassens\\\"\\n                }\\n            },\\n            \\\"createdAt\\\": \\\"2025-09-03T10:30:14.674Z\\\",\\n            \\\"updatedAt\\\": \\\"2025-09-03T10:30:14.674Z\\\"\\n        },\\n        {\\n            \\\"id\\\": \\\"MNDT000000000000000000000002\\\",\\n            \\\"type\\\": \\\"bacs\\\",\\n            \\\"balanceAccountId\\\": \\\"BA000000000000000000000001\\\",\\n            \\\"paymentInstrumentId\\\": \\\"PI000000000000000000000001\\\",\\n            \\\"status\\\": \\\"approved\\\",\\n            \\\"counterparty\\\": {\\n                \\\"accountIdentification\\\": {\\n                    \\\"type\\\": \\\"ukLocal\\\",\\n                    \\\"accountNumber\\\": \\\"12345678\\\",\\n                    \\\"sortCode\\\": \\\"405081\\\"\\n                },\\n                \\\"accountHolder\\\": {\\n                    \\\"fullName\\\": \\\"Acme Ltd.\\\"\\n                }\\n            },\\n            \\\"createdAt\\\": \\\"2025-09-03T10:22:19.660Z\\\",\\n            \\\"updatedAt\\\": \\\"2025-09-03T10:22:19.660Z\\\"\\n        },\\n        {\\n            \\\"id\\\": \\\"MNDT000000000000000000000003\\\",\\n            \\\"type\\\": \\\"bacs\\\",\\n            \\\"balanceAccountId\\\": \\\"BA000000000000000000000001\\\",\\n            \\\"paymentInstrumentId\\\": \\\"PI000000000000000000000001\\\",\\n            \\\"status\\\": \\\"cancelled\\\",\\n            \\\"counterparty\\\": {\\n                \\\"accountIdentification\\\": {\\n                    \\\"type\\\": \\\"ukLocal\\\",\\n                    \\\"accountNumber\\\": \\\"10203040\\\",\\n                    \\\"sortCode\\\": \\\"405081\\\"\\n                },\\n                \\\"accountHolder\\\": {\\n                    \\\"fullName\\\": \\\"Jane Query\\\"\\n                }\\n            },\\n            \\\"createdAt\\\": \\\"2025-09-01T16:48:59.681Z\\\",\\n            \\\"updatedAt\\\": \\\"2025-09-03T10:11:46.672Z\\\"\\n        }\\n    ],\\n    \\\"link\\\": {\\n        \\\"next\\\": {\\n            \\\"href\\\": \\\"https:\\\/\\\/balanceplatform-api-test.adyen.com\\\/bcl\\\/api\\\/v2\\\/mandates?balanceAccountId=BA000000000000000000000001&amp;paymentInstrumentId=PI000000000000000000000001&amp;cursor=S2B-YlVcNkU0aSZwK32hMTjhbRUNdLkNKd1ltNg\\\"\\n        }\\n    }\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<\/ol>\n<h2>View a specific mandate<\/h2>\n<p>To view the details of a specific mandate:<\/p>\n<ol>\n<li>\n<p>Make a GET <code>\/mandates\/{mandateId}<\/code> request, specifying the <code>mandateId<\/code> in the path.<\/p>\n<p>The following example shows how to get the details of a mandate with ID <span translate=\"no\"><strong>MNDT000000000000000000000001<\/strong><\/span>.<\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Example request for getting a specific mandate'\" :id=\"'get-specific-mandate'\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/balanceplatform-api-test.adyen.com\\\/bcl\\\/v2\\\/mandates\\\/MNDT000000000000000000000001 \\\\\\n-H 'x-api-key: ADYEN_BALANCE_PLATFORM_API_KEY' \\\\\\n-H 'content-type: application\\\/json' \\\\\\n-X GET \\\\&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>A successful request returns an <span translate=\"no\"><strong>HTTP 200<\/strong><\/span> response. <\/p>\n<\/li>\n<li>\n<p>In the <span translate=\"no\"><strong>HTTP 200<\/strong><\/span> response, verify that you received an object with the following parameters:<\/p>\n<div class=\"sticky-table-container\">\n    \n<table>\n<thead>\n<tr>\n<th>Response parameter<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>balanceAccountId<\/code><\/td>\n<td>The unique identifier of the balance account to which the mandate applies.<\/td>\n<\/tr>\n<tr>\n<td><code>counterparty<\/code><\/td>\n<td>An object that contains information about the party that receives the funds from the direct debit.<\/td>\n<\/tr>\n<tr>\n<td><code>createdAt<\/code><\/td>\n<td>The date when the mandate was created.<\/td>\n<\/tr>\n<tr>\n<td><code>id<\/code><\/td>\n<td>The unique identifier of the mandate.<\/td>\n<\/tr>\n<tr>\n<td><code>paymentInstrumentId<\/code><\/td>\n<td>The unique identifier of your user's business account.<\/td>\n<\/tr>\n<tr>\n<td><code>status<\/code><\/td>\n<td>The current status of the mandate. Possible values: <span translate=\"no\"><strong>pending<\/strong><\/span>, <span translate=\"no\"><strong>approved<\/strong><\/span>, or <span translate=\"no\"><strong>cancelled<\/strong><\/span>.<\/td>\n<\/tr>\n<tr>\n<td><code>type<\/code><\/td>\n<td>The type of mandate. Possible value: <span translate=\"no\"><strong>bacs<\/strong><\/span>.<\/td>\n<\/tr>\n<tr>\n<td><code>updatedAt<\/code><\/td>\n<td>The date when the mandate was updated, if applicable.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n\n<\/div>\n\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Example response for getting a specific mandate'\" :id=\"'get-specific-mandate-response'\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n    \\\"id\\\": \\\"MNDT000000000000000000000001\\\",\\n    \\\"type\\\": \\\"bacs\\\",\\n    \\\"balanceAccountId\\\": \\\"BA000000000000000000000001\\\",\\n    \\\"paymentInstrumentId\\\": \\\"PI000000000000000000000001\\\",\\n    \\\"status\\\": \\\"approved\\\",\\n    \\\"counterparty\\\": {\\n        \\\"accountIdentification\\\": {\\n            \\\"type\\\": \\\"ukLocal\\\",\\n            \\\"accountNumber\\\": \\\"10809699\\\",\\n            \\\"sortCode\\\": \\\"405081\\\"\\n        },\\n        \\\"accountHolder\\\": {\\n            \\\"fullName\\\": \\\"Albert Klassens\\\"\\n        }\\n    },\\n    \\\"createdAt\\\": \\\"2025-09-03T10:30:14.674Z\\\",\\n    \\\"updatedAt\\\": \\\"2025-09-03T10:30:14.674Z\\\"\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<\/ol>\n<h2>Amend a mandate<\/h2>\n<p>You can amend a mandate to change what business account the mandate applies to. For example, consider a user that opens a second business account in your platform, exclusively to handle monthly expenses. Instead of creating a new mandate, your user can amend the ID of the business account.<\/p>\n<p>To amend a mandate:<\/p>\n<ol>\n<li>\n<p>Make a PATCH <code>\/mandates\/{mandateId}<\/code> request, specifying the following parameters:<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Parameter name<\/th>\n<th style=\"text-align: left;\">Parameter 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>mandateId<\/code><\/td>\n<td style=\"text-align: left;\">Path<\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">The unique identifier of the mandate.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>paymentInstrumentId<\/code><\/td>\n<td style=\"text-align: left;\">Request<\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">The unique identifier of your user's business account.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The following example shows how to make a PATCH <code>\/mandates\/{mandateId}<\/code> request for updating the payment instrument ID to which the mandate corresponds.<\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Example request for updating a mandate'\" :id=\"'update-mandate'\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/balanceplatform-api-test.adyen.com\\\/bcl\\\/v2\\\/mandates\\\/MNDT000000000000000000000001 \\\\\\n-H 'x-api-key: ADYEN_BALANCE_PLATFORM_API_KEY' \\\\\\n-H 'content-type: application\\\/json' \\\\\\n-X PATCH \\\\\\n-d ' {\\n    \\&quot;paymentInstrumentId\\&quot;: \\&quot;PI000000000000000000000002\\&quot;\\n}'&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<li>\n<p>Verify that you receive an <span translate=\"no\"><strong>HTTP 202 \u2014 Accepted<\/strong><\/span> response with no content. This means that the request was correct.<br \/>\nAfter this, Adyen processes the request asynchronously. <\/p>\n<\/li>\n<li>\n<p>To be informed about the result of the request, listen to the <a href=\"#get-updates\">webhooks<\/a> that Adyen sends to your server.<\/p>\n<\/li>\n<\/ol>\n<h2>Cancel a mandate<\/h2>\n<p>To cancel an existing mandate:<\/p>\n<ol>\n<li>\n<p>Make a POST <code>\/mandates\/{mandateId}\/cancel<\/code> request, specifying the <code>mandateId<\/code> in the path.<\/p>\n<p>The following example shows how to cancel a mandate with ID <span translate=\"no\"><strong>MNDT000000000000000000000001<\/strong><\/span>.<\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Example request for canceling a mandate'\" :id=\"'cancel-mandate'\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/balanceplatform-api-test.adyen.com\\\/bcl\\\/v2\\\/mandates\\\/MNDT000000000000000000000001\\\/cancel \\\\\\n-H 'x-api-key: ADYEN_BALANCE_PLATFORM_API_KEY' \\\\\\n-H 'content-type: application\\\/json' \\\\\\n-X POST \\\\&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<li>\n<p>Verify that you receive an <span translate=\"no\"><strong>HTTP 202 \u2014 Accepted<\/strong><\/span> response with no content. This means that the request was correct.<br \/>\nAfter this, Adyen processes the request asynchronously. <\/p>\n<\/li>\n<li>\n<p>To be informed about the result of the request, listen to the <a href=\"#get-updates\">webhooks<\/a> that Adyen sends to your server.<\/p>\n<\/li>\n<\/ol>\n<h2 id=\"get-updates\">Get updates about requests<\/h2>\n<p>Adyen sends webhooks to your server to inform you when a mandate is created, updated, or canceled. Using these webhooks, you can track information such as:<\/p>\n<ul>\n<li>The date of creation<\/li>\n<li>The current status<\/li>\n<li>The date of update, if applicable<\/li>\n<\/ul>\n<p>The following tabs show examples of the webhooks that Adyen sends.<\/p>\n\n<div id=\"tabW8TXR\">\n    <div data-component-wrapper=\"tabs\">\n        <tabs\n                        :items=\"[{&quot;title&quot;:&quot;Mandate created&quot;,&quot;content&quot;:&quot;\\n&lt;p&gt;After your user authorizes a mandate, Adyen creates the mandate and sends a &lt;code&gt;balancePlatform.mandate.created&lt;\\\/code&gt; webhook to your server. The webhook provides information about the mandate, such as:&lt;\\\/p&gt;\\n&lt;ul&gt;\\n&lt;li&gt;The &lt;code&gt;id&lt;\\\/code&gt; of the mandate.&lt;\\\/li&gt;\\n&lt;li&gt;The &lt;code&gt;paymentInstrumentId&lt;\\\/code&gt; of the business account to which the mandate applies.&lt;\\\/li&gt;\\n&lt;li&gt;The &lt;code&gt;balanceAccountId&lt;\\\/code&gt; linked to the business account.&lt;\\\/li&gt;\\n&lt;li&gt;The &lt;code&gt;counterparty&lt;\\\/code&gt; that receives the funds from the direct debits.&lt;\\\/li&gt;\\n&lt;li&gt;The &lt;code&gt;status&lt;\\\/code&gt; of the mandate, which is &lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;approved&lt;\\\/strong&gt;&lt;\\\/span&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;Webhook example for a created mandate&#039;\\&quot; :id=\\&quot;&#039;webhook-mandate-created&#039;\\&quot; :code-data=&#039;[{\\&quot;language\\&quot;:\\&quot;json\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;\\&quot;,\\&quot;content\\&quot;:\\&quot;{\\\\n    \\\\\\&quot;data\\\\\\&quot;: {\\\\n        \\\\\\&quot;balancePlatform\\\\\\&quot;: \\\\\\&quot;YOUR_BALANCE_PLATFORM\\\\\\&quot;,\\\\n        \\\\\\&quot;creationDate\\\\\\&quot;: \\\\\\&quot;2025-09-04T15:40:41+02:00\\\\\\&quot;,\\\\n        \\\\\\&quot;mandate\\\\\\&quot;: {\\\\n            \\\\\\&quot;balanceAccountId\\\\\\&quot;: \\\\\\&quot;BA000000000000000000000001\\\\\\&quot;,\\\\n            \\\\\\&quot;counterparty\\\\\\&quot;: {\\\\n                \\\\\\&quot;accountHolder\\\\\\&quot;: {\\\\n                    \\\\\\&quot;fullName\\\\\\&quot;: \\\\\\&quot;Albert Klassens\\\\\\&quot;\\\\n                },\\\\n                \\\\\\&quot;accountIdentification\\\\\\&quot;: {\\\\n                    \\\\\\&quot;accountNumber\\\\\\&quot;: \\\\\\&quot;10809699\\\\\\&quot;,\\\\n                    \\\\\\&quot;sortCode\\\\\\&quot;: \\\\\\&quot;405081\\\\\\&quot;,\\\\n                    \\\\\\&quot;type\\\\\\&quot;: \\\\\\&quot;ukLocal\\\\\\&quot;\\\\n                }\\\\n            },\\\\n            \\\\\\&quot;createdAt\\\\\\&quot;: \\\\\\&quot;2025-09-04T13:40:41.581Z\\\\\\&quot;,\\\\n            \\\\\\&quot;id\\\\\\&quot;: \\\\\\&quot;MNDT000000000000000000000001\\\\\\&quot;,\\\\n            \\\\\\&quot;paymentInstrumentId\\\\\\&quot;: \\\\\\&quot;PI000000000000000000000001\\\\\\&quot;,\\\\n            \\\\\\&quot;status\\\\\\&quot;: \\\\\\&quot;approved\\\\\\&quot;,\\\\n            \\\\\\&quot;type\\\\\\&quot;: \\\\\\&quot;bacs\\\\\\&quot;,\\\\n            \\\\\\&quot;updatedAt\\\\\\&quot;: \\\\\\&quot;2025-09-04T13:40:41.581Z\\\\\\&quot;\\\\n        }\\\\n    },\\\\n    \\\\\\&quot;environment\\\\\\&quot;: \\\\\\&quot;test\\\\\\&quot;,\\\\n    \\\\\\&quot;type\\\\\\&quot;: \\\\\\&quot;balancePlatform.mandate.created\\\\\\&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&quot;,&quot;altTitle&quot;:null,&quot;oldTabId&quot;:&quot;mandate_created_0_1&quot;,&quot;relation&quot;:&quot;&quot;},{&quot;title&quot;:&quot;Mandate updated&quot;,&quot;content&quot;:&quot;\\n&lt;p&gt;When your user changes the business account to which the mandate applies, Adyen sends a &lt;code&gt;balancePlatform.mandate.updated&lt;\\\/code&gt; webhook to your server. The webhook includes:&lt;\\\/p&gt;\\n&lt;ul&gt;\\n&lt;li&gt;The &lt;code&gt;paymentInstrumentId&lt;\\\/code&gt; of the new business account to which the mandate now applies.&lt;\\\/li&gt;\\n&lt;li&gt;The &lt;code&gt;balanceAccountId&lt;\\\/code&gt; linked to the new business account.&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;Webhook example for an updated mandate&#039;\\&quot; :id=\\&quot;&#039;webhook-mandate-updated&#039;\\&quot; :code-data=&#039;[{\\&quot;language\\&quot;:\\&quot;json\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;\\&quot;,\\&quot;content\\&quot;:\\&quot;{\\\\n    \\\\\\&quot;data\\\\\\&quot;: {\\\\n        \\\\\\&quot;balancePlatform\\\\\\&quot;: \\\\\\&quot;YOUR_BALANCE_PLATFORM\\\\\\&quot;,\\\\n        \\\\\\&quot;creationDate\\\\\\&quot;: \\\\\\&quot;2025-09-04T15:40:41+02:00\\\\\\&quot;,\\\\n        \\\\\\&quot;mandate\\\\\\&quot;: {\\\\n            \\\\\\&quot;balanceAccountId\\\\\\&quot;: \\\\\\&quot;BA000000000000000000000002\\\\\\&quot;,\\\\n            \\\\\\&quot;counterparty\\\\\\&quot;: {\\\\n                \\\\\\&quot;accountHolder\\\\\\&quot;: {\\\\n                    \\\\\\&quot;fullName\\\\\\&quot;: \\\\\\&quot;Albert Klassens\\\\\\&quot;\\\\n                },\\\\n                \\\\\\&quot;accountIdentification\\\\\\&quot;: {\\\\n                    \\\\\\&quot;accountNumber\\\\\\&quot;: \\\\\\&quot;10809699\\\\\\&quot;,\\\\n                    \\\\\\&quot;sortCode\\\\\\&quot;: \\\\\\&quot;405081\\\\\\&quot;,\\\\n                    \\\\\\&quot;type\\\\\\&quot;: \\\\\\&quot;ukLocal\\\\\\&quot;\\\\n                }\\\\n            },\\\\n            \\\\\\&quot;createdAt\\\\\\&quot;: \\\\\\&quot;2025-09-04T13:40:41.581Z\\\\\\&quot;,\\\\n            \\\\\\&quot;id\\\\\\&quot;: \\\\\\&quot;MNDT000000000000000000000001\\\\\\&quot;,\\\\n            \\\\\\&quot;paymentInstrumentId\\\\\\&quot;: \\\\\\&quot;PI000000000000000000000002\\\\\\&quot;,\\\\n            \\\\\\&quot;status\\\\\\&quot;: \\\\\\&quot;approved\\\\\\&quot;,\\\\n            \\\\\\&quot;type\\\\\\&quot;: \\\\\\&quot;bacs\\\\\\&quot;,\\\\n            \\\\\\&quot;updatedAt\\\\\\&quot;: \\\\\\&quot;2025-09-04T13:49:36.239Z\\\\\\&quot;\\\\n        }\\\\n    },\\\\n    \\\\\\&quot;environment\\\\\\&quot;: \\\\\\&quot;test\\\\\\&quot;,\\\\n    \\\\\\&quot;type\\\\\\&quot;: \\\\\\&quot;balancePlatform.mandate.updated\\\\\\&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&quot;,&quot;altTitle&quot;:null,&quot;oldTabId&quot;:&quot;mandate_updated_1_2&quot;,&quot;relation&quot;:&quot;&quot;},{&quot;title&quot;:&quot;Mandate canceled&quot;,&quot;content&quot;:&quot;\\n&lt;p&gt;When your user cancels a mandate, Adyen sends a &lt;code&gt;balancePlatform.mandate.updated&lt;\\\/code&gt; webhook to your server. The webhook includes the new &lt;code&gt;status&lt;\\\/code&gt; of the mandate, which is now &lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;cancelled&lt;\\\/strong&gt;&lt;\\\/span&gt;.&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Webhook example for a canceled mandate&#039;\\&quot; :id=\\&quot;&#039;webhook-mandate-canceled&#039;\\&quot; :code-data=&#039;[{\\&quot;language\\&quot;:\\&quot;json\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;\\&quot;,\\&quot;content\\&quot;:\\&quot;{\\\\n    \\\\\\&quot;data\\\\\\&quot;: {\\\\n        \\\\\\&quot;balancePlatform\\\\\\&quot;: \\\\\\&quot;YOUR_BALANCE_PLATFORM\\\\\\&quot;,\\\\n        \\\\\\&quot;creationDate\\\\\\&quot;: \\\\\\&quot;2025-09-04T15:40:41+02:00\\\\\\&quot;,\\\\n        \\\\\\&quot;mandate\\\\\\&quot;: {\\\\n            \\\\\\&quot;balanceAccountId\\\\\\&quot;: \\\\\\&quot;BA000000000000000000000002\\\\\\&quot;,\\\\n            \\\\\\&quot;counterparty\\\\\\&quot;: {\\\\n                \\\\\\&quot;accountHolder\\\\\\&quot;: {\\\\n                    \\\\\\&quot;fullName\\\\\\&quot;: \\\\\\&quot;Albert Klassens\\\\\\&quot;\\\\n                },\\\\n                \\\\\\&quot;accountIdentification\\\\\\&quot;: {\\\\n                    \\\\\\&quot;accountNumber\\\\\\&quot;: \\\\\\&quot;10809699\\\\\\&quot;,\\\\n                    \\\\\\&quot;sortCode\\\\\\&quot;: \\\\\\&quot;405081\\\\\\&quot;,\\\\n                    \\\\\\&quot;type\\\\\\&quot;: \\\\\\&quot;ukLocal\\\\\\&quot;\\\\n                }\\\\n            },\\\\n            \\\\\\&quot;createdAt\\\\\\&quot;: \\\\\\&quot;2025-09-04T13:40:41.581Z\\\\\\&quot;,\\\\n            \\\\\\&quot;id\\\\\\&quot;: \\\\\\&quot;MNDT000000000000000000000001\\\\\\&quot;,\\\\n            \\\\\\&quot;paymentInstrumentId\\\\\\&quot;: \\\\\\&quot;PI000000000000000000000002\\\\\\&quot;,\\\\n            \\\\\\&quot;status\\\\\\&quot;: \\\\\\&quot;cancelled\\\\\\&quot;,\\\\n            \\\\\\&quot;type\\\\\\&quot;: \\\\\\&quot;bacs\\\\\\&quot;,\\\\n            \\\\\\&quot;updatedAt\\\\\\&quot;: \\\\\\&quot;2025-09-04T13:55:21.914Z\\\\\\&quot;\\\\n        }\\\\n    },\\\\n    \\\\\\&quot;environment\\\\\\&quot;: \\\\\\&quot;test\\\\\\&quot;,\\\\n    \\\\\\&quot;type\\\\\\&quot;: \\\\\\&quot;balancePlatform.mandate.updated\\\\\\&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&quot;,&quot;altTitle&quot;:null,&quot;oldTabId&quot;:&quot;mandate_canceled_2_3&quot;,&quot;relation&quot;:&quot;&quot;}]\"\n            :should-update-when-url-changes='false'>\n        <\/tabs>\n    <\/div>\n<\/div>\n\n<h2>See also<\/h2>\n<ul>\n<li><a href=\"\/pt\/business-accounts\/transfer-funds-internally\">Transfer funds internally<\/a><\/li>\n<\/ul>","url":"https:\/\/docs.adyen.com\/pt\/business-accounts\/accept-direct-debits-uk\/manage-mandates-uk","articleFields":{"description":"Learn about the API requests for managing mandates for direct debits in the UK.","last_edit_on":"06-12-2019 14:44"},"algolia":{"url":"https:\/\/docs.adyen.com\/pt\/business-accounts\/accept-direct-debits-uk\/manage-mandates-uk","title":"Manage mandates for direct debits in the UK","content":"Limited availability\nDirect debits in the UK are in pilot phase. Some of the processes and documentation may change as the feature evolves.\n\nA mandate is an authorization that your user gives for allowing a counterparty to debit funds from the user's business account. When your user authorizes a one-time or recurring direct debit, the counterparty's bank notifies Adyen, and a mandate is created. \nAfter a mandate is created, you can view, amend, or cancel the mandate using Adyen's APIs. This page explains how to make API requests related to mandates and how to get updates about the result of these requests.\nRequirements\nBefore you begin, make sure that you fulfill the following requirements:\n\n\n\nRequirement\nDescription\n\n\n\n\nIntegration type\nYou must have an Adyen for Platforms integration that includes business accounts.\n\n\nAPI credential roles\nMake sure that your web service API key has the following role: Manage Direct Debit Mandates role\n\n\nCapabilities\nMake sure that you enabled the following capability for your user: sendToThirdParty\n\n\nWebhooks\nIn your Customer Area, subscribe to the following webhook: Mandate Webhooks\n\n\nLimitations\nCurrently, these endpoints only support mandates created for accounts in the UK.\n\n\nSetup steps\nReach out to your Adyen contact to enable direct debits in the UK.\n\n\n\nView a list of mandates\nYou can view a list of all mandates created for a business account, regardless of the status.\nTo get this list: \n\n\nMake a GET \/mandates request, specifying at least one of following parameters:\n\n\n\nParameter name\nParameter type\nRequired\nDescription\n\n\n\n\nbalanceAccountId\nQuery\n\nThe unique identifier of the balance account linked to your user's business account.\n\n\npaymentInstrumentId\nQuery\n\nThe unique identifier of your user's business account.\n\n\n\nThe following code example shows a GET \/mandates request for a balance account with ID BA000000000000000000000001, linked to a business account with ID PI000000000000000000000001.\n\n\n\nA successful request returns an HTTP 200 response.\n\n\nIn the HTTP 200 response, verify that you received the following parameters:\n\n\n\nResponse parameter\nDescription\n\n\n\n\nmandates\nAn array that contains all mandates that match the query parameters.\n\n\nlink\nAn object that contains links to the next or previous page, when applicable.\n\n\n\n\n\n\n\n\nView a specific mandate\nTo view the details of a specific mandate:\n\n\nMake a GET \/mandates\/{mandateId} request, specifying the mandateId in the path.\nThe following example shows how to get the details of a mandate with ID MNDT000000000000000000000001.\n\n\n\nA successful request returns an HTTP 200 response. \n\n\nIn the HTTP 200 response, verify that you received an object with the following parameters:\n\n    \n\n\n\nResponse parameter\nDescription\n\n\n\n\nbalanceAccountId\nThe unique identifier of the balance account to which the mandate applies.\n\n\ncounterparty\nAn object that contains information about the party that receives the funds from the direct debit.\n\n\ncreatedAt\nThe date when the mandate was created.\n\n\nid\nThe unique identifier of the mandate.\n\n\npaymentInstrumentId\nThe unique identifier of your user's business account.\n\n\nstatus\nThe current status of the mandate. Possible values: pending, approved, or cancelled.\n\n\ntype\nThe type of mandate. Possible value: bacs.\n\n\nupdatedAt\nThe date when the mandate was updated, if applicable.\n\n\n\n\n\n\n\n\n\n\n\nAmend a mandate\nYou can amend a mandate to change what business account the mandate applies to. For example, consider a user that opens a second business account in your platform, exclusively to handle monthly expenses. Instead of creating a new mandate, your user can amend the ID of the business account.\nTo amend a mandate:\n\n\nMake a PATCH \/mandates\/{mandateId} request, specifying the following parameters:\n\n\n\nParameter name\nParameter type\nRequired\nDescription\n\n\n\n\nmandateId\nPath\n\nThe unique identifier of the mandate.\n\n\npaymentInstrumentId\nRequest\n\nThe unique identifier of your user's business account.\n\n\n\nThe following example shows how to make a PATCH \/mandates\/{mandateId} request for updating the payment instrument ID to which the mandate corresponds.\n\n\n\n\n\nVerify that you receive an HTTP 202 \u2014 Accepted response with no content. This means that the request was correct.\nAfter this, Adyen processes the request asynchronously. \n\n\nTo be informed about the result of the request, listen to the webhooks that Adyen sends to your server.\n\n\nCancel a mandate\nTo cancel an existing mandate:\n\n\nMake a POST \/mandates\/{mandateId}\/cancel request, specifying the mandateId in the path.\nThe following example shows how to cancel a mandate with ID MNDT000000000000000000000001.\n\n\n\n\n\nVerify that you receive an HTTP 202 \u2014 Accepted response with no content. This means that the request was correct.\nAfter this, Adyen processes the request asynchronously. \n\n\nTo be informed about the result of the request, listen to the webhooks that Adyen sends to your server.\n\n\nGet updates about requests\nAdyen sends webhooks to your server to inform you when a mandate is created, updated, or canceled. Using these webhooks, you can track information such as:\n\nThe date of creation\nThe current status\nThe date of update, if applicable\n\nThe following tabs show examples of the webhooks that Adyen sends.\n\n\n    \n        \n        \n    \n\n\nSee also\n\nTransfer funds internally\n","type":"page","locale":"pt","boost":17,"hierarchy":{"lvl0":"Home","lvl1":"Business accounts","lvl2":"Accept direct debits in the UK","lvl3":"Manage mandates for direct debits in the UK"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/pt","lvl1":"https:\/\/docs.adyen.com\/pt\/business-accounts","lvl2":"https:\/\/docs.adyen.com\/pt\/business-accounts\/accept-direct-debits-uk","lvl3":"\/pt\/business-accounts\/accept-direct-debits-uk\/manage-mandates-uk"},"levels":4,"category":"","category_color":"","tags":["Manage","mandates","direct","debits"]}}
