> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mangopay.com/llms.txt
> Use this file to discover all available pages before exploring further.

# KYC/KYB renewal

> How KYC/KYB verification affects users on an ongoing basis

## Introduction

In addition to the initial KYC/KYB verification of users, Mangopay has regulatory obligations to conduct ongoing monitoring of its users and repeat the verification of users at regular intervals in time to ensure they remain legitimate.

The ongoing monitoring and verification processes are in line with Mangopay’s terms and conditions and are necessary to comply with EU anti-money laundering (AML) obligations.

Mangopay’s obligations are designed to protect your platform, your users, and Mangopay from the misuse of the financial system and potential emerging risks. For your platform, ongoing KYC/KYB renewal demonstrates to your users a commitment to risk-based due diligence, security, and trust.

## Scope

Mangopay’s continuous KYC/KYB verification applies to `OWNER` users of all types:

* Natural Users
* Legal Users of all types: Business, Soletrader, Organization, Partnership

Mangopay’s user risk classification is a multi-factor assessment, updated over time to adapt to evolving risk and regulations, and is not communicated externally.

## Rollout

<Note>
  **Note – Feature being rolled out during 2026**

  Mangopay’s continuous KYC/KYB verification feature is being rolled out during 2026.

  The feature defines a KYC/KYB renewal deadline, `KycRenewalDeadline`, and a webhook that notifies your platform 90 days in advance. To launch the feature, this notice period may be longer (as described below).

  You can set up the webhooks event types already; other aspects of the feature are still in development.
</Note>

During the rollout, downgrades for non-renewal will be grouped on a single date, December 1st, 2026, even if their `KycRenewalDeadline` is earlier than that date.

The **first** date a user can be downgraded as a result of non-renewal in 2026, is:

* **December 1st, 2026** (`2026-12-01`)

For the rollout:

* Users scheduled for renewal-related downgrade on this date (December 1st, 2026), will have been assigned a `KycRenewalDeadline` date that is **November 30th, 2026** (`2026-11-30`) – or **earlier**, and it may even be in the past.
* No matter how long before **November 30th** their `KycRenewalDeadline` actually is, they will not be downgraded until December 1st, 2026.
* A webhook notification will be emitted for these users **before or on** August 31st (90 days before November 30th)
* There is a new event type for these webhooks, `USER_KYC_RENEWAL_REQUIRED`, which your platform should set up as soon as possible to receive the `UserId`
* `KycRenewalDeadline` dates will be assigned before August 31st, and features to retrieve them will be released and communicated via the usual channels

After the rollout:

* The `USER_KYC_RENEWAL_REQUIRED` is emitted 90 days before `KycRenewalDeadline`
* In case of non-renewal, a user is downgraded the day after `KycRenewalDeadline`

### Example post-rollout

The true 90-day notification system will take effect from the day after, December 2nd, 2026.

Example:

* A user is scheduled for renewal-related downgrade on **December 2nd, 2026**.

For this user:

* Their `KycRenewalDeadline` is the day before: `2026-12-01` (UTC)
* A `USER_KYC_RENEWAL_REQUIRED` webhook event notification will be emitted on September 1st (90 days before the `KycRenewalDeadline`), containing the `UserId` – **provided you set it up**
* To avoid downgrade, they must successfully complete their KYC/KYB verification before the end of `2026-12-01` (23:23, UTC timezone)

Thanks to the features being delivered, you will also before then be able to retrieve the user’s `KycRenewalDeadline`:

* In the <a href="https://hub.mangopay.com/" target="_blank">Mangopay Dashboard</a>, on the User’s page
* Via the [GET View a User’s regulatory status](/api-reference/user-regulatory-status/view-user-regulatory-status) endpoint
* In the `KYC_RENEWAL_DEADLINE` report, which will be available via the API or Dashboard

<Check>
  **Best practice – Set up webhooks as soon as possible**

  Already, the new webhook event types can be set up via the API or Dashboard:

  * `USER_KYC_RENEWAL_REQUIRED` – Emitted 90 days before `KycRenewalDeadline` (at least, more during the rollout, see above)
  * `USER_KYC_RENEWED` – Emitted when a verified user successfully renews their KYC/KYB verification

  See [below](#wehooks) for more details on these events, or read more about [how to set up webhooks](/webhooks) **→**
</Check>

## Renewal cycle

When a User is successfully **KYC/KYB verified**, indicated by their `KYCLevel` changing to `REGULAR`, Mangopay sets two dates.

* `LastKycDate` – The date of the User’s last successful KYC/KYB verification, when `KYCLevel` changed from `LIGHT` to `REGULAR`.
* `KycRenewalDeadline` – The date after which the User will be KYC/KYB downgraded, and their `KYCLevel` changed from `REGULAR` to `LIGHT`, unless they successfully complete the KYC/KYB verification process again.

These dates are both in format YYYY-MM-DD in the UTC timezone (which is the date-only format of ISO-8601).

Over the coming months, these dates will both be available [via the API](#regulatory-endpoint), [in the Dashboard](#dashboard), and [via a new report](#report).

### Notification of upcoming renewal

Mangopay sends a webhook notification 90 days before a `KycRenewalDeadline`.

The event type for the notification is `USER_KYC_RENEWAL_REQUIRED` and it contains the `UserId` (read more about [integrating this webhook](#webhooks) below).

You can use this notification to plan your own communications with the user to ensure they renew their KYC/KYB in time.

#### Process

The process for requesting KYC/KYB verification renewal is the same as the first time the initial verification.

The user must successfully complete the [hosted KYC/KYB experience](/guides/users/verification/hosted) generated via [POST Create an IDV Session](/api-reference/idv-sessions/create-idv-session). The legacy process relying on **KYC Documents** can also be used in the same way as for the first-time verification, but these endpoints are being replaced by the hosted solution for all platforms.

Unsuccessful verification attempts have no impact (the IDV Session’s `Status` must become `VALIDATED` before the end of the deadline).

#### Requirements

The requirements in terms of data and supporting documentation also remain the same for a renewal as they are for a first-time verification.

<Note>
  **Note – Documents used must be up to date**

  Particularly for KYB renewals for Legal Users, the documents used during a KYC/KYB renewal must be up to date. They must accurately reflect the current situation. Sometimes for example, this means they must be dated within the last 3 months.

  See the documentation for more details about the [KYC/KYB requirements](/guides/users/verification/requirements) **→**
</Note>

### Outcomes

Before the end of the `KycRenewalDeadline`, the user has either successfully completed their KYC/KYB verification again, or they have not.

### Renewal

If the User successfully completes a new hosted KYC/KYB session before the deadline, then there is no change in the Mangopay services available to them.

A successful renewal means that the IDV Session `Status` becomes `VALIDATED` before the end of the date indicated by `KycRenewalDeadline`.

In a renewal scenario, the User’s `KYCLevel` remains `REGULAR` (there is no change).

### Notification of successful renewal

Mangopay sends a webhook notification to notify you of a renewal.

The event type for the notification is `USER_KYC_RENEWAL_RENEWED` and it contains the `UserId` (read more about [integrating this webhook](#webhooks) below).

The event is emitted when a User whose `KYCLevel` is already `REGULAR` successfully completes a new IDV Session (meaning its `Status` becomes `VALIDATED`, or all requirements are met for the legacy KYC Document process).

When this event takes place, Mangopay also:

* Assigns a new `KycRenewalDeadline` in the future
* Updates the `LastKycDate`

With the new deadline, the cycle starts again.

### Downgrade

If the User does not successfully complete a new hosted KYC/KYB session before the deadline, then they lose their KYC status and their Mangopay payment services are restricted.

In this scenario, they are downgraded:

* Their  `KYCLevel` changes from `REGULAR` to `LIGHT`
* As a result, they will be unable to exceed the [KYC/KYB limits](/guides/users/limits) in place – for example, request payouts
* The `Status` of the IDV Session (or KYC Document(s)) changes from `VALIDATED` to `OUT_OF_DATE`

The downgrade is performed at the end of the date indicated by `KycRenewalDeadline`.

**Example:**

* If a user’s `KycRenewalDeadline` is `2026-12-15`
* Given they do not successfully complete KYC/KYB verification before the end of December 15, 2026 (23:23 UTC)
* Then after midnight (00:00 UTC), which is December 16, 2026, their `KYCLevel` will become `LIGHT`

### Notification of downgrade

Mangopay sends a webhook to notify you of a downgrade.

The event type for the notification is `USER_KYC_LIGHT` and it contains the `UserId` (read more about **integrating this webhook** below).

The event is emitted when the User’s `KYCLevel` changes from `REGULAR` to `LIGHT`.

When this event takes place:

* The `KycRenewalDeadline` and `LastKycDate` remain unchanged

<Note>
  **Note – Downgrade may occur due to data change**

  The `USER_KYC_LIGHT` event and webhook also occurs if certain identity data points are changed in the User object.

  The downgrade event and notification is the same in both cases.

  Read more about data-related [downgrade](/guides/users/verification/downgrade) **→**
</Note>

## Managing KYC/KYB renewal

### Dashboard

In the Mangopay Dashboard, you will be able to:

* See the `KycRenewalDeadline` and `LastKycDate` for any given user on their details page
* Generate the new [KYC Renewal Deadline report](#report)
* Set up the webhooks below

### Webhooks

Mangopay provides [webhooks](/webhooks) that you can implement to be notified of continuous KYC/KYB verification events.

<table>
  <tr>
    <th class="header">Event type</th>
    <td class="table-content">`USER_KYC_RENEWAL_REQUIRED`</td>
  </tr>

  <tr>
    <th class="header">Description</th>

    <td class="table-content">
      The User’s `KycRenewalDeadline` is in 90 days.
    </td>
  </tr>
</table>

<table>
  <tr>
    <th class="header">Event type</th>
    <td class="table-content">`USER_KYC_RENEWED`</td>
  </tr>

  <tr>
    <th class="header">Description</th>

    <td class="table-content">
      The User has successfully completed the KYC/KYB verification process and a new `KycRenewalDeadline` has been set.
    </td>
  </tr>
</table>

The `RessourceId` on both webhooks is the `UserId`.

Once you receive a notification, you will be able to call the [GET View a User’s regulatory status](/api-reference/user-regulatory-status/view-user-regulatory-status) endpoint to retrieve the `KycRenewalDeadline`.

<Check>
  **Best practice – Set up webhooks now**

  As per the [rollout](#rollout), the first notifications for the event types below will start being sent before August 31, 2026.

  You can, however, already set up these webhooks in the <a href="https://hub.mangopay.com/" target="_blank">Mangopay Dashboard</a> or the API.
</Check>

### Regulatory endpoint

You will be able to retrieve the `KycRenewalDeadline` for any given `UserId`  from the [GET View a User Regulatory Status](/api-reference/user-regulatory-status/view-user-regulatory-status) endpoint.

This endpoint will return two relevant fields in the `KycInformation` object:

<ResponseField name="KycInformation" type="object">
  Information about the Natural or Legal User’s upcoming `KycRenewalDeadline` and their `LastKycDate`.

  If they don’t renew their KYC/KYB verification before the `KycRenewalDeadline`, they will be downgraded the day after (UTC) and their `KYCLevel` changed to `LIGHT`.

  <Expandable title="properties" defaultOpen>
    <ResponseField name="KycRenewalDeadline" type="string or null">
      **Format:** YYYY-MM-DD (UTC, date-only ISO-8601)

      The date after which the User will be KYC/KYB downgraded, and their `KYCLevel` changed from `REGULAR` to `LIGHT`, unless they successfully complete the KYC/KYB verification process again.

      May be in the past if the user didn't renew their verification.

      Returned `null` if the User has never been KYC/KYB-verified.
    </ResponseField>

    <ResponseField name="LastKycDate" type="string or null">
      **Format:** YYYY-MM-DD (UTC, date-only ISO-8601)

      The date of the User’s last successful KYC/KYB verification, when `KYCLevel` changed from `REGULAR` to `LIGHT`.

      Returned `null` if the User has never been KYC/KYB-verified.
    </ResponseField>
  </Expandable>
</ResponseField>

#### API response example

A call to the [GET View a User Regulatory Status](/api-reference/user-regulatory-status/view-user-regulatory-status) endpoint will return the body below:

```json theme={null}
{
    "Id": "user_m_01KT4CVZE78R2WHC5CN3ZS0VH6",
    "ActionCode": "",
    "ScopeBlocked": {
        "Inflows": false,
        "Outflows": false
    },
    "KycInformation": {
        "LastKycDate": "2025-12-15", // currently returned null
        "KycRenewalDeadline": "2026-12-15" // currently returned null
    }
}
```

## Report

Mangopay will also provide a report that your platform can use to obtain the `KycRenewalDeadline` of large numbers of users.

You will be able to filter the report by the `KycRenewalDeadline` to be able to retrieve upcoming deadlines.

The **KYC Renewal Deadline** report will be available from the Dashboard, as well as the [POST Create a Report](/api-reference/reporting/create-report) endpoint.

The `KYC_RENEWAL_DEADLINE` report will contains the following columns:

<table>
  <thead>
    <tr>
      <th class="header">Column</th>
      <th class="header">Description</th>
      <th class="header">Included by default</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td class="table-content">ClientId</td>
      <td class="table-content">Unique identifier associated with the API key</td>
      <td class="table-content">Yes</td>
    </tr>

    <tr>
      <td class="table-content">UserId</td>
      <td class="table-content">Unique identifier of the user</td>
      <td class="table-content">Yes</td>
    </tr>

    <tr>
      <td class="table-content">LastKycDate</td>
      <td class="table-content">Date (YYYY-MM-DD) of the user’s last successful KYC/KYB verification</td>
      <td class="table-content">Yes</td>
    </tr>

    <tr>
      <td class="table-content">KycRenewalDeadline</td>
      <td class="table-content">Date (YYYY-MM-DD) after which the user will be downgraded and their KYCLevel changed to LIGHT unless they successfully complete KYC/KYB verification again</td>
      <td class="table-content">Yes</td>
    </tr>
  </tbody>
</table>
