{"title":"Periodic data reviews","category":"default","creationDate":1689926280,"content":"<p>Adyen occasionally requires your users to review and confirm that their data is up-to-date. You also can choose to <a href=\"#proactive-review\">proactively request the data review<\/a> for your user. You may want to do this if your user does not engage with your platform on a regular basis.<\/p>\n<p>After a data review is triggered, Adyen immediately runs verification checks on the existing data of the user. This data includes information about their legal entity\/legal arrangement and all entities associated with it, such as their ultimate beneficial owners (UBOs) and signatories. Adyen informs you through webhooks the review requirements for the user:<\/p>\n\n<div id=\"tab0zyQO\">\n    <div data-component-wrapper=\"tabs\">\n        <tabs\n                        :items=\"[{&quot;title&quot;:&quot;User has verification errors&quot;,&quot;content&quot;:&quot;\\n&lt;p&gt;The user must update their data (if needed), resolve the verification errors and then confirm the data. If the user data is updated, Adyen verifies their data again.&lt;\\\/p&gt;\\n&quot;,&quot;altTitle&quot;:null,&quot;oldTabId&quot;:&quot;user_has_verification_errors_0_1&quot;,&quot;relation&quot;:&quot;&quot;},{&quot;title&quot;:&quot;No verification errors&quot;,&quot;content&quot;:&quot;\\n&lt;p&gt;If there are no verification errors, the user must only review and confirm their data.&lt;\\\/p&gt;\\n&quot;,&quot;altTitle&quot;:null,&quot;oldTabId&quot;:&quot;no_verification_errors_1_2&quot;,&quot;relation&quot;:&quot;&quot;}]\"\n            :should-update-when-url-changes='false'>\n        <\/tabs>\n    <\/div>\n<\/div>\n\n<p>In both scenarios, Adyen provides a verification deadline in the <a href=\"#review-required\">webhook<\/a>. While the deadline is active, the user can continue using their capabilities that were allowed prior to the review request. If the user does not confirm the data and resolve any verification errors, their capabilities will be disallowed. The review is only considered finalized when the user has confirmed the data <strong>and<\/strong> resolved all verification errors.<\/p>\n<h2 id=\"review-required\">Step 1: Get updates when a review is required<\/h2>\n<p>Adyen informs you if a user data review is required through a <a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/balanceplatform-webhooks\/latest\/post\/balancePlatform.accountHolder.updated\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">balancePlatform.accountHolder.updated<\/a> webhook. The webhook contains the following information:<\/p>\n<table>\n<thead>\n<tr>\n<th>Field<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/balanceplatform\/latest\/get\/accountHolders\/(id)#responses-200-capabilities-verificationStatus\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">verificationStatus<\/a><\/td>\n<td>Set to <code>invalid<\/code><\/td>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/balanceplatform\/latest\/get\/accountHolders\/(id)#responses-200-capabilities-allowed\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">allowed<\/a><\/td>\n<td>Remains set to <code>true<\/code><\/td>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/balanceplatform-webhooks\/latest\/post\/balancePlatform.accountHolder.updated#request-data-accountHolder-capabilities-problems-verificationErrors\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">verificationErrors<\/a><\/td>\n<td>Contains the verification error <strong>3_10<\/strong> and message \"Review of data is required\".<\/td>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/balanceplatform-webhooks\/latest\/post\/balancePlatform.accountHolder.updated#request-data-accountHolder-verificationDeadlines\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">verificationDeadlines<\/a><\/td>\n<td>The date when the capability will be disallowed if the verification error is not resolved.<\/td>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/balanceplatform-webhooks\/latest\/post\/balancePlatform.accountHolder.updated#request-data-accountHolder-capabilities-problems-verificationErrors-remediatingActions\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">remediatingActions<\/a><\/td>\n<td>Contains the remediating action <strong>3_100<\/strong> and message \"Use <code>\/legalEntities\/{id}\/confirmDataReview<\/code> to indicate that the data is confirmed\".<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"notices green\">\n<p>Note that the webhook contains the capabilities that will be disallowed if the user does not confirm that they have reviewed and updated their data.<\/p>\n<\/div>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'accountHolder.updated webhook - Data review required'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n  \\\"data\\\": {\\n    \\\"balancePlatform\\\": \\\"YourBalancePlatform\\\",\\n    \\\"id\\\": \\\"AH00000000000000000000001\\\",\\n    \\\"accountHolder\\\": {\\n      \\\"description\\\": \\\"Liable account holder used for international payments and payouts\\\",\\n      \\\"legalEntityId\\\": \\\"LE00000000000000000000001\\\",\\n      \\\"reference\\\": \\\"YOUR_INTERNAL_IDENTIFIER\\\",\\n      \\\"capabilities\\\": {\\n        \\\"sendToBalanceAccount\\\": {\\n          \\\"enabled\\\": true,\\n          \\\"requested\\\": true,\\n          \\\"allowed\\\": true,\\n          \\\"problems\\\": [\\n            {\\n              \\\"entity\\\": {\\n                \\\"id\\\": \\\"LE00000000000000000000002\\\",\\n                \\\"type\\\": \\\"LegalEntity\\\"\\n              },\\n              \\\"verificationErrors\\\": [\\n                {\\n                  \\\"code\\\": \\\"3_10\\\",\\n                  \\\"message\\\": \\\"Review of data is required\\\",\\n                  \\\"remediatingActions\\\": [\\n                    {\\n                      \\\"code\\\": \\\"3_100\\\",\\n                      \\\"message\\\": \\\"Use \\\/legalEntities\\\/{id}\\\/confirmDataReview to indicate that the data is confirmed\\\"\\n                    }\\n                  ],\\n                  \\\"type\\\": \\\"dataReview\\\"\\n                }\\n              ]\\n            }\\n          ],\\n          \\\"verificationStatus\\\": \\\"invalid\\\"\\n        }\\n      },\\n      \\\"id\\\": \\\"AH00000000000000000000001\\\",\\n      \\\"status\\\": \\\"active\\\",\\n      \\\"verificationDeadlines\\\": [\\n        {\\n          \\\"capabilities\\\": [\\n            \\\"sendToBalanceAccount\\\"\\n          ],\\n          \\\"expiresAt\\\": \\\"2024-12-07T21:34:06+01:00\\\"\\n        }\\n      ]\\n    }\\n  },\\n  \\\"environment\\\": \\\"test\\\",\\n  \\\"type\\\": \\\"balancePlatform.accountHolder.updated\\\"\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<h2 id=\"proactive-review\">Step 2 (optional): Proactively request a data review for your user<\/h2>\n<div class=\"notices green\">\n<p>This feature is only available if you are using onboarding v3 or v4.<\/p>\n<\/div>\n<p>To streamline the process, we recommend that you request the data review during a time when your user is active in your platform.<\/p>\n<p>Note that we may also require a data review outside of the scheduled period if there is a significant change to the user's information or risk level.<\/p>\n<p>If you request a data review when the user is not eligible, for example when:<\/p>\n<ul>\n<li>their next scheduled review date is more than a year away or<\/li>\n<li>the user was onboarded or had their last review within in the past six months,<\/li>\n<\/ul>\n<p>we ensure the review is not activated and communicate the reason in an <a href=\"#troubleshooting\">error message<\/a>.<\/p>\n<ol>\n<li>To request the data review, make a POST <code>\/legalEntities\/{id}\/requestPeriodicReview<\/code> request with the legal entity ID of the user in the path.<\/li>\n<li>If the request is successful, you receive a <strong>204<\/strong> response.<\/li>\n<\/ol>\n<p>Adyen then informs you that a user data review is required through a <a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/balanceplatform-webhooks\/latest\/post\/balancePlatform.accountHolder.updated\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">balancePlatform.accountHolder.updated<\/a> webhook. The webhook contains the following information:<\/p>\n<table>\n<thead>\n<tr>\n<th>Field<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/balanceplatform\/latest\/get\/accountHolders\/(id)#responses-200-capabilities-verificationStatus\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">verificationStatus<\/a><\/td>\n<td>Set to <code>invalid<\/code><\/td>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/balanceplatform\/latest\/get\/accountHolders\/(id)#responses-200-capabilities-allowed\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">allowed<\/a><\/td>\n<td>Remains set to <code>true<\/code><\/td>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/balanceplatform-webhooks\/latest\/post\/balancePlatform.accountHolder.updated#request-data-accountHolder-capabilities-problems-verificationErrors\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">verificationErrors<\/a><\/td>\n<td>Contains the verification error <strong>3_10<\/strong> and message \"Review of data is required\".<\/td>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/balanceplatform-webhooks\/latest\/post\/balancePlatform.accountHolder.updated#request-data-accountHolder-verificationDeadlines\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">verificationDeadlines<\/a><\/td>\n<td>The date when the capability will be disallowed if the verification error is not resolved.<\/td>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/balanceplatform-webhooks\/latest\/post\/balancePlatform.accountHolder.updated#request-data-accountHolder-capabilities-problems-verificationErrors-remediatingActions\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">remediatingActions<\/a><\/td>\n<td>Contains the remediating action <strong>3_100<\/strong> and message \"Use <code>\/legalEntities\/{id}\/confirmDataReview<\/code> to indicate that the data is confirmed\".<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"notices green\">\n<p>Note that the webhook contains the capabilities that will be disallowed if the user does not confirm that they have reviewed and updated their data.<\/p>\n<\/div>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'accountHolder.updated webhook - Data review required'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n  \\\"data\\\": {\\n    \\\"balancePlatform\\\": \\\"YourBalancePlatform\\\",\\n    \\\"id\\\": \\\"AH00000000000000000000001\\\",\\n    \\\"accountHolder\\\": {\\n      \\\"description\\\": \\\"Liable account holder used for international payments and payouts\\\",\\n      \\\"legalEntityId\\\": \\\"LE00000000000000000000001\\\",\\n      \\\"reference\\\": \\\"YOUR_INTERNAL_IDENTIFIER\\\",\\n      \\\"capabilities\\\": {\\n        \\\"sendToBalanceAccount\\\": {\\n          \\\"enabled\\\": true,\\n          \\\"requested\\\": true,\\n          \\\"allowed\\\": true,\\n          \\\"problems\\\": [\\n            {\\n              \\\"entity\\\": {\\n                \\\"id\\\": \\\"LE00000000000000000000002\\\",\\n                \\\"type\\\": \\\"LegalEntity\\\"\\n              },\\n              \\\"verificationErrors\\\": [\\n                {\\n                  \\\"code\\\": \\\"3_10\\\",\\n                  \\\"message\\\": \\\"Review of data is required\\\",\\n                  \\\"remediatingActions\\\": [\\n                    {\\n                      \\\"code\\\": \\\"3_100\\\",\\n                      \\\"message\\\": \\\"Use \\\/legalEntities\\\/{id}\\\/confirmDataReview to indicate that the data is confirmed\\\"\\n                    }\\n                  ],\\n                  \\\"type\\\": \\\"dataReview\\\"\\n                }\\n              ]\\n            }\\n          ],\\n          \\\"verificationStatus\\\": \\\"invalid\\\"\\n        }\\n      },\\n      \\\"id\\\": \\\"AH00000000000000000000001\\\",\\n      \\\"status\\\": \\\"active\\\",\\n      \\\"verificationDeadlines\\\": [\\n        {\\n          \\\"capabilities\\\": [\\n            \\\"sendToBalanceAccount\\\"\\n          ],\\n          \\\"expiresAt\\\": \\\"2024-12-07T21:34:06+01:00\\\"\\n        }\\n      ]\\n    }\\n  },\\n  \\\"environment\\\": \\\"test\\\",\\n  \\\"type\\\": \\\"balancePlatform.accountHolder.updated\\\"\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<h3 id=\"troubleshooting\">Troubleshooting<\/h3>\n<ul>\n<li>If you attempt to request a review more than one year prior to the user's next scheduled review, you will receive the error code <strong>422<\/strong> and message <strong>A periodic review can only be requested when the next scheduled deadline is within one year<\/strong>.<\/li>\n<li>If you attempt to request a review and the endpoint is not available for any other reason, you will receive the error code <strong>422<\/strong> and message <strong>Unable to request periodic review for this legal entity<\/strong>.<\/li>\n<li>If you attempt to request a review less than 180 days from the date of the previous review, you will receive the error code <strong>422<\/strong> and message <strong>A periodic review cannot be started yet as a review was completed recently<\/strong>.<\/li>\n<\/ul>\n<h2 id=\"review-data\">Step 3: Ask your users to review their data within the deadline<\/h2>\n<p>Inform your user that they need to review their data and to provide updated information if needed.<\/p>\n<p>Follow the steps below depending on your type of integration.<\/p>\n\n<div id=\"tabVugLd\">\n    <div data-component-wrapper=\"tabs\">\n        <tabs\n                        :items=\"[{&quot;title&quot;:&quot;Hosted onboarding&quot;,&quot;content&quot;:&quot;\\n&lt;ol&gt;\\n&lt;li&gt;Make a GET  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/legalentity\\\/latest\\\/get\\\/legalEntities\\\/(id)\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/legalEntities\\\/{id}&lt;\\\/a&gt; request with the legal entity ID of the user in the path. Review any user information that you submitted to Adyen through API requests. For example, information about the user&#039;s legal entities.&lt;\\\/li&gt;\\n&lt;li&gt;If needed, make a PATCH  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/legalentity\\\/latest\\\/patch\\\/legalEntities\\\/(id)\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/legalEntities\\\/{id}&lt;\\\/a&gt; request to update any user information.&lt;\\\/li&gt;\\n&lt;li&gt;Then, create a hosted onboarding link. When the user is redirected to the link, they are presented with a summary page where they can confirm or update their data.&lt;\\\/li&gt;\\n&lt;\\\/ol&gt;\\n&lt;p&gt;&lt;img alt=\\&quot;\\&quot; src=\\&quot;\\\/user\\\/pages\\\/reuse\\\/pfs-verification\\\/verification-overview\\\/data-review\\\/hosted-onboarding-review.png\\&quot; \\\/&gt;&lt;\\\/p&gt;\\n&lt;ol start=\\&quot;4\\&quot;&gt;\\n&lt;li&gt;After the user completes their review, they need to select the checkbox and then select &lt;strong&gt;Submit review&lt;\\\/strong&gt; to confirm that their data is now up-to-date. This resolves the verification error related to the data review.&lt;\\\/li&gt;\\n&lt;\\\/ol&gt;\\n&lt;p&gt;&lt;img alt=\\&quot;\\&quot; src=\\&quot;\\\/user\\\/pages\\\/reuse\\\/pfs-verification\\\/verification-overview\\\/data-review\\\/submit-data-review.png\\&quot; \\\/&gt;&lt;\\\/p&gt;\\n&quot;,&quot;altTitle&quot;:null,&quot;oldTabId&quot;:&quot;hosted_onboarding_0_1&quot;,&quot;relation&quot;:&quot;&quot;},{&quot;title&quot;:&quot;API-only onboarding&quot;,&quot;content&quot;:&quot;\\n&lt;ol&gt;\\n&lt;li&gt;Present your user&#039;s information in your UI. To do this, first make a GET  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/legalentity\\\/latest\\\/get\\\/legalEntities\\\/(id)\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/legalEntities\\\/{id}&lt;\\\/a&gt; request with the legal entity ID of the user in the path. You also need to make a GET  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/legalentity\\\/latest\\\/get\\\/legalEntities\\\/(id)\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/legalEntities\\\/{id}&lt;\\\/a&gt; request for all the user&#039;s associated entities, such as their UBOs and signatories.&lt;\\\/li&gt;\\n&lt;li&gt;Make API requests to get information for the user&#039;s supporting entities. For example:\\n&lt;ul&gt;\\n&lt;li&gt;GET  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/legalentity\\\/latest\\\/get\\\/transferInstruments\\\/(id)\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/transferInstruments\\\/{id}&lt;\\\/a&gt; for their transfer instruments.\\n&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;&lt;\\\/li&gt;\\n&lt;li&gt;Ask your user to review and confirm if their data is up-to-date. If their data needs to be be updated, make a PATCH  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/legalentity\\\/latest\\\/patch\\\/legalEntities\\\/(id)\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/legalEntities\\\/{id}&lt;\\\/a&gt; request with the updated information in the body of the request.&lt;\\\/li&gt;\\n&lt;li&gt;When the user confirms that their data is now up-to-date, make a POST  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/legalentity\\\/latest\\\/post\\\/legalEntities\\\/(id)\\\/confirmDataReview\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/legalEntities\\\/{id}\\\/confirmDataReview&lt;\\\/a&gt; request. The response returns the time when the data review was confirmed in the  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/legalentity\\\/latest\\\/post\\\/legalEntities\\\/(id)\\\/confirmDataReview#responses-200-dataReviewedAt\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;dataReviewedAt&lt;\\\/a&gt; field.&lt;\\\/li&gt;\\n&lt;\\\/ol&gt;\\n&lt;p&gt;This resolves the verification error related to the data review.&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;confirmDataReview 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;dataReviewedAt\\\\\\&quot;:\\\\\\&quot;2023-07-13T15:19:02Z\\\\\\&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;api-only_onboarding_1_2&quot;,&quot;relation&quot;:&quot;&quot;}]\"\n            :should-update-when-url-changes='false'>\n        <\/tabs>\n    <\/div>\n<\/div>\n\n<h2>Step 4: Get the verification results<\/h2>\n<p>Once the review has been submitted, Adyen verifies the user\u2019s data and informs you of the results through the <a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/balanceplatform-webhooks\/latest\/post\/balancePlatform.accountHolder.updated\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">balancePlatform.accountHolder.updated<\/a> webhook.<\/p>\n<p>To resolve any verification errors, follow the steps based on your integration type: <a href=\"\/pt\/marketplaces\/onboard-users\">API-only onboarding<\/a> or <a href=\"\/pt\/marketplaces\/onboard-users\">Hosted onboarding<\/a>.<\/p>\n<p>After the user has reviewed their data and the verification is valid, there is no further action needed.<\/p>\n<h3 id=\"verification-valid\">Verification valid<\/h3>\n<p>When the checks are completed successfully, Adyen sends a <a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/balanceplatform-webhooks\/latest\/post\/balancePlatform.accountHolder.updated\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">balancePlatform.accountHolder.updated<\/a> webhook with:<\/p>\n<ul>\n<li> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/balanceplatform\/latest\/get\/accountHolders\/(id)#responses-200-capabilities-verificationStatus\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">verificationStatus<\/a>&#58; Set to <strong>valid<\/strong>.<\/li>\n<li> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/balanceplatform\/latest\/get\/accountHolders\/(id)#responses-200-capabilities-allowed\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">allowed<\/a>&#58; Set to <strong>true<\/strong>.<\/li>\n<\/ul>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'balancePlatform.accountHolder.updated webhook - verification completed'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n   \\\"data\\\":{\\n      \\\"accountHolder\\\":{\\n         \\\"capabilities\\\":{\\n            \\\"sendToTransferInstrument\\\":{\\n               \\\"allowed\\\":\\\"true\\\",\\n               \\\"enabled\\\":\\\"true\\\",\\n               \\\"requested\\\":\\\"true\\\",\\n               \\\"verificationStatus\\\":\\\"valid\\\"\\n            }\\n         },\\n         \\\"description\\\":\\\"Test Account holder\\\",\\n         \\\"id\\\":\\\"AH00000000000000000000001\\\",\\n         \\\"legalEntityId\\\":\\\"LE00000000000000000000001\\\",\\n         \\\"reference\\\":\\\"YOUR_INTERNAL_IDENTIFIER\\\",\\n         \\\"status\\\":\\\"active\\\"\\n      },\\n      \\\"balancePlatform\\\":\\\"YOUR_BALANCE_PLATFORM\\\"\\n   },\\n   \\\"environment\\\":\\\"test\\\",\\n   \\\"type\\\":\\\"balancePlatform.accountHolder.updated\\\"\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<h3 id=\"verification-invalid\">Verification invalid<\/h3>\n<p>When there are problems with the verification, Adyen sends a <a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/balanceplatform-webhooks\/latest\/post\/balancePlatform.accountHolder.updated\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">balancePlatform.accountHolder.updated<\/a> webhook.<\/p>\n<p>The webhook contains the following information:<\/p>\n<ul>\n<li> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/balanceplatform\/latest\/get\/accountHolders\/(id)#responses-200-capabilities-verificationStatus\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">verificationStatus<\/a>&#58; Set to <strong>invalid<\/strong>.<\/li>\n<li> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/balanceplatform\/latest\/get\/accountHolders\/(id)#responses-200-capabilities-allowed\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">allowed<\/a>&#58; Set to <strong>false<\/strong> or <strong>true<\/strong> with the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/balanceplatform-webhooks\/latest\/post\/balancePlatform.accountHolder.updated#request-data-accountHolder-verificationDeadlines\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">verificationDeadlines<\/a> array showing when the capability will be disallowed if the verification error is not resolved.<\/li>\n<li> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/balanceplatform\/latest\/get\/accountHolders\/(id)#responses-200-capabilities-problems\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">problems<\/a>&#58; Contains <code>verificationErrors<\/code>, <code>subErrors<\/code>, and <code>remediatingActions<\/code> arrays returned on the linked legal entity. If there are verification errors, you must resolve them.<\/li>\n<\/ul>\n<p>To see any  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/balanceplatform\/latest\/get\/accountHolders\/(id)#responses-200-capabilities-problems\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">problems<\/a> also returned on the transfer instrument resource, reach out to your Adyen contact to enable the feature. For example, if your users have multiple transfer instruments, this can help them more easily see the errors and on which transfer instrument they need to be resolved.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'balancePlatform.accountHolder.updated webhook - with verification errors array'\" :id=\"'verification-errors'\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n   \\\"data\\\":{\\n      \\\"accountHolder\\\":{\\n         \\\"capabilities\\\":{\\n            \\\"sendToTransferInstrument\\\":{\\n               \\\"allowed\\\":\\\"false\\\",\\n               \\\"enabled\\\":\\\"true\\\",\\n               \\\"problems\\\":[\\n                  {\\n                     \\\"entity\\\":{\\n                        \\\"id\\\":\\\"LE00000000000000000000001\\\",\\n                        \\\"type\\\":\\\"LegalEntity\\\"\\n                     },\\n                     \\\"verificationErrors\\\":[\\n                        {\\n                           \\\"code\\\":\\\"2_8037\\\",\\n                           \\\"message\\\":\\\"bankStatement was missing.\\\",\\n                           \\\"remediatingActions\\\":[\\n                              {\\n                                 \\\"code\\\":\\\"1_703\\\",\\n                                 \\\"message\\\":\\\"Upload a bank statement\\\"\\n                              }\\n                           ],\\n                           \\\"type\\\":\\\"dataMissing\\\"\\n                        }\\n                     ]\\n                  }\\n               ],\\n               \\\"requested\\\":\\\"true\\\",\\n               \\\"verificationStatus\\\":\\\"invalid\\\"\\n            }\\n         },\\n         \\\"description\\\":\\\"Test Account holder\\\",\\n         \\\"reference\\\":\\\"YOUR_INTERNAL_IDENTIFIER\\\",\\n         \\\"id\\\":\\\"AH00000000000000000000001\\\",\\n         \\\"legalEntityId\\\":\\\"LE00000000000000000000001\\\",\\n         \\\"status\\\":\\\"Active\\\"\\n      },\\n      \\\"balancePlatform\\\":\\\"YOUR_BALANCE_PLATFORM\\\"\\n   },\\n   \\\"environment\\\":\\\"test\\\",\\n   \\\"type\\\":\\\"balancePlatform.accountHolder.updated\\\"\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<h2>Test the data review flow<\/h2>\n<p>In this scenario, you force Adyen to send a verification error relating to one of your users (a legal entity). This verification error is due to an outstanding data review required by Adyen.<\/p>\n<p>The account holder for the legal entity must already have capabilities allowed to be able test the flow.<\/p>\n<h3>Step 1: Make an API request<\/h3>\n<p>Using the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/legalentity\/latest\/overview\" class=\" external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Legal Entity Management API<\/a>, make a PATCH <a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/legalentity\/latest\/patch\/legalEntities\/{id}\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/legalEntities\/{id}<\/a> request. Include the <a href=\"https:\/\/docs.adyen.com\/api-explorer\/legalentity\/latest\/post\/legalEntities#header-x_requested_verification_code\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">x-requested-verification-code<\/a> <code>3_10<\/code> in the header of your request.<\/p>\n<h3 id=\"check-results\">Step 2: Check verification results<\/h3>\n<p>To confirm that the legal entity has an outstanding data review required, you can:<\/p>\n<ul>\n<li>Listen to the <a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/balanceplatform-webhooks\/latest\/post\/balancePlatform.accountHolder.updated\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">balancePlatform.accountHolder.updated<\/a> webhook or<\/li>\n<li>Make a GET  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/legalentity\/latest\/get\/legalEntities\/(id)\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/legalEntities\/{id}<\/a> request for the specified legal entity or<\/li>\n<li>Make a POST  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/legalentity\/latest\/post\/legalEntities\/(id)\/checkVerificationErrors\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/checkVerificationErrors<\/a> request for the specified legal entity.<\/li>\n<\/ul>\n<p>These all contain the verification error <strong>3_10<\/strong> and message \"Review of data is required\".<\/p>\n<h3>Step 3: Resolve the verification error<\/h3>\n<p>Make a POST  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/legalentity\/latest\/post\/legalEntities\/(id)\/confirmDataReview\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/legalEntities\/{id}\/confirmDataReview<\/a> request with the specified legal entity ID in the path. The response returns the time when the data review was confirmed in the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/legalentity\/latest\/post\/legalEntities\/(id)\/confirmDataReview#responses-200-dataReviewedAt\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">dataReviewedAt<\/a> field. You can confirm the verification error was resolved by listening to webhooks or making a GET API request.<\/p>\n<h2 id=\"see-also\">See also<\/h2>\n<div class=\"see-also-links output-inline\" id=\"see-also\">\n<ul><li><a href=\"\/marketplaces\/onboard-users\"\n                        target=\"_self\"\n                        >\n                    Onboard users\n                <\/a><\/li><\/ul><\/div>\n\n","url":"https:\/\/docs.adyen.com\/pt\/marketplaces\/verification-overview\/data-review-process","articleFields":{"description":"Learn how Adyen may request your user to verify that their data is up-to-date.","feedback_component":true,"filters_component":false,"last_edit_on":"21-11-2023 14:17","parameters":{"directoryPath":"\/marketplaces","model":"marketplace"},"page_id":"c887dce3-0d4c-4c59-8a8d-78399ab7a371"},"algolia":{"url":"https:\/\/docs.adyen.com\/pt\/marketplaces\/verification-overview\/data-review-process","title":"Periodic data reviews","content":"Adyen occasionally requires your users to review and confirm that their data is up-to-date. You also can choose to proactively request the data review for your user. You may want to do this if your user does not engage with your platform on a regular basis.\nAfter a data review is triggered, Adyen immediately runs verification checks on the existing data of the user. This data includes information about their legal entity\/legal arrangement and all entities associated with it, such as their ultimate beneficial owners (UBOs) and signatories. Adyen informs you through webhooks the review requirements for the user:\n\n\n    \n        \n        \n    \n\n\nIn both scenarios, Adyen provides a verification deadline in the webhook. While the deadline is active, the user can continue using their capabilities that were allowed prior to the review request. If the user does not confirm the data and resolve any verification errors, their capabilities will be disallowed. The review is only considered finalized when the user has confirmed the data and resolved all verification errors.\nStep 1: Get updates when a review is required\nAdyen informs you if a user data review is required through a balancePlatform.accountHolder.updated webhook. The webhook contains the following information:\n\n\n\nField\nDescription\n\n\n\n\n verificationStatus\nSet to invalid\n\n\n allowed\nRemains set to true\n\n\n verificationErrors\nContains the verification error 3_10 and message \"Review of data is required\".\n\n\n verificationDeadlines\nThe date when the capability will be disallowed if the verification error is not resolved.\n\n\n remediatingActions\nContains the remediating action 3_100 and message \"Use \/legalEntities\/{id}\/confirmDataReview to indicate that the data is confirmed\".\n\n\n\n\nNote that the webhook contains the capabilities that will be disallowed if the user does not confirm that they have reviewed and updated their data.\n\n\n    \n\nStep 2 (optional): Proactively request a data review for your user\n\nThis feature is only available if you are using onboarding v3 or v4.\n\nTo streamline the process, we recommend that you request the data review during a time when your user is active in your platform.\nNote that we may also require a data review outside of the scheduled period if there is a significant change to the user's information or risk level.\nIf you request a data review when the user is not eligible, for example when:\n\ntheir next scheduled review date is more than a year away or\nthe user was onboarded or had their last review within in the past six months,\n\nwe ensure the review is not activated and communicate the reason in an error message.\n\nTo request the data review, make a POST \/legalEntities\/{id}\/requestPeriodicReview request with the legal entity ID of the user in the path.\nIf the request is successful, you receive a 204 response.\n\nAdyen then informs you that a user data review is required through a balancePlatform.accountHolder.updated webhook. The webhook contains the following information:\n\n\n\nField\nDescription\n\n\n\n\n verificationStatus\nSet to invalid\n\n\n allowed\nRemains set to true\n\n\n verificationErrors\nContains the verification error 3_10 and message \"Review of data is required\".\n\n\n verificationDeadlines\nThe date when the capability will be disallowed if the verification error is not resolved.\n\n\n remediatingActions\nContains the remediating action 3_100 and message \"Use \/legalEntities\/{id}\/confirmDataReview to indicate that the data is confirmed\".\n\n\n\n\nNote that the webhook contains the capabilities that will be disallowed if the user does not confirm that they have reviewed and updated their data.\n\n\n    \n\nTroubleshooting\n\nIf you attempt to request a review more than one year prior to the user's next scheduled review, you will receive the error code 422 and message A periodic review can only be requested when the next scheduled deadline is within one year.\nIf you attempt to request a review and the endpoint is not available for any other reason, you will receive the error code 422 and message Unable to request periodic review for this legal entity.\nIf you attempt to request a review less than 180 days from the date of the previous review, you will receive the error code 422 and message A periodic review cannot be started yet as a review was completed recently.\n\nStep 3: Ask your users to review their data within the deadline\nInform your user that they need to review their data and to provide updated information if needed.\nFollow the steps below depending on your type of integration.\n\n\n    \n        \n        \n    \n\n\nStep 4: Get the verification results\nOnce the review has been submitted, Adyen verifies the user\u2019s data and informs you of the results through the balancePlatform.accountHolder.updated webhook.\nTo resolve any verification errors, follow the steps based on your integration type: API-only onboarding or Hosted onboarding.\nAfter the user has reviewed their data and the verification is valid, there is no further action needed.\nVerification valid\nWhen the checks are completed successfully, Adyen sends a balancePlatform.accountHolder.updated webhook with:\n\n verificationStatus&#58; Set to valid.\n allowed&#58; Set to true.\n\n\n    \n\nVerification invalid\nWhen there are problems with the verification, Adyen sends a balancePlatform.accountHolder.updated webhook.\nThe webhook contains the following information:\n\n verificationStatus&#58; Set to invalid.\n allowed&#58; Set to false or true with the  verificationDeadlines array showing when the capability will be disallowed if the verification error is not resolved.\n problems&#58; Contains verificationErrors, subErrors, and remediatingActions arrays returned on the linked legal entity. If there are verification errors, you must resolve them.\n\nTo see any  problems also returned on the transfer instrument resource, reach out to your Adyen contact to enable the feature. For example, if your users have multiple transfer instruments, this can help them more easily see the errors and on which transfer instrument they need to be resolved.\n\n    \n\nTest the data review flow\nIn this scenario, you force Adyen to send a verification error relating to one of your users (a legal entity). This verification error is due to an outstanding data review required by Adyen.\nThe account holder for the legal entity must already have capabilities allowed to be able test the flow.\nStep 1: Make an API request\nUsing the  Legal Entity Management API, make a PATCH \/legalEntities\/{id} request. Include the x-requested-verification-code 3_10 in the header of your request.\nStep 2: Check verification results\nTo confirm that the legal entity has an outstanding data review required, you can:\n\nListen to the balancePlatform.accountHolder.updated webhook or\nMake a GET  \/legalEntities\/{id} request for the specified legal entity or\nMake a POST  \/checkVerificationErrors request for the specified legal entity.\n\nThese all contain the verification error 3_10 and message \"Review of data is required\".\nStep 3: Resolve the verification error\nMake a POST  \/legalEntities\/{id}\/confirmDataReview request with the specified legal entity ID in the path. The response returns the time when the data review was confirmed in the  dataReviewedAt field. You can confirm the verification error was resolved by listening to webhooks or making a GET API request.\nSee also\n\n\n                    Onboard users\n                \n\n","type":"page","locale":"pt","boost":17,"hierarchy":{"lvl0":"Home","lvl1":"Marketplaces","lvl2":"Verification process","lvl3":"Periodic data reviews"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/pt","lvl1":"https:\/\/docs.adyen.com\/pt\/marketplaces","lvl2":"https:\/\/docs.adyen.com\/pt\/marketplaces\/verification-overview","lvl3":"\/pt\/marketplaces\/verification-overview\/data-review-process"},"levels":4,"category":"Marketplaces","category_color":"green","tags":["Periodic","reviews"]}}
