Skip to main content

Creare una nuova regola

Le regole si creano dalla UserInterface:

Categorie di spesa -> Motore regole -> Aggiungi regola

La form crea un record nella tabella reconciliation_rules tramite:

POST /data-service/reconciliation/rules

Una regola automatica deve descrivere un comportamento ricorrente. I casi una tantum vanno gestiti dalla riconciliazione manuale, non creando una regola.

Cosa scrive la riconciliazione

La riconciliazione può scrivere o aggiornare queste tabelle:

TabellaUso
reconciliation_rulesRegole create, modificate o cancellate dal Rule Engine.
reconciliation_runsAudit di ogni esecuzione del motore.
reconciliation_decisionsDecisione prodotta per ogni movimento valutato.
bank_transactionsStato del movimento, esito, entità riconciliata, run e regola applicata.
bank_transaction_splitsRighe contabili del movimento. Anche una regola semplice può creare uno split FULL.
expensesSpesa effettiva creata o aggiornata.
expected_expensesSpesa attesa marcata MATCHED.
expense_payment_matchesCollegamento tra movimento e spesa attesa.
rent_installmentsRata affitto marcata PAID.
rent_payment_matchesCollegamento tra movimento e rata affitto.

Campi principali

Nome

Nome leggibile della regola.

Esempi:

  • Affitto Rossi
  • Bolletta telefono Pozzo
  • Ignora emolumenti

Descrizione

Testo opzionale per spiegare lo scopo della regola.

Viene usato anche come descrizione di default quando la regola crea una spesa.

Tipo regola

La form espone due tipi:

TipoSignificato
RiconciliaIl movimento deve essere classificato e riconciliato.
IgnoraIl movimento deve essere escluso dalla contabilità operativa.

Ignora non crea spese, split, match affitto o match spese attese. Aggiorna il movimento come IGNORED e scrive l'audit.

Riconcilia usa il target, la classificazione e gli eventuali split per decidere quali righe creare.

Tipo movimento

Filtra la regola per direzione del movimento.

ValoreSignificato
EntrataSolo movimenti CREDIT.
UscitaSolo movimenti DEBIT.

Per una regola di riconciliazione automatica è consigliato scegliere sempre una direzione esplicita.

Validita

La regola può avere una data di inizio e una data di fine.

CampoEffetto
Data inizioLa regola non viene valutata per movimenti precedenti.
Data fineLa regola non viene valutata per movimenti successivi.

Se una data non è valorizzata, quel limite resta aperto.

Esempio:

Data inizio = 2024-01-01
Data fine = 2024-12-31

La regola vale solo per movimenti del 2024.

Priorita

Numero che determina l'ordine di valutazione.

Valori più bassi vengono valutati prima.

Esempio:

  • 10: regola molto specifica;
  • 100: regola standard;
  • 500: regola generica.

Sezione Match

La sezione Match definisce come riconoscere il movimento bancario.

Campo

Campo della transazione da controllare.

CampoDescrizione
descriptionCausale o descrizione del movimento.
counterparty_nameNome controparte/intestatario.
counterparty_ibanIBAN della controparte.
amountImporto del movimento.
external_referenceRiferimento esterno banca/provider.

Operatore

OperatoreDescrizione
containsIl campo contiene il valore inserito.
equalsIl campo è uguale al valore inserito.
fuzzyMatch approssimato su testo simile.
regexMatch tramite espressione regolare.
amount_equalsImporto uguale, con tolleranza opzionale.
amount_betweenImporto compreso tra minimo e massimo.

Valore

Valore usato dall'operatore.

Esempi:

  • ADDEBITO SEPA DD PER BOLLETTA TELEFONICA
  • AFFITTO VIA ROMA
  • IT60X0542811101000000123456
  • 740.00

Tolleranza importo

Usata solo con amount_equals.

Esempio:

Importo = 740
Tolleranza = 2

Il match passa per importi tra 738 e 742.

Target

Il target definisce che cosa deve produrre una regola Riconcilia.

TargetQuando usarloEffetto
Expense / classificazioneMovimento ricorrente da classificare senza spesa attesa pianificata.Crea una expenses, uno o più bank_transaction_splits, aggiorna bank_transactions.
Spesa attesa ricorrentePagamento ricorrente già pianificato in expected_expenses.Cerca una spesa attesa aperta, crea expense_payment_matches, aggiorna expected_expenses a MATCHED, crea split e spesa effettiva.
Rata affitto ricorrenteIncasso ricorrente di affitto legato a un contratto.Cerca una rata aperta, crea rent_payment_matches, aggiorna rent_installments a PAID, crea split.

Una regola con target Spesa attesa ricorrente non deve puntare a una singola bolletta. Deve trovare l'istanza corretta della serie ricorrente in base a proprietà, categoria, importo e data.

Se non esistono righe aperte in expected_expenses, la regola può fare match sulla descrizione ma non viene applicata: il movimento finisce in NEEDS_REVIEW.

Scope

Lo scope limita dove la regola può essere considerata dal motore. Non è la classificazione finale.

ScopeEffettoQuando usarlo
GlobaleLa regola può essere valutata su tutti i movimenti accessibili.Regole generali, ad esempio movimenti tecnici da ignorare.
Bank accountLa regola vale solo per uno specifico conto.Causali ricorrenti che arrivano sempre da quel conto.
ProprietaLa regola è legata a una specifica proprietà.Mutuo, bollette o spese ricorrenti di una proprietà.
ContrattoLa regola è legata a uno specifico contratto.Incassi affitto o pagamenti legati al contratto.

La classificazione finale viene invece definita dai campi Property, Contract, Category e dalle righe split.

Classificazione

Per le regole Riconcilia, i campi di classificazione definiscono come attribuire il movimento:

CampoUso
PropertyProprietà attribuita alla spesa o allo split.
ContractContratto collegato, se rilevante.
Bank accountConto usato come scope o informazione di azione.
CategoryCategoria contabile da assegnare.
Stato expenseStato della spesa creata: CONFIRMED, PAID, DRAFT.

Per target Spesa attesa ricorrente, property/category/contract vengono usati anche per cercare la riga aperta in expected_expenses.

Per target Rata affitto ricorrente, il contratto viene usato per cercare la rata aperta in rent_installments.

Split movimento

Lo split non è più un tipo regola separato. È una modalità applicabile a ogni regola Riconcilia.

Se lo split è disattivato, il motore crea una riga FULL con l'intero importo.

Se lo split è attivo, puoi aggiungere più righe. Ogni riga definisce come allocare una quota del movimento.

Campo splitSignificato
TipoFull, Importo, %, Residuo.
ValoreImporto fisso o percentuale, se richiesto dal tipo.
PropertyProprietà della riga.
ContractContratto della riga.
CategoryCategoria della riga.
DescrizioneDescrizione contabile della quota.

Esempio di incasso affitto:

TipoValoreCategoriaDescrizione
Importo900AffittoCanone
Importo200CondominioRimborso spese
ResiduoUtenzeConguaglio

Ferma elaborazione dopo il match

Se attivo, quando la regola passa il motore non valuta altre regole per lo stesso movimento.

È consigliato lasciarlo attivo per regole specifiche.

Esempi

Bolletta telefonica senza spese attese

Usa il target Expense / classificazione.

Tipo regola: Riconcilia
Tipo movimento: Uscita
Match: description contiene ADDEBITO SEPA DD PER BOLLETTA TELEFONICA
Target: Expense / classificazione
Scope: Proprieta
Property: Appartamento Pozzo
Category: Telefono

Il motore crea una spesa effettiva e classifica il movimento.

Bolletta telefonica pianificata

Usa il target Spesa attesa ricorrente.

Prerequisito: devono esistere righe aperte in expected_expenses per la bolletta telefonica.

Tipo regola: Riconcilia
Tipo movimento: Uscita
Match: description contiene ADDEBITO SEPA DD PER BOLLETTA TELEFONICA
Target: Spesa attesa ricorrente
Property: Appartamento Pozzo
Category: Telefono

Il motore cerca una spesa attesa aperta compatibile e la marca MATCHED.

Affitto ricorrente

Usa il target Rata affitto ricorrente.

Tipo regola: Riconcilia
Tipo movimento: Entrata
Match: description contiene BONIFICO AFFITTO
Target: Rata affitto ricorrente
Scope: Contratto
Contract: Contratto #12
Category: Affitto

Il motore cerca la rata aperta del contratto e la marca PAID.