# Activar una actualización histórica para un enlace

{% admonition type="warning" name="Límite de Solicitudes Concurrentes" %}
  Para prevenir solicitudes duplicadas, este endpoint tiene un período de enfriamiento de 10 minutos por enlace. Si intentas actualizar el mismo enlace dentro de los 10 minutos de una solicitud previa, recibirás un error 409 Conflict con el mensaje "The link has already been refreshed. Please wait X minutes before trying again.".
{% /admonition %}

Usa este método para desencadenar una actualización histórica para un enlace específico (único o recurrente). Utiliza el parámetro fetch_resources para especificar qué recursos deseas actualizar. Si no especificas este parámetro, la actualización histórica se realizará para todos los recursos soportados por la institución con la que está asociado el enlace.

En una solicitud exitosa, nuestra API responderá con un código de estado 202 y un request_id que podrás usar posteriormente para asociar un webhook de historical_update a esta solicitud.

{% admonition type="info" name="No actualiza la definición del enlace" %}
  Este endpoint no actualiza la definición del enlace en sí, solo los datos históricos para los recursos especificados. Si deseas cambiar permanentemente el fetch_resources del enlace, deberías usar el método Modificar la recuperación de datos de un enlace en su lugar.
{% /admonition %}

Endpoint: POST /api/links/{id}/refresh/
Version: 1.223.0
Security: basicAuth

## Path parameters:

  - `id` (string, required)
    El link.id que deseas actualizar.
    Example: "e4bb1afb-4a4f-4dd6-8be0-e615d233185b"

## Request fields (application/json):

  - `fetch_resources` (array)
    Un arreglo de recursos para los que te gustaría recibir una actualización histórica. Si no especificas este campo, la actualización histórica se realizará para todos los recursos compatibles con la institución.

{% admonition type="warning" name="Recursos No Soportados para un Enlace" %}
  Si especificas un recurso que no es compatible con la institución, devolvemos un error 400 Bad Request, especificando qué recursos son compatibles para el enlace dado.
{% /admonition %}
    Example: ["ACCOUNTS","TRANSACTIONS","OWNERS"]

## Response 202 fields (application/json):

  - `request_id` (string, required)
    El ID único para esta solicitud. Recomendamos que almacene este valor para identificar más tarde qué evento de webhook se relaciona con una solicitud asincrónica.
    Example: "b5d0106ac9cc43d5b36199fe831f6bbe"

## Response 403 fields (application/json):

  - `code` (string)
    Un código de error único (access_to_resource_denied) que te permite clasificar y manejar el error de manera programática.

ℹ️ Consulta nuestro DevPortal para obtener más información sobre cómo manejar 403 access_to_resource_denied.
    Example: "access_to_resource_denied"

  - `message` (string)
    Una breve descripción del error.

Para los errores access_to_resource_denied, la descripción es:

  - You don't have access to this resource..
    Example: "You don't have access to this resource."

  - `request_id` (string)
    Un ID único de 32 caracteres de la solicitud (que coincide con un patrón regex de: [a-f0-9]{32}). Proporcione este ID al contactar al equipo de soporte de Belvo para acelerar las investigaciones.
    Example: "9e7b283c6efa449c9c028a16b5c249fb"

## Response 404 fields (application/json):

  - `code` (string)
    Un código de error único (not_found) que te permite clasificar y manejar el error de manera programática.
    Example: "not_found"

  - `message` (string)
    Una breve descripción del error.

Para errores not_found, la descripción es:

  - Not found
    Example: "Not found"

  - `request_id` (string)
    Un ID único de 32 caracteres de la solicitud (que coincide con un patrón regex de: [a-f0-9]{32}). Proporcione este ID al contactar al equipo de soporte de Belvo para acelerar las investigaciones.
    Example: "9e7b283c6efa449c9c028a16b5c249fb"

## Response 409 fields (application/json):

  - `code` (string)
    Un código de error único (link_refreshed) que te permite clasificar y manejar el error de manera programática.

ℹ️ Consulta nuestro DevPortal para obtener más información sobre cómo manejar errores 409 link_refreshed.
    Example: "link_refreshed"

  - `message` (string)
    Una breve descripción del error.

Para los errores link_refreshed, la descripción es:

  - El enlace ya ha sido actualizado. Por favor, espere X minutos antes de intentarlo de nuevo.
    Example: "The link has already been refreshed. Please wait 7 minutes before trying again."

  - `request_id` (string)
    Un ID único de 32 caracteres de la solicitud (que coincide con un patrón regex de: [a-f0-9]{32}). Proporcione este ID al contactar al equipo de soporte de Belvo para acelerar las investigaciones.
    Example: "9e7b283c6efa449c9c028a16b5c249fb"

## Response 428 fields (application/json):

  - `code` (string)
    Un código de error único (token_required) que te permite clasificar y manejar el error de forma programática. ℹ️ Consulta nuestro DevPortal para obtener más información sobre cómo manejar errores 428 token_required.
    Example: "token_required"

  - `message` (string)
    Una breve descripción del error. 
Para los errores token_required, la descripción es:

  - A MFA token is required by the institution to login.
    Example: "A MFA token is required by the institution to login"

  - `request_id` (string)
    Un ID único de 32 caracteres de la solicitud (que coincide con un patrón regex de: [a-f0-9]{32}). Proporcione este ID al contactar al equipo de soporte de Belvo para acelerar las investigaciones.
    Example: "9e7b283c6efa449c9c028a16b5c249fb"

  - `session` (string)
    Un ID único de 32 caracteres de la sesión de inicio de sesión (que coincide con un patrón de regex de: [a-f0-9]{32}).
    Example: "2675b703b9d4451f8d4861a3eee54449"

  - `expiry` (integer)
    Tiempo de duración de la sesión en segundos.
    Example: 9600

  - `link` (string)
    Identificador único creado por Belvo, utilizado para referenciar el Link actual.
    Example: "30cb4806-6e00-48a4-91c9-ca55968576c8"

  - `token_generation_data` (object)
    Detalles sobre cómo generar el token.

  - `token_generation_data.instructions` (string)
    Instrucciones para la generación de tokens.
    Example: "Use this code to generate the token"

  - `token_generation_data.type` (string)
    Tipo de datos para generar el token (código QR, desafío numérico).
    Example: "numeric"

  - `token_generation_data.value` (string)
    Valor a utilizar para generar el token.
    Example: "12345"

  - `token_generation_data.expects_user_input` (boolean)
    Indica si el usuario necesita proporcionar información para completar la autenticación. Cuando se establece en false, es posible que su usuario necesite:
- confirmar el inicio de sesión en otro dispositivo
- escanear un código QR
Aún necesitará realizar una llamada PATCH para completar la solicitud.
    Example: true

## Response 500 fields (application/json):

  - `code` (string)
    Un código de error único (unexpected_error) que te permite clasificar y manejar el error de manera programática.

ℹ️ Consulta nuestro DevPortal para obtener más información sobre cómo manejar errores 500 unexpected_error.
    Example: "unexpected_error"

  - `message` (string)
    Una breve descripción del error.

Para los errores unexpected_error, la descripción es:

- Belvo no puede procesar la solicitud debido a un problema interno del sistema o a una respuesta no soportada de una institución.
    Example: "Belvo is unable to process the request due to an internal system issue or to an unsupported response from an institution"

  - `request_id` (string)
    Un ID único de 32 caracteres de la solicitud (que coincide con un patrón regex de: [a-f0-9]{32}). Proporcione este ID al contactar al equipo de soporte de Belvo para acelerar las investigaciones.
    Example: "9e7b283c6efa449c9c028a16b5c249fb"


