Skip to main content
La API usa el status HTTP como señal de éxito o error. Cuando una request falla, la respuesta incluye request_id para soporte y un objeto error estructurado.
{
  "request_id": "req_123",
  "error": {
    "type": "invalid_request_error",
    "code": "INVALID_REQUEST",
    "message": "Descripción del error",
    "retryable": false,
    "details": []
  }
}

Campos del error

CampoDescripción
typeFamilia del error, por ejemplo authentication_error, authorization_error, invalid_request_error, business_error o rate_limit_error.
codeCódigo estable para manejar el error programáticamente.
messageMensaje legible para logs, soporte o interfaces internas.
retryableIndica si tiene sentido reintentar la misma request sin cambiar el payload.
detailsLista opcional de detalles por campo, header o regla de negocio.
Cada ítem de error.details puede incluir:
CampoDescripción
fieldPath lógico del campo o header relacionado.
codeCódigo estable para ese detalle.
messageExplicación legible del problema.

Códigos comunes

CódigoCausaQué hacer
AUTHENTICATION_REQUIREDFalta la credencial bearer, es inválida o expiró.Enviá Authorization: Bearer <api_key> o regenerá la credencial.
FORBIDDENLa credencial no tiene permisos para esa operación.Revisá los scopes de la API key o del token delegado.
INVALID_REQUESTParámetros, body o headers inválidos.Corregí nombres, tipos y campos requeridos.
NOT_FOUNDEl recurso solicitado no existe o no pertenece a la organización autenticada.Verificá el ID y la organización de la credencial.
PRECONDITION_FAILEDLa operación no puede ejecutarse por una regla de negocio.Revisá details y corregí el estado o el payload.
IDEMPOTENCY_CONFLICTSe reutilizó una Idempotency-Key con otro payload.Reintentá con la misma key solo si el payload es idéntico; si cambió, usá una key nueva.
RATE_LIMITEDLa organización superó la cuota.Respetá el header Retry-After.

Manejar errores en TypeScript

const response = await fetch("https://api.lapyme.com.ar/api/v1/products?limit=10", {
  headers: {
    Authorization: `Bearer ${process.env.LAPYME_API_KEY}`,
  },
});

const data = await response.json();

if (!response.ok) {
  console.error("Request ID:", data.request_id);
  console.error("Código:", data.error.code);
  console.error("Mensaje:", data.error.message);
  throw new Error(data.error.message);
}

console.log("Productos:", data.data);

Cuándo reintentar

Reintentá la misma request cuando:
  1. Recibís un error 5xx.
  2. Recibís RATE_LIMITED y ya esperaste el tiempo indicado en Retry-After.
  3. La conexión falló antes de recibir una respuesta.
Para escrituras idempotentes, reintentá con la misma Idempotency-Key. Para errores 4xx de validación o permisos, corregí el problema antes de volver a enviar.