> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mattone.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Reconciliation: banche e file di import

> Quali file accetta il tool, quali banche sono già mappate, come si mappa una banca nuova e cosa succede con i duplicati.

## Da dove vengono i movimenti

Due strade, che possono convivere:

1. **File esportato dalla banca**, caricato dal wizard **Import Mensile**. Funziona con qualunque banca che esporti una tabella.
2. **Revolut Business** in diretta, dallo stesso wizard. Vedi [Revolut Business](/integrazioni/reconciliation/revolut).

## Formati accettati

* **Excel** `.xlsx` e `.xls`, oppure **CSV** (separatore `;`, `,` o tab: lo riconosce da solo). Massimo **50 MB**. L'unica via da usare per caricare è il wizard **Import Mensile**: se un file viene rifiutato per dimensione ed è sotto i 50 MB, vuol dire che non stai passando di lì.
* Viene letto **solo il primo foglio** del file. Se la banca esporta più fogli, sposta la tabella nel primo.
* La **riga di intestazione** viene cercata automaticamente anche se non è la prima (molte banche mettono sopra logo e dati del conto).
* **PDF: no.** Il tool non legge l'estratto conto in PDF. Se la banca dà solo PDF, va convertito in Excel prima (la maggior parte delle home banking ha comunque un export CSV o Excel nella sezione movimenti).

## Come funziona l'import

<Steps>
  <Step title="Scegli il conto">Il tool **non indovina la banca dal file**: sei tu a scegliere il conto bancario su cui caricare. Il tipo del conto (Revolut, Sella, Intesa, UniCredit, Fineco, altro) precompila la mappa delle colonne.</Step>
  <Step title="Controlla la mappa delle colonne">Il tool propone quale colonna del file è la data, la descrizione, la controparte, l'importo. Se il file usa nomi diversi prova a riconoscerli per somiglianza. Correggi se serve: la mappa si può **salvare sul conto**, così il mese dopo non la rifai.</Step>
  <Step title="Anteprima">Vedi le righe come verranno importate, con i duplicati già segnalati. Nota che per i movimenti bancari l'anteprima segnala solo i duplicati **rispetto a quello che è già nel tenant**: vedi sotto, [Duplicati](#duplicati).</Step>
  <Step title="Importa">Le righe entrano nel tenant. Se hai sbagliato file, il bottone **Cancella ultimo import** sulla pagina **Transazioni bancarie** le toglie.</Step>
</Steps>

<Warning>
  **«Cancella ultimo import» non è un annulla a tempo.** Non hai cinque minuti per ripensarci: il tool prende la riga più recente che trovi nel tenant e cancella tutte quelle entrate nei cinque minuti **prima di quella**. Quindi funziona anche giorni dopo — ma proprio per questo, se nel frattempo hai caricato altro, l'«ultimo import» che cancella è il più recente, non quello sbagliato. Il bottone mostra sempre quante righe toccherà e di che data: **leggi il conteggio prima di confermare**, perché l'operazione è irreversibile.
</Warning>

## Banche già mappate

| Banca | Colonne attese nel file |
| - | - |
| **Revolut** | Data operazione · Controparte · Descrizione · Importo totale EUR |
| **Sella** | stesse di Revolut |
| **Intesa Sanpaolo** | Data contabile · Descrizione estesa · Accrediti · Addebiti |
| **Fineco** | Data · Descrizione completa · Entrate · Uscite |
| **UniCredit** | Data · Causale · Avere · Dare (schema **da confermare** sul primo export vero) |
| **Altro** | nessuna mappa: la costruisci tu al primo import e la salvi sul conto |

Per le banche con due colonne (Accrediti/Addebiti, Entrate/Uscite) il tool le unisce in un unico importo con segno.

## Una banca nuova: cosa serve

Nella maggior parte dei casi **non serve toccare il codice**: crea il conto come tipo «Altro», mappa le colonne al primo import e salva la mappa. Da lì in poi è come una banca supportata.

Serve un intervento sul codice solo se vuoi che la banca compaia **precompilata** per tutti gli studenti. In quel caso i punti da toccare sono quattro, tutti nel repo (vedi [Regole per chi tocca il codice](/integrazioni/reconciliation/regole-codice-deploy)):

1. le colonne di default della banca (`backend/src/bank-accounts/bank-type-defaults.ts`);
2. la voce nel menu a tendina dei tipi di conto (`frontend/src/pages/BankAccountsPage.tsx`);
3. facoltativo, i sinonimi delle colonne per il riconoscimento automatico (`column-mapper.service.ts`);
4. facoltativo, il conto seed creato ai nuovi tenant (`schema-guard.ts`).

Due limiti oggi: il formato della data e il foglio letto **non** sono configurabili per banca. Sulle date il tool applica una regola sola per tutti: quando entrambi i numeri sono ambigui (per esempio `01/12`), legge **giorno/mese**, all'europea, perché europee sono tutte le fonti che entrano qui — estratti conto italiani e file di Booking, Airbnb e Stripe. Se una banca esporta date in un formato che il tool non capisce, va segnalato al team: è una modifica al codice, non alla mappa.

## Duplicati

Un movimento bancario è considerato duplicato se **data, importo e riferimento** coincidono con uno **già presente nel tenant**. Il confronto è solo questo: file nuovo contro quello che c'è già.

* Ricaricare lo stesso file non crea doppioni: le righe già presenti vengono saltate.
* **Dentro lo stesso file non si scarta niente.** Per i movimenti bancari (e per i payout) il controllo fra righe dello stesso file è disattivato apposta: due bonifici veri possono avere stessa data e stesso importo, e buttarne via uno sarebbe un errore silenzioso in meno visibile del doppione. Quindi se un file contiene davvero la stessa riga due volte, entrano entrambe.
* Il rischio resta **fra un import e l'altro**: due movimenti **diversi** con stessa data, stesso importo e riferimento vuoto, caricati in due momenti diversi, vengono visti come uno solo e il secondo viene saltato. Succede con banche che lasciano il campo riferimento vuoto: in quel caso conviene mappare come «riferimento» una colonna che varia (id operazione, causale completa).

<Note>
  Il file di Cosmica: Revolut, export CSV dei movimenti dalla web app, caricato una volta al mese sul conto Revolut del tenant Cosmica. Se vuoi un esempio di file che funziona, è quello.
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.