CONTRATTO DI SERVIZIO — DDT DIGITALE (FASE 1)

Redatto da
Nicolaas Huggers
Node AI
Predisposto per
Federico Monaco
Monaco S.p.A.
Data di Decorrenza
Alla data del go-live operativo
Legge Applicabile
Legge olandese — Tribunale di Amsterdam
Tipo di Contratto
Contratto di Servizio

SOMMARIO ESECUTIVO

Riepilogo dei termini principali. Il dettaglio operativo, legale e tecnico è riportato negli articoli successivi e negli Allegati. La firma in calce al contratto vale come accettazione dell'intero documento, sommario incluso.

Cosa state firmando

Attivazione e gestione in modalità SaaS della piattaforma DDT Digitale, comprensiva di:

  • Estrazione automatica dei DDT (OCR + AI) con validazione operatore
  • Integrazione diretta con AS/400 tramite tabella di staging ODBC + procedura RPG
  • Dashboard di monitoraggio, supporto e manutenzione continui

Economia dell'accordo

Setup una tantum: € 4.500 — pagabile entro 7 giorni lavorativi dalla firma, non rimborsabile.

Canone — due opzioni di pagamento, a scelta del Cliente:

OpzioneImportoInclusioneTot. Anno 1 (setup + canoni)
A — Annuale anticipato (consigliata)€ 10.800 in unica fattura al go-live5.000 DDT / mese × 12 mesi€ 15.300
B — Mensile€ 1.000 / mese, fatturazione anticipata5.000 DDT / mese€ 16.500

Sforamento DDT: € 0,25 per ogni DDT elaborato oltre i 5.000 / mese (entrambe le opzioni).

Convenienza Opzione A: € 1.200 / anno di risparmio rispetto al pagamento mensile, in cambio del prepagamento dei 12 canoni al go-live.

IVA: regime di reverse charge intra-UE (Art. 196 Dir. 2006/112/CE) — fatture senza addebito IVA, autoliquidazione a carico del Cliente. Pagamento via bonifico SEPA.

Tempistiche

  • Kickoff: entro 5 giorni lavorativi dalla ricezione del pagamento del setup
  • Go-live operativo: entro 6 settimane dal kickoff
  • Durata contratto: 12 mesi dal go-live, con rinnovo automatico
  • Recesso: preavviso scritto di 60 giorni rispetto a fine periodo

Garanzia e qualità del servizio

  • Garanzia 60 giorni di rimborso sui canoni mensili dal go-live: se la Soluzione non soddisfa i criteri di accettazione di Allegato A, rimborso integrale dei canoni versati. Il setup resta non rimborsabile.
  • SLA contrattuale: 99% di uptime mensile in orario lavorativo, con tempi di risposta su ticket P1 entro 4 ore lavorative e credito automatico sul canone in caso di mancato rispetto (vedi art. 4.7).
  • Criteri di accettazione del go-live misurabili: accuratezza estrazione ≥ 95% header / ≥ 90% righe, 0 errori scrittura ODBC su 100 DDT campione, idempotenza verificata (vedi Allegato A.6).

Cosa serve da Monaco S.p.A. ora

  1. Firma del presente contratto
  2. Bonifico setup di € 4.500 sul conto del Fornitore: IBAN NL44 ABNA 0129 0983 29 (Huggers Holding B.V., ABN AMRO Bank, BIC ABNANL2A) — IVA in regime di reverse charge ex Art. 196 Dir. 2006/112/CE
  3. Avvio dell'onboarding tecnico secondo la Checklist di Allegato C (credenziali ODBC, anagrafica fornitori, 20 DDT campione, accesso SharePoint) — da completarsi entro 10 giorni lavorativi dalla firma

Cosa è escluso da questa Fase 1

Integrazione Ordini di Acquisto (Fase 2), Fatture e hub documentale (Fase 3) — opzioni future non vincolanti, da formalizzarsi con SOW separati al termine della Fase 1.

Documenti allegati

  • Allegato A — Specifica Tecnica Integrazione AS/400
  • Allegato B — Accordo sul Trattamento dei Dati (DPA, Art. 28 GDPR)
  • Allegato C — Checklist di Onboarding Tecnico

PREMESSE

Il presente contratto formalizza l'accordo commerciale e tecnico tra Monaco S.p.A. e Huggers Holding B.V. (operante con la denominazione commerciale "Node AI" — di seguito anche "Node Agency") avente ad oggetto la digitalizzazione automatizzata dei Documenti di Trasporto (DDT) e la loro integrazione con il gestionale IBM i (AS/400) del Cliente.

Il contratto recepisce integralmente i termini economici e funzionali della Proposta Commerciale Fase 1 presentata al Cliente in data 21 aprile 2026 (pubblicata anche all'indirizzo https://monaco.nodeagency.ai/proposta.html) e la Specifica Tecnica di Integrazione AS/400 (pubblicata all'indirizzo https://monaco.nodeagency.ai/integrazione.html), allegata come parte integrante.

Le Parti riconoscono di aver reciprocamente negoziato e condiviso il contenuto del presente contratto in buona fede.


1. PARTI

1.1 Fornitore

  • Denominazione legale: Huggers Holding B.V.
  • Denominazione commerciale: Node AI / Node Agency [da confermare se registrata come handelsnaam presso KvK]
  • Sede legale: Joke Smitstraat 11, 5803 AG Venray, Paesi Bassi
  • KvK (Kamer van Koophandel): 92210325
  • Partita IVA (BTW): NL865935324B01
  • Rappresentata da: Nicolaas Huggers, in qualità di bestuurder (amministratore)
  • Email per comunicazioni formali: admin@nodeagency.ai
  • IBAN: NL44 ABNA 0129 0983 29 — ABN AMRO Bank N.V., intestato a Huggers Holding B.V.

(di seguito, il "Fornitore" o, indifferentemente, "Node AI". Si dà atto che il Fornitore, in quanto società di diritto olandese, non dispone di un indirizzo PEC italiano; le comunicazioni formali a/da il Fornitore avvengono all'indirizzo email indicato sopra, fermo restando il diritto di ciascuna Parte di utilizzare la raccomandata A/R quale canale alternativo per le notifiche di legge.)

1.2 Cliente

  • Denominazione: Monaco S.p.A.
  • Sede legale: Via Lucrezio Caro, n. 38 — 00193 Roma (RM), Italia
  • Partita IVA: 01560691006
  • Codice Fiscale: 06497400587
  • Capitale Sociale: € 5.800.000,00 i.v.
  • Rappresentata da: Federico Monaco, in qualità di Legale Rappresentante
  • Email: monacospa@monacospa.eu
  • PEC: [da indicare alla firma — Monaco S.p.A. dispone di PEC ai sensi della L. 2/2009; l'indirizzo verrà confermato in calce dal Cliente al momento della firma]
  • Telefono: +39 06 66173711

(di seguito, il "Cliente")

Fornitore e Cliente sono collettivamente le "Parti".


2. OGGETTO DEL CONTRATTO

2.1 Il Fornitore si impegna a progettare, sviluppare, rilasciare e gestire in modalità SaaS la piattaforma "DDT Digitale" (la "Soluzione"), finalizzata all'automazione del processo di ricezione, estrazione dati, validazione e integrazione dei DDT del Cliente nel gestionale IBM i/AS-400.

2.2 La Fase 1, oggetto esclusivo del presente contratto, comprende:

  • Piattaforma web dedicata, accessibile con autenticazione al personale designato dal Cliente
  • Motore di estrazione OCR + Intelligenza Artificiale per DDT in formato PDF o immagine, multi-pagina
  • Pipeline di validazione con workflow di approvazione operatore (riga per riga)
  • Integrazione con AS/400 tramite tabella di staging ODBC e procedura RPG consumer, secondo la Specifica Tecnica di cui all'Allegato A
  • Dashboard di monitoraggio, analytics e reportistica
  • Supporto tecnico e manutenzione correttiva e adattativa per tutta la durata del contratto. Eventuali interventi di manutenzione evolutiva (nuove funzionalità non previste in Allegato A) saranno oggetto di Change Order separato, valorizzato a € 75/ora.

2.3 I dettagli funzionali e tecnici sono descritti nell'Allegato A — Specifica Tecnica Integrazione AS/400, parte integrante e sostanziale del presente contratto.

2.4 Fuori ambito Fase 1 (potenziali Fasi 2-3, non vincolanti, vedi art. 13):

  • Integrazione Ordini di Acquisto (OdA) con riconciliazione riga-per-riga
  • Integrazione Fatture fornitori
  • Hub documentale unificato (DDT + OdA + Fatture)

3. TEMPISTICHE

3.1 Kickoff progettuale: entro 5 (cinque) giorni lavorativi dalla ricezione del pagamento del setup (art. 4.1).

3.2 Pianificazione di massima delle 6 settimane di Fase 1:

SettimaneAttività
1-2Setup infrastrutturale, integrazione ODBC, tracciato record
3-4Pipeline OCR/AI, workflow operatore, procedura RPG consumer
5Test end-to-end con DDT reali campione
6Go-live in produzione, handover operativo, training utenti

3.3 Go-live previsto entro 6 (sei) settimane dal kickoff, salvo cause di forza maggiore (art. 10) o ritardi imputabili al Cliente (es. mancato rilascio credenziali ODBC, indisponibilità del personale tecnico, mancata fornitura documentazione richiesta in Allegato C).

3.4 Ritardi imputabili al Cliente potranno comportare la rinegoziazione delle tempistiche di go-live, senza modifica dei corrispettivi.

3.5 Accettazione del go-live. Al termine delle attività di Fase 1, il Fornitore comunicherà al Cliente la disponibilità della Soluzione in produzione (notifica di handover via email/PEC). Il Cliente avrà 7 (sette) giorni lavorativi dalla ricezione della notifica per:

  • (a) confermare per iscritto l'accettazione, oppure
  • (b) sollevare per iscritto eventuali non conformità rispetto ai criteri di accettazione di Allegato A.

Decorso tale termine senza obiezioni scritte, la Soluzione si intende tacitamente accettata e si avvia il decorso della Data di Decorrenza ai sensi dell'art. 5.1. La garanzia di soddisfazione di cui all'art. 6 decorre comunque dal go-live.


4. CORRISPETTIVI E MODALITÀ DI PAGAMENTO

4.1 Setup una tantum

  • Importo: Euro 4.500,00 (quattromilacinquecento/00), oltre imposte se dovute
  • Modalità: pagamento al 100% entro 7 (sette) giorni lavorativi dalla firma del presente contratto, quale condizione sospensiva per l'avvio delle attività di implementazione
  • Natura: non rimborsabile — corrispettivo per le attività di analisi, progettazione e setup tecnico già parzialmente eseguite alla firma e per l'allocazione delle risorse del Fornitore alla Fase 1

4.2 Canone — Opzioni di pagamento

Il Cliente sceglie, alla firma del presente contratto e mediante apposita comunicazione scritta entro la data del go-live, una delle seguenti due opzioni di canone. La scelta è valida per l'intero periodo iniziale (12 mesi) e potrà essere modificata in occasione di eventuali rinnovi.

Opzione A — Pagamento annuale anticipato (consigliata)
  • Importo: Euro 10.800,00 (diecimilaottocento/00) per i primi 12 mesi di servizio
  • Modalità: fattura unica emessa alla data di go-live, pagamento in unica soluzione entro 30 giorni data fattura
  • Equivalente mensile: € 900 / mese (sconto del 10% rispetto all'Opzione B)
  • DDT inclusi: 5.000 (cinquemila) DDT al mese × 12 mesi
  • Rinnovo: alla scadenza, l'opzione si rinnova alle medesime condizioni salvo diversa scelta del Cliente
Opzione B — Pagamento mensile anticipato
  • Importo: Euro 1.000,00 (mille/00) al mese
  • Modalità: fatturazione mensile anticipata — fattura emessa il primo giorno lavorativo del mese di riferimento, pagamento entro 15 giorni data fattura
  • DDT inclusi: 5.000 (cinquemila) DDT per mese solare
  • Decorrenza primo canone: dalla data di go-live operativo, con prima fattura pro-rata sui giorni residui del mese di go-live; dal mese successivo, fatturazione mensile anticipata regolare al 1° del mese

In assenza di scelta espressa entro il go-live, si applica di default l'Opzione A (annuale anticipato), salvo richiesta scritta del Cliente per l'Opzione B.

4.3 Sforamento soglia DDT

  • Tariffa extra: Euro 0,25 (zero/venticinque) per ogni DDT elaborato oltre la soglia di 5.000 DDT/mese, in entrambe le opzioni di canone
  • Fatturazione: a consuntivo, nel mese successivo a quello di rilevazione, con pagamento entro 30 giorni data fattura

4.4 Modalità di fatturazione e pagamento

Cadenza fatturazione:

  • Setup: fattura unica emessa alla firma, pagamento entro 7 giorni lavorativi
  • Canone Opzione A (annuale): fattura unica al go-live, pagamento entro 30 giorni data fattura
  • Canone Opzione B (mensile): fatturazione anticipata — fattura emessa il 1° giorno lavorativo del mese di riferimento, pagamento entro 15 giorni data fattura
  • Sforamento DDT: fattura a consuntivo nel mese successivo, pagamento entro 30 giorni data fattura

Trattamento IVA — reverse charge intra-UE. Trattandosi di prestazione di servizi B2B tra soggetto passivo IVA olandese (Huggers Holding B.V., BTW NL865935324B01) e soggetto passivo IVA italiano (Monaco S.p.A., P.IVA 01560691006), entrambi iscritti al sistema VIES, le fatture saranno emesse dal Fornitore senza addebito di IVA, riportando la dicitura "Reverse charge — VAT to be accounted for by the recipient pursuant to Article 196 of EU Directive 2006/112/EC" (o equivalente in italiano: "Operazione non soggetta a IVA in Italia — inversione contabile ex art. 17 c.2 DPR 633/1972 e art. 196 Dir. 2006/112/CE"). Il Cliente provvederà all'integrazione della fattura ricevuta e all'autoliquidazione dell'IVA italiana al 22%, con neutralità ai fini IVA (deduzione dell'imposta nel medesimo periodo).

Pagamento — coordinate bancarie del Fornitore:

  • Beneficiario: Huggers Holding B.V.
  • IBAN: NL44 ABNA 0129 0983 29
  • BIC/SWIFT: ABNANL2A
  • Banca: ABN AMRO Bank N.V., Paesi Bassi
  • Causale richiesta: numero fattura + "Monaco DDT" (per riconciliazione)

Ritardi di pagamento: interessi di mora pari al tasso legale olandese per transazioni commerciali (wettelijke handelsrente, BW 6:119a), maturati automaticamente decorso il termine di pagamento, oltre alle spese di recupero forfettarie ex Direttiva 2011/7/UE.

Sospensione del servizio per mancato pagamento. Qualora una fattura risulti scaduta da oltre 30 (trenta) giorni, il Fornitore avrà diritto di sospendere l'erogazione della Soluzione previa comunicazione scritta di 5 (cinque) giorni lavorativi al Cliente. La sospensione non costituisce inadempimento del Fornitore e non sospende l'obbligo del Cliente di corrispondere i canoni maturati. Il servizio sarà ripristinato entro 2 giorni lavorativi dal saldo integrale.

4.5 Costi inclusi nel canone

Sono a carico esclusivo del Fornitore e inclusi nel canone mensile:

  • Hosting cloud (Vercel Pro, Supabase Pro)
  • Servizi AI/OCR (costi per elaborazione DDT)
  • Backup, disaster recovery, aggiornamenti di sicurezza
  • Supporto tecnico via email/ticket in orario lavorativo (lunedì-venerdì, 9:00-18:00 CET)

4.6 Costi a carico del Cliente

  • Infrastruttura AS/400 e licenze IBM i esistenti
  • Eventuali adeguamenti della rete interna o VPN necessari per l'integrazione ODBC
  • Personale dedicato al testing e all'onboarding (referente tecnico e operatore)

4.7 Livelli di Servizio (SLA)

Il Fornitore si impegna ai seguenti livelli di servizio durante l'orario coperto (art. 4.5):

Disponibilità della Soluzione (uptime): 99,0% mensile, calcolato sulle ore di disponibilità effettiva nell'orario lavorativo (lunedì-venerdì, 9:00-18:00 CET), esclusi:

  • finestre di manutenzione programmata, comunicate con preavviso di 48 ore
  • cause di forza maggiore (art. 10)
  • malfunzionamenti dipendenti dall'infrastruttura del Cliente (es. AS/400 indisponibile, rete interna)

Tempi di risposta ai ticket di supporto:

PrioritàDefinizioneTempo di rispostaTempo di risoluzione (best effort)
P1 — CriticaSoluzione non disponibile o blocco totale dell'elaborazione DDT4 ore lavorative1 giorno lavorativo
P2 — AltaFunzionalità chiave compromessa, workaround disponibile1 giorno lavorativo3 giorni lavorativi
P3 — NormaleBug minore o richiesta di chiarimento3 giorni lavorativi10 giorni lavorativi

Credito sul canone in caso di mancato rispetto SLA mensile:

Uptime mensile rilevatoCredito sul canone del mese successivo
95,00% – 98,99%5%
90,00% – 94,99%10%
< 90,00%30%

I crediti sono cumulativi fino a un massimo del 30% del canone mensile e devono essere richiesti per iscritto entro 30 giorni dalla rilevazione, sulla base dei log di disponibilità del Fornitore. I crediti SLA costituiscono il rimedio esclusivo del Cliente per il mancato rispetto degli SLA, fatte salve le ipotesi di cui all'art. 5.4 (risoluzione per inadempimento grave).

4.8 Adeguamento del canone per costi upstream

In caso di incremento documentato e superiore al 15% dei costi dei servizi terzi essenziali alla Soluzione (in particolare modelli AI, hosting, database) rispetto ai prezzi vigenti alla data di firma, il Fornitore si riserva il diritto di richiedere una rinegoziazione del canone mensile, dandone comunicazione scritta al Cliente con preavviso di 60 (sessanta) giorni e fornendo evidenza dell'incremento (listini ufficiali dei fornitori). In caso di mancato accordo entro 30 giorni dalla notifica, ciascuna Parte potrà recedere dal contratto senza penalità con effetto al termine del periodo di preavviso. Salvo questa ipotesi, il canone resta fisso per la durata del periodo iniziale, ferme restando le rivalutazioni di cui all'art. 5.2.


5. DURATA, RINNOVO E RECESSO

5.1 Durata iniziale: 12 (dodici) mesi, decorrenti dalla data del go-live operativo (la "Data di Decorrenza").

5.2 Rinnovo automatico: alla scadenza, il contratto si intende tacitamente rinnovato per ulteriori periodi di 12 (dodici) mesi, alle medesime condizioni economiche salvo adeguamento annuo all'indice ISTAT FOI (Famiglie di Operai e Impiegati, esclusi tabacchi) pubblicato dall'Istituto Nazionale di Statistica italiano, riferito ai 12 mesi precedenti il rinnovo.

5.3 Disdetta: ciascuna Parte può impedire il rinnovo mediante preavviso scritto di almeno 60 (sessanta) giorni rispetto alla scadenza del periodo corrente, inviato via PEC o raccomandata A/R.

5.4 Risoluzione per inadempimento: in caso di grave inadempimento non sanato entro 14 (quattordici) giorni dalla formale contestazione scritta inviata via PEC, la Parte non inadempiente potrà risolvere il contratto con effetto immediato, fatto salvo il diritto al risarcimento del danno nei limiti dell'art. 9.

5.5 Effetti della cessazione: alla cessazione per qualsiasi causa, il Fornitore:

  • disattiverà gli accessi alla Soluzione entro 15 giorni
  • restituirà al Cliente tutti i dati elaborati in formato CSV (o, su richiesta del Cliente, formato JSON o dump SQL) entro 30 giorni, su richiesta scritta
  • cancellerà i dati residui dai propri sistemi entro 60 giorni dalla cessazione, con conferma scritta

5.6 Mancato adempimento agli obblighi di onboarding del Cliente. Qualora il Cliente non fornisca, entro 30 (trenta) giorni dalla firma, gli elementi richiesti nell'Allegato C (Checklist di Onboarding Tecnico), il Fornitore avrà diritto, a propria discrezione e previa comunicazione scritta:

  • di attivare la fatturazione del canone mensile come se il go-live fosse avvenuto, a partire dal 31° giorno successivo alla firma; e/o
  • di risolvere il contratto ai sensi dell'art. 5.4, trattenendo l'intero importo del setup quale corrispettivo per le attività già svolte e per il danno da mancato avvio.

Il presente articolo non si applica ai ritardi imputabili a forza maggiore (art. 10).


11. CESSIONE DEL CONTRATTO

11.1 Il Fornitore ha il diritto di cedere il presente contratto, in tutto o in parte, a una società affiliata, controllata, collegata o in altro modo riconducibile allo stesso gruppo economico (inclusa una società costituita in altra giurisdizione, ad esempio negli Stati Uniti d'America), previo preavviso scritto di 30 (trenta) giorni al Cliente. Il cessionario assumerà tutti i diritti e obblighi derivanti dal presente contratto, garantendo continuità di servizio, invariabilità delle condizioni economiche, invariabilità della Specifica Tecnica e mantenimento delle medesime garanzie verso il Cliente.

11.1bis Responsabilità solidale del cedente. Per un periodo di 12 (dodici) mesi dalla data effettiva della cessione, il Fornitore originario rimarrà solidalmente responsabile, insieme al cessionario, dell'esecuzione delle obbligazioni contrattuali, a tutela del Cliente.

11.2 Il Cliente non potrà cedere il contratto a terzi senza il consenso scritto del Fornitore, fatta eccezione per operazioni straordinarie (fusione, scissione, acquisizione) che coinvolgano l'intera azienda del Cliente.


13. FASI FUTURE (OPZIONI NON VINCOLANTI)

13.1 Le Parti si danno reciprocamente atto dell'intenzione di valutare congiuntamente, al termine della Fase 1 e sulla base dei risultati operativi conseguiti, l'estensione della collaborazione alle seguenti fasi:

  • Fase 2: integrazione del modulo Ordini di Acquisto (OdA), con riconciliazione automatica DDT/OdA a livello di singola riga
  • Fase 3: integrazione del modulo Fatture fornitori e hub documentale unificato

13.2 Le Fasi 2 e 3 saranno oggetto di Statement of Work (SOW) separati, formalizzati come addendum al presente contratto, con ambiti, prezzi, tempistiche e condizioni specifiche da definirsi.

13.3 Nulla nel presente articolo costituisce impegno vincolante di alcuna delle Parti a procedere con le Fasi 2 e 3.


14. COMUNICAZIONI

14.1 Tutte le comunicazioni formali dovranno essere trasmesse agli indirizzi sotto indicati:

Fornitore:

  • Email per comunicazioni formali: admin@nodeagency.ai
  • Indirizzo postale: Joke Smitstraat 11, 5803 AG Venray, Paesi Bassi
  • Referente legale (firmatario): Nicolaas Huggers, bestuurder di Huggers Holding B.V.
  • Referente operativo: Cristoforo Perrone (admin@nodeagency.ai)

Cliente (Monaco S.p.A.):

  • Email per comunicazioni operative: monacospa@monacospa.eu
  • PEC per notifiche formali: [da confermare alla firma]
  • Indirizzo postale: Via Lucrezio Caro, n. 38 — 00193 Roma (RM), Italia
  • Referente commerciale: Federico Monaco (Legale Rappresentante)
  • Referente tecnico: Maurizio Di Berardino

15. LEGGE APPLICABILE E FORO COMPETENTE

15.1 Il presente contratto è disciplinato e interpretato secondo la legge olandese, ad esclusione delle norme di diritto internazionale privato e della Convenzione delle Nazioni Unite sulla vendita internazionale di beni (CISG).

15.2 Per ogni controversia derivante o connessa al presente contratto, le Parti riconoscono la competenza esclusiva del Tribunale di Amsterdam (Rechtbank Amsterdam), Paesi Bassi.

15.3 Il presente contratto è redatto in lingua italiana, che farà fede tra le Parti ad ogni effetto.


16. DISPOSIZIONI GENERALI

16.1 Accordo integrale: il presente contratto, unitamente agli Allegati A, B e C, costituisce l'intero accordo tra le Parti sull'oggetto qui regolato e sostituisce ogni precedente accordo, comunicazione o intesa, scritta od orale, incluse le trattative pre-contrattuali.

16.2 Modifiche: ogni modifica o integrazione del presente contratto sarà valida solo se redatta per iscritto e sottoscritta da entrambe le Parti.

16.3 Invalidità parziale: qualora una o più clausole del contratto risultassero invalide, inefficaci o inapplicabili, le restanti clausole rimarranno pienamente valide ed efficaci. Le Parti si impegnano a sostituire la clausola invalida con altra di equivalente effetto economico e giuridico.

16.4 Rapporto tra le Parti: il Fornitore agisce quale soggetto economico indipendente. Nessuna disposizione del presente contratto potrà essere interpretata come costituzione di rapporto di lavoro subordinato, società, joint venture, agenzia o rappresentanza.

16.5 Tolleranza: la mancata o ritardata azione di una Parte a far valere un proprio diritto non costituirà rinuncia allo stesso.


FIRME

Le Parti, dopo lettura e piena comprensione del contratto e dei suoi Allegati, sottoscrivono in segno di accettazione integrale.

Per il Fornitore — Huggers Holding B.V. (Node AI)

Nome e Cognome: Nicolaas Huggers

Qualifica: bestuurder / amministratore

Luogo: Venray, Paesi Bassi

Data: 28 / 04 / 2026

Firma: Nicolaas Huggers


Per il Cliente — Monaco S.p.A.

Nome e Cognome: Federico Monaco

Qualifica: Legale Rappresentante

Luogo: ______________________________________

Data: _____ / _____ / 2026

Firma: ______________________________________



ALLEGATO A — SPECIFICA TECNICA INTEGRAZIONE AS/400

Documento tecnico di riferimento per l'integrazione tra la piattaforma Node AI DDT (cloud) e il sistema IBM i (AS/400). Versione 2.0. Sulla base del confronto tecnico del 15 aprile 2026, il documento si concentra sull'approccio concordato: ODBC su tabella di staging + procedura RPG. Descrive architettura, tracciato record, requisiti tecnici e checklist di verifica. Il presente Allegato è parte integrante e vincolante del Contratto e prevale, in caso di conflitto, sull'eventuale versione pubblicata online.

A.1 Contesto e Ambito dell'Integrazione

Il sistema Node AI acquisisce DDT cartacei, estrae i dati strutturati tramite AI Vision e li presenta all'operatore per validazione umana. Solo i DDT in stato APPROVED sono eligibili per l'invio al gestionale IBM i. Questo documento copre esclusivamente il canale di trasporto tra i due sistemi.

Flusso Funzionale

`` [Scansione DDT] → Node AI / AI Vision → estrazione campi strutturati → Validazione umana (UI operatore, 2° livello di controllo) → DDT in stato APPROVED → Invio a IBM i ← oggetto del presente documento → Acknowledge / risposta / eventuale stato errore ``

Requisiti Funzionali del Canale

  • Trasporto header + righe di ogni DDT come unità logica
  • Supporto a idempotency (external ID univoco per DDT)
  • Acknowledge sincrono o asincrono con stato e motivo errore
  • Retry automatico su failure transitori, senza duplicazione
  • Audit log completo lato Node AI (payload, timestamp, risposta)
  • Supporto a batch o event-driven a seconda dell'opzione scelta

Fuori Ambito

  • Lettura anagrafiche fornitori / articoli (da definire in fase successiva, tipicamente via export o lookup API)
  • Generazione numero interno DDT (resta lato IBM i)
  • Logica di business del gestionale (validazioni IVA, periodi contabili, ecc.)

A.2 Modello Dati e Tracciato Record di Riferimento

Modello dati di riferimento che Node AI inserirà nelle tabelle di staging. Nomenclatura e tipologie sono adattabili alle convenzioni del Cliente. La struttura sotto è indicativa — lo schema definitivo delle tabelle Db2 va concordato con il team IBM i in fase di setup.

``json { "external_id": "ddt_2026_04_16_a7f3b2", "source_document_id": "doc_92f1...", "approved_at": "2026-04-16T10:23:11Z", "approved_by": "operator@cliente.it", "header": { "numero_ddt": "4521/2026", "data_ddt": "2026-04-12", "fornitore_codice": "FORN00128", "fornitore_ragione_sociale": "Edilizia Rossi S.r.l.", "fornitore_piva": "01234567890", "causale": "C01", "note": "" }, "righe": [ { "numero_riga": 1, "articolo_codice": "ART00451", "descrizione": "Cemento Portland 325", "quantita": 50, "unita_misura": "QL", "numero_ordine_acquisto": "OA-2026-0892", "prezzo_unitario": null, "confidence": 0.98 } ], "attachments": [ { "type": "source_pdf", "url": "https://...", "sha256": "..." } ] } ``

Campi obbligatori (header): external_id, numero_ddt, data_ddt, fornitore_piva, fornitore_ragione_sociale.

Campi obbligatori (riga): numero_riga, descrizione, quantita, unita_misura.

Campo opzionale (riga): numero_ordine_acquisto — non tutti i DDT cartacei riportano il numero d'ordine, pertanto il campo è opzionale per riga. Quando presente, abilita la chiusura automatica degli OdA lato IBM i.

Note sul modello: tutti i campi testuali sono UTF-8; le date in ISO 8601; i codici fornitore/articolo sono placeholder — la strategia di mapping (lookup da anagrafica IBM i, import CSV periodico, o invio di codice grezzo con risoluzione lato IBM i) sarà definita in fase di setup.

A.3 ODBC su Tabella di Staging + Procedura RPG

Node AI scrive i DDT validati su una o più tabelle di staging dedicate in Db2 for i via connessione ODBC. Una procedura RPG/CL runtime lato IBM i monitora la staging table in loop, consuma i record, valida e li inserisce nelle tabelle definitive del gestionale con la propria logica di business. Pattern sicuro e consolidato negli ambienti IBM i.

> Nota. Questo pattern è diverso dalla scrittura diretta nelle tabelle del gestionale, che non è raccomandata in quanto bypasserebbe trigger, validazioni e logica RPG. Qui Node AI scrive solo sulla staging table; la procedura RPG del team IBM i fa il resto, con pieno controllo.

Architettura

  • Protocollo: SQL INSERT over DRDA / DDM via ODBC, connessione TCP diretta a Db2 for i.
  • Node AI → ODBC → INSERT su tabelle NODEAI_DDT_H (testata) e NODEAI_DDT_R (righe) → colonna STATUS = 'NEW'.
  • Procedura RPG (runtime / loop) → SELECT WHERE STATUS = 'NEW' → valida → scrive nelle tabelle definitive del gestionale → aggiorna STATUS = 'POSTED' o 'ERROR' con messaggio.

Tabelle di staging (schema dedicato, es. NODEAI)

  • NODEAI_DDT_H — testata: external_id (PK), p_iva, ragione_sociale, data_ddt, numero_ddt, causale, note, status, error_msg, created_at, posted_at
  • NODEAI_DDT_R — righe: external_id (FK), numero_riga, articolo_codice, descrizione, quantita, unita_misura, numero_ordine_acquisto, prezzo_unitario

Componenti tecnici

  • Lato Client: IBM i Access Client Solutions (ACS) ODBC Driver · JTOpen / JT400 (JDBC, open source) · da Node.js: pacchetto npm odbc o bridge Java via JT400
  • Porte: 446 (DRDA) · 8471 (IBM i Access) · variabili a seconda del driver e di TLS on/off
  • Autenticazione: user profile IBM i dedicato con GRANT minimi (INSERT + SELECT + UPDATE solo su schema NODEAI); nessun accesso alle tabelle del gestionale; password complessa o Kerberos EIM
  • Transazioni: commitment control (CHG / ALL) con COMMIT/ROLLBACK; header + righe inserite come UOW atomica
  • Idempotency: external_id come PRIMARY KEY sulla staging table; un secondo INSERT con lo stesso id fallisce con constraint violation → Node AI tratta come successo già avvenuto
  • Feedback: Node AI può fare SELECT status, error_msg FROM NODEAI_DDT_H WHERE external_id = ? per verificare l'esito; alternativa: callback HTTP dal consumer RPG verso Node AI
  • Encoding: Db2 for i usa CCSID (es. 37 / 1144 per EBCDIC italiano); il driver ODBC converte UTF-8 ↔ CCSID lato client; verificare mapping per caratteri accentati (à, è, ò)
  • Rete: porta Db2 esposta via VPN IPSec / WireGuard (mai su internet pubblica); alternativa: tunnel SSH
  • Journaling: le staging tables devono essere journaled per supportare commitment control, audit e recovery

Vantaggi del pattern

  • Sicuro: Node AI non tocca le tabelle del gestionale; il consumer RPG mantiene il pieno controllo
  • Near-real-time: la procedura RPG in loop processa i record in pochi secondi
  • Setup lato Node AI semplice (connessione ODBC + INSERT SQL)
  • Compatibile con qualsiasi versione di IBM i (non richiede IWS o MQ)
  • Feedback loop nativo via campo status
  • Il team IBM i lavora interamente nel proprio ecosistema (RPG, SQL, CL)
  • Chiusura OdA automatica tramite numero_ordine_acquisto per riga

Svantaggi / Aspetti da gestire

  • Richiede creazione delle staging tables e della procedura RPG consumer (effort lato team IBM i del Cliente)
  • Connessione VPN tra cloud Node AI e IBM i on-premise
  • Pattern polling-based: senza callback, Node AI deve interrogare lo status

Da verificare in setup

  • Driver ODBC IBM i Access disponibile (licenza 5770-XE1)
  • Disponibilità del team RPG per lo sviluppo del consumer
  • Topologia di rete: VPN già in uso o da configurare
  • Schema staging: conferma nomi tabelle, campi e tipi con il team IBM i
  • Frequenza di polling del consumer (loop continuo vs schedulato)
  • Retention dei record processed nella staging table

A.4 Informazioni Richieste al Team Tecnico del Cliente

Da raccogliere prima o durante il kickoff tecnico per restringere la spec di dettaglio.

Ambiente IBM i

  • Versione corrente (V7R3 / V7R4 / 7.5)
  • Deployment: on-premise / IBM Cloud / Power Virtual Server
  • ERP / gestionale installato (custom RPG, Gestionale 1, Diapason, AS/Sistemi, J Galileo, Infor, altro)
  • Team interno RPG/COBOL o software house esterna
  • Disponibilità di ambienti separati dev / test / prod

Funzionalità esistenti

  • Driver ODBC IBM i Access disponibile? Licenza 5770-XE1?
  • Connessioni ODBC/JDBC già in uso da sistemi esterni?

Rete e sicurezza

  • Topologia: IBM i in DMZ, LAN interna, accessibile via VPN
  • VPN già in uso o da configurare per ODBC
  • Policy su certificati TLS (CA interna o pubblica)
  • Firewall rules esistenti
  • Requisiti GDPR / compliance specifici

Contratto dati

  • Schema tabella DDT (header + righe): nomi campi, tipi, lunghezze, mandatory
  • Strategia master data (fornitori, articoli): lookup API, export CSV, mapping lato Cliente
  • Encoding atteso (UTF-8 vs CCSID)
  • Numerazione documento: ID interno o external reference
  • Idempotency: esiste un campo external_id univoco?
  • Validation rules server-side (cosa causa reject)
  • Transazionalità: header + righe atomiche?

Operatività

  • Volumi medi e di picco (DDT/giorno)
  • Latenza accettabile (real-time vs batch)
  • Meccanismo di error notification preferito
  • SLA e finestre di manutenzione
  • Monitoring / alerting esistenti integrabili

A.5 Requisiti Trasversali

Idempotenza

Ogni DDT ha un external_id univoco generato da Node AI (UUID). IBM i deve usarlo come chiave di deduplicazione: un secondo invio con lo stesso id è no-op (non crea duplicato, risponde con lo stato del precedente).

Retry automatico

Node AI implementa retry con backoff esponenziale su errori transitori (5xx, timeout, errori di rete). Massimo 5 tentativi in 24 ore. Dopo il fallimento definitivo, il DDT torna in stato TRANSFER_ERROR lato Node AI per revisione manuale.

Atomicità transazionale

Header DDT + righe sono un'unica unità transazionale. Nessun caso di header salvato con righe mancanti. COMMIT/ROLLBACK sulla staging table garantiscono atomicità.

Tracciabilità

Node AI mantiene log completo di ogni tentativo di invio: payload, timestamp, risposta, esito, operatore approvatore. Ritenzione: 12 mesi (configurabile). Esportabile su richiesta del Cliente.

Monitoraggio

Metriche disponibili lato Node AI: throughput, latenza, tasso errori, conteggio retry, profondità coda. Alert proattivi su anomalie. Dashboard di stato accessibile al Cliente.

Sicurezza

  • TLS 1.2+ su tutti i canali
  • Credenziali in secret manager, mai in codice o log
  • User profile IBM i con privilegi minimi
  • IP whitelisting lato IBM i ove applicabile
  • Rotazione credenziali ogni 90 giorni

Separazione ambienti

Prima del go-live in produzione, l'integrazione deve essere testata end-to-end su ambiente non-prod (LPAR o libreria dedicata lato IBM i, tenant dedicato lato Node AI). In assenza di ambiente non-prod IBM i, le Parti concorderanno una finestra di test controllata in produzione con piano di rollback.

A.6 Criteri di Accettazione del Go-Live

Ai fini dell'art. 3.5 e dell'art. 6 del Contratto, la Soluzione si considera conforme alle specifiche quando, durante un periodo continuativo di test di 5 (cinque) giorni lavorativi in ambiente di produzione (o, se non disponibile, in ambiente di collaudo concordato), siano soddisfatti tutti i seguenti criteri quantitativi:

#CriterioSoglia di accettazione
AC.1Accuratezza estrazione header (campi obbligatori: numero DDT, data, P.IVA, ragione sociale fornitore) su un campione di 100 DDT reali≥ 95% di campi correttamente estratti, misurato post-validazione operatore
AC.2Accuratezza estrazione righe (descrizione articolo, quantità, unità di misura) sullo stesso campione≥ 90% di righe correttamente estratte
AC.3Scrittura ODBC su staging table0 errori di scrittura su 100 DDT approvati nel periodo di test
AC.4Idempotenzaun secondo invio dello stesso external_id non crea record duplicati e ritorna lo stato del precedente
AC.5Disponibilità della Soluzione (uptime)≥ 99,0% nelle ore lavorative del periodo di test

In caso di mancato superamento di uno o più criteri, il Fornitore disporrà di 14 (quattordici) giorni dalla rilevazione scritta per sanare la non conformità prima che il Cliente possa attivare la garanzia di soddisfazione di cui all'art. 6.



ALLEGATO B — ACCORDO SUL TRATTAMENTO DEI DATI (DPA)

Accordo ai sensi dell'art. 28 Regolamento (UE) 2016/679 ("GDPR").

B.1 Ruoli

  • Titolare del trattamento: Monaco S.p.A.
  • Responsabile del trattamento: Huggers Holding B.V.

B.2 Oggetto e finalità

Il Responsabile tratta dati personali per conto del Titolare al solo scopo di eseguire i servizi previsti dal contratto principale (digitalizzazione DDT e integrazione AS/400).

B.3 Categorie di interessati

  • Dipendenti, referenti o contatti commerciali dei fornitori del Titolare, eventualmente indicati nei DDT
  • Personale del Titolare autorizzato ad utilizzare la Soluzione

B.4 Categorie di dati personali

  • Dati anagrafici (nome, cognome) di referenti presso fornitori
  • Dati di contatto commerciale (email, telefono) — se presenti in DDT
  • Dati fiscali/identificativi dei fornitori (P.IVA, CF, ragione sociale, indirizzi)
  • Dati di autenticazione e log di accesso degli utenti della Soluzione

B.5 Durata del trattamento

Per l'intera durata del contratto principale. Alla cessazione, cancellazione o restituzione dei dati entro 30 giorni su richiesta scritta del Titolare, con conferma scritta entro 60 giorni.

B.6 Obblighi del Responsabile

Il Responsabile si impegna a:

  • trattare i dati esclusivamente su istruzione documentata del Titolare
  • garantire la riservatezza del personale autorizzato al trattamento
  • adottare misure tecniche e organizzative adeguate ex art. 32 GDPR (crittografia in transito TLS 1.3 e a riposo AES-256, controllo accessi basato su ruoli, logging, backup cifrati)
  • assistere il Titolare nell'evasione delle richieste degli interessati (artt. 15-22 GDPR)
  • notificare al Titolare eventuali data breach senza ingiustificato ritardo e comunque entro 48 (quarantotto) ore lavorative dalla conoscenza, fornendo le informazioni di cui all'art. 33 GDPR per consentire al Titolare di adempiere ai propri obblighi di notifica
  • non avvalersi di sub-responsabili diversi da quelli autorizzati in B.7 senza previa autorizzazione scritta del Titolare

B.7 Sub-responsabili autorizzati (alla firma)

Sub-responsabileSedeFinalitàGaranzie trasferimento
Vercel Inc.USAHosting applicazione webSCCs UE 2021/914
Supabase Inc.USADatabase PostgreSQL + object storageSCCs UE 2021/914
Anthropic PBCUSAElaborazione AI/OCR dei DDT (modelli Claude)SCCs UE 2021/914 + misure supplementari

Eventuali variazioni di sub-responsabili saranno comunicate al Titolare con preavviso scritto di 30 giorni, durante i quali il Titolare potrà sollevare obiezioni motivate; in caso di obiezione fondata e non superabile, ciascuna Parte potrà recedere dal contratto senza penalità con effetto al termine del preavviso.

B.8 Trasferimenti extra-UE

I trasferimenti di dati personali verso Paesi terzi (in particolare USA) sono effettuati sulla base delle Standard Contractual Clauses (SCCs) approvate dalla Commissione Europea con Decisione 2021/914, integrate da misure supplementari ove necessario (pseudonimizzazione, crittografia end-to-end, minimizzazione).

B.9 Diritto di audit

Il Titolare può richiedere, con preavviso scritto di almeno 30 giorni e non più di una volta l'anno (salvo in caso di data breach accertato), documentazione probante il rispetto del presente DPA (es. certificazioni, report ISO 27001, penetration test).

B.10 Cessazione

Alla cessazione del contratto principale, il Responsabile, a scelta del Titolare, restituirà o cancellerà tutti i dati personali trattati, fornendo attestazione scritta della cancellazione entro 60 giorni.



ALLEGATO C — CHECKLIST DI ONBOARDING TECNICO

Al fine di avviare regolarmente la Fase 1, il Cliente si impegna a fornire al Fornitore, entro 10 giorni lavorativi dalla firma, quanto segue:

#ElementoResponsabile ClienteStatus
1Credenziali ODBC di lettura/scrittura verso ambiente IBM i di collaudoMaurizio Di Berardino[ ]
2Credenziali ODBC di lettura/scrittura verso ambiente IBM i di produzioneMaurizio Di Berardino[ ]
3Tracciato record del gestionale attuale (se esistente)Team IT[ ]
4Anagrafica fornitori attivi con P.IVA, CF, ragione sociale (export CSV)Team IT / Amministrazione[ ]
520 DDT campione (PDF/scansioni reali) per calibrazione OCRAmministrazione[ ]
6Accesso in lettura alla cartella SharePoint DDTTeam IT[ ]
7Dettagli rete e VPN (se richiesti per accesso ambiente)Team IT[ ]
8Designazione referente tecnico (in orario d'ufficio) per la fase di integrazioneMaurizio Di Berardino[ ]
9Sessione kickoff da programmare (call 60 minuti)Federico Monaco + tecnici[ ]

Fine del documento.