> ## 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.

# Authentification

> Authentifiez-vous auprès de l'API Partenaire UniUni à l'aide de jetons d'accès JWT

L'API Partenaire utilise une authentification basée sur JWT. Celle-ci est distincte de l'API Client — vous avez besoin d'une clé API Partenaire pour accéder à ces points de terminaison.

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

## Étape 1 : Obtenir un jeton d'accès

Échangez votre clé API contre un jeton d'accès JWT en appelant le point de terminaison d'authentification.

<Note>
  Les jetons d'accès sont valides pendant **24 heures**. Conservez le jeton et réutilisez-le jusqu'à son expiration.
</Note>

### Requête

```
GET /auth/token
```

| En-tête     | Valeur                   |
| ----------- | ------------------------ |
| `X-API-Key` | Votre clé API Partenaire |

### Réponse

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

### Réponses d'erreur

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

  <Tab title="Erreur de génération du jeton">
    ```json theme={null}
    {
      "success": false,
      "message": "Error generating API token"
    }
    ```
  </Tab>
</Tabs>

### Exemple

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

## Étape 2 : Utiliser le jeton d'accès

Incluez le jeton JWT dans l'en-tête `Authorization` pour tous les appels API suivants.

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

### Exemple

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

## Codes d'erreur d'authentification

| Code d'erreur       | Description                                            |
| ------------------- | ------------------------------------------------------ |
| `MissingTokenError` | Aucun en-tête `Authorization` fourni                   |
| `ExpiredTokenError` | Le jeton d'accès JWT a expiré — demandez-en un nouveau |
| `InvalidTokenError` | Le jeton est malformé ou la clé API est invalide       |
| `TokenPayloadError` | Le contenu du jeton n'a pas pu être décodé             |

### Exemple de réponse d'erreur

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