La API REST que Dolibarr debería traer de serie
32 dominios del core con los permisos nativos de Dolibarr, idempotencia real y operaciones masivas. Con servidor MCP para conectar agentes de IA.
|
32
dominios del core
|
697
operaciones
|
3.849
tests
|
V15–V23
PHP 7.0 a 8.3
|
El problema que resuelve
La API nativa de Dolibarr no es que se quede corta: es que cada rareza te cuesta horas. Estas son las que se repiten en cada integración.
| Lo que te encuentras |
Lo que te cuesta |
| Un POST devuelve un entero, otro el objeto |
Un parser distinto por endpoint, y ninguno reutilizable |
| El join de comerciales usa t.rowid = sc.fk_soc |
Se cuelan registros de terceros que ese usuario no debería ver |
| Llega un 401 donde tocaba un 403 |
Tu lógica de reintento insiste en algo que nunca va a funcionar |
| accountancy solo expone exportData |
La contabilidad se queda fuera de tu integración |
| No hay idempotencia en ninguna escritura |
Un timeout y un reintento te duplican el cobro |
EasyAPI no es una capa encima de la API nativa: es una reimplementación completa con un contrato declarativo uniforme.
NOVEDAD 2.1
Servidor MCP nativo para agentes de IA
Conecta Claude, Cursor o cualquier agente de IA a tu Dolibarr en un minuto: la URL del módulo y tu DOLAPIKEY como token Bearer.
En lugar de volcar cientos de herramientas al agente, expone tres meta-tools —search, describe e invoke— sobre las 697 operaciones, con esquemas y ejemplos listos para invocar. El agente encadena operaciones de varios pasos, escribe con idempotencia y recibe errores auto-corregibles: un 422 le indica el campo exacto que debe arreglar.
Hereda tus permisos y ACL nativos de Dolibarr, así que no puede ver ni tocar nada que el usuario no pudiera. Incluye pestaña de administración «MCP / IA» y guía de conexión dentro del propio módulo.
Documentación embebida
La especificación OpenAPI se genera sola desde los recursos y se sirve dentro del módulo, filtrada según los permisos del usuario que la consulta. Eliges visor: Scalar, Swagger UI o Redoc, los tres incluidos.
Los 32 dominios navegables, con selector de servidor y autenticación por DOLAPIKEY. Cada operación trae esquema y ejemplo listo para invocar.
Comparativa frente a la API nativa
| Dimensión |
API nativa de Dolibarr |
EasyAPI |
| Cobertura |
~25 clases con cobertura desigual; métodos comentados o inexistentes |
32 dominios del core completos + sub-recursos |
| Respuestas |
Heterogéneas: un POST devuelve un int, otro el objeto |
Envelope uniforme {success, data}, con meta.pagination en los listados · POST → 201 + objeto · DELETE → 204 |
| Errores |
Códigos y mensajes dispares, sin taxonomía ni request_id |
Catálogo completo (422, 409, 410, 412, 413, 415, 428, 429, 503…) con request_id y doc_url |
| Seguridad |
Derechos nativos, pero con bugs reales de ACL y códigos incorrectos |
Mismos derechos nativos, ACL por registro corregida y uniforme, sin fugas entre entidades |
| Idempotencia |
No existe |
Idempotency-Key con reserva atómica y replay en toda escritura |
| Validación |
400 con «campo ausente» |
422 declarativa con error.fields por regla |
| Consultas |
sqlfilters + limit/page |
Filtros JSON:API, orden, búsqueda, sparse fields, include, paginación offset y cursor |
| Bulk |
No existen |
207 Multi-Status en create, update y delete (100 por lote) |
| Resiliencia |
No existe |
Rate-limit, reintento de deadlocks, ETag / If-Match, modo mantenimiento, /health |
| Documentación |
Explorador Swagger básico |
OpenAPI completo con Scalar, Swagger UI y Redoc embebidos |
| Extensibilidad |
Hay que tocar o forkear el core |
Auto-discovery de recursos desde tu propio módulo |
| Agentes de IA |
No contemplado |
Servidor MCP nativo incluido |
Así se usa
Autenticación con tu DOLAPIKEY de Dolibarr. Cada respuesta llega con el mismo envelope, así que tu cliente se escribe una vez y vale para los 32 dominios.
CREAR UNA FACTURA, SIN DUPLICADOS AUNQUE REINTENTES
curl -X POST https://tu-dolibarr.com/custom/easyapi/api/invoices \
-H "DOLAPIKEY: tu_clave" \
-H "Idempotency-Key: pedido-4417" \
-H "Content-Type: application/json" \
-d '{"socid": 128, "lines": [{"fk_product": 55, "qty": 2}]}'
La ruta base es custom/easyapi/api en una instalación estándar. Si tienes el módulo en otra carpeta de módulos registrada en tu conf.php, sustituye custom por la tuya: EasyAPI no lleva rutas fijas, se adapta a donde lo instales.
201 CREATED
{
"success": true,
"data": {
"id": 902,
"ref": "FA2607-0043"
}
}
422 — TE DICE QUÉ ARREGLAR
{
"success": false,
"error": {
"type": "validation_error",
"code": 422,
"message": "Validation failed",
"fields": {
"socid": "does not exist"
},
"request_id": "req_a1b2",
"doc_url": "…#validation_error"
}
}
Los listados añaden un bloque meta.pagination con el modo (offset o cursor), el total y la página. Y toda respuesta, con éxito o con error, lleva la cabecera X-Request-Id: si algo falla, ese identificador nos permite rastrear tu petición concreta.
Qué incluye
Amplías la API sin tocar el core
Recursos auto-descubiertos con filtros JSON:API, orden, búsqueda, sparse fields, include y paginación por offset o cursor. Amplías la API desde tu propio módulo sin tocar el core.
Escrituras seguras y errores que se explican solos
Idempotencia por Idempotency-Key, validación 422 declarativa, errores estructurados con request_id, operaciones masivas 207 y ACL por registro.
Aguanta picos, cortes y reintentos
Rate-limit configurable, reintento automático de deadlocks, ETag e If-Match para concurrencia optimista, modo mantenimiento y endpoints /status y /health.
Documentación que no se desactualiza
OpenAPI completo con Scalar, Swagger UI y Redoc embebidos, agrupado por dominio y con ejemplos automáticos. Interfaz del módulo en 8 idiomas.
Para qué se usa
- Integrar Dolibarr con e-commerce, apps móviles o ERPs externos mediante REST moderna.
- Sincronización masiva de productos, terceros y pedidos en lotes de 100.
- Automatizaciones headless con garantía de ejecución exactamente una vez.
- Alimentar BI y cuadros de mando con filtros y paginación de verdad.
- Dar a un agente de IA acceso seguro y auditado a tu ERP.
- Construir tu propia API de dominio extendiendo recursos, sin forkear Dolibarr.
Puesta en marcha
1
Instala y activa EasyAPI, y ejecuta composer install en la carpeta del módulo.
2
Configura resiliencia y CORS en la pestaña «API»: rate-limit, reintentos, ETag y modo mantenimiento.
3
Autentícate con tu DOLAPIKEY y consume los 32 dominios con Idempotency-Key e If-Match.
4
Abre /docs para explorar la API, y la pestaña «MCP / IA» para conectar tu agente.
Requisitos
| Dolibarr |
V15 a V23 |
| PHP |
7.0 a 8.3 |
| Base de datos |
MySQL 5.7+ · MariaDB 10.2+ · PostgreSQL 10+ |
| Servidor web |
Apache con mod_rewrite o Nginx |
| Dependencias |
Composer para instalar las librerías del módulo |
Antes de comprar
¿Puedo adaptarlo a mi caso?
Sí. EasyAPI se distribuye bajo GNU GPL v3: recibes todo el código fuente y puedes leerlo, modificarlo y adaptarlo a tu instalación sin pedir permiso. Además el framework auto-descubre recursos, así que lo normal es que añadas tus propios endpoints desde tu módulo en vez de tocar el nuestro.
¿Cómo lo pruebo sin arriesgar mis datos?
Instálalo en una copia de tu Dolibarr y llama a GET /status: responde sin tocar un solo registro. A partir de ahí todas las lecturas (los 32 dominios con filtros y paginación) son inocuas. Las escrituras sí crean datos reales, así que pruébalas en esa copia; lo que garantiza Idempotency-Key es que un reintento por corte de red no te duplique el registro, no que la operación sea reversible.
¿Y si algo no encaja con mi instalación?
Escríbenos a
info@easysoft.es antes de comprar y lo miramos contigo: versión de Dolibarr, PHP, hosting y qué necesitas integrar. Preferimos decirte que no encaja a venderte algo que no te sirve.
¿Y si actualizo? ¿Se me romperá la integración?
No. EasyAPI es API v1 estable y cada respuesta lo declara en la cabecera X-EasyAPI-Version. Dentro de v1 solo entran cambios retrocompatibles: campos opcionales nuevos, endpoints nuevos, cabeceras nuevas. Un cambio que rompa contrato —renombrar un campo, cambiar un tipo— no se aplica a v1: saldría como v2, y tu integración seguiría apuntando a v1 mientras la migras cuando te venga bien.
¿Qué incluye la compra?
El módulo completo con su código fuente y 365 días de acceso a actualizaciones y descargas desde Dolistore, más soporte por correo para instalación, integración y conexión de agentes de IA.
Mantenimiento activo
EasyAPI no es un módulo publicado y olvidado. La versión actual es la 2.13 y cada entrega pasa por la suite de 4.110 tests más QA en vivo. La última ronda convirtió la especificación en un contrato de verdad y eliminó el N+1 de los listados, sin romper compatibilidad:
- Contrato OpenAPI apto para generar código: listados tipados con su paginación real y required, nullable y enum honestos. Tu cliente genera sus tipos en vez de escribirlos a mano.
- Se acabó el N+1: el cliente del documento llega en la misma llamada en 13 recursos, igual que sus líneas y sus pagos, y ya se puede ordenar y filtrar por campos del tercero.
- Endpoints nuevos de dominio: KPIs de facturación, stock por almacén valorado, definiciones de extrafields para formularios dinámicos, movimientos de todas las cuentas bancarias y diccionarios de tickets.
- Servidor MCP conforme a la especificación 2025-11-25, con transporte STDIO y búsqueda multiidioma para agentes de IA.
El detalle versión a versión está en el ChangeLog, accesible desde la propia pestaña de administración del módulo.
|
24
módulos publicados en Dolistore
|
GPLv3
código fuente completo
|
8
idiomas en la interfaz
|
365
días de actualizaciones
|
¿Te encaja para lo que necesitas integrar?
Cuéntanos tu caso y te decimos si EasyAPI te sirve — y si no, te lo decimos igual. Respondemos sobre instalación, integración y conexión de agentes de IA.
info@easysoft.es www.easysoft.es