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

# Cómo hacer autenticación

> Guia del proceso de autorización

TIN utiliza **API KEY** y el protocolo **OAuth 2.0** para facilitar la autorización.\
OAuth es un marco de autorización que permite a una aplicación cliente obtener acceso a recursos protegidos (como transferencias, enlaces, etc.).\
El acceso a la API de TIN puede otorgarse a una aplicación en nombre de un usuario o en nombre de la propia aplicación.

Esta sección cubre la autenticación **de aplicación**, que está diseñada para aplicaciones de servidor a servidor que consumen la API de TIN.

### Acceso a la nube de ACH TIN

Antes de poder comenzar a realizar solicitudes OAuth, necesitas obtener tus **credenciales de cliente**.\
Estas credenciales están disponibles en la sección **Integración** del Dashboard de TIN.

<Info>
  Primero, ACH debe crear una billetera (wallet) y un usuario administrador para la entidad/organización.\
  Este usuario será el responsable de realizar los accesos iniciales al Dashboard de TIN.
</Info>

<img src="https://mintcdn.com/minka/s9AlApy9NeaChMwL/images/ach-autorizacion-1.png?fit=max&auto=format&n=s9AlApy9NeaChMwL&q=85&s=5604cd0e71d2d6b06a8a79e8708a5da1" alt="Descripción del diagrama" width="600px" data-path="images/ach-autorizacion-1.png" />

### Credenciales y autenticación

La credencial de cliente es la **API\_KEY**.

Las credenciales OAuth 2.0 son **client\_id** y **client\_secret**, las cuales deben utilizarse para obtener un **access\_token** desde el endpoint de autenticación.

<Warning>
  ⚠️ Tus credenciales deben almacenarse de forma segura.
</Warning>

### Llamadas a la API de TIN

Para realizar llamadas a los endpoints de la API de TIN es necesario incluir la `API_KEY` y el `access_token` en el encabezado (**header**) de cada solicitud.

<Info>
  El token es válido por una hora. Una vez vencido, debes solicitar uno nuevo.
</Info>

### Encabezados (Headers)

| Nombre        | Valor                  |
| ------------- | ---------------------- |
| Authorization | Bearer *access\_token* |
| x-api-key     | *API\_KEY*             |

### Códigos de error

| Código | Mensaje   | Descripción                                           |
| ------ | --------- | ----------------------------------------------------- |
| 403    | Forbidden | El token ha expirado o las credenciales son inválidas |
