Ir al contenido

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 curl con tildes o ñ en una terminal de Windows, que entrega el texto en la codificación del sistema. El detail lo dice, y no se emite nada: el comprobante saldría con otro carácter en el lugar de cada letra.

Cómo resolverlo

  1. Genera el cuerpo con el serializador de tu lenguaje (JSON.stringify, json_encode, json.dumps) en lugar de armarlo a mano.
  2. Con curl, envuelve el JSON en comillas simples (-d '{…}') o léelo de un archivo (-d @factura.json).
  3. Si el detail habla 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.
  4. 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