Ir al contenido

Errores

Conozca el objeto de error que devuelve la API de BoxHero y cómo gestionar los errores en su código.

Cuando una solicitud falla, la API de BoxHero responde con un código de estado de error HTTP y un único objeto de error JSON:

{
"id": "ex_8f5c0c8e0e0a4a3c9b3f4f2c4f6c8d2a",
"type": "/errors/not-found",
"title": "No item with id 12345 found in this team.",
"correlationID": "rq_01abf3c2b8e44a59be2a9c0f1e7d6a40",
"instance": "/items/12345"
}
CampoDescripción
idID único del error: ex_ seguido de 32 caracteres hexadecimales en minúsculas. Inclúyalo cuando contacte con soporte.
typeCódigo de error estable y legible por máquinas. Base la lógica de su código en este campo, no en title.
titleResumen legible para personas, en inglés. El texto puede cambiar.
correlationIDID de la solicitud: rq_ seguido de 32 caracteres hexadecimales en minúsculas, idéntico al encabezado de respuesta X-Correlation-Id. Lo usamos para encontrar su solicitud en nuestros registros.
instanceEl recurso que falló, por ejemplo /items/12345. La ruta no incluye el prefijo /v1.
codeMotivo más concreto del error, por ejemplo tx-modify-revision-mismatch. No siempre está presente. Base su lógica primero en type y luego en code para un manejo más detallado.
errorsDetalles por campo, presentes en las respuestas /errors/invalid-request (400). Cada entrada tiene un path que indica el campo no válido y un message legible para personas.

Algunos errores también incluyen el id del recurso afectado, como item_id u order_id, como campos adicionales de nivel superior.

EstadoSignificadoQué hacer
400La solicitud no es válida, o el modo del equipo no admite este endpointCorrija la solicitud; errors indica los campos no válidos. No la reintente sin cambios.
401Falta el token de API o no es válidoCompruebe el encabezado Authorization. Consulte Autenticación.
403BoxHero rechazó el cambio; por ejemplo, infringe una regla de inventario o la revision enviada está desactualizadaConsulte code para saber el motivo. Corrija la solicitud u obtenga los datos más recientes antes de reintentar.
404El recurso no existe en este equipo o se eliminóCompruebe el id. No la reintente sin cambios.
429Demasiadas solicitudesEspere y vuelva a intentarlo. Consulte Límite de solicitudes.

Los tipos de error que puede devolver cada endpoint se indican junto a él en la referencia de la API.

Para actualizar o eliminar una transacción, envíe la revision más reciente que haya visto. Si otra persona modificó la transacción mientras tanto, la API rechaza la solicitud con un 403 y code igual a tx-modify-revision-mismatch. Base su lógica en code: vuelva a obtener la transacción, revise el cambio y reintente con la nueva revision.

const res = await fetch(`https://rest.boxhero-app.com/v1/transactions/${id}`, {
method: "PUT",
headers: {
Authorization: `Bearer ${process.env.BOXHERO_API_TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ revision, memo: "Recounted" }),
});
if (res.status === 403) {
const error = await res.json();
if (error.code === "tx-modify-revision-mismatch") {
// Fetch the transaction again, check the change, then retry with its new revision.
}
}