Factuarea API

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

Diseño del contrato

La API sigue los patrones que esperarías de un proveedor moderno:

  • Identificadores opacos — la clave id lleva 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_url y request_id. Consulta Errores.
  • Idempotency keys — soportadas en cada POST para 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.

En esta página