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

# Erreurs

> Format des erreurs, codes de statut HTTP et codes d'erreur renvoyés par l'API Codaclean.

## Format des erreurs

Les erreurs sont renvoyées au format JSON et contiennent un `message` :

| Champ        | Description                                                                                                |
| ------------ | ---------------------------------------------------------------------------------------------------------- |
| `message`    | Description lisible par un humain. Ne l'analysez pas dans votre code : elle peut changer.                  |
| `code`       | Code d'erreur stable, destiné à un traitement automatique. Appuyez votre gestion des erreurs sur ce champ. |
| `fields`     | Champs en cause, renvoyés avec `unknownField` et `fieldNotUpdatable`.                                      |
| `candidates` | Connecteurs proposés au choix, renvoyés avec `connectorSelectionRequired`.                                 |

Le champ `code` est renvoyé par les endpoints des clients, des mandats et des données de référence.

Les endpoints de fichiers et d'envoi de fichiers ne renvoient qu'un `message`. L'endpoint de token ajoute un champ `error` à sa réponse `500`.

## Codes de statut HTTP

| Statut | Signification                                                                                                            |
| ------ | ------------------------------------------------------------------------------------------------------------------------ |
| `400`  | La requête est invalide. Corrigez-la avant de réessayer.                                                                 |
| `401`  | L'ID token est absent, invalide ou expiré, ou l'utilisateur n'est pas autorisé à utiliser l'API. Rafraîchissez le token. |
| `403`  | La clé API est absente ou invalide, un scope manque, ou l'utilisateur n'a pas accès à la ressource.                      |
| `404`  | La ressource n'existe pas, ou l'utilisateur ne peut pas la voir.                                                         |
| `409`  | Conflit avec l'état actuel (élément déjà existant, déjà archivé, déjà confirmé…).                                        |
| `422`  | La requête est valide, mais ne peut pas être traitée en l'état. Reportez-vous au code d'erreur.                          |
| `429`  | Limite de requêtes ou quota dépassé.                                                                                     |
| `500`  | Erreur inattendue. Réessayez plus tard.                                                                                  |
| `502`  | Les identifiants d'envoi n'ont pas pu être délivrés. Réessayez plus tard.                                                |

**Voir aussi :** [Limites de requêtes](/fr/api/rate-limits)

## Codes d'erreur

| Code                           | Statut | Signification                                                                                                                                                                                                                                                             |
| ------------------------------ | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `invalidPayload`               | 400    | Le corps n'est pas un objet JSON, ou un champ obligatoire est absent ou invalide.                                                                                                                                                                                         |
| `unknownField`                 | 400    | Le corps contient des champs que l'endpoint n'accepte pas. Champs concernés dans `fields`.                                                                                                                                                                                |
| `fieldNotUpdatable`            | 400    | Le champ ne peut pas être modifié via `PATCH /customers/{customerId}`. Champs concernés dans `fields`.                                                                                                                                                                    |
| `invalidIdentifier`            | 400    | L'identifiant du client ou du mandat est mal formé.                                                                                                                                                                                                                       |
| `invalidEnterpriseNumber`      | 400    | Le numéro d'entreprise n'est pas valide.                                                                                                                                                                                                                                  |
| `invalidIban`                  | 400    | L'IBAN n'est pas valide.                                                                                                                                                                                                                                                  |
| `forbiddenScope`               | 403    | Votre clé API ne dispose pas du scope exigé par l'endpoint.                                                                                                                                                                                                               |
| `accessDenied`                 | 403    | Le client existe, mais l'utilisateur n'y a pas accès.                                                                                                                                                                                                                     |
| `belongsToAnotherTenant`       | 403    | Le numéro d'entreprise ou l'IBAN est déjà enregistré par une autre fiduciaire. Pour transférer un client d'une fiduciaire à une autre, le comptable doit contacter le support Codaclean afin d'engager une procédure de transfert, qui requiert l'accord du client final. |
| `customerNotFound`             | 404    | Le client n'existe pas ou appartient à une autre fiduciaire.                                                                                                                                                                                                              |
| `ibanNotFound`                 | 404    | L'IBAN n'est pas lié à ce client.                                                                                                                                                                                                                                         |
| `payrollProviderNotFound`      | 404    | Code de secrétariat social inconnu, ou secrétariat social non lié à ce client.                                                                                                                                                                                            |
| `mandateNotFound`              | 404    | Le mandat n'existe pas, ou l'utilisateur ne peut pas le voir.                                                                                                                                                                                                             |
| `bankNotSupported`             | 404    | Codaclean ne peut pas demander de mandat pour cette banque.                                                                                                                                                                                                               |
| `customerAlreadyExists`        | 409    | La fiduciaire compte déjà un client avec ce numéro d'entreprise.                                                                                                                                                                                                          |
| `customerAlreadyArchived`      | 409    | Le client a été archivé.                                                                                                                                                                                                                                                  |
| `ibanAlreadyInUse`             | 409    | L'IBAN est déjà lié à un client de la fiduciaire.                                                                                                                                                                                                                         |
| `payrollProviderAlreadyLinked` | 409    | Le secrétariat social est déjà lié à ce client.                                                                                                                                                                                                                           |
| `mandateAlreadyRequested`      | 409    | Une demande de mandat existe déjà pour ce client et ce compte bancaire ou ce secrétariat social.                                                                                                                                                                          |
| `connectorSelectionRequired`   | 422    | Plusieurs connecteurs correspondent à la banque. Relancez l'appel avec le `connectorId` de l'un des `candidates`.                                                                                                                                                         |
| `connectorUnavailable`         | 422    | Aucun connecteur n'est utilisable pour cette banque, ou le `connectorId` transmis est inconnu.                                                                                                                                                                            |

**Voir aussi :** [Scopes](/fr/api/scopes) · [Accès aux données](/fr/api/data-access)

## Clients appartenant à une autre fiduciaire

L'API ne révèle jamais les données d'une autre fiduciaire. Deux cas de figure sont possibles :

* **Vous consultez ou modifiez un client à partir de son identifiant**, et il appartient à une autre fiduciaire : l'API renvoie `404 customerNotFound`, exactement comme si le client n'existait pas.
* **Vous créez un client ou ajoutez un IBAN** déjà enregistré par une autre fiduciaire : l'API renvoie `403 belongsToAnotherTenant`. Comme l'appel ne peut pas aboutir, l'API vous en donne la raison, sans nommer l'autre fiduciaire.

## Erreurs d'envoi de fichiers

Les endpoints d'envoi de fichiers renvoient les valeurs suivantes dans `message` :

| Message                  | Statut | Signification                                                                 |
| ------------------------ | ------ | ----------------------------------------------------------------------------- |
| `upload_not_allowed`     | 403    | L'envoi de fichiers n'est pas activé pour la fiduciaire. Contactez Codaclean. |
| `sts_assume_role_failed` | 502    | Les identifiants n'ont pas pu être délivrés. Réessayez plus tard.             |
