Skip to content

Error: invalid_request

El cuerpo del request no pasó la validación. Puede ser un campo faltante, un tipo de datos incorrecto, un valor fuera del rango permitido, o una regla de negocio violada.

{
"error": {
"type": "invalid_request",
"code": "invalid_request",
"message": "El cuerpo del request tiene campos inválidos.",
"doc_url": "https://docs.emitia.co/errors/invalid_request",
"request_id": "req_01HX…",
"details": [
{
"field": "lines[0].unit_price",
"message": "Debe ser un string decimal con exactamente 2 decimales (ej: '100000.00')"
},
{
"field": "customer.identification.type",
"message": "Valor '99' no está en el catálogo de tipos de identificación DIAN"
}
]
}
}

HTTP status: 400 Bad Request

CampoError típico
unit_price, tax_valueNúmero en vez de string (100000"100000.00")
identification.typeCódigo fuera del catálogo DIAN
payment_means.codeCódigo fuera del catálogo UN/ECE 4461
currencyMoneda no soportada
type_operationCustomizationID no válido
issue_dateFormato distinto de YYYY-MM-DD

El array details contiene un objeto por cada campo inválido:

  • field: la ruta del campo en el body (notación punto, ej: lines[0].taxes[0].code)
  • message: descripción legible del error

Lee el details primero — es más preciso que el message general.

  1. Lee el array details y corrige cada campo indicado.
  2. Para los códigos DIAN, consulta la Guía de mapeo POS.
  3. Para importes, recuerda: siempre strings con 2 decimales ("100000.00", no 100000).