API de Factuarea
La API REST de Factuarea para automatizar tu SaaS de facturación multi-tenant para empresas españolas.
La API REST de Factuarea expone recursos de facturación (clientes, productos,
facturas, presupuestos, facturas proforma, albaranes, facturas recurrentes,
facturas de compra) sobre HTTPS con autenticación por API key. Toda la
superficie pública vive en
https://api.factuarea.com/v1 y devuelve
JSON. Cada recurso se identifica por un id opaco (un string UUID v7).
Inicio rápido
Solicita acceso beta
La API está actualmente en beta privada. Escribe a info@factuarea.com siguiendo las instrucciones de Solicitar acceso beta. Si tu empresa ya está en la lista de acceso, salta al siguiente paso.
Crea tu primera API key
Abre
Dashboard → Developers → API Keys
y crea una clave con los scopes que necesites (por ejemplo
invoices:read,clients:read para empezar). Copia el secreto una sola
vez — no podrás volver a verlo.
Elige el entorno Test para obtener una clave fact_test_ que opera
sobre un sandbox aislado sin efectos en el mundo real. Crea contra él
primero y luego crea una clave fact_live_ para pasar a producción. Consulta
Modo de prueba y sandbox.
Verifica tu clave
Antes que nada, confirma que la clave funciona. GET /v1/account
introspecciona la credencial — devuelve la empresa a la que pertenece, el
plan, y los scopes y el tier de límite de peticiones de la propia clave
(necesita account:read):
curl https://api.factuarea.com/v1/account \
-H "Authorization: Bearer fact_test_xxxxxxxxxxxxxxxxxxxxxxxx"✅ Deberías ver un 200 con una instantánea de account:
{
"data": {
"object": "account",
"company": {
"id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a01",
"name": "Acme Soluciones SL",
"tax_id": "B12345678"
},
"plan": { "slug": "empresario", "name": "Empresario" },
"api_key": {
"id": "01931b3e-7c4a-7f2e-9a8b-4d6e7f8a9b0c",
"name": "Sandbox integration",
"prefix": "fact_test_3pXnR2Vb",
"scopes": ["account:read", "clients:read", "invoices:read"],
"tier": "starter"
}
}
}Si obtienes 401 invalid_api_key, vuelve a comprobar el valor. El array
scopes te dice exactamente qué puede hacer esta clave — una llamada
posterior que falle con 403 insufficient_scope carece de alguno de ellos.
Haz tu primera petición de datos
Ahora lista un recurso real. GET /v1/clients devuelve un envoltorio estándar
con data (resultados), has_more y next_cursor
(paginación por cursor):
curl https://api.factuarea.com/v1/clients \
-H "Authorization: Bearer fact_test_xxxxxxxxxxxxxxxxxxxxxxxx"¿Listo para emitir tu primera factura de principio a fin? Sigue el
Inicio rápido. Si recibes un error, búscalo en
Errores por el code devuelto.
Configura webhooks (opcional)
Si tu integración necesita reaccionar a eventos (factura pagada, presupuesto aceptado, etc.), configura un webhook endpoint firmado con HMAC SHA256. Consulta Webhooks.
Qué cubre la API
Clientes y proveedores
CRUD completo, búsqueda por tax ID, validación VIES.
Catálogo
Productos con precios, stock, SKU y tipos impositivos.
Documentos de venta
Facturas, presupuestos, facturas proforma, albaranes, facturas recurrentes — con líneas, retenciones y recargo de equivalencia.
Acciones de documento
Enviar por email, marcar como pagada/aceptada, generar PDF, anular, crear factura rectificativa, convertir entre tipos.
Compras
Facturas de proveedor con subida de PDF, mark_paid, mark_received.
Series de documentos
Series de numeración legal por tipo de documento (de solo lectura vía API para garantizar la continuidad fiscal).
Facturación FACe (B2G)
Descarga del XML FacturaE 3.2.2 y envíos a FACe — envía, sigue el estado de tramitación y solicita anulaciones.
Servidor MCP para agentes de IA
Toda la API como 218 herramientas Model Context Protocol, con OAuth 2.1 y autenticación por API key — conecta Claude y otros agentes en segundos.
Diseño del contrato
La API sigue los patrones que esperarías de un proveedor moderno:
- Identificadores opacos — la clave
idlleva un string UUID v7 en lugar de un entero incremental. Consulta Paginación para la semántica del cursor. - Errores normalizados — cada error devuelve un envoltorio con
type,code,message,param,doc_urlyrequest_id. Consulta Errores. - Idempotency keys — soportadas en cada
POSTpara evitar duplicados en los reintentos. Consulta Idempotencia. - Límites de peticiones por tier — cuotas por minuto y mensuales, con
cabeceras
X-RateLimit-*en cada respuesta. Consulta Límites de peticiones. - Versionado por URL —
/v1/*. Los cambios incompatibles disparan/v2/*con una política de deprecación documentada. Consulta Versionado. - Webhooks con rotación de doble secreto — HMAC SHA256, reintento exponencial con hasta 8 intentos. Consulta Webhooks.
SDKs
Ofrecemos SDKs oficiales de TypeScript y PHP (@factuarea/sdk y
factuarea/factuarea-php) con reintentos, idempotencia, paginación por cursor,
errores tipados y verificación de webhooks integrados. Si tu lenguaje no está
cubierto, cualquier cliente HTTP estándar (curl, Postman, axios, requests, Guzzle)
funciona — la API es REST plano sobre JSON.
La API REST pública complementa el cliente web de Factuarea
(app.factuarea.com) — no lo reemplaza.
Las operaciones que la API no expone (gestión de planes, branding,
configuración fiscal global de la empresa) siguen viviendo en la app.