Facturación electrónica ante la DIAN
Desde tu sistema: la API REST
La API responde enseguida con el documento en pending; la DIAN lo valida después.
curl -X POST "https://api.foliios.com/v1/companies/$FOLIIOS_COMPANY_ID/documents" \
-H "Authorization: Bearer $FOLIIOS_API_KEY" \
-H "Idempotency-Key: venta-0001" \
-d '{"resolution_id": "18760000000000", "type": "invoice", …}'
HTTP/2 202
{"id": "01K6NDYM2R4C5H3TQZ8X1V7B9A", "object": "document", "environment": "sandbox",
"number": "SBX1", "status": "pending", "cufe": null, …}
curl "https://api.foliios.com/v1/companies/$FOLIIOS_COMPANY_ID/documents/01K6NDYM2R4C5H3TQZ8X1V7B9A" \
-H "Authorization: Bearer $FOLIIOS_API_KEY"
HTTP/2 200
{"id": "01K6NDYM2R4C5H3TQZ8X1V7B9A", "number": "SBX1",
"status": "accepted", "cufe": "8bb6c1e04f7a3d92…", …}
Inicio rápido: una factura aceptada en el sandbox en cinco minutos, con curl y con Python.
Desde un agente: el servidor MCP
Las mismas operaciones como herramientas para un agente de IA, con confirmación para lo que tiene efecto fiscal y borradores que una persona aprueba. Con Claude Code, la conexión es una línea:
claude mcp add --transport http foliios https://api.foliios.com/mcp \ --header "Authorization: Bearer $FOLIIOS_API_KEY"Herramientas del MCP, con sus parámetros.
Lo que ya resuelve
- Sandbox con escenarios
Un ambiente simulado, sin efecto fiscal y sin correos reales. Sus escenarios provocan rechazos a propósito.
- Idempotencia
Cada emisión lleva una cabecera Idempotency-Key: puedes reintentar sin duplicar la venta.
- Webhooks firmados
Un aviso a tu sistema cuando un documento queda aceptado, rechazado o en contingencia, o cuando termina su entrega.
- Contingencia
Cuando la DIAN no responde (contingencia tipo 04), foliios atiende los reintentos y la contingencia por ti.
- Borradores con aprobación
Un agente prepara el documento y una persona lo aprueba o lo descarta en el portal. No se toma número hasta la aprobación.
- Verificación de la integración
Una consulta te dice qué probaste y qué falta: factura, notas, contingencia y webhook. Con complete: true terminaste.
Para agentes de código
Si quieres que un agente (Claude Code, Cursor, Codex u otro) integre tu proyecto, empieza por aquí.
- Manual del agente
La integración en sandbox fase por fase, hasta que la verificación diga complete: true.
- Plantilla de instrucciones
Las reglas que copias en tu proyecto para que el agente trabaje con foliios.
- llms.txt
El índice de todas las páginas del sitio; cada una tiene su versión en Markdown.
- Recetas
Código listo para Python, Node y TypeScript, y Google Sheets con Apps Script.
Precios
Pagas por los documentos que la DIAN acepta en producción, con bolsas prepagadas que compras desde la sección de facturación del portal. El sandbox y la habilitación no consumen saldo. Las bolsas y sus precios vigentes están en precios.
Empieza
Crea tu cuenta, elige el ambiente Sandbox y emite tu primera factura simulada siguiendo el inicio rápido.