---
title: "Generate a reauthentication link"
method: POST
path: "/v1/reauthuri"
tags: ["Auth link"]
---

# Generate a reauthentication link

`POST /v1/reauthuri`

Generate a link to initiate a reauthentication flow. The reauthentication flow provides a simple path for the user to follow to reconnect their account, providing a shorter user journey compared to setting up their account for the first time.

**UK only**: Reauthentication is currently only supported for UK providers. Ireland and other European providers are not supported.

Most European banks require that end-users who are sharing account details grant permission for data sharing every 90 days.

For these banks, access to your user’s bank accounts will no longer be available 90 days after they initially connect their account. When this happens, the TrueLayer `POST /connect/token` endpoint will return a 400 `invalid_grant` error when you try to refresh your tokens, and if you try to fetch data using an access_token TrueLayer will return a 403 `access_denied` error.

To initiate the reauthentication flow, call the reauth endpoint with a refresh token for the user you would like to re-authenticate. We will return a link to the bank for the user to follow. You can have the user go through this flow either before or after their original connection expires (for example, you may prefer to have users reconnect their accounts a week before the connection expires, which would reset the expiration to 90 days from the time of reauthentication).

Users can use the reauthentication flow for up to 90 days after their associated refresh token expires. (The expiration time varies based on the underlying bank but in general you will have at least 90 days after their connection has expired in which to use the reauthentication flow). After that time has elapsed, reauthentication is no longer possible and the user should go through the first-time authentication flow instead.

## Request body

- ReauthUriRequest
  - `response_type` 'code', required — Must be `"code"`
  - `refresh_token` string, required — refresh_token for the connection you want to reauthenticate
  - `redirect_uri` string, required — A valid redirect_uri for your TrueLayer client_id (set in your Console)
  - `state` string — An opaque value used by the client to maintain state between the request and callback
  - `code_challenge` string — PKCE code challenge
  - `code_challenge_method` 'S256' — must be `"S256"` if `code_challenge` is supplied
  - `response_mode` 'form_post' — must be `"form_post"` if provided

## Response `200`

Successful response returns `access_token` and optionally `refresh_token`.

- AuthUriResponse
  - `result` string, uri, required — Authentication link. Direct the end user here to (re)authenticate them.
  - `success` boolean, required

## Other responses

- `401` — Unauthorized
- `500` — Internal Server Error

---

[API](https://skmtc.net/truelayer/apis/authentication-server.md) · [All operations](https://skmtc.net/truelayer/apis/authentication-server/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/truelayer/authentication-server/revisions/5f6051515b2c/schema)
