Funcionalidades · API
API REST de facturación: integra FacturAda con tu ERP
FacturAda incluye una API REST con 12 recursos, especificación OpenAPI y autenticación con la cabecera x-api-key, ligada a una sociedad. Desde tu ERP o tu web creas facturas con VeriFactu, registras cobros, descargas PDF y Facturae y envías documentos por email.
Qué resuelve
Si vendes desde un ERP, una tienda o una aplicación propia, necesitas que la factura legal (numerada, con huella VeriFactu y QR) salga de forma automática. La API hace de motor de facturación: tu sistema manda los datos y FacturAda emite, registra y envía.
Cada cliente tiene su propia instalación, así que la API apunta a tu instancia y a tu base de datos, no a una plataforma compartida.
Los 12 recursos de la API
| Recurso | Métodos y rutas | Notas |
|---|---|---|
| Facturas | GET POST /invoices · POST /invoices/{id}/payments | Alta con numeración del servidor, cobros, PDF, Facturae, envío y recordatorio |
| Rectificativas | GET /rectified-invoices | Solo lectura |
| Facturas recurrentes | GET POST /recurring-invoices · GET PUT DELETE /recurring-invoices/{id} | Plantillas |
| Presupuestos | GET POST /quotes · PUT DELETE /quotes/{id} | Con PDF y envío |
| Albaranes | GET POST /work-receipts · PUT DELETE /work-receipts/{id} | Con PDF y envío |
| Clientes | GET POST /clients · GET PUT DELETE /clients/{id} | Ficha fiscal |
| Productos | GET POST /products · PUT DELETE /products/{id} | Catálogo |
| Categorías | GET POST /categories · PUT DELETE /categories/{id} | De productos y gastos |
| Gastos | GET /incoming-invoices · GET /incoming-invoices/{id} | Solo lectura, con paginación |
| Formas de pago | GET /payment-types | Solo lectura |
| Tipos de factura (series) | GET /invoice-types | Solo lectura |
| Especificación | GET /openapi.json | OpenAPI pública; Swagger UI en /api/docs |
https://<tu-instalacion>/api/v1. Descargas: GET /invoices/{id}/pdf, /invoices/{id}/e-invoice, /invoices/{id}/e-invoice/signed, /quotes/{id}/pdf y /work-receipts/{id}/pdf. Envíos: POST /invoices/{id}/send, /invoices/{id}/payment-reminder, /quotes/{id}/send y /work-receipts/{id}/send.Ejemplo: crear una factura
curl -X POST https://<tu-instalacion>/api/v1/invoices \
-H "x-api-key: fact_..." \
-H "Content-Type: application/json" \
-d '{
"invoiceTypeId": "6776bee93d35433d0474af58",
"clientId": "6858fd4f32164028541d8d95",
"date": "2026-11-03",
"expiryDate": "2026-12-03",
"retentionPercentage": 15,
"retentionType": "professional",
"products": [
{ "name": "Consultoría", "taxBase": 1500, "taxPercentage": 21, "quantity": 2, "unitType": "hours" }
]
}'La respuesta es un 201 con el number asignado por el servidor (PREFIJO-AAAA-N), status: "pending" y el qrUrl de VeriFactu. Los campos number, status, hash y qrUrl no se aceptan en la petición.
curl "https://<tu-instalacion>/api/v1/invoices?status=pending&minDate=2026-10-01" \
-H "x-api-key: fact_..."Reglas de la API
| Regla | Detalle |
|---|---|
| Autenticación | Cabecera x-api-key; la clave se guarda cifrada (scrypt) y va ligada a una sociedad |
| Facturas inmutables | No hay PUT ni DELETE de facturas: se corrigen con rectificativas |
| Numeración | La asigna el servidor, correlativa por serie y año |
| Fechas | La fecha no puede ser anterior a la última factura de la serie |
| Filtros de facturas | status, clients, number, minDate, maxDate, sent, accounted, rectifiedInvoice |
| Límite de envíos | 60 por hora y clave en los 4 endpoints de envío y recordatorio |
| Envío por email | Hasta 20 destinatarios y 20 en copia; idioma es, ca o en |
| Errores | 401 sin clave válida; 409 si un cobro supera lo pendiente o está duplicado |
Preguntas frecuentes
¿Dónde está la documentación de la API?
Cada instalación publica su especificación OpenAPI en /api/v1/openapi.json y la documentación interactiva Swagger en /api/docs.
¿Puedo modificar o borrar una factura por API?
No. Las facturas son inmutables por diseño, como exige el registro VeriFactu. Las correcciones se hacen con facturas rectificativas.
¿Cómo registro un cobro?
Con POST /invoices/{id}/payments. Se admiten cobros parciales; si el importe supera lo pendiente, la API responde 409.
¿Hay webhooks?
No. Para saber el estado de las facturas se consulta GET /invoices con sus filtros.
¿La API tiene coste aparte?
No se cobra como módulo aparte: está incluida en la instalación. El presupuesto se hace en la demo.
¿Una clave sirve para varias sociedades?
No. Cada clave va ligada a una sociedad. En un grupo se crea una clave por sociedad.
Revisamos tu integración
En la demo vemos qué datos manda tu ERP y cómo quedan en FacturAda.