Manejo de Errores
Esta sección presenta varios escenarios de llamadas incorrectas o erróneas que resultan en mensajes de error y resultados inapropiados.
400 Solicitud Incorrecta
El código de estado 400 se ve generalmente durante el desarrollo y la integración y no debería recibirse durante las operaciones normales. La respuesta devuelta contiene la información necesaria para corregir el problema.
Muchos problemas pueden causar un código de estado 400 y los más comunes se enumeran en la tabla a continuación.
Respuesta | Resolución |
|---|---|
Devuelto si el número de concesionario es inválido. {
"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 el concesionario está utilizando tu DMS, puede que ya no sea un concesionario BRP. Verifica con ellos y desactiva las actualizaciones de inventario de piezas. Asegúrate de que el número del concesionario tenga 10 caracteres. Si estás guardando el número del concesionario sin el '0' inicial, añade el '0' inicial antes de llamar a la API. El error también se devuelve si el concesionario no es un concesionario BRP activo. |
Devuelto si el VIN es demasiado largo. {
"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"
}
]
}
}
} | Su DMS puede permitir más caracteres para el VIN de los que permite la API. Si el VIN ingresado tiene más de 17 caracteres, se devuelve el mensaje de error a la izquierda. Para evitar el error, si el VIN ingresado tiene más de 17 caracteres, no lo incluyas o limita la longitud a 17 caracteres. |
Devuelto si falta una propiedad. {
"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": ""
}
]
}
}
} | Agrega la propiedad que falta al payload. |
Devuelto si una fecha tiene un formato inválido. {
"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"
}
]
}
}
} | Cambia el formato de la cadena de fecha para que coincida con el formato de carga. |
Devuelto si un número tiene un formato inválido.
{
"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"
}
]
}
}
}
| Todos los montos en la carga tienen un formato de ±9999999.99. Cambia el formato de la propiedad para que coincida con la carga útil. |
Devuelto cuando falta algo en la carga útil. {
"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"
}
]
}
}
} | Asegúrate de incluir todos los campos requeridos. |
401 No autorizado
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 Solicitud de entidad demasiado grande
El código de estado 413 Solicitud de entidad demasiado grande se devuelve cuando la carga útil excede el límite de APIGee de 10 MB.
Tenga en cuenta que el código de estado 413 puede recibirse incluso si la carga útil que está enviando tiene menos de 10 MB. La carga útil se procesa antes de llamar a una API interna de BRP y puede ser esta API interna la que está devolviendo el código de estado 413.
Para corregir el problema, divida las transacciones en muchas llamadas.