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

# Autenticación

> Autentícate con la API de Socios de UniUni usando tokens de acceso JWT

La API de Socios utiliza autenticación basada en JWT. Esta es independiente de la API de Cliente — necesitas una clave de API de Socios para acceder a estos endpoints.

**URL base:** `https://api.ship.uniuni.com/partner`

## Paso 1: Obtener un token de acceso

Intercambia tu clave de API por un token de acceso JWT llamando al endpoint de autenticación.

<Note>
  Los tokens de acceso son válidos por **24 horas**. Almacena el token y reutilízalo hasta que expire.
</Note>

### Solicitud

```
GET /auth/token
```

| Encabezado  | Valor                     |
| ----------- | ------------------------- |
| `X-API-Key` | Tu clave de API de Socios |

### Respuesta

```json theme={null}
{
  "success": true,
  "message": "Get token successfully",
  "data": {
    "accessToken": "eyJhbGciOiJIUzI1NiIs..."
  }
}
```

### Respuestas de error

<Tabs>
  <Tab title="Clave API faltante">
    ```json theme={null}
    {
      "success": false,
      "message": "Missing API Key"
    }
    ```
  </Tab>

  <Tab title="Error al generar el token">
    ```json theme={null}
    {
      "success": false,
      "message": "Error generating API token"
    }
    ```
  </Tab>
</Tabs>

### Ejemplo

```bash theme={null}
curl -X GET https://api.ship.uniuni.com/partner/auth/token \
  -H "X-API-Key: your_api_key_here"
```

## Paso 2: Usar el token de acceso

Incluye el token JWT en el encabezado `Authorization` para todas las llamadas posteriores a la API.

```
Authorization: Bearer <accessToken>
```

### Ejemplo

```bash theme={null}
curl -X GET "https://api.ship.uniuni.com/partner/track?trackingId=UR12345678901234567" \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
```

## Códigos de error de autenticación

| Código de error     | Descripción                                             |
| ------------------- | ------------------------------------------------------- |
| `MissingTokenError` | No se proporcionó el encabezado `Authorization`         |
| `ExpiredTokenError` | El token de acceso JWT ha expirado — solicita uno nuevo |
| `InvalidTokenError` | El token está malformado o la clave de API es inválida  |
| `TokenPayloadError` | No se pudo decodificar el payload del token             |

### Ejemplo de respuesta de error

```json theme={null}
{
  "success": false,
  "message": "Missing API Key"
}
```
