Saltar al contenido principal

10. Errores

Todos los errores usan la misma forma:

{
"error": {
"code": "PropertyNotFound",
"message": "'nombre' is not a property of 'o_customers'",
"details": [ { "code": "", "message": "..." } ]
}
}

details aparece solo cuando hay más de un mensaje —típicamente validaciones de negocio— y su code siempre viene vacío. No hay target ni innererror. El message está en inglés salvo los mensajes de reglas del ERP, que vienen como los configuró el administrador.

Códigos de estado​

StatusCuándoQué hacer
401Falta el header X-API-Key o Authorization.Mandar la credencial. No viene WWW-Authenticate.
403Credencial inválida o inactiva, token vencido, o IP no autorizada.Ver el code: InvalidApiKey, TokenExpired, IpNotAllowed, UnknownClient.
404El entity set no existe o no está habilitado para tu cliente; o la entidad con esa clave no existe.Confirmar el nombre contra el documento de servicio.
405La operación no está permitida para esa entidad.Leer el header Allow, que lista los métodos válidos.
406Se pidió un formato que no se produce.Usar application/json (o */*). Ver la nota de abajo.
400Error en la consulta: sintaxis de $filter, propiedad inexistente, clave mal formada, valor inválido.El message indica la posición o el nombre del problema.
501Prestación del protocolo no implementada.Ver No implementado.
500Error interno.Reportarlo con la URL y la hora: el detalle queda en el log del servidor.
peligro

Cuidado con el header Accept. La negociación es estricta: solo se aceptan */*, application/*, application/json, application/xml y text/xml. Cualquier otro valor da 406 — incluido Accept: text/plain, incluso pidiendo /$count, cuya respuesta justamente es text/plain. Si tu cliente HTTP pone un Accept por defecto raro, lo más seguro es mandar Accept: application/json o no mandar nada.

Dos aclaraciones más sobre errores:

  • Una propiedad inexistente en la ruta devuelve 400 PropertyNotFound, no 404: la entidad existe, lo que está mal es la consulta.
  • El header Preference-Applied nunca aparece en una respuesta de error.