Promociones

  • Advanced HRM : Advanced human resources management

    This module brings a layer of ergonomics and features missing in the standard Dolibarr human resources management module, such as the facility to create absence requests from the employee schedule, the addition of automatic VAT rates, the integration of the km scale on the tranche 1 and of google maps.

    145,00 €  (348€)

Nuevos productos

  • M2 SkontoTextBuilder

    Calcule automáticamente los descuentos por pronto pago en Dolibarr. Configure condiciones específicas por cliente, genere textos de pago dinámicos y mantenga la coherencia entre las facturas PDF y Factur-X. Interfaz disponible en cinco idiomas.

    39,99 €
  • MBI Asso Plus

    MBI Asso Plus brings the whole life of a French non-profit into Dolibarr: the membership form signed and paid online, the area where members help themselves, general meetings from the convocation to the minutes, tax receipts for individuals and companies, valued volunteering, grants and the year's activity report.

    990,00 €

EasyAPI - API REST profesional para Dolibarr (32 dominios del core) + MCP

mp23914d20260607102352

API REST profesional para Dolibarr: 32 dominios del core con permisos nativos, idempotencia, resiliencia, docs Scalar y servidor MCP para agentes de IA.

290,00 €
Sin IVA

  • Autor EasySoft Tech SL
  • Versión del módulo 2.28.0
  • Fecha de lanzamiento 07/06/2026
  • Acceso a actualizaciones y descargas 1 año
  • Cómo contactar al soporte info@easysoft.es
  • Compatibilidad Dolibarr V15 - V24   -   PHP7.0 - 8.3
  • Última actualización 29/10/2026 22:30

Más información...

EasySoft Tech - Soluciones que impulsan tu empresa

La API REST que Dolibarr debería traer de serie

EasyAPI reimplementa los 32 dominios del core de Dolibarr (ventas, compras, stock, contabilidad, proyectos, RRHH, asociación…) sobre un contrato único: el mismo envelope de respuesta, la misma taxonomía de errores, idempotencia en toda escritura y un servidor MCP para agentes de IA. Tus permisos y tu ACL de Dolibarr siguen mandando.

32
dominios del core reimplementados
98
recursos EAPI auto-descubiertos
MCP
servidor nativo para agentes de IA
V15–V24
Dolibarr compatible · PHP 7.4–8.3

El problema que resuelve

La API que Dolibarr trae de serie resuelve el caso básico. Los problemas aparecen cuando la integración tiene que aguantar producción: reintentos por corte de red, permisos que de verdad se comprueban, varias sociedades en la misma instalación y documentos que tienen que totalizar bien. Son cinco fallos concretos, y ninguno avisa cuando ocurre.

Lo que te encuentras Lo que te cuesta
Un POST devuelve el id en crudo y el GET el objeto: cada dominio responde a su manera Una capa de normalización en tu código, distinta para cada recurso, que hay que mantener para siempre
Un reintento por timeout vuelve a crear el documento: no existe la cabecera Idempotency-Key Facturas y cobros duplicados que alguien tiene que anular y cuadrar a mano
Borrar un pago por API responde 500 en Dolibarr 20 o superior: la firma de Paiement::delete() cambió en la 20 El único camino documentado para deshacer un cobro no funciona justo cuando lo necesitas
En multiempresa, una DOLAPIKEY válida de otra entidad responde 503 «módulo no activo» La API solo habla con la entidad 1: cada sociedad acaba necesitando su propia instalación
Una línea de factura con recargo de equivalencia o IRPF se guarda con el impuesto a 0 El documento totaliza mal: cobras de menos o retienes de menos, y no salta ningún error
El error solo dice «socid field missing», sin el campo exacto ni un request_id Soporte a ciegas: hay que reproducir a mano lo que ya falló en producción

El mismo envelope, los mismos códigos y los mismos filtros en los 32 dominios. Se aprende una vez y sirve para todos: no hay una forma distinta de paginar, de filtrar ni de leer el error según el recurso que toques.

NOVEDAD 2.28

Lo que pide el agente de IA espera a que tú lo confirmes

Con la confirmación humana activa, una escritura que un agente pide por MCP no se ejecuta. Queda en Herramientas › Acciones pendientes (IA) con sus datos y una vista previa, y solo se hace cuando la persona que conectó al agente pulsa Confirmar.

  • Tú decides qué espera. Todas las escrituras, o solo los envíos de correo y los borrados. La opción viene apagada, así que actualizar no cambia nada.
  • El agente no puede confirmarse a sí mismo. La confirmación no existe para el MCP: se hace en Dolibarr o por la API REST (POST /mcp/pending/{token}/confirm), y solo la da quien pidió la acción.
  • Una sola vez y con caducidad. Cada acción se confirma una vez y caduca a los 10 minutos; el plazo se amplía hasta 24 horas.
  • Correos marcados. Un correo enviado tras confirmarlo lleva X-AI-Generated y X-AI-Reviewed.
EN LA 2.25

Cuánto te deben y desde cuándo, y el precio que el ERP pondría a cada cliente

La versión 2.25 trajo lecturas de negocio que antes había que montar sumando facturas a mano. El MCP, además, le dice al agente qué hace cada operación antes de que la llame.

  • Antigüedad de la deuda. GET /invoices/kpis/aging y GET /supplier-invoices/kpis/aging reparten lo pendiente en sin vencer, 1-30, 31-60, 61-90 y más de 90 días. Los tramos se cambian con ?buckets=0,15,45 y ?group=thirdparty da el desglose por tercero. Respetan la ACL de los listados: el comercial que solo ve a sus clientes solo ve la deuda de esos clientes.
  • Días de cobro y pago, y el pendiente real. /invoices/kpis añade dso y /supplier-invoices/kpis añade dpo, los días medios de cobro y de pago de los últimos 90 días. Los KPI outstanding y overdue suman lo que queda pendiente de verdad: descuentan cobros parciales, abonos y anticipos con el mismo cálculo que getRemainToPay() del core.
  • Precio efectivo por cliente. GET /products/{id}/price?socid=&qty= devuelve el precio que pondría el ERP en la línea para ese cliente y esa cantidad, con IVA, recargo e IRPF, los totales y de dónde sale: base, price_level, customer_price o quantity.
  • Errores sin SQL. El texto del motor de base de datos se queda en el syslog con el request_id, y la respuesta trae un código con el que se puede hacer algo: un duplicado es un 409 con reason: duplicate_record, y un bloqueo, un 503 con Retry-After: 2 para reintentar.
  • Cada operación declara su efecto. x-effect dice si lee (read), escribe en el ERP (internal), sale fuera (external) o no tiene vuelta atrás (irreversible), y el MCP lo traduce a readOnlyHint y destructiveHint. Los borrados por MCP se pueden prohibir en el setup (EASYAPI_MCP_ALLOW_DELETE) o usuario a usuario, y manda lo más restrictivo.
  • IBAN enmascarado. Por MCP, el IBAN, el número de cuenta y la referencia del mandato de las cuentas bancarias de terceros salen con solo los 4 últimos caracteres. Por REST no cambia nada.

Un vistazo al resultado

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.

Documentacion de EasyAPI con Scalar: navegacion por dominios, selector de servidor y autenticacion con DOLAPIKEY
Los 32 dominios navegables, con selector de servidor y autenticación por DOLAPIKEY. Cada operación trae su esquema y un ejemplo listo para lanzar.

Comparativa frente a la API nativa

Dimensión API nativa de Dolibarr EasyAPI
Cobertura Más de 50 clases API repartidas por los módulos del core, con cobertura desigual: en contabilidad, por ejemplo, el único endpoint es el volcado de datos 32 dominios del core completos, con sus sub-recursos: líneas, contactos, pagos, descuentos…
Forma de responder Heterogénea: un POST devuelve un entero crudo, otro el objeto Envelope uniforme {success, data, meta}: el POST responde 201 con el registro creado
Errores Códigos y mensajes dispares, sin taxonomía y sin nada que puedas citar en un ticket Taxonomía de 16 tipos, el campo exacto en error.fields, y request_id + doc_url en todos
Idempotencia No existe Reserva atómica por Idempotency-Key en toda escritura, incluidas las transiciones de estado
Operaciones masivas No existen 207 Multi-Status en alta, modificación y borrado, hasta 100 elementos por lote y con el resultado de cada uno
Consultas Filtros SQL en crudo para escribir a mano, sin ordenar ni elegir campos Filtros y orden en JSON, búsqueda, selección de campos, recursos embebidos, paginación por página y por cursor
Resiliencia No existe Límite de peticiones, reintento de bloqueos de base de datos, concurrencia optimista y modo mantenimiento
Seguridad Derechos nativos, con fallos reales: la consulta de comerciales devuelve 401 donde corresponde un 403 Los mismos derechos nativos, con la ACL por registro corregida y uniforme: 403 correcto y sin fugas entre terceros ni entre entidades
Documentación Explorador Swagger básico OpenAPI generado desde el código, con Scalar, Swagger UI y Redoc embebidos y filtrado por permisos
Extensibilidad Hay que tocar el core para añadir endpoints Auto-descubrimiento: creas una carpeta en tu propio módulo y tus endpoints aparecen documentados

Así se usa

Autenticación con la DOLAPIKEY de tu usuario en la cabecera. La misma clave vale como Authorization: Bearer si tu servidor se come las cabeceras propias. Factura con su línea en una sola llamada:

FACTURA CON LÍNEA, EN UNA PETICIÓN
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, "subprice": 49.90}]}'
201 · LA FACTURA NACE EN BORRADOR CON SU REF PROVISIONAL
{
  "success": true,
  "data": {
    "id": 902,
    "ref": "(PROV902)",
    "socid": 128,
    "statut": 0,
    "total_ttc": 119.76,
    "lines": [ { "id": 3311, "qty": 2, "subprice": 49.90 } ]
  }
}
422 · EL ERROR TE DICE EL CAMPO, NO SOLO QUE ALGO FALLÓ
{
  "success": false,
  "error": {
    "type": "validation_error",
    "code": 422,
    "message": "Validation failed",
    "fields": { "socid": "does not exist" },
    "request_id": "req_7f3a91c2",
    "doc_url": "https://easysoft.es/docs/api#validation_error"
  }
}

La ref definitiva la asigna la validación, que es como funciona Dolibarr: POST /invoices/902/validate reemplaza el (PROV902) por el número de la serie y recalcula los totales. Reenvía la misma petición con la misma Idempotency-Key y recibirás la factura de antes, no una segunda, con la cabecera Idempotent-Replayed: true avisando de que no se ha vuelto a ejecutar.

Qué incluye

Escrituras que no se duplican
Idempotency-Key con reserva atómica y replay anunciado en toda escritura, también en las transiciones de estado (validar, pagar, cerrar).
Errores que se explican solos
Una taxonomía única de 16 tipos, el detalle por campo y dos datos para el ticket: el identificador de la petición y el enlace al documento del error.
Consultas sin SQL a mano
Filtros, orden, búsqueda y selección de campos en JSON; paginación por página y por cursor para recorrer tablas grandes sin perder filas.
Tus permisos, tal cual
Los derechos nativos de Dolibarr más la ACL por registro corregida: un comercial no ve lo que no es suyo, y el 403 aparece donde toca.
Servidor MCP para agentes
Endpoint POST /mcp para Claude, Cursor o cualquier cliente MCP, autenticado con tu clave y acotable a los dominios que quieras.
Resiliencia configurable
Límite de peticiones, reintento de bloqueos de base de datos, concurrencia optimista con ETag, modo mantenimiento y un límite de tamaño de cuerpo. Todo por constantes.

Para qué se usa

  • Sincronizar una tienda online o un marketplace: pedidos, stock y precios contra tu base de datos, sin escribir SQL
  • Una app móvil para comerciales con sesión por cookie HttpOnly, donde la clave del ERP no llega nunca al navegador
  • Cuadros de mando y BI que leen los 32 dominios con filtros y paginación por cursor
  • Automatizaciones y agentes de IA conectados por MCP a tu propio ERP, con las reglas de escritura que tú decidas
  • Varias sociedades servidas desde una sola API, cada usuario en su entidad
  • Un ERP externo que necesita crear facturas y cobros sabiendo que un reintento no duplica nada

Puesta en marcha

1
Descomprime el ZIP en custom/easyapi y ejecuta composer install --no-dev --optimize-autoloader.
2
Activa EasyAPI en Configuración → Módulos y abre su pantalla de configuración: CORS, sesión, límites y MCP se ajustan desde ahí.
3
Copia la clave de tu usuario (Usuario → pestaña API) y comprueba que responde: GET /me te devuelve quién eres.
4
Abre /docs y navega los 32 dominios. Si tu servidor es nginx, aplica el bloque de la guía incluida antes de dar nada por bueno.

Requisitos

Dolibarr V15 a V24 (probado en la 18 y la 24; las firmas del core se comprueban de la 10 a la 24)
PHP 7.4 a 8.3, con curl, json y mbstring
Base de datos MySQL 5.7+ · MariaDB 10.2+ · PostgreSQL 10+
Actualizaciones 365 días de acceso a actualizaciones

Antes de comprar

¿Puedo adaptarlo a mi caso?
Sí. Recibes todo el código fuente y puedes leerlo, modificarlo y adaptarlo sin pedir permiso. Además los recursos se auto-descubren, 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. Todas las lecturas 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.
¿Se me romperá la integración al actualizar?
El contrato es una API v1 estable y cada respuesta lo declara en la cabecera X-EasyAPI-Version. Dentro de v1 solo entran cambios compatibles: campos opcionales nuevos, endpoints nuevos, cabeceras nuevas. Un cambio que rompa contrato saldría como v2, y tu integración seguiría en v1 mientras migras cuando te venga bien.
¿Qué pasa cuando venzan los 365 días?
El módulo que ya tienes sigue funcionando: no se desactiva ni se bloquea nada. Lo que termina es el acceso a las actualizaciones y a las descargas nuevas, y el soporte por correo. Si más adelante quieres retomarlo, se renueva.

Mantenimiento activo

EasyAPI no es un módulo publicado y olvidado: la versión actual es la 2.28.0 y cada entrega añade pruebas que sujetan lo que arregla. La 2.28 trae una prueba por cada regla de la confirmación humana, comprobada rompiendo la regla a propósito, una prueba en navegador de la página de acciones pendientes y la comprobación por HTTP en Dolibarr 15, 18 y 24. Además de las pruebas, cada release pasa QA contra instancias reales de Dolibarr antes de publicarse.

31
módulos publicados en Dolistore
100 %
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.

info@easysoft.es www.easysoft.es



If you think this module is a fork of another one (published after the first one) or violates some terms or conditions of use (for users or vendors), you can make a report at dolistore@dolibarr.org