Gestion des erreurs
Cette section présente divers scénarios d'appels incorrects ou erronés qui entraînent des messages d'erreur et des résultats inappropriés.
400 Mauvaise Demande
Le code d'état 400 est généralement observé lors du développement et de l'intégration et ne devrait pas être reçu lors des opérations normales. La réponse retournée contient les informations nécessaires pour corriger le problème.
De nombreux problèmes peuvent causer un code d'état 400 et les plus courants sont listés dans le tableau ci-dessous.
Réponse | Résolution |
|---|---|
Renvoie si le numéro de concessionnaire est invalide. {
"status": "400",
"id": "rrt-07cdd77f98c381924-d-ea-22529-1513654-1",
"title": "bad_request",
"meta": {
"service": "01",
"detail": "request validation failed",
"payload": {
"details": [
{
"message": "String \"22391888\" is too short (length: 8, required minimum: 10): []"
}
]
}
}
} | Si le concessionnaire utilise votre DMS, il se peut qu'il ne soit plus un concessionnaire BRP. Vérifiez avec eux et désactivez les mises à jour de l'inventaire des pièces. Assurez-vous que le numéro de concessionnaire comporte 10 caractères. Si vous enregistrez le numéro de concessionnaire sans le '0' initial, ajoutez le '0' initial avant d'appeler l'API. L'erreur est également renvoyée si le concessionnaire n'est pas un concessionnaire BRP actif. |
Renvoie si le VIN est trop long. {
"status": "400",
"id": "rrt-02f0854d111e259f2-b-ea-25942-53476969-1.1",
"title": "bad_request",
"meta": {
"service": "12",
"detail": "Backend Error",
"payload": {
"filename": "dealer_retail_transaction_api_delta_20231220_203241Z_ace87b33-e774-4e48-bc1c-2566fec72f8e.json.gz",
"errors": [
{
"message": "[Path '/transactions/0/units/0/vin'] String \"1234567890abcdefghtyu\" is too long (length: 21, maximum allowed: 17): []",
"transaction_number": "32735233"
}
]
}
}
} | Votre DMS peut autoriser plus de caractères pour le VIN que ce que l'API permet. Si le VIN saisi contient plus de 17 caractères, le message d'erreur à gauche est renvoyé. Pour éviter l'erreur, si le VIN saisi comporte plus de 17 caractères, soit ne l'incluez pas, soit limitez la longueur à 17 caractères. |
Renvoie si une propriété est manquante. {
"status": "400",
"id": "rrt-07cdd77f98c381924-d-ea-22528-1535012-1.1",
"title": "bad_request",
"meta": {
"service": "12",
"detail": "Backend Error",
"payload": {
"filename": "dealer_retail_transaction_api_delta_20231027_190119Z_1b8ff76c-148d-4a74-beee-e233369d7f73.json.gz",
"errors": [
{
"message": "[Path '/transactions/0/header'] Object has missing required properties ([\"transaction_number\"]): []",
"transaction_number": ""
}
]
}
}
} | Ajoutez la propriété manquante à la charge utile. |
Renvoie si une date a un format invalide. {
"status": "400",
"id": "rrt-07cdd77f98c381924-d-ea-22528-1535868-1.1",
"title": "bad_request",
"meta": {
"service": "12",
"detail": "Backend Error",
"payload": {
"filename": "dealer_retail_transaction_api_delta_20231027_190218Z_9e70b158-1070-4cef-8c16-f57e0f97e009.json.gz",
"errors": [
{
"message": "[Path '/transactions/0/header/transaction_open_date'] String \"Yesterday\" is invalid against requested date format(s) [yyyy-MM-dd'T'HH:mm:ssZ, yyyy-MM-dd'T'HH:mm:ss.[0-9]{1,12}Z]: []",
"transaction_number": "32578424"
}
]
}
}
} | Changez le format de la chaîne de date pour qu'il corresponde au format de la charge utile. |
Renvoie si un numéro a un format invalide.
{
"status": "400",
"id": "rrt-0e20a46609994a8ad-c-ea-22693-1531658-1.1",
"title": "bad_request",
"meta": {
"service": "12",
"detail": "Backend Error",
"payload": {
"filename": "dealer_retail_transaction_api_delta_20231027_190254Z_994fbdea-10dd-4eea-93b1-138bc1977bf6.json.gz",
"errors": [
{
"message": "[Path '/transactions/0/parts/0/total_customer_price'] Numeric instance is greater than the required maximum (maximum: 10000000, found: 1.2345678901234E9)",
"transaction_number": "33511480"
},
{
"message": "[Path '/transactions/0/parts/0/total_customer_price'] Remainder of division is not zero (1.2345678901234E9 / 0.01): []",
"transaction_number": "33511480"
}
]
}
}
}
| Tous les montants dans la charge utile ont un format de ±9999999,99. Changez le format de la propriété pour qu'il corresponde à la charge utile. |
Renvoyé lorsque quelque chose manque dans la charge utile. {
"status": "400",
"id": "rrt-07cdd77f98c381924-d-ea-22528-1535353-1.1",
"title": "bad_request",
"meta": {
"service": "12",
"detail": "Backend Error",
"payload": {
"filename": "dealer_retail_transaction_api_delta_20231027_190140Z_865da5e0-2909-44a0-930d-6ab558e8ff82.json.gz",
"errors": [
{
"message": "[Path '/transactions/0/header/customers/0'] Object has missing required properties ([\"customer_id\",\"recipient\"])",
"transaction_number": "32971812"
},
{
"message": "[Path '/transactions/0/jobs/0'] Object has missing required properties ([\"description\"])",
"transaction_number": "32971812"
},
{
"message": "[Path '/transactions/0/parts/0'] Object has missing required properties ([\"part_number\"])",
"transaction_number": "32971812"
},
{
"message": "[Path '/transactions/0/units/0'] Object has missing required properties ([\"vin\"]): []",
"transaction_number": "32971812"
}
]
}
}
} | Assurez-vous d'inclure tous les champs requis. |
401 Non autorisé
The 401 Unauthorized error status code is returned when you try to call the API with an expired access_token.
You have to get a new access_token with a call to the Application Authentication API.
The 401 Unauthorized error status code is also returned if you didn't request access to the API by creating a ticket in the DCP Jira.
When you are ready to start working on an API, you must create a certification ticket in Jira, as described in the section Certification Activities with Jira.
If you already started work on an API and lost access, create a support ticket as described in the section Open a Support Ticket.
413 Demande d'entité trop grande
Le code d'état 413 Demande d'entité trop grande est renvoyé lorsque la charge utile dépasse la limite de 10 Mo d'APIGee.
Notez que le code d'état 413 peut être reçu même si la charge utile que vous envoyez fait moins de 10 Mo. La charge utile est traitée avant d'appeler une API interne BRP et c'est peut-être cette API interne qui renvoie le code d'état 413.
Pour corriger le problème, divisez les transactions en plusieurs appels.