Para desarrolladores

Facturación electrónica por API, sin construir la firma ni el XML

Tu sistema manda el documento en JSON y sigue trabajando. KudeExpress genera el CDC, arma el XML, lo firma, lo envía a la DNIT, reintenta si hace falta y te avisa el resultado.

Cómo funciona

Una llamada, y la DNIT corre por nuestra cuenta

  1. Enviás el documento a POST /api/v1/documents.
  2. Recibís un 202 de inmediato: tu venta no espera a la DNIT.
  3. En segundo plano se firma y se envía, con reintentos automáticos si la DNIT no responde.
  4. Un webhook firmado te avisa si se aprobó, se rechazó o quedó en contingencia.
  5. Descargás el KUDE en PDF y el XML firmado cuando los necesites.
POST /api/v1/documents
# Emitir una factura electrónica
curl -X POST https://kudeexpress.com/api/v1/documents \
  -H "Authorization: Bearer kude_live_••••" \
  -H "Content-Type: application/json" \
  -d @factura.json

# Respuesta inmediata: se procesa en segundo plano
202 Accepted
{ "data": { "id": 42, "status": "draft", … } }

# El resultado llega por webhook firmado
{ "event": "invoice.approved" }

Referencia

Qué podés hacer por API

Todas las rutas empiezan con /api/v1. La referencia completa, con cada campo y cada respuesta, está en el panel para los clientes con acceso.

Documentos electrónicos
Documentos electrónicosPara qué sirve
GET /documentsListar documentos, con filtros por tipo, estado, CDC y fechas.
POST /documentsEmitir cualquiera de los 7 documentos. Responde 202 y se procesa en segundo plano.
GET /documents/{cdc}Consultar el estado de un documento.
GET /documents/{cdc}/eventsHistorial del documento, con cada respuesta de la DNIT.
POST /documents/{cdc}/cancelAnular ante la DNIT un documento aprobado (hasta 48 horas).
POST /documents/{cdc}/retransmitRetransmitir un rechazado con el mismo CDC, corrigiendo receptor o ítems.
GET /documents/{cdc}/pdf · /xmlDescargar el KUDE en PDF o el XML firmado.
Gestión
GestiónPara qué sirve
GET /stock · /stock/movementsExistencias por depósito y kardex.
POST /stock/adjustmentsAjustar el stock a una cantidad.
GET · POST /suppliersListar y crear proveedores, con el RUC autocompletado.
GET · POST /purchasesCompras: crear, recibir la mercadería y registrar pagos.
GET · POST /expensesGastos: crear, registrar, pagar y anular.
GET /receivablesCuentas a cobrar, con filtros por estado y cliente.
GET /clients/{id}/statementEstado de cuenta de un cliente.
POST /collectionsRegistrar un recibo de dinero que salda una o varias facturas.
Configuración
ConfiguraciónPara qué sirve
GET · POST · DELETE /api-keysCrear y revocar las API Keys de la empresa.
GET · POST · PUT · DELETE /webhooksSuscribirte a los eventos de tus documentos.
GET /geography/…Departamentos, distritos y ciudades de la DNIT.

Abrir la referencia completa (requiere iniciar sesión)

Detalles

Lo que tenés que saber para integrar

Autenticación

API Keys por empresa

Mandás la clave como Authorization: Bearer kude_live_… o en X-Api-Key. Cada clave tiene su alcance y su vencimiento, y se revoca cuando quieras.

Webhooks

Eventos firmados

Cada aviso lleva la firma HMAC-SHA256 del cuerpo en X-Kude-Signature y el evento en X-Kude-Event. Si tu servidor no responde, se intenta hasta tres veces, con esperas crecientes.

Permisos

Errores que explican

Cada endpoint exige un permiso. Un 403 te dice cuál falta, y un 422 te dice qué campo corregir.

Ambientes

Pruebas y producción

Cada empresa trabaja primero contra el ambiente de pruebas de la DNIT y pasa a producción cuando todo sale aprobado.

Retransmisión

El mismo CDC

Un documento rechazado se retransmite con su CDC. Podés corregir el receptor o los ítems en la misma llamada.

Límites

Hasta 120 llamadas por minuto

Y hasta 60 emisiones por minuto. Si tu operación necesita más, escribinos.