AGLEA SAP Security Blog

Il controllo Three-Way Match in SAP S/4HANA

Scritto da Massimo Manara | May 13, 2026 6:15:00 AM

Cos'è, perché è fondamentale e come viene aggirato nelle frodi reali

Il ciclo Procure-to-Pay è una delle aree più esposte alle frodi nei sistemi ERP aziendali.  Al centro di questo scenario c'è il Three-Way Match: un controllo automatico che SAP esegue prima di autorizzare il pagamento di qualsiasi fattura fornitore. Capire come funziona e, soprattutto, come viene aggirato, è fondamentale per chiunque si occupi di internal audit, compliance o fraud detection su sistemi SAP S/4HANA.

Quali le statistiche?

Ogni anno, secondo l'Association of Certified Fraud Examiners (ACFE), le organizzazioni perdono in media il 5% del fatturato annuo a causa di frodi interne e il ciclo acquisti rappresenta costantemente uno dei vettori principali.  

 

Cos'è il Three-Way Match

Il Three-Way Match è un controllo di coerenza che mette a confronto tre documenti indipendenti generati in momenti diversi del processo di acquisto.

 

  • Ordine di acquisto (OdA) - Purchase Order

L'ordine d'acquisto emesso dall'ufficio acquisti verso il fornitore. Stabilisce quantità, prezzo unitario, condizioni di consegna e centro di costo. In SAP risiede nelle tabelle EKKO (testata) ed EKPO (posizioni).

 

  • Entrata Merci - Good Receipt (GR)

La registrazione dell'effettivo arrivo fisico della merce in magazzino, eseguita dal magazziniere al momento del ricevimento. Certifica che i beni ordinati sono stati consegnati nella quantità e qualità attesa. In SAP genera un movimento materiale di tipo 101 nelle tabelle MKPF  e MSEG, aggiornando contestualmente lo stock nelle tabelle MARD.

 

  • Verifica fattura - Invoice Verification (IV)

La fattura emessa dal fornitore, registrata dall'ufficio contabilità fornitori tramite la transazione MIRO. Risiede nelle tabelle RBKP (testata) e RSEG (posizioni).

 

Tabella tabelle ECC vs S/4HANA

 

 Legacy (ECC)   CDS View S/4HANA 2023 
 EKKO + EKPO  I_PurchaseOrder + I_PurchaseOrderItem 
 MKPF + MSEG  I_MaterialDocumentItem 
 RBKP + RSEG  I_SupplierInvoice + I_SupplierInvoiceItem 
 MARD  MARD / I_MRPStocksByStorageLocation 

 

SAP esegue il match automaticamente durante la registrazione della fattura in MIRO, confrontando quantità e prezzo sui tre documenti. Se entrambi i controlli passano, la fattura viene rilasciata per il pagamento automatico tramite transazione  F110.
Se anche solo uno fallisce, la fattura viene bloccata (stato R) e rimane in attesa di sblocco manuale tramite la transazione MRBR.

 

 Perché è un controllo fondamentale 

 

  • Impedisce che vengano pagate fatture per merce non ordinata, non ricevuta, o a prezzi superiori a quelli contrattualizzati. Senza questo controllo, un fornitore potrebbe emettere fatture per quantità superiori a quelle consegnate e ricevere il pagamento prima che qualcuno se ne accorga.

  • Il processo coinvolge obbligatoriamente tre funzioni aziendali diverse: l'ufficio acquisti che emette il PO, il magazzino che registra il GR, la contabilità che registra la fattura. Nessuna singola persona può completare l'intero ciclo da sola, rendendo necessaria la collusione tra più soggetti per commettere una frode.

  • Ogni documento lascia una traccia immutabile nel sistema con data, ora e utente che ha eseguito la registrazione. Questo rende possibile ricostruire l'intera catena di eventi in caso di contestazione o indagine forense.



Dal punto di vista normativo, il Three-Way Match è esplicitamente citato nei framework di controllo interno COSO e nei requisiti del D.Lgs. 231/2001 come misura preventiva per i reati di corruzione e malversazione nel ciclo passivo.

 

OK che abbiamo visto come funziona, come potrebbe essere "aggirato" e quali sono i rischi?

 

Come viene aggirato: il Phantom Goods Receipt

Il Three-Way Match è efficace solo a una condizione fondamentale: che i tre documenti siano genuinamente indipendenti tra loro, generati da persone diverse in risposta a eventi reali. Quando questa indipendenza viene violata, il controllo passa regolarmente ma la frode è già avvenuta.

 

Lo schema più sofisticato e documentato nei casi reali è il Phantom Goods Receipt, o GR fittizio. Ecco come funziona in un caso concreto in questo scenario:

 

Mario Rossi è responsabile dell'ufficio acquisti di una società manifatturiera e ha accesso sia alla transazione MIGO (registrazione movimenti materiale) che a MIRO (registrazione fatture). Nel corso di dodici mesi registra sistematicamente entrate merci (MIGO) fittizi per forniture mai avvenute, poi fa corrispondere fatture reali del fornitore compiacente.



Fase 1 - Creazione del PO legittimo

Viene emesso un ordine d'acquisto regolare per 500 unità di materia prima a 100 € l'una, totale 50.000 €. Il PO esiste, è autorizzato, e la necessità di acquisto è reale.


Fase 2 - Registrazione del GR fittizio

Invece di aspettare la consegna fisica, Mario Rossi registra in MIGO un movimento 101 (entrata merci) per le 500 unità alle 23:47 di un sabato sera. La merce non è mai arrivata in magazzino. SAP aggiorna la tabella MSEG con la quantità ricevuta. Se l'articolo è gestito a valore e non a quantità fisica*, o se il magazzino non esegue inventari frequenti, la discrepanza può passare inosservata per settimane.

 

* Articoli gestiti a quantità (es. componenti meccanici numerati, attrezzature, ricambi) ogni unità è tracciata individualmente. Se MARD dice che ci sono 500 pezzi e il magazziniere ne conta 450, la discrepanza è immediatamente evidente durante qualsiasi verifica fisica.


*Articoli gestiti a valore (es. materie prime sfuse come acciaio in kg, liquidi chimici in litri, commodity); lo stock viene espresso come valore monetario aggregato, non come conteggio fisico di unità discrete. In questo caso, un GR fittizio per 500 kg di acciaio aumenta il valore di MARD di un importo che si somma a tutto lo stock esistente. Se il materiale è presente in grandi quantità, la variazione si diluisce nel totale ed è praticamente invisibile senza un'analisi specifica.


Fase 3 - Registrazione della fattura


Il giorno successivo, Mario Rossi registra in MIRO la fattura del fornitore per 50.000 €. SAP esegue il Three-Way Match: trova il PO con 500 unità a 100 €, trova il GR con 500 unità ricevute, trova la fattura per 500 unità a 100 €. Il controllo passa. La fattura viene contabilizzata e schedulata per il pagamento automatico in F110.


Fase 4 - Lo storno


Dieci giorni dopo il pagamento, Mario Rossi registra uno storno del GR (movimento 102), apparentemente per un "errore di registrazione". Il pagamento è già uscito. La merce non è mai arrivata. Il fornitore trattiene l'importo e ne cede una parte a Mario Rossi.

 

Quali segnali per rilevare il caso?

 

  • Timing anomalo. Il GR registrato alle 23:47 di sabato, fuori da qualsiasi orario lavorativo normale

  • SOD violation. Lo stesso utente ha registrato sia il GR che la fattura, violando la segregation of duties

  • Storno rapido. Il GR stornato entro 30 giorni dal pagamento della fattura

  • Stock invariato. Lo stock in MARD non ha mostrato la variazione attesa dopo il GR

  • Split transaction - Il fornitore con pattern di fatture sempre esattamente alla soglia di approvazione

 

Quali le contromisure?

  • Autorizzazioni
  • Workflow autorizzativi su MIGO (da standard non ci sono)
  • Tolleranze/controlli su inventario

 

La gestione della Segregation Of Duties in questo esempio è fondamentale per limitare il rischio.