Skip to main content

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.

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

1

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.
2

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.
3

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.
4

Importa

Le righe entrano nel tenant. Se hai sbagliato file, il bottone Cancella ultimo import sulla pagina Transazioni bancarie le toglie.
«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.

Banche già mappate

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):
  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).
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.