Errores
Todos los errores devuelven el mismo formato JSON. El campo error contiene el código de máquina; message describe el problema en español.
{
"error": "conflict",
"message": "El SKU 'ACE-OLI-500' ya existe."
} Códigos HTTP
| HTTP | error | Cuándo ocurre |
|---|---|---|
400 | bad_request | Body inválido, campo faltante, o un id referenciado no existe en el tenant |
401 | unauthorized | Cabeceras Emdimo-Api-Key o Emdimo-Api-Token ausentes, malformadas o revocadas |
403 | forbidden | La API key existe pero no tiene el scope necesario (catalogo.read o catalogo.write) |
404 | not_found | El recurso solicitado no existe o pertenece a otro tenant |
409 | conflict | Violación de unicidad: SKU duplicado, slug duplicado, código de unidad duplicado, o intento de borrar un recurso con dependencias activas |
Guía de resolución
400 bad_request
Verifica que todos los campos requeridos estén presentes y que los id referenciados existan en tu tenant. El campo message indica exactamente qué falló.
401 unauthorized
Asegúrate de enviar las dos cabeceras en todas las peticiones:
Emdimo-Api-Key: ek_live_xxxxxxxx Emdimo-Api-Token: et_live_xxxxxxxx
Si las credenciales son correctas pero sigues viendo 401, el token puede haber sido revocado — genera uno nuevo desde el backoffice.
403 forbidden
Tu API key tiene un scope insuficiente. Los endpoints de lectura (GET) requieren catalogo.read; los de escritura (POST, PATCH, PUT, DELETE) requieren catalogo.write. Actualiza los permisos de la key en Configuración → Cuenta → API Keys.
409 conflict
El valor de un campo único ya existe. Campos con restricción de unicidad:
products.sku— único por tenantcategories.slug— único entre hermanas (mismoparent_id)brands.slug— único por tenantunits.code— único por tenantgroups.slug— único por tenantattributes.key— único en la categoría