La petición no es válida
422invalid_request
Qué significa
Uno o más campos de la petición no cumplen el contrato de la API. No se emitió nada y no se consumió ningún número: corrige y vuelve a enviar.
No reintentes la misma petición: fallará igual hasta que cambie lo que se indica abajo.
Por qué ocurre
- Falta un campo obligatorio, o un valor no tiene el formato esperado (una fecha, un RUC con dígito verificador incorrecto, un importe con tres decimales).
- Hay un campo que la API no conoce. No se ignora: se rechaza, para que un nombre mal escrito no cambie lo que se emite. Si está en camelCase, el mensaje propone su forma en snake_case.
- Un código no está en su catálogo de SUNAT (unidad de medida, tipo de documento, motivo de una nota).
- Dos campos se contradicen: una detracción en una boleta, una exportación a un cliente con RUC.
Cómo resolverlo
- Recorre
errors: trae una entrada por campo, con la ruta del campo (items.0.unit_price) y el motivo en español. - Con el SDK,
error.fieldses el mismo contenido como objeto:{ "customer.document_type": "…" }. - Muestra esos mensajes a quien llenó el formulario: están escritos para eso.
Cómo llega
La respuesta es application/problem+json con estado 422, y su campo type es la dirección de esta página.Lo de abajo es lo que respondió la API a una petición que provoca este error.
{ "type": "https://docs.emitay.com/errors/invalid_request", "title": "La petición no es válida", "status": 422, "detail": "Revisa 3 campos: customer.document_type, items.0.unit_price, items.0.unitPrice. El motivo de cada uno está en errors", "errors": [ { "field": "customer.document_type", "message": "Indica el tipo de documento (catálogo 06 de SUNAT: \"1\" DNI, \"4\" carné de extranjería, \"7\" pasaporte, \"0\" sin documento…): solo se deduce cuando el número es un RUC válido" }, { "field": "items.0.unit_price", "message": "Es obligatorio" }, { "field": "items.0.unitPrice", "message": "Campo no reconocido. Los campos de la API se escriben en snake_case: prueba con unit_price" } ]}Toda respuesta lleva además la cabecera Request-Id (req_…): cítala al pedir soporte.
Sigue con: Errores · Referencia de la API · todos los errores