Códigos de Error - API de Facturación Electrónica

Esta documentación detalla los códigos de error que pueden presentarse al utilizar la API de Facturación Electrónica. Para cada error se incluye el código, la descripción original en inglés, la causa en español y la solución recomendada.

Estructura de errores

Todos los errores de la API siguen una estructura común con un código, mensaje y detalles adicionales cuando corresponde.

Estructura de ejemplo de respuesta de error

{
  "success": false,
  "error": {
    "message": "Error mapping receiver",
    "details": [
      "[RequiredField] The field Receiver->NIT is required"
      ]
    "code": "BUSINESS_CCFMAPPER_ERROR"
  }
}

Errores Comunes

RequiredField

Descripción: The field %s is required

Causa: Un campo obligatorio no fue proporcionado en la solicitud.

Solución: Revisa la documentación para identificar los campos obligatorios y asegúrate de incluirlos en tu solicitud.

WithoutParams

Descripción: Parameters are expected but none were received

Causa: Se esperaban parámetros adicionales que no fueron proporcionados.

Solución: Verifica que estás enviando todos los parámetros requeridos por el endpoint.

ExceededParameters

Descripción: Error %s The required parameters have been exceeded, check the number of parameters sent, actual: %d

Causa: Se enviaron más parámetros de los necesarios.

Solución: Revisa la cantidad de parámetros enviados y elimina los que no son necesarios.

InvalidLength

Descripción: The field %s does not meet the required length, it must be %s characters, received %s

Causa: La longitud del campo no cumple con los requisitos especificados.

Solución: Ajusta la longitud del campo según los requisitos especificados en la documentación.

InvalidNumberRange

Descripción: The field %s does not meet the required length, it must be %s digits, received %s

Causa: El número no está dentro del rango permitido.

Solución: Verifica los límites del rango permitido y ajusta el valor.

InvalidFormat

Descripción: The field %s does not meet the required format, it must be %s, received %s

Causa: El formato del campo no es válido según las reglas establecidas.

Solución: Asegúrate de que el formato del campo cumple con las reglas especificadas en la documentación.

InvalidPattern

Descripción: The field %s does not meet the required pattern, it must be %s, received %s

Causa: El valor no coincide con el patrón requerido.

Solución: Revisa y ajusta el valor para que coincida con el patrón requerido.

InvalidField

Descripción: The field %s does not meet the defined business rules

Causa: El campo no cumple con las reglas de negocio definidas.

Solución: Revisa las reglas de negocio aplicables al campo y ajusta el valor en consecuencia.

InvalidDocumentNumber

Descripción: Invalid document number, must be: DUI with hyphen, NIT (with or without hyphen), or a document of 3-20 characters. Received: %s

Causa: El número de documento no cumple con el formato esperado.

Solución: El número de documento debe ser: DUI con guion, NIT (con o sin guion), o un documento de 3-20 caracteres.

NegativeDiscount

Descripción: The discount %s is negative

Causa: El descuento no puede ser un valor negativo.

Solución: Asegúrate de que el descuento sea un valor positivo o cero.

ExcessiveDiscount

Descripción: The discount %s is greater than the subtotal %s

Causa: El descuento es mayor que el subtotal, lo cual no es válido.

Solución: Asegúrate de que el descuento no supere el subtotal.

NegativeTaxedAmount

Descripción: The taxed sale %s is negative

Causa: La venta gravada no puede ser un valor negativo.

Solución: Asegúrate de que las ventas gravadas tengan valores positivos o cero.

ExcessiveTaxedAmount

Descripción: The taxed sale %f is greater than the price * quantity %f

Causa: La venta gravada excede el producto de precio por cantidad.

Solución: Verifica que la venta gravada no sea mayor que el precio multiplicado por la cantidad.

InvalidValue

Descripción: The value %d is not valid, it must be %s for field %s

Causa: El valor proporcionado no es válido para el campo especificado.

Solución: Revisa los valores permitidos para el campo y ajusta la entrada.

InvalidEmail

Descripción: The email %s is not valid. It must be a valid, existing email address and must be at least 3 characters long and no longer than 100

Causa: El correo electrónico no es válido o no cumple con los requisitos de longitud.

Solución: Proporciona una dirección de correo válida con una longitud entre 3 y 100 caracteres.

Errores de Identificación

InvalidVersion

Descripción: The version %s is not valid, it must be a number between 1 and 3

Causa: La versión debe ser un número entre 1 y 3.

Solución: Asegúrate de que el campo de versión contenga un valor válido (1, 2 o 3).

InvalidAmbientCode

Descripción: The ambient code %s is not valid, it must be: 00 -> (Testing) and 01 -> (Production)

Causa: El código de ambiente debe ser 00 (pruebas) o 01 (producción).

Solución: Utiliza "00" para el ambiente de pruebas o "01" para el ambiente de producción.

InvalidDateTime

Descripción: The date %s is not valid, it must be a date less than or equal to the current date

Causa: La fecha no es válida, debe ser una fecha igual o anterior a la fecha actual.

Solución: Verifica que la fecha proporcionada no sea futura.

Errores Temporales

InvalidEmissionTime

Descripción: The emission time %s is not valid, it must be a time less than or equal to the current time

Causa: La hora de emisión no es válida, debe ser una hora igual o anterior a la hora actual.

Solución: Verifica que la hora de emisión no sea futura.

InvalidTransmissionType

Descripción: The transmission type %s is not valid, it must be: 1 -> (Normal) and 2 -> (Contingency)

Causa: El tipo de transmisión debe ser 1 (normal) o 2 (contingencia).

Solución: Utiliza "1" para transmisión normal o "2" para contingencia.

Errores Monetarios

InvalidAmount

Descripción: The amount %s is not valid, it must be a number between 0 and 99999999999.99

Causa: El monto no es válido, debe estar entre 0 y 99,999,999,999.99.

Solución: Asegúrate de que el monto esté dentro del rango válido.

InvalidQuantity

Descripción: The quantity %s is not valid, it must be a number between 1 and 99999999999.99

Causa: La cantidad no es válida, debe estar entre 1 y 99,999,999,999.99.

Solución: Asegúrate de que la cantidad esté dentro del rango válido.

InvalidDiscount

Descripción: The discount %s is not valid, it must be a number between 0 and 100

Causa: El descuento no es válido, debe estar entre 0 y 100.

Solución: Asegúrate de que el descuento esté dentro del rango válido.

InvalidTax

Descripción: The tax %s is not valid, it must be a number between 0 and 99999999999.99

Causa: El impuesto no es válido, debe estar entre 0 y 99,999,999,999.99.

Solución: Asegúrate de que el impuesto esté dentro del rango válido.

InvalidCurrency

Descripción: The currency %s is not valid, it must be USD

Causa: La moneda debe ser USD.

Solución: Utiliza "USD" como valor para el campo de moneda.

InvalidItemType

Descripción: The item type %s is not valid, it must be: 1 -> (Product), 2 -> (Service), 3 -> (Both) and 4 -> (Tax)

Causa: El tipo de ítem debe ser 1 (producto), 2 (servicio), 3 (ambos) o 4 (impuesto).

Solución: Utiliza uno de los valores válidos para el tipo de ítem.

InvalidTaxType

Descripción: The tax type %s is not valid, it must be within the allowed tax catalog

Causa: El tipo de impuesto no está dentro del catálogo permitido.

Solución: Verifica el catálogo de tipos de impuesto permitidos y utiliza uno válido.

Errores de Ubicación

InvalidMunicipality

Descripción: Invalid municipality code %s for department %s. Municipality code must be a two-digit number that follows the official catalog pattern. For example, valid codes for this department include: %s. Please refer to the official municipality catalog.

Causa: El código de municipio no es válido para el departamento especificado.

Solución: Consulta el catálogo oficial de municipios y utiliza un código válido para el departamento correspondiente.

InvalidEstablishmentType

Descripción: The establishment type %s is not valid, it must be: 01 -> (Headquarters), 02 -> (Branch), 04 -> (Warehouse), 07 -> (Property or Yard) and 20 -> (Other)

Causa: El tipo de establecimiento no es válido.

Solución: Utiliza uno de los tipos de establecimiento válidos: 01 (Sede), 02 (Sucursal), 04 (Bodega), 07 (Propiedad o Patio) o 20 (Otro).

Errores del Documento Tributario Electrónico (DTE)

InvalidTotalAmount

Descripción: The total amounts do not match. Calculated total: %f, declared total: %f

Causa: Los montos totales no coinciden con el cálculo esperado.

Solución: Verifica que el total declarado coincida con el total calculado.

InvalidPaymentTotal

Descripción: The total payments (%f) do not match the operation amount (%f)

Causa: El total de pagos no coincide con el monto de la operación.

Solución: Asegúrate de que la suma de todos los pagos coincida con el monto total de la operación.

InvalidTotalIVA

Descripción: The total IVA %f does not match the sum of IVA taxes %f

Causa: El total de IVA no coincide con la suma de los impuestos IVA.

Solución: Verifica que el total de IVA declarado sea igual a la suma de todos los impuestos IVA calculados.

InvalidTotalTaxed

Descripción: The total taxed %f does not match the sum of taxed taxes %f

Causa: El total gravado no coincide con la suma esperada.

Solución: Asegúrate de que el total gravado declarado coincida con la suma de todos los elementos gravados.

InvalidTaxedAmount

Descripción: The taxed sale %f does not match the taxable base %f

Causa: La venta gravada no coincide con la base imponible.

Solución: Verifica que el monto de venta gravada sea igual a la base imponible.

InvalidTotalDiscount

Descripción: The total discounts %f do not match the sum of discounts %f

Causa: El total de descuentos no coincide con la suma de descuentos individuales.

Solución: Verifica que el total de descuentos declarado sea igual a la suma de todos los descuentos aplicados.

UnsupportedTaxCode

Descripción: Unsupported tax code %s, must be in the allowed tax catalog

Causa: El código de impuesto no está en el catálogo permitido.

Solución: Utiliza únicamente códigos de impuesto que estén en el catálogo permitido.