Saltar al contenido

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.

Solicitar demoActualizado el 03/11/2026

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

Recursos, métodos y rutas de la API v1 de FacturAda
RecursoMétodos y rutasNotas
FacturasGET POST /invoices · POST /invoices/{id}/paymentsAlta con numeración del servidor, cobros, PDF, Facturae, envío y recordatorio
RectificativasGET /rectified-invoicesSolo lectura
Facturas recurrentesGET POST /recurring-invoices · GET PUT DELETE /recurring-invoices/{id}Plantillas
PresupuestosGET POST /quotes · PUT DELETE /quotes/{id}Con PDF y envío
AlbaranesGET POST /work-receipts · PUT DELETE /work-receipts/{id}Con PDF y envío
ClientesGET POST /clients · GET PUT DELETE /clients/{id}Ficha fiscal
ProductosGET POST /products · PUT DELETE /products/{id}Catálogo
CategoríasGET POST /categories · PUT DELETE /categories/{id}De productos y gastos
GastosGET /incoming-invoices · GET /incoming-invoices/{id}Solo lectura, con paginación
Formas de pagoGET /payment-typesSolo lectura
Tipos de factura (series)GET /invoice-typesSolo lectura
EspecificaciónGET /openapi.jsonOpenAPI pública; Swagger UI en /api/docs
Base: 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

Alta de una factura con retención del 15 %
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.

Listar facturas pendientes desde una fecha
curl "https://<tu-instalacion>/api/v1/invoices?status=pending&minDate=2026-10-01" \
  -H "x-api-key: fact_..."

Reglas de la API

Reglas y límites de la API de FacturAda
ReglaDetalle
AutenticaciónCabecera x-api-key; la clave se guarda cifrada (scrypt) y va ligada a una sociedad
Facturas inmutablesNo hay PUT ni DELETE de facturas: se corrigen con rectificativas
NumeraciónLa asigna el servidor, correlativa por serie y año
FechasLa fecha no puede ser anterior a la última factura de la serie
Filtros de facturasstatus, clients, number, minDate, maxDate, sent, accounted, rectifiedInvoice
Límite de envíos60 por hora y clave en los 4 endpoints de envío y recordatorio
Envío por emailHasta 20 destinatarios y 20 en copia; idioma es, ca o en
Errores401 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.