No se pudo leer la petición
400bad_request
Qué significa
La API recibió un cuerpo que dice ser JSON y no pudo leerlo. No llegó a validar ningún campo.
No reintentes la misma petición: fallará igual hasta que cambie lo que se indica abajo.
Por qué ocurre
- El JSON está mal formado: falta una coma, sobra una al final, hay comillas simples o una llave sin cerrar.
- El cuerpo se cortó en el camino, o se envió vacío con
Content-Type: application/json. - En una terminal, las comillas del JSON chocaron con las del intérprete de comandos.
- El cuerpo no está en UTF-8. Pasa al pegar un
curlcon tildes o ñ en una terminal de Windows, que entrega el texto en la codificación del sistema. Eldetaillo dice, y no se emite nada: el comprobante saldría con otro carácter en el lugar de cada letra.
Cómo resolverlo
- Genera el cuerpo con el serializador de tu lenguaje (
JSON.stringify,json_encode,json.dumps) en lugar de armarlo a mano. - Con
curl, envuelve el JSON en comillas simples (-d '{…}') o léelo de un archivo (-d @factura.json). - Si el
detailhabla de UTF-8, guarda el JSON en un archivo con esa codificación y envíalo con--data-binary @factura.json: el archivo viaja byte por byte, sin pasar por la terminal. - Pega el cuerpo en un validador de JSON: el error está donde deja de leerse.
Cómo llega
La respuesta es application/problem+json con estado 400, 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/bad_request", "title": "No se pudo leer la petición", "status": 400, "detail": "El cuerpo de la petición no es JSON válido: revisa comas, comillas y llaves"}Toda respuesta lleva además la cabecera Request-Id (req_…): cítala al pedir soporte.
Sigue con: Errores · todos los errores