> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.mangopay.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.mangopay.com/_mcp/server.

# KYC Renewal report

> List users' upcoming KYC/KYB renewal deadlines

The **KYC Renewal** report lists users' `KycRenewalDeadline` and `LastKycDate`, as part of Mangopay's [continuous KYC/KYB verification](/guides/users/verification/renewal) obligations.

You can filter the report by `KycRenewalDeadline` to retrieve upcoming deadlines.

You can access this report [in the Dashboard](https://hub.mangopay.com/). Contact your platform's Dashboard admin if you don't see the Reports feature in the side navigation.

In the Dashboard, as well as running reports manually, you can schedule reports to be generated automatically at regular intervals, such as daily, weekly, monthly, and quarterly.

## Columns

The **KYC Renewal** report has the following columns, all of which are included by default.

<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 is 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>

## Generate via API

#### Set up webhooks

The [API endpoint](/api-reference/reporting/report-object) for the **KYC Renewal** report uses [webhooks](/webhooks) to notify your chosen URL that a report is ready for download.

The time it takes for a report to be generated depends on the quantity of data. If exporting large amounts of data via API, ensure you have these webhook [event types](/webhooks/event-types) set up to know when to fetch the report:

* `REPORT_GENERATED` – Indicates that a report is ready for download at the `DownloadURL`
* `REPORT_FAILED` – Indicates that a report was not generated successfully

#### Define the date range

The `AfterDate` and `BeforeDate` parameters for the **KYC Renewal** report refer to the user's `KycRenewalDeadline` (not a `CreationDate` like the other reports).

Use these parameters to retrieve upcoming renewals for your users, for example, by setting `BeforeDate` to 90 days in the future and `AfterDate` to the present day.

The 90-day period matches the notification period for the [`USER_KYC_RENEWAL_REQUIRED`](/guides/users/verification/renewal#webhooks) webhook. Deadlines further ahead haven't been notified yet and may still change. Once the deadline moves into the past, the user is downgraded, so there is little interest in fetching past deadlines.

This `ReportType` doesn't support the `Filters` parameter.

The columns set by default are [listed above](#columns). You can customize this in the `Columns` parameter by sending the full list of columns you wish to see in the report.

#### Run the report

Run the report by calling the [POST Create a Report](/api-reference/reporting/create-report) endpoint with the `ReportType` set to `KYC_RENEWAL_DEADLINE`.

Send your desired `KycRenewalDeadline` period in the `AfterDate` and `BeforeDate` fields, and, if not using the default columns, the full list of columns you wish to include in the `Columns` parameter.

The API response shows the `Status` as `PENDING`, indicating that the report is being generated.

#### Download when ready

The report is ready for download when its status changes from `PENDING` to `GENERATED`, which triggers the `REPORT_GENERATED` webhook.

Call the [GET View a Report](/api-reference/reporting/view-report) endpoint to retrieve the `DownloadURL` value where you can download the report.

If the `Status` changes to `FAILED`, triggering the `REPORT_FAILED` webhook, then more information about why the report could not be generated is available in the `ResultCode` and `ResultMessage`.

#### Repeat process as needed

The **KYC Renewal** report is valid for 31 days. After this, its `Status` changes to `EXPIRED` at it is no longer available for download.

You can re-generate another report with the same parameters and update the date range for the latest period.

> **Note**
>
> **Note – You can schedule reports in the Dashboard**
>
> The [Dashboard](https://hub.mangopay.com/) features a scheduling feature that enables you to automatically generate the same report daily, weekly, monthly, or quarterly.

## Related resources

#### [Guide](/guides/users/verification/renewal#report)

Read about Mangopay's continuous KYC/KYB verification and the KYC Renewal report