La integración con la plataforma de facturación electrónica se realiza mediante llamadas REST utilizando JSON.
El flujo básico de integración es el siguiente:
Enviar un JSON con el siguente contenido:
Nota! El JSON puede contener hasta 50 documentos a la vez.
Opcionalmente enviar el archivo PDF
El área de datos Salud es opcional. Si se envía, el documento será marcado como factura de Salud.
Para mantener compatibilidad con integraciones anteriores, el bloque de impuestos puede enviarse como Tax o como Impuestos.
Los bloques Referencia, OrdenPedido y POS son opcionales y deben enviarse únicamente cuando sean necesarios para el documento.
Los datos RIPS no forman parte de esta versión del endpoint y serán incorporados posteriormente.
| Código | Tipo | Descripción | Uso en sistema |
|---|---|---|---|
| 01 | Impuesto | IVA | Se incluye en cálculo CUFE |
| 03 | Impuesto | ICA | Se incluye en cálculo CUFE |
| 04 | Impuesto | INC | Se incluye en cálculo CUFE |
| 05 | Retención | Retención IVA | No suma como impuesto, se maneja como retención |
| 06 | Retención | Retención en la fuente | No suma como impuesto, se maneja como retención |
| 07 | Retención | Retención ICA | No suma como impuesto, se maneja como retención |
| ZR | Especial | Exento (0%) | No genera valor de impuesto |
En el JSON de Tax, los impuestos deben enviarse agrupados por tipo y porcentaje.
Si no se envían, la API utiliza los siguientes valores predeterminados:
Los campos impuestoperc2, impuestovalor2 e impuestotipo2 permiten indicar una segunda imposición en el detalle y son opcionales.
Es decir:
Item 1 → IVA 19%
Item 2 → IVA 19%
Item 3 → IVA 5%
Resultado:
IVA 19% → base total + valor total
IVA 5% → base total + valor total
El valor del impuesto enviado debe coincidir exactamente con la suma de los impuestos calculados en los ítems.
Estos son los errores más frecuentes al integrar con facturación electrónica:
Se recomienda validar los datos antes de enviar la factura para evitar rechazos.