# API Pública de FacturaDirecta

> Conecta tu software con FacturaDirecta mediante la API REST pública. Accede a contactos, productos, facturas, presupuestos, albaranes, gastos, bancos, webhooks y más.


La **API pública de FacturaDirecta** te permite integrar tu software con el
sistema de facturación. Está disponible en todos los planes, incluido
**Gratis**. Cada plan aplica su propio límite de peticiones por minuto: 30 en
Gratis, 60 en Bronce, 120 en Plata, 300 en Oro y 600 en Diamante. El detalle y
las cabeceras que devuelve la API están en
[Autenticación](https://www.facturadirecta.com/desarrolladores/api/guias/authentication/#límite-de-peticiones).

Algunos recursos dependen además del plan contratado: los
[pedidos](https://www.facturadirecta.com/desarrolladores/api/referencia/client-orders/), las [órdenes de compra](https://www.facturadirecta.com/desarrolladores/api/referencia/purchase-orders/) y
el control de stock de los [productos](https://www.facturadirecta.com/desarrolladores/api/referencia/products/) forman parte del
**Módulo Inventario**.

Puedes automatizar procesos como crear facturas desde un CRM, sincronizar
contactos con un ERP, conectar una tienda online o generar informes
personalizados con datos de facturación y contabilidad.

La API es REST, usa JSON y se documenta mediante OpenAPI.

> **Recomendación**: antes de empezar a desarrollar, crea un [entorno de pruebas
> (sandbox)](https://help.facturadirecta.com/es/articles/15157082-entorno-de-pruebas-sandbox)
> para hacer tus primeras llamadas sin afectar a los datos reales de tu empresa.

## URL base y referencia OpenAPI

Todas las URLs de la API pública en producción tienen este prefijo:

```text
https://app.facturadirecta.com/api
```

Recursos técnicos:

- **Swagger UI / referencia navegable**: `https://www.facturadirecta.com/api`
- **OpenAPI crudo**: `https://app.facturadirecta.com/openapi.json`

Puedes importar el OpenAPI en herramientas como Postman o Insomnia, o generar
clientes automáticamente con herramientas tipo OpenAPI Generator.

## Autenticación

La API admite dos métodos de autenticación:

### API key

Recomendado para integraciones de una empresa concreta: scripts internos,
conectores, plugins o automatizaciones.

Crea la clave desde FacturaDirecta y envíala en la cabecera:

```http
facturadirecta-api-key: TU_CLAVE_API
```

Ventajas:

- El acceso se limita a los permisos asignados a la clave.
- Cada clave pertenece a la empresa donde se creó.
- No depende de una sesión de usuario.

Consulta [API keys](https://www.facturadirecta.com/desarrolladores/api/referencia/api-keys/) para la referencia técnica y
[API keys en Ajustes](https://help.facturadirecta.com/es/articles/15157077-api-keys)
para crear la clave desde la interfaz.

### OAuth2

Recomendado para aplicaciones que conectan con empresas de terceros o necesitan
que un usuario autorice scopes concretos.

Usa el flujo Authorization Code con PKCE y envía el token en la cabecera:

```http
Authorization: Bearer access_token
```

Consulta [Autenticación](https://www.facturadirecta.com/desarrolladores/api/guias/authentication/) para el detalle del flujo OAuth2,
scopes y endpoints de autorización.

## Abrir un resultado en FacturaDirecta

Las respuestas de documentos, contactos, productos y bancos incluyen el campo
opcional `webUrl`. Es la URL de la ficha del elemento en la aplicación web.
Puedes mostrarla como enlace para que el usuario pase de tu integración al
elemento correspondiente sin construir rutas internas.

`webUrl` requiere una sesión de FacturaDirecta con acceso a la empresa y no es
un endpoint de la API. No envíes `$ACCESS_TOKEN` a esa URL. Los recursos sin
ficha propia, como métodos de pago, extractos, campos personalizados, webhooks,
claves de API, uploads e inbox, no incluyen este campo.

## Recursos disponibles

La API ofrece acceso, entre otros, a estos recursos:

| Recurso | Para qué sirve |
|---|---|
| [Perfil](https://www.facturadirecta.com/desarrolladores/api/referencia/profile/) | Información del usuario autenticado y empresas accesibles. |
| [Búsqueda](https://www.facturadirecta.com/desarrolladores/api/referencia/search/) | Encontrar contactos, documentos y productos a partir de un texto, en todos los tipos a la vez. |
| [Contactos](https://www.facturadirecta.com/desarrolladores/api/referencia/contacts/) | Clientes, proveedores, empleados y otros contactos. |
| [Productos](https://www.facturadirecta.com/desarrolladores/api/referencia/products/) | Catálogo de productos y servicios. |
| [Facturas de venta](https://www.facturadirecta.com/desarrolladores/api/referencia/invoices/) | Crear, consultar, actualizar, enviar, anular o descargar facturas. |
| [Facturas recurrentes](https://www.facturadirecta.com/desarrolladores/api/referencia/recurring/) | Automatizaciones de facturación recurrente. |
| [Presupuestos](https://www.facturadirecta.com/desarrolladores/api/referencia/estimates/) | Presupuestos y proformas. |
| [Albaranes](https://www.facturadirecta.com/desarrolladores/api/referencia/delivery-notes/) | Albaranes de entrega. |
| [Pedidos](https://www.facturadirecta.com/desarrolladores/api/referencia/client-orders/) | Encargos de clientes, con estado por línea. Requiere el Módulo Inventario. |
| [Órdenes de compra](https://www.facturadirecta.com/desarrolladores/api/referencia/purchase-orders/) | Encargos a proveedores, con estado por línea. Requiere el Módulo Inventario. |
| [Facturas de compra y tickets](https://www.facturadirecta.com/desarrolladores/api/referencia/bills/) | Gastos, compras y tickets. |
| [Nóminas](https://www.facturadirecta.com/desarrolladores/api/referencia/payrolls/) | Nóminas de empleados. |
| [Bancos](https://www.facturadirecta.com/desarrolladores/api/referencia/banks/) | Cuentas bancarias y tesorería. |
| [Extractos bancarios](https://www.facturadirecta.com/desarrolladores/api/referencia/statements/) | Extractos y conciliación. |
| [Métodos de pago](https://www.facturadirecta.com/desarrolladores/api/referencia/payment-methods/) | Métodos de cobro y pago. |
| [Diario contable](https://help.facturadirecta.com/es/articles/15084462-diario-contable) | Asientos y movimientos contables. |
| [Declaraciones de impuestos](https://www.facturadirecta.com/desarrolladores/api/referencia/tax-declarations/) | Modelos de impuestos generados (303, 347, 390…): casillas, PDF y fichero de presentación. Solo lectura. |
| [Consulta analítica](https://www.facturadirecta.com/desarrolladores/api/referencia/query/) | Totales, rankings y comparativas de facturas, compras, contactos y diario en una sola llamada, para informes propios y agentes de IA. Solo lectura. |
| [Configuración](https://www.facturadirecta.com/desarrolladores/api/referencia/settings/) | Series, impuestos, plantillas y configuración fiscal. |
| [Bandeja de entrada](https://www.facturadirecta.com/desarrolladores/api/referencia/inbox/) | Procesamiento de documentos recibidos. |
| [Uploads](https://www.facturadirecta.com/desarrolladores/api/referencia/uploads/) | Subida de archivos. |
| [Webhooks](https://help.facturadirecta.com/es/articles/13905261-webhooks) | Endpoints y eventos para recibir cambios en tiempo real. |

> **API pública y Zapier no tienen el mismo alcance**: Zapier expone solo
> algunas acciones de FacturaDirecta. Aunque la API pública incluye
> **Albaranes**, Zapier no permite crear albaranes. Usa la API pública
> directamente si necesitas automatizar ese recurso.

## Webhooks

Los **webhooks** permiten recibir notificaciones en tiempo real cuando ocurre un
cambio relevante en tu empresa: una factura creada, un contacto modificado, un
gasto borrado, etc.

En lugar de consultar la API periódicamente, configuras una URL HTTPS y
FacturaDirecta envía un `POST` a tu servidor cuando se produce un evento al que
estás suscrito.

Los webhooks están disponibles en todos los planes, incluido **Gratis**.

Consulta:

- [Webhooks](https://help.facturadirecta.com/es/articles/13905261-webhooks) — payload, catálogo de eventos, firma y referencia
  técnica de endpoints/eventos.
- [Configurar webhooks](https://help.facturadirecta.com/es/articles/15097369-configurar-webhooks)
  — cómo crear endpoints desde Ajustes.

## Primeros pasos recomendados

1. Crea o selecciona un sandbox.
2. Crea una API key con los permisos mínimos necesarios.
3. Haz una primera llamada de lectura, por ejemplo listar facturas o contactos.
4. Prueba una operación de escritura en sandbox.
5. Si tu integración necesita reaccionar a cambios, configura webhooks.

Consulta [Inicio rápido con la API](https://www.facturadirecta.com/desarrolladores/api/guias/quickstart/) para una primera conexión
paso a paso.


Fuente: https://github.com/facturadirecta/api-docs/blob/a9c89bac0578614ce4cdbb89e099e60b7e71f80e/guides/overview.md
