djfacturador

API REST de Facturación Electrónica para Costa Rica

Sistema open source compatible con el Ministerio de Hacienda (XSD v4.4). Firma digital XAdES-EPES, envío automático y notificaciones por webhooks.

Funcionalidades

9 Tipos de Documento

Facturas, notas de crédito/débito, tiquetes, facturas de compra, exportación y recibos de pago electrónico.

Firma XAdES-EPES

Firma digital automática con certificados P12/PEM. Compatible con la política de firma del Ministerio de Hacienda.

Webhooks y Email

Notificaciones configurables por empresa. Envío automático de comprobantes por correo con PDF y XML adjuntos.

Creación Simplificada

Endpoint simplificado que auto-calcula totales, impuestos y resumen. Solo envíe producto, cantidad y precio.

Multi-empresa

Sistema reseller: cada usuario gestiona múltiples empresas con sucursales, terminales y credenciales independientes.

Procesamiento Asíncrono

Pipeline Celery: genera clave, construye XML, firma, envía a Hacienda. Reintentos automáticos con backoff exponencial.

Endpoints Principales

Documentos

POST/api/v44/simple-documents/Creación simplificada
POST/api/v44/documents/Creación completa
GET/api/v44/documents/Listar documentos
POST/api/v44/invoices/Crear factura (alias)
POST/api/v44/credit-notes/Crear nota crédito
POST/api/v44/tickets/Crear tiquete

Empresas

CRUD/api/v44/companies/Gestión empresas
CRUD.../branches/Sucursales
CRUD.../terminals/Terminales
CRUD.../receivers/Receptores
CRUD.../templates/Plantillas
CRUD.../webhooks/Webhooks

Catálogos

GET/api/v44/catalogs/cabys/Códigos CABYS
GET/api/v44/catalogs/economic-activities/Actividades económicas
GET/api/v44/catalogs/locations/Ubicaciones CR

Otros

POST/api/v44/auth/token/Autenticación
GET/api/v44/received-documents/Docs recibidos
GET/api/v44/companies/{id}/stats/Estadísticas
GET/health/Health check

Inicio Rápido

Desarrollo Local

# Clonar y configurar
git clone <repo> && cd djfacturador
cp .env.example .env  # editar credenciales

# Instalar dependencias
make venv-install

# Base de datos y servidor
make migrate
make runserver  # http://localhost:8420

Requiere Python 3.12+, PostgreSQL y Redis instalados localmente.

Docker Compose

# Configurar entorno Docker
cp .env.example .prod.env  # editar credenciales

# Construir y levantar
make docker-build
make docker-up

# Migraciones y superusuario
make docker-migrate
make docker-createsuperuser

# Ver logs
make docker-logs

Incluye PostgreSQL, Redis, Celery worker y beat. Solo requiere Docker.

Servicios Docker Compose

ServicioImagenPuertoDescripción
webdjfacturador8000API Django + DRF
dbpostgres:16-alpine5433Base de datos PostgreSQL
redisredis:7-alpine6379Broker Celery + cache
celery_workerdjfacturador-Procesamiento de documentos
celery_beatdjfacturador-Tareas periódicas (reintentos, polling)

Stack Tecnológico

Python 3.12 Django 5.1 DRF 3.15 PostgreSQL Celery Redis lxml signxml httpx drf-spectacular ReportLab PDF Docker