API DIAN v1.9.4
/
Ambiente:Habilitación sandbox
POST/v1/invoicesv1.9.4 compliant

Emitir factura electrónica de venta

Genera, firma con certificado X.509 y transmite una factura electrónica bajo el Anexo Técnico 1.9 de la DIAN. La respuesta confirma el encolado asíncrono con precálculo de CUFE e inicio del ciclo de validación previa.

Headers de la petición

HTTP/1.1
AuthorizationRequerido

Token Bearer obtenido en tu consola Gravamenex. Formato: Bearer gvx_live_9f83a...

Idempotency-KeyRequerido

UUIDv4 generado por tu cliente para evitar duplicidad de folios fiscales y transmisiones repetidas a la DIAN.

Content-TypeEstático

Debe especificarse como application/json; charset=utf-8

Parámetros del body (JSON)

Esquema UBL 2.1 Colombia
organization_nitstring
Requerido

NIT del emisor sin dígito de verificación ni guiones. Debe coincidir con la resolución de facturación activa en la DIAN.

prefixstring
Opcional

Prefijo asignado por la DIAN (ej. SETP o FE). Si se omite, Gravamenex usa el prefijo predeterminado del perfil.

customerobject
Requerido

Datos fiscales del adquiriente según catálogo tabla 6.1.1 de la DIAN.

identification (string): Cédula de ciudadanía o NIT.
dv (string): Dígito de verificación obligatorio si el tipo es NIT.
company_name (string): Razón social registrada en el RUT.
email (string): Dirección para envío automático del AttachedDocument.
tribute_type (string): Código de responsabilidad fiscal (01 IVA, ZZ no aplica).
itemsarray[object]
Requerido

Líneas de venta. Cada ítem computa bases gravables y tarifas exactas para el cálculo del CUFE.

sku (string): Identificador de producto o código UNSPSC.
quantity (number): Cantidad de unidades facturadas.
price (number): Valor unitario antes de impuestos en COP.
tax_rate (number): Porcentaje de impuesto (19.00, 5.00, 0.00).
paymentobject
Requerido

Esquema de pago: method "1" (contado) o method "2" (crédito con campo due_date ISO-8601).

Validaciones y reglas de rechazo DIAN

HTTP 422 Unprocessable Entity
FAD09
Diferencia en cálculo de totales vs sumatoria de líneas

La DIAN valida que el total de impuestos sea exactamente la suma de los valores de línea con tolerancia máxima de $1.00 COP. Usa el módulo de redondeo del SDK.

FAD14
Rango de numeración no coincide con resolución vigente

El folio transmitido no está dentro del rango autorizado por el formulario 1876 de la DIAN o la vigencia expiró.

FAD35
Dígito de verificación no corresponde al NIT

El módulo 11 del algoritmo DIAN rechaza el par NIT/DV. Gravamenex lo recalcula si envías auto_dv: true.

curl -X POST https://api.gravamenex.com/v1/invoices \
  -H "Authorization: Bearer dfi_live_9f83a8b27c..." \
  -H "Idempotency-Key: 550e8400-e29b-41d4-a716" \
  -H "Content-Type: application/json" \
  -d '{
    "organization_nit": "901234567",
    "prefix": "SETP",
    "customer": {
      "identification": "800123456",
      "dv": "1",
      "company_name": "Inversiones Bogotá S.A.S.",
      "email": "[email protected]",
      "tribute_type": "01"
    },
    "items": [
      {
        "sku": "SRV-CLOUD-01",
        "description": "Servicio de Hosting Dedicado",
        "quantity": 1,
        "price": 450000.00,
        "tax_rate": 19.00
      }
    ],
    "payment": { "method": "1" }
  }'
Latencia ~18ms
Respuesta simulada
{
  "status": "queued",
  "document_id": "doc_dian_9fa810c9-3a1b",
  "prefix": "SETP",
  "number": 990001428,
  "cufe_preview": "f81d4fae7dec11d0a76500a0c91e6bf6f4c6e...3a8b",
  "dian_validation": {
    "state": "in_process",
    "track_id": "9fa810c9-3a1b-4b2e-9cf4-9182374619ab",
    "estimated_seconds": 1.4
  },
  "webhook_registered": true,
  "created_at": "2026-03-30T14:32:01.812Z"
}
Artefactos oficiales de la transmisiónZIP validado
XML AttachedDocumentCon firma criptográfica XAdES
Representación gráfica PDFCon código bidimensional QR DIAN

Gravamenex calcula el CUFE concatenando NumFac + FecFac + ValFac + CodImp... y aplicando hash SHA-384 conforme al anexo técnico vigente.