Promozioni

  • 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€)

Nuovi Prodotti

  • MyPos

    fafazfe

    GRATUITO
  • Lead Management

    The Lead Management module allows you to track commercial contacts to be qualified in Dolibarr without cluttering your third-party database, and then convert them in one click into a prospect, contact, and opportunity — all linked together and to their original lead.

    190,00 €

EasyAPI - API REST professionale per Dolibarr (32 domini del core) + MCP

mp23914d20260607102352

API REST professionale per Dolibarr: 32 domini del core con permessi nativi, idempotenza, resilienza, docs Scalar e server MCP per agenti IA.

290,00 €
Al netto delle imposte

  • Autore EasySoft Tech SL
  • Versione modulo 2.28.0
  • Rilascio data 07/06/2026
  • Accesso agli aggiornamenti e ai download 1 anno
  • Come contattare l'assistenza info@easysoft.es
  • Compatibilità Dolibarr V15 - V24   -   PHP7.0 - 8.3
  • Ultimo aggiornamento 29/10/2026 22.30

Maggiori informazioni...

EasySoft Tech - Soluzioni che fanno crescere la tua azienda

La API REST che Dolibarr dovrebbe avere di serie

EasyAPI reimplementa i 32 domini del core di Dolibarr (vendite, acquisti, magazzino, contabilità, progetti, risorse umane, associazioni…) su un contratto unico: lo stesso envelope di risposta, la stessa tassonomia di errori, idempotenza su ogni scrittura e un server MCP per agenti IA. I tuoi permessi e la tua ACL di Dolibarr continuano a comandare.

32
domini del core reimplementati
98
risorse EAPI auto-rilevate
MCP
server nativo per agenti IA
V15–V24
Dolibarr compatibile · PHP 7.4–8.3

Il problema che risolve

La API che Dolibarr offre di serie risolve il caso base. I problemi arrivano quando l'integrazione deve reggere in produzione: retry per caduta di rete, permessi verificati davvero, più società nella stessa installazione e documenti che devono totalizzare correttamente. Sono cinque problemi concreti, e nessuno avvisa quando succede.

Quello che trovi Quello che ti costa
Un POST restituisce l'id grezzo e il GET l'oggetto: ogni dominio risponde a modo suo Uno strato di normalizzazione nel tuo codice, diverso per ogni risorsa, da mantenere per sempre
Un retry per timeout ricrea il documento: non esiste l'header Idempotency-Key Fatture e incassi duplicati che qualcuno deve annullare e quadrare a mano
Cancellare un pagamento via API risponde 500 su Dolibarr 20 o superiore: la firma di Paiement::delete() è cambiata nella 20 L'unica strada documentata per annullare un incasso non funziona proprio quando ti serve
In multi-azienda, una DOLAPIKEY valida di un'altra entità risponde 503 «modulo non attivo» L'API parla solo con l'entità 1: ogni società finisce per aver bisogno della propria installazione
Una riga di fattura con recargo de equivalencia o IRPF viene salvata con l'imposta a 0 Il documento totalizza male: incassi meno del dovuto o trattieni meno del dovuto, e non salta fuori nessun errore
L'errore dice solo «socid field missing», senza il campo esatto e senza un request_id Supporto alla cieca: bisogna riprodurre a mano quello che ha già fallito in produzione

Lo stesso envelope, gli stessi codici e gli stessi filtri nei 32 domini. Si impara una volta e vale per tutti: non c'è un modo diverso di paginare, filtrare o leggere l'errore a seconda della risorsa che tocchi.

NOVITÀ 2.28

Quello che chiede l’agente di IA aspetta la tua conferma

Con la conferma umana attiva, una scrittura chiesta da un agente tramite MCP non viene eseguita. Resta in Strumenti › Azioni in sospeso (IA) con i suoi dati e un’anteprima, e avviene solo quando la persona che ha collegato l’agente preme Conferma.

  • Decidi tu cosa aspetta. Tutte le scritture, oppure solo l’invio di e-mail e le eliminazioni. L’opzione è spenta, quindi l’aggiornamento non cambia nulla.
  • L’agente non può confermarsi da solo. La conferma non esiste per il MCP: si fa in Dolibarr o tramite l’API REST (POST /mcp/pending/{token}/confirm), e solo chi ha chiesto l’azione può darla.
  • Una volta sola e con scadenza. Ogni azione si conferma una volta e scade dopo 10 minuti; il termine arriva fino a 24 ore.
  • E-mail marcate. Un’e-mail inviata dopo la conferma porta X-AI-Generated e X-AI-Reviewed.
NELLA 2.25

Chi ti deve quanto e da quando, e il prezzo che l'ERP applicherebbe a ogni cliente

La versione 2.25 ha portato indicatori di business che prima si ricostruivano sommando le fatture a mano. E l'MCP dice all'agente cosa fa ogni operazione prima che la chiami.

  • Anzianità del credito. GET /invoices/kpis/aging e GET /supplier-invoices/kpis/aging dividono il residuo in non scaduto, 1-30, 31-60, 61-90 e oltre 90 giorni. Le fasce si cambiano con ?buckets=0,15,45 e ?group=thirdparty dà il dettaglio per soggetto terzo. Seguono la stessa ACL degli elenchi: il commerciale che vede solo i suoi clienti vede solo il debito di quei clienti.
  • Tempi medi e residuo reale. /invoices/kpis aggiunge dso e /supplier-invoices/kpis aggiunge dpo, i giorni medi di incasso e di pagamento degli ultimi 90 giorni. I KPI outstanding e overdue sommano quello che resta davvero da pagare: sottraggono pagamenti parziali, note di credito e acconti con lo stesso calcolo di getRemainToPay() del core.
  • Prezzo effettivo per cliente. GET /products/{id}/price?socid=&qty= restituisce il prezzo che l'ERP metterebbe nella riga per quel cliente e quella quantità, con IVA, sovrattassa e ritenuta d'acconto, i totali e da dove arriva il prezzo: base, price_level, customer_price o quantity.
  • Errori senza SQL. Il messaggio del motore di database resta nel syslog con il request_id, e la risposta porta un codice su cui si può agire: un duplicato è un 409 con reason: duplicate_record, e un blocco un 503 con Retry-After: 2 per riprovare.
  • Ogni operazione dichiara il suo effetto. x-effect dice se legge (read), scrive nell'ERP (internal), esce verso l'esterno (external) o non si può annullare (irreversible), e l'MCP lo traduce in readOnlyHint e destructiveHint. Le cancellazioni via MCP si possono vietare nel setup (EASYAPI_MCP_ALLOW_DELETE) o utente per utente, e vale l'impostazione più restrittiva.
  • IBAN mascherato. Via MCP, l'IBAN, il numero di conto e il riferimento del mandato dei conti bancari dei terzi mostrano solo gli ultimi 4 caratteri. Via REST non cambia nulla.

Uno sguardo al risultato

La specifica OpenAPI si genera da sola dalle risorse e viene servita dentro il modulo, filtrata in base ai permessi dell'utente che la consulta.

Documentazione di EasyAPI con Scalar: navigazione per domini, selettore di server e autenticazione con DOLAPIKEY
I 32 domini navigabili, con selettore di server e autenticazione tramite DOLAPIKEY. Ogni operazione porta il suo schema e un esempio pronto da lanciare.

Confronto con l'API nativa

Dimensione API nativa di Dolibarr EasyAPI
Copertura Più di 50 classi API distribuite nei moduli del core, con copertura disomogenea: in contabilità, per esempio, l'unico endpoint è il dump dei dati 32 domini del core completi, con le loro sotto-risorse: righe, contatti, pagamenti, sconti…
Modo di rispondere Disomogeneo: un POST restituisce un intero grezzo, un altro l'oggetto Envelope uniforme {success, data, meta}: il POST risponde 201 con il record creato
Errori Codici e messaggi diversi tra loro, senza tassonomia e senza niente che tu possa citare in un ticket Tassonomia di 16 tipi, il campo esatto in error.fields, e request_id + doc_url in tutti
Idempotenza Non esiste Prenotazione atomica tramite Idempotency-Key su ogni scrittura, incluse le transizioni di stato
Operazioni massive Non esistono 207 Multi-Status in creazione, modifica e cancellazione, fino a 100 elementi per lotto e con il risultato di ciascuno
Query Filtri SQL grezzi da scrivere a mano, senza possibilità di ordinare o scegliere i campi Filtri e ordinamento in JSON, ricerca, selezione dei campi, risorse incorporate, paginazione per pagina e per cursore
Resilienza Non esiste Limite di richieste, retry sui lock del database, concorrenza ottimistica e modalità manutenzione
Sicurezza Diritti nativi, con difetti reali: la query sui commerciali restituisce 401 dove servirebbe un 403 Gli stessi diritti nativi, con l'ACL per record corretta e uniforme: 403 corretto e senza fughe tra un terzo e l'altro o tra un'entità e l'altra
Documentazione Explorer Swagger di base OpenAPI generato dal codice, con Scalar, Swagger UI e Redoc incorporati e filtrato per permessi
Estensibilità Bisogna toccare il core per aggiungere endpoint Auto-rilevamento: crei una cartella nel tuo modulo e i tuoi endpoint compaiono documentati

Come si usa

Autenticazione con la DOLAPIKEY del tuo utente nell'header. La stessa chiave vale come Authorization: Bearer se il tuo server si mangia gli header personalizzati. Fattura con la sua riga in una sola chiamata:

FATTURA CON RIGA, IN UNA RICHIESTA
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 FATTURA NASCE IN BOZZA CON LA SUA REF PROVVISORIA
{
  "success": true,
  "data": {
    "id": 902,
    "ref": "(PROV902)",
    "socid": 128,
    "statut": 0,
    "total_ttc": 119.76,
    "lines": [ { "id": 3311, "qty": 2, "subprice": 49.90 } ]
  }
}
422 · L'ERRORE TI DICE IL CAMPO, NON SOLO CHE QUALCOSA NON VA
{
  "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 validazione, che è come funziona Dolibarr: POST /invoices/902/validate sostituisce (PROV902) con il numero della serie e ricalcola i totali. Reinvii la stessa richiesta con la stessa Idempotency-Key e ricevi la fattura di prima, non una seconda, con l'header Idempotent-Replayed: true che avvisa che non è stata rieseguita.

Cosa include

Scritture che non si duplicano
Idempotency-Key con prenotazione atomica e replay annunciato su ogni scrittura, anche nelle transizioni di stato (validare, pagare, chiudere).
Errori che si spiegano da soli
Una tassonomia unica di 16 tipi, il dettaglio per campo e due dati per il ticket: l'identificatore della richiesta e il link al documento dell'errore.
Query senza SQL a mano
Filtri, ordinamento, ricerca e selezione dei campi in JSON; paginazione per pagina e per cursore per scorrere tabelle grandi senza perdere righe.
I tuoi permessi, tali e quali
I diritti nativi di Dolibarr più l'ACL per record corretta: un commerciale non vede quello che non è suo, e il 403 compare dove deve.
Server MCP per agenti
Endpoint POST /mcp per Claude, Cursor o qualsiasi client MCP, autenticato con la tua chiave e limitabile ai domini che vuoi.
Resilienza configurabile
Limite di richieste, retry sui lock del database, concorrenza ottimistica con ETag, modalità manutenzione e un limite di dimensione del body. Tutto tramite costanti.

A cosa serve

  • Sincronizzare un negozio online o un marketplace: ordini, magazzino e prezzi verso il tuo database, senza scrivere SQL
  • Un'app mobile per commerciali con sessione via cookie HttpOnly, dove la chiave dell'ERP non arriva mai al browser
  • Cruscotti e BI che leggono i 32 domini con filtri e paginazione per cursore
  • Automazioni e agenti IA collegati via MCP al tuo ERP, con le regole di scrittura che decidi tu
  • Più società servite da una sola API, ogni utente nella sua entità
  • Un ERP esterno che deve creare fatture e incassi sapendo che un retry non duplica niente

Messa in funzione

1
Scompatta lo ZIP in custom/easyapi ed esegui composer install --no-dev --optimize-autoloader.
2
Attiva EasyAPI in Configurazione → Moduli e apri la sua schermata di configurazione: CORS, sessione, limiti e MCP si regolano da lì.
3
Copia la chiave del tuo utente (Utente → scheda API) e verifica che risponda: GET /me ti dice chi sei.
4
Apri /docs e naviga i 32 domini. Se il tuo server è nginx, applica il blocco della guida inclusa prima di dare qualcosa per buono.

Requisiti

Dolibarr V15 a V24 (testato sulla 18 e sulla 24; le firme del core vengono verificate dalla 10 alla 24)
PHP 7.4 a 8.3, con curl, json e mbstring
Database MySQL 5.7+ · MariaDB 10.2+ · PostgreSQL 10+
Aggiornamenti 365 giorni di accesso agli aggiornamenti

Prima di acquistare

Posso adattarlo al mio caso?
Sì. Ricevi tutto il codice sorgente e puoi leggerlo, modificarlo e adattarlo senza chiedere permesso. Inoltre le risorse si auto-rilevano, quindi la norma è che aggiungi i tuoi endpoint dal tuo modulo invece di toccare il nostro.
Come lo provo senza rischiare i miei dati?
Installalo su una copia del tuo Dolibarr e chiama GET /status: risponde senza toccare un solo record. Tutte le letture sono innocue. Le scritture invece creano dati reali, quindi provale su quella copia: quello che garantisce Idempotency-Key è che un retry per caduta di rete non ti duplichi il record, non che l'operazione sia reversibile.
E se qualcosa non si adatta alla mia installazione?
Scrivici a info@easysoft.es prima di acquistare e lo vediamo insieme: versione di Dolibarr, PHP, hosting e cosa devi integrare. Preferiamo dirti che non si adatta piuttosto che venderti qualcosa che non ti serve.
Si romperà l'integrazione quando aggiorno?
Il contratto è un'API v1 stabile e ogni risposta lo dichiara nell'header X-EasyAPI-Version. Dentro la v1 entrano solo cambiamenti compatibili: campi opzionali nuovi, endpoint nuovi, header nuovi. Un cambiamento che rompe il contratto uscirebbe come v2, e la tua integrazione resterebbe su v1 mentre migri quando ti conviene.
Cosa succede quando scadono i 365 giorni?
Il modulo che hai già continua a funzionare: non si disattiva e non si blocca niente. Quello che termina è l'accesso agli aggiornamenti e ai download nuovi, e il supporto via email. Se più avanti vuoi riprenderlo, si rinnova.

Manutenzione attiva

EasyAPI non è un modulo pubblicato e dimenticato: la versione attuale è la 2.28.0 e ogni rilascio aggiunge test che tengono fermo quello che corregge. La 2.28 porta un test per ogni regola della conferma umana, verificato rompendo apposta la regola, un test nel browser della pagina delle azioni in sospeso e una verifica HTTP su Dolibarr 15, 18 e 24. Oltre ai test, ogni release passa il QA contro istanze reali di Dolibarr prima di essere pubblicata.

31
moduli pubblicati su Dolistore
100 %
codice sorgente completo
8
lingue nell'interfaccia
365
giorni di aggiornamenti

Fa al caso tuo per quello che devi integrare?

Raccontaci il tuo caso e ti diciamo se EasyAPI fa al caso tuo — e se non lo fa, te lo diciamo lo stesso.

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