Alege platforma — SAGA Desktop, SAGA Web, Arhivă sau În lucru — apoi robotul. Contextul general (viziune, cadru tehnic) e pe pagina de prezentare.
Apasă una dintre platformele de mai sus, apoi alege robotul din lista care apare. Fiecare specificație descrie ce face robotul, în pași: date de intrare, flux, reguli de procesare, gestionarea erorilor și criterii de acceptanță.
Roboții care lucrează în SAGA instalat local: logarea și importul de imobilizări.
Roboții de pe web3.sagasoft.ro: onboarding-ul clientului nou, logare, import XML-uri, import articole contabile din CSV, validările de facturi, închiderea de lună, generarea balanței și a declarațiilor.
Specificații scoase din uz, păstrate pentru istoric: închiderea încasărilor și plăților și vechile importuri pe fișiere.
Specificații încă nefinalizate: închiderea de lună, generarea declarațiilor (D301, D390, D406) și importul de articole contabile.
Robotul configurează un nou client (SRL) în SAGA Web (web3.sagasoft.ro), pornind de la datele deja existente în BONO.
Toate valorile vin din atributele clientului din BONO.
| Câmp în SAGA | Atribut BONO | Necesar |
|---|---|---|
| Denumire | BONOclient_denumire | Obligatoriu |
| Cod fiscal (fără RO) | BONOclient_CUI | Obligatoriu |
| Nr. Reg. Comerțului | BONOclient_J | Obligatoriu |
| Cod CAEN principal | BONOclient_CAEN_Prim | Obligatoriu |
| Capital social | BONOclient_capitalSocial | Obligatoriu |
| Localitate / Județ / Adresă | BONOclient_Oras · _Judet · _Adresa | Obligatoriu |
| Cont 1 (IBAN) | BONOclient_IBAN | Opțional |
| Impozit (micro / profit) | BONOclient_impozit | Obligatoriu |
| Mod plată TVA | BONOclient_TVA | Obligatoriu |
| Luna / An începere | BONOclient_lunaInfiintare · _anInfiintare | Obligatoriu |
| Nume acționar (conturi analitice) | BONOclient_numeActionar | Obligatoriu |
| Administrator — Nume și Prenume (persoana autorizată D300) | BONOclient_numeAdministrator · _prenumeAdministrator | Obligatoriu |
Înainte de configurare, robotul adaugă codul fiscal al clientului (BONOclient_CUI) în contul de utilizator Bono de pe www.sagasoft.ro, la secțiunea „Licențe web”.
0.1 — Se loghează pe www.sagasoft.ro.
Completează Utilizator și Parolă (contul Bono) și apasă Login.
0.2 — Deschide Licențe web.
Apasă Licențe, apoi tab-ul Licențe web.
0.3 — Adaugă licența web pentru codul fiscal al clientului.
Apasă Adaugă licența web. În câmpul Cod fiscal completează codul fiscal al clientului (BONOclient_CUI), apoi apasă Salvează.
Din bara de meniu, deschide Administrare → Configurare societăți.
Apasă Adaug.
Se creează o linie nouă, cu cod generat automat.
Completează Denumire (BONOclient_denumire), Cod fiscal fără prefixul RO (BONOclient_CUI) și Nr. Reg. Comerțului (BONOclient_J).
Lasă Blocat debifat.
Apasă Salvez.
Selectează Tip contabilitate „Societăți comerciale”.
Completează Cod CAEN (BONOclient_CAEN_Prim) și Capital social (BONOclient_capitalSocial).
Pe tab-ul Sediu social, completează Localitatea (BONOclient_Oras), Județul (BONOclient_Judet), Strada și Numărul (BONOclient_Adresa).
La Cont 1, completează IBAN-ul principal (BONOclient_IBAN) și denumirea băncii (BONOclient_banca).
Pasul se execută doar dacă avem informația din Vertigo; dacă lipsește, robotul sare peste el.
Setează luna și anul de începere (BONOclient_lunaInfiintare, BONOclient_anInfiintare).
Lasă soldurile 0 și apasă Validez.
Meniul firmei se activează.
8.1 — Setează clientul ca plătitor de TVA lunar.
Tab-ul decl 300 apare doar la firmele plătitoare de TVA, așa că setarea se face întâi temporar: în Administrare → Configurare societăți, robotul selectează clientul și apasă Modific. Pe tab-ul Informații generale, în secțiunea Setări, la „Modul de plată al TVA-ului” alege Lunar, apoi apasă Salvez.
8.2 — Completează datele persoanei autorizate.
Deschide Situații → Jurnal de cumpărări / vânzări, tab-ul Decontul de tva → decl 300 → tab-ul Alte informații.
Completează câmpurile „Persoana autorizată” cu datele administratorului: Nume (BONOclient_numeAdministrator), Prenume (BONOclient_prenumeAdministrator), iar la Funcția se completează întotdeauna „administrator”.
După completare, robotul se reîntoarce la Administrare → Configurare societăți, selectează clientul și trece la pasul următor, unde setează regimul lui corect de TVA.
Bifează Impozit pe venit (microîntreprindere) dacă firma e microîntreprindere, altfel lasă debifat (BONOclient_impozit). Caseta se află în panoul din dreapta al ecranului Configurare societăți — același ecran ca la pasul 4.
Pe tab-ul Informații generale, în secțiunea Setări, setează regimul corect de TVA al clientului (BONOclient_TVA) — înlocuiește setarea temporară „plătitor lunar” de la pasul anterior.
Păstrează FIFO și „Fără casă de marcat”.
Deschide planul de conturi.
Adaugă conturile contabile:
BONOclient_numeActionar).Deschide Administrare → Numere și serii.
Selectează din listă „Factura de ieșire” și apasă Adaugă.
Completează primul număr și ultimul număr, apoi apasă Salvez.
Se pot adăuga oricâte serii preluate din facturare.
La final, robotul importă în Articole contabile un fișier CSV cu nota contabilă de subscriere a capitalului social la înființare: 456 (debit) = 1011 (credit). Suma este valoarea capitalului social, preluată din Vertigo (BONOclient_capitalSocial).
Fișierul are exact formatul de la Import articole contabile — antet DATA,NDP,CONT_D,CONT_C,SUMA,EXPLICATIE, CSV separat prin virgulă, UTF-8, CRLF — ca în exemplul cu nota contabilă de salarii.
Importul se face în Operații → Articole contabile, prin funcția Import date, urmând pas cu pas procedeul din specificația Import articole contabile.
6.Import_subscriere_capital.csv · model de notă contabilă — subscrierea capitalului social la înființareRobot de sine stătător: pornește SAGA Desktop și deschide sesiunea de lucru pe firma țintă. Este precondiția comună a tuturor roboților care operează pe SAGA Desktop — rulează o dată, la începutul lanțului, apoi predă controlul robotului următor.
| Parametru | Descriere |
|---|---|
| Firma țintă | Denumirea firmei SAGA pe care se lucrează (ex. „BONO FINTECH TEST SAGA SRL”). |
| Data de lucru | Data sesiunii — câmpul Data din ecranul de logare. |
| Contul de conectare la WEB. | |
| Parolă | Parola contului. Mod de stocare și furnizare către robot — de clarificat (securitate). |
Se lansează aplicația; apare ecranul de logare cu lista firmelor.
Robotul caută firma în listă după denumirea exactă și o selectează.
Se completează câmpul Data și, în panoul „Date conectare la WEB”, e-mailul și parola.
Fereastra principală SAGA se deschide, cu denumirea firmei în bara de titlu. Robotul confirmă sesiunea și predă controlul robotului următor.
SAGA Desktop · pornind de la un fișier CSV, robotul introduce automat furnizori noi în nomenclatorul firmei, reproducând procedura manuală din SAGA.
| Poziție | Antet CSV | Câmp SAGA | Observații |
|---|---|---|---|
| 1 | Denumire | Denumire furnizor | Obligatoriu. Denumirea completă; fără virgule. |
| 2 | COD_FISCAL | Cod fiscal / CNP | La furnizori externi poate fi în format pe care SAGA îl semnalează ca „incorect” (ex. 3206488LH). |
| 3 | Adresa | Adresă | Adresa completă; fără virgule. |
| 4 | LOCALITATE | Localitate | Localitate sau sector (ex. BUCURESTI SECTOR 3). Gol pentru externi. |
| 5 | Judet | Județ | Ex. Bucuresti. Gol pentru externi. |
| 6 | Tara | Țară | Cod țară ISO (RO, IE). |
| 7 | IBAN | Cont bancar (IBAN) | Opțional; IBAN fără spații. |
| 8 | Banca | Bancă | Denumirea băncii. Opțional. |
| 9 | Email | Adresa de e-mail a furnizorului. Opțional. |
Format (conform fișierului de import): CSV separat prin virgulă, fără ghilimele (niciun câmp nu conține virgulă); encoding UTF-8, recomandat fără BOM; terminator de linie CRLF; primul rând = antet cu denumirile exacte de coloană. Structura este identică cu cea de la importul de clienți. Fișier: Import_furnizori_<luna>.csv (exemplu observat: 1.Import_furnizori_iunie.csv).
1.Import_furnizori_iunie.csv · exemplu real de fișier de import (iunie)Din meniul Fișiere se alege Furnizori (F11).
În fereastra Furnizori se apasă butonul de import din bara de instrumente.
Se deschide „Import terți din fișiere”. Butonul […] la câmpul Fișier; în dialog se alege tipul „Fișiere CSV” și fișierul.
Fiecare coloană trebuie populată automat și cu denumirea corectă (Denumire, COD_FISCAL, Adresa, LOCALITATE, Judet, Tara, IBAN, Banca, Email). Robotul verifică maparea, apoi apasă Import.
La furnizorii externi apar două avertizări consecutive. Robotul apasă Yes la ambele; mesajele se tratează în buclă, fără a presupune un număr fix de pop-up-uri.
Importul se termină fără mesaj de final. Robotul detectează finalizarea (revenirea la lista de furnizori) și generează raportul de rulare.
| Regulă | La nerespectare |
|---|---|
| Fișier existent și ne-gol | Oprire cu eroare; nu se deschide SAGA. |
| Antet prezent, 9 coloane în ordinea așteptată | Oprire / semnalare; maparea ar fi greșită. |
| Denumire completată pe fiecare rând | Rând marcat ca eroare (sări sau oprește — de decis). |
| Rânduri duplicate (același cod fiscal) | Avertizare în raport; politică de decis. |
SAGA Desktop · pornind de la un fișier CSV, robotul introduce automat clienți noi în nomenclatorul firmei. Fluxul este simetric cu importul de furnizori — același mecanism SAGA „Import terți din fișiere”, dar pe modulul Fișiere → Clienți.
| Poziție | Antet CSV | Câmp SAGA | Observații |
|---|---|---|---|
| 1 | Denumire | Denumire client | Denumirea completă, inclusiv forma juridică (S.R.L., SRL, PFA, INC, LTD, LLC). Fără virgule. |
| 2 | COD_FISCAL | Cod fiscal / CNP | CUI cu prefix RO pentru plătitorii de TVA; cod VIES cu prefix (ex. EU372045196). La clienți externi SAGA îl poate semnala ca „incorect”. |
| 3 | Adresa | Adresă | Adresa completă; fără virgule. |
| 4 | LOCALITATE | Localitate | Localitate sau sector (ex. SECTOR3, Bacau). |
| 5 | Judet | Județ | Ex. Bucuresti. Gol pentru străini. |
| 6 | Tara | Țară | Denumirea țării (ex. Romania). |
| 7 | IBAN | Cont bancar (IBAN) | IBAN fără spații. |
| 8 | Banca | Bancă | Denumirea băncii. |
| 9 | Email | Adresa de e-mail a clientului. |
Format (conform „PRD Import SAGA — specificația fișierelor”): CSV separat prin virgulă, fără ghilimele (niciun câmp nu conține virgulă); encoding UTF-8, recomandat fără BOM; terminator de linie CRLF; primul rând = antet cu denumirile exacte de coloană. Fișier: Import_clienti_<luna>.csv.
4.Import_clienti.csv · exemplu real de fișier de importDin meniul Fișiere se alege Clienți (F12).
În fereastra Clienți se apasă butonul de import din bara de instrumente (aceeași poziție ca în fereastra Furnizori).
Se deschide „Import terți din fișiere”. Butonul […] la câmpul Fișier; în dialog se alege tipul „Fișiere CSV” și fișierul.
Fiecare coloană trebuie populată automat și cu denumirea corectă (Denumire, COD_FISCAL, Adresa, LOCALITATE, Judet, Tara, IBAN, Banca, Email). Robotul verifică maparea, apoi apasă Import.
La clienții externi, SAGA afișează o singură avertizare de cod fiscal (spre deosebire de furnizori, unde apar două). Robotul apasă Yes; avertizarea poate apărea pentru fiecare client extern în parte — se tratează în buclă.
Importul se termină fără mesaj de final. Robotul detectează finalizarea (revenirea la lista de clienți) și generează raportul de rulare.
| Regulă | La nerespectare |
|---|---|
| Fișier existent și ne-gol | Oprire cu eroare; nu se deschide SAGA. |
| Antet prezent, coloanele în ordinea așteptată | Oprire / semnalare; maparea ar fi greșită. |
| Denumire completată pe fiecare rând | Rând marcat ca eroare (sări sau oprește — de decis). |
| Rânduri duplicate (același cod fiscal) | Avertizare în raport; politică de decis. |
SAGA Desktop · pornind de la un fișier CSV, robotul importă facturi de intrare de la furnizori interni (RO) în modulul Operații → Intrări. Facturile importate apar nevalidate (pictograma „lacăt”) — validarea rămâne în sarcina robotului de validare de pe SAGA Web.
| Poziție | Antet CSV | Câmp SAGA | Observații |
|---|---|---|---|
| 1 | TIP | Cod tip document | Gol = factură fiscală (e-factura); B = bon fiscal fără CUI; C = bon fiscal cu CUI. |
| 2 | FURNIZOR | Furnizor (nomenclator) | Trebuie să existe în Fișiere → Furnizori. Ex. IKEA ROMANIA. |
| 3 | COD_FISCAL | Cod fiscal furnizor | CUI cu prefix RO pentru plătitorii de TVA. |
| 4 | NR_INTRARE | Nr. document | Ex. 15, „FDB26 25405137”, TC41. |
| 5 | DATA | Data documentului | Format zz.ll.aaaa (ex. 24.03.2026); în intervalul de lucru SAGA. |
| 6 | DENUMIRE | Denumire articol / serviciu | Descrierea liniei (ex. „Cheltuieli de protocol”, „Servicii telecomunicatii”). |
| 7 | CONT | Cont contabil | Cont de cheltuială (ex. 6231, 626, 628, 604) — trebuie să existe în planul de conturi. |
| 8 | UM | Unitate de măsură | Ex. SERV, LUNI, BUC. |
| 9 | P_TVA | Procent TVA | Cota TVA din factură (ex. 21); 0 pentru neplătitori. |
| 10 | CANTITATE | Cantitate | Ex. 1. |
| 11 | PRET | Preț / valoare | Separator zecimal punct (ex. 233.25). |
Format (conform „PRD Import SAGA — specificația fișierelor”): CSV separat prin virgulă, fără ghilimele; encoding UTF-8, recomandat fără BOM; terminator de linie CRLF; primul rând = antet cu denumirile exacte de coloană; separator zecimal punct. Un rând = o linie de factură; la facturile cu mai multe linii, informațiile din coloanele 1–5 se repetă identic pe fiecare linie. Fișier: Import_facturi_bonuri_<luna>.csv (fereastra SAGA acceptă XLS, CSV, TXT, DBF și XLSX).
2.Import_facturi_bonuri_iunie.csv · exemplu real de fișier de import (iunie)Din meniul Operații se alege Intrări (F3). Intervalul de lucru trebuie să acopere datele facturilor din fișier.
În fereastra Intrări (facturi & bonuri de casa & avize) se dă click dreapta pe butonul de import din bara de instrumente și se alege „Import alte tipuri de fișiere”.
Se deschide fereastra „Import din fisiere XLS, CSV, TXT, DBF si XLSX” (tab Import fisier). Butonul […] la câmpul Fișier; în dialog se navighează la locația fișierului și se alege tipul „Fișiere CSV”.
Fiecare coloană trebuie populată automat și cu denumirea corectă (TIP, FURNIZOR, COD_FISCAL, NR_INTRARE, DATA, DENUMIRE, CONT, UM, P_TVA, CANTITATE, PRET), inclusiv cele accesibile prin derulare orizontală. Robotul verifică maparea, apoi apasă Import.
Importul se termină fără mesaj de final. Robotul detectează finalizarea (apariția facturilor noi în lista Intrări), verifică prin numărare că facturile au fost create și generează raportul de rulare.
Post-import: facturile apar nevalidate (lacăt). Validarea se face separat, cu robotul de validare existent pe SAGA Web.
| Regulă | La nerespectare |
|---|---|
| Antet CSV exact coloanele așteptate, în ordinea fixă | Oprire cu eroare clară; nu se apasă Import. |
| FURNIZOR + COD_FISCAL nevide pe fiecare rând | Rândul se raportează ca eroare. |
| COD_FISCAL există în nomenclatorul de furnizori | Semnalare înainte de import (dacă e fezabil); altfel tratare la eroare SAGA. |
| DATA validă (ZZ.LL.AAAA), în intervalul de lucru | Rândul se raportează ca eroare. |
| CONT valid (există în planul de conturi) | Semnalare; nu se ghicește contul. |
| Fără duplicate în fișier (NR_INTRARE + COD_FISCAL) | Semnalare; se importă o singură dată sau se oprește (de decis). |
SAGA Desktop · pornind de la un fișier CSV, robotul importă facturi de intrare în valută (furnizori externi) în modulul Operații → Intrări - valuta. Facturile importate apar nevalidate (pictograma „lacăt”) — validarea rămâne în sarcina robotului de validare de pe SAGA Web.
| Poziție | Antet CSV | Câmp SAGA | Observații |
|---|---|---|---|
| 1 | FURNIZOR | Furnizor (nomenclator) | Denumirea furnizorului extern (ex. ADOBE SYSTEMS SOFTWARE IRELAND LTD). |
| 2 | COD_FISCAL | Cod fiscal furnizor | Cod fiscal extern (ex. 6364992H, EU528377759). |
| 3 | NR_INTRARE | Nr. document | Ex. 3405060684. |
| 4 | DATA | Data documentului | Format zz.ll.aaaa; în intervalul de lucru SAGA. |
| 5 | MONEDA | Monedă | Cod valută (ex. EUR, USD). |
| 6 | DENUMIRE | Denumire articol / serviciu | Descrierea liniei (ex. „Prestari servicii”). |
| 7 | CONT | Cont contabil | Ex. 471, 628 — trebuie să existe în planul de conturi. |
| 8 | INF_SUPLM | Informații suplimentare | Text liber (ex. perioada de serviciu). Fără virgule; atenție la liniuțe „–” (en-dash). |
| 9 | TIP | Cod tip | „T” = taxare inversă (folosit la facturile externe); gol dacă fără TVA. |
| 10 | UM | Unitate de măsură | Ex. SERV. |
| 11 | P_TVA | Procent TVA | Ex. 21. |
| 12 | CANTITATE | Cantitate | Ex. 1. |
| 13 | PRET | Preț / valoare | În valuta din MONEDA (ex. 1200); separator zecimal punct. |
Format (conform „PRD Import SAGA — specificația fișierelor”): CSV separat prin virgulă, fără ghilimele; encoding UTF-8, recomandat fără BOM; terminator de linie CRLF; primul rând = antet cu denumirile exacte de coloană. Un rând = o linie de factură; la facturile cu mai multe linii, informațiile din coloanele 1–5 se repetă identic pe fiecare linie. Fișier: Import_facturi_externe_<luna>.csv (exemplu observat: 3.Import_facturi_externe_iunie.csv).
3.Import_facturi_externe_iunie.csv · exemplu real de fișier de import (iunie)Din meniul Operații se alege Intrări - valuta. Intervalul de lucru trebuie să acopere datele facturilor din fișier.
În fereastra Intrari - valuta (Importuri) se dă click dreapta pe butonul de import din bara de instrumente și se alege „Import alte tipuri de fișiere” (ca la facturile RO).
Se deschide fereastra „Import din fisiere XLS, CSV, TXT, DBF si XLSX” (tab Import fisier). Butonul […] la câmpul Fișier; în dialog se navighează la locația fișierului și se alege tipul „Fișiere CSV”.
Fiecare coloană trebuie populată automat și cu denumirea corectă (FURNIZOR, COD_FISCAL, NR_INTRARE, DATA, MONEDA, DENUMIRE, CONT, INF_SUPLM, TIP, UM, P_TVA, CANTITATE, PRET), inclusiv cele accesibile prin derulare orizontală. Robotul verifică maparea, apoi apasă Import.
Pas suplimentar față de importul de facturi RO: după apăsarea butonului Import, pentru facturile din afara UE, SAGA cere ca înainte de adăugarea liniilor în factură să fie apăsat butonul Poziții tarifare… — acesta declanșează adăugarea liniilor în factură. Robotul apasă butonul pentru fiecare factură din afara UE.
Importul se termină fără mesaj de final. Robotul detectează finalizarea (apariția facturilor noi în lista Intrari - valuta), verifică prin numărare că facturile au fost create și generează raportul de rulare.
Post-import: facturile apar nevalidate (lacăt). Validarea se face separat, cu robotul de validare de pe SAGA Web.
| Regulă | La nerespectare |
|---|---|
| Antet CSV exact cele 13 coloane, în ordinea fixă | Oprire cu eroare clară; nu se apasă Import. |
| FURNIZOR + COD_FISCAL nevide pe fiecare rând | Rândul se raportează ca eroare. |
| COD_FISCAL există în nomenclatorul de furnizori | Semnalare înainte de import (dacă e fezabil); altfel tratare la eroare SAGA. |
| DATA validă (zz.ll.aaaa), în intervalul de lucru | Rândul se raportează ca eroare. |
| MONEDA cod valută valid (EUR, USD, …) | Rândul se raportează ca eroare. |
| CONT valid (există în planul de conturi) | Semnalare; nu se ghicește contul. |
| INF_SUPLM fără virgule și fără en-dash „–” | Normalizare automată sau semnalare. |
| Fără duplicate în fișier (NR_INTRARE + COD_FISCAL) | Semnalare; se importă o singură dată sau se oprește (de decis). |
SAGA Desktop · pornind de la un fișier CSV, robotul importă facturile emise în România (venituri) în modulul Operații → Ieșiri. Facturile importate apar nevalidate (pictograma „lacăt”) — validarea rămâne în sarcina robotului de validare de pe SAGA Web.
| Poziție | Antet CSV | Câmp SAGA | Observații |
|---|---|---|---|
| 1 | CLIENT | Client (nomenclator) | Denumirea clientului — trebuie să existe în Fișiere → Clienți. |
| 2 | COD_FISCAL | Cod fiscal client | CUI cu prefix RO (ex. RO6719367). |
| 3 | NR_IESIRE | Nr. factură emisă | Ex. EPRS796556996. |
| 4 | DATA | Data facturii | Format zz.ll.aaaa; în intervalul de lucru SAGA. |
| 5 | DENUMIRE | Denumire articol / serviciu | Descrierea liniei (ex. „Servicii”). |
| 6 | CONT | Cont contabil | Cont de venit (ex. 704) — trebuie să existe în planul de conturi. |
| 7 | UM | Unitate de măsură | Ex. buc. |
| 8 | P_TVA | Procent TVA | 0 sau gol (neplătitori — cazul clienților Bono, MVP). |
| 9 | Cantitate | Cantitate | Ex. 1. |
| 10 | Pret | Preț / valoare | Ex. 1500; separator zecimal punct. |
Format (conform „PRD Import SAGA — specificația fișierelor”): CSV separat prin virgulă, fără ghilimele; encoding UTF-8, recomandat fără BOM; terminator de linie CRLF; primul rând = antet cu denumirile exacte de coloană. Un rând = o linie de factură. Fișier: Import_facturi_venituri_RO_<luna>.csv (exemplu observat: 5.Import_facturi_venituri_RO_iunie.csv).
5.Import_facturi_venituri_RO_iunie.csv · exemplu real de fișier de import (iunie)Din meniul Operații se alege Ieșiri (F4). Intervalul de lucru trebuie să acopere datele facturilor din fișier.
În fereastra Ieșiri (facturi & bonuri de casa & avize) se dă click dreapta pe butonul de import din bara de instrumente și se alege „Import alte tipuri de fișiere” (ca la facturile de intrare).
Se deschide fereastra „Import din fisiere XLS, CSV, TXT, DBF si XLSX” (tab Import fisier). Butonul […] la câmpul Fișier; în dialog se navighează la locația fișierului și se alege tipul „Fișiere CSV”.
Fiecare coloană trebuie populată automat și cu denumirea corectă (CLIENT, COD_FISCAL, NR_IESIRE, DATA, DENUMIRE, CONT, UM, P_TVA, Cantitate, Pret). Robotul verifică maparea, apoi apasă Import.
Importul se termină fără mesaj de final. Robotul detectează finalizarea (apariția facturilor noi în lista Ieșiri), verifică prin numărare că facturile au fost create și generează raportul de rulare.
Post-import: facturile apar nevalidate (lacăt). Validarea se face separat, cu robotul de validare de pe SAGA Web.
| Regulă | La nerespectare |
|---|---|
| Antet CSV exact cele 10 coloane, în ordinea fixă | Oprire cu eroare clară; nu se apasă Import. |
| CLIENT + COD_FISCAL nevide pe fiecare rând | Rândul se raportează ca eroare. |
| COD_FISCAL există în nomenclatorul de clienți | Semnalare înainte de import (dacă e fezabil); altfel tratare la eroare SAGA. |
| DATA validă (zz.ll.aaaa), în intervalul de lucru | Rândul se raportează ca eroare. |
| CONT valid (există în planul de conturi) | Semnalare; nu se ghicește contul. |
| NR_IESIRE conform seriilor de facturare ale firmei | Semnalare ca avertisment în raport. |
| Fără duplicate în fișier (NR_IESIRE + COD_FISCAL) | Semnalare; se importă o singură dată sau se oprește (de decis). |
SAGA Desktop · pornind de la un fișier CSV, robotul importă facturile emise în valută (clienți externi) în modulul Operații → Ieșiri - valuta. Facturile importate apar nevalidate (pictograma „lacăt”) — validarea rămâne în sarcina robotului de validare de pe SAGA Web.
| Poziție | Antet CSV | Câmp SAGA | Observații |
|---|---|---|---|
| 1 | CLIENT | Client (nomenclator) | Denumirea clientului extern (ex. ACME SOLUTIONS GMBH) — trebuie să existe în Fișiere → Clienți. |
| 2 | COD_FISCAL | Cod fiscal client | Cod fiscal extern (ex. DE811234567, EIN 91-1234567, SE5566778899). |
| 3 | NR_IESIRE | Nr. factură emisă | Ex. EXT796557201. |
| 4 | DATA | Data facturii | Format zz.ll.aaaa; în intervalul de lucru SAGA. |
| 5 | MONEDA | Monedă | Cod valută (ex. EUR, USD). |
| 6 | DENUMIRE | Denumire articol / serviciu | Descrierea liniei (ex. „Servicii software”, „Servicii dezvoltare web”). |
| 7 | CONT | Cont contabil | Cont de venit (ex. 704) — trebuie să existe în planul de conturi. |
| 8 | INF_SUPLM | Informații suplimentare | Text liber (ex. perioada de serviciu). Fără virgule; atenție la liniuțe „–” (en-dash). |
| 9 | TIP | Cod tip | „T” = taxare inversă (facturi externe). |
| 10 | UM | Unitate de măsură | Ex. SERV. |
| 11 | P_TVA | Procent TVA | Ex. 0. |
| 12 | Cantitate | Cantitate | Ex. 1. |
| 13 | Pret | Preț / valoare | În valuta din MONEDA (ex. 4500); separator zecimal punct. |
Format (aceleași reguli generale ca în „PRD Import SAGA — specificația fișierelor”): CSV separat prin virgulă, fără ghilimele; encoding UTF-8, recomandat fără BOM; terminator de linie CRLF; primul rând = antet cu denumirile exacte de coloană. Un rând = o linie de factură; la facturile cu mai multe linii, informațiile din coloanele 1–5 se repetă identic pe fiecare linie. Fișier: Import_facturi_iesiri_valuta_<luna>.csv (exemplu observat: Import_facturi_iesiri_valuta_iunie.csv). Structura este simetrică cu fișierul de facturi externe de intrare, cu CLIENT / NR_IESIRE în loc de FURNIZOR / NR_INTRARE.
Import_facturi_iesiri_valuta_iunie.csv · exemplu real de fișier de import (iunie)Din meniul Operații se alege Ieșiri - valuta. Intervalul de lucru trebuie să acopere datele facturilor din fișier.
În fereastra Iesiri - valuta (Exporturi) se dă click dreapta pe butonul de import din bara de instrumente și se alege „Import alte tipuri de fișiere” (ca la celelalte importuri de facturi).
Se deschide fereastra „Import din fisiere XLS, CSV, TXT, DBF si XLSX” (tab Import fisier). Butonul […] la câmpul Fișier; în dialog se navighează la locația fișierului și se alege tipul „Fișiere CSV”.
Fiecare coloană trebuie populată automat și cu denumirea corectă (CLIENT, COD_FISCAL, NR_IESIRE, DATA, MONEDA, DENUMIRE, CONT, INF_SUPLM, TIP, UM, P_TVA, Cantitate, Pret), inclusiv cele accesibile prin derulare orizontală. Robotul verifică maparea, apoi apasă Import.
Importul se termină fără mesaj de final. Robotul detectează finalizarea (apariția facturilor noi în lista Iesiri - valuta), verifică prin numărare că facturile au fost create — cu valoarea în valută, cursul și valoarea în lei calculate — și generează raportul de rulare.
Post-import: facturile apar nevalidate (lacăt). Validarea se face separat, cu robotul de validare de pe SAGA Web.
| Regulă | La nerespectare |
|---|---|
| Antet CSV exact cele 13 coloane, în ordinea fixă | Oprire cu eroare clară; nu se apasă Import. |
| CLIENT + COD_FISCAL nevide pe fiecare rând | Rândul se raportează ca eroare. |
| COD_FISCAL există în nomenclatorul de clienți | Semnalare înainte de import (dacă e fezabil); altfel tratare la eroare SAGA. |
| DATA validă (zz.ll.aaaa), în intervalul de lucru | Rândul se raportează ca eroare. |
| MONEDA cod valută valid (EUR, USD, …) | Rândul se raportează ca eroare. |
| CONT valid (există în planul de conturi) | Semnalare; nu se ghicește contul. |
| INF_SUPLM fără virgule și fără en-dash „–” | Normalizare automată sau semnalare. |
| Fără duplicate în fișier (NR_IESIRE + COD_FISCAL) | Semnalare; se importă o singură dată sau se oprește (de decis). |
SAGA Desktop · pornind de la un fișier CSV, robotul importă mijloacele fixe în modulul Operații → Imobilizări (Lista imobilizărilor). Pe baza codului de clasă, SAGA completează automat durata, tipul de amortizare și conturile.
| Poziție | Antet CSV | Câmp SAGA | Observații |
|---|---|---|---|
| 1 | NR_INV | Nr. inventar | Numărul de inventar al mijlocului fix (ex. MF0001). |
| 2 | DENUMIRE | Denumire | Denumirea mijlocului fix (ex. „LAPTOP DELL PRECISION”, „AUTOTURISM DACIA DUSTER”). |
| 3 | DATA | Data intrării | Format zz.ll.aaaa (ex. 05.06.2026). |
| 4 | CLASA | Cod clasă | Codul din catalogul claselor de mijloace fixe (ex. 2.2.9., 3.1.1., 2.3.2.1.1.). Determină conturile și durata de amortizare. |
| 5 | VALOARE | Valoare intrare | Separator zecimal punct (ex. 8500, 98500.50). |
Format (aceleași reguli generale ca în „PRD Import SAGA — specificația fișierelor”): CSV separat prin virgulă, fără ghilimele; encoding UTF-8, recomandat fără BOM; terminator de linie CRLF; primul rând = antet cu denumirile exacte de coloană. Fișier: Import_imobilizari_<luna>.csv (exemplu observat: IMPORT_IMOBILIZARI_IUNIE.CSV).
Din meniul Operații se alege Imobilizări. Intervalul de lucru trebuie să acopere datele de intrare din fișier.
Pe tab-ul Lista imobilizărilor se apasă butonul de import din bara de instrumente. Se deschide fereastra „Import imobilizari din fisiere”.
Butonul […] la câmpul Fișier; în dialog se navighează la locația fișierului și se alege tipul „Fișiere CSV”.
Fiecare coloană trebuie populată automat și cu denumirea corectă (NR_INV, DENUMIRE, DATA, CLASA, VALOARE). Robotul verifică maparea, apoi apasă Import.
Importul se termină fără mesaj de final. Robotul detectează finalizarea (apariția mijloacelor fixe noi în Lista imobilizărilor), verifică prin numărare că activele au fost create — cu clasa, durata, tipul de amortizare și conturile completate automat — și generează raportul de rulare.
| Regulă | La nerespectare |
|---|---|
| Antet CSV exact cele 5 coloane, în ordinea fixă | Oprire cu eroare clară; nu se apasă Import. |
| NR_INV + DENUMIRE nevide pe fiecare rând | Rândul se raportează ca eroare. |
| NR_INV unic (în fișier și față de lista existentă) | Semnalare; se importă o singură dată sau se oprește (de decis). |
| DATA validă (zz.ll.aaaa), în intervalul de lucru | Rândul se raportează ca eroare. |
| CLASA există în catalogul claselor de mijloace fixe | Semnalare; nu se ghicește clasa. |
| VALOARE numerică, separator zecimal punct | Rândul se raportează ca eroare. |
SAGA Desktop · robotul parcurge Jurnalul de bancă și închide automat încasările cu facturile de ieșire, respectiv plățile cu facturile de intrare, folosind o cascadă de reguli de potrivire — de la cea mai sigură (referința facturii din explicația plății) la ultima soluție (FIFO). Rulează pe Desktop deoarece facturile în EUR nu apar în jurnalul de bancă din SAGA Web.
| Parametru | Descriere |
|---|---|
| Firma țintă | Firma SAGA pe care se lucrează. |
| Interval de lucru | Perioada pentru care se închid tranzacțiile (ex. 01.03.2026 – 31.03.2026) — parametru unic pentru scanare și închidere. |
| Mod de rulare | Simulare (dry-run): parcurge tot, calculează potrivirile și produce raportul, fără să salveze nimic (la final apasă Renunț). Live: salvează închiderile. Recomandat: simulare → verificarea raportului → live. |
Din meniul Operații se alege Jurnal de bancă (F6).
Robotul parcurge zilele din extrasul de cont (secțiunea de zile a jurnalului). Zilele din afara intervalului se ignoră explicit, chiar dacă SAGA le afișează.
Pentru fiecare zi, robotul citește tranzacțiile zilei și le identifică pe cele neînchise — SAGA le afișează cu roșu. Clasificare: încasare de la client = linia cu contul de client (începe cu 411) și banca pe debit (contul 5121.01); plată către furnizor = linia cu contul de furnizor (începe cu 401) și banca pe credit (contul 5121.01). Liniile roșii care nu se încadrează în aceste tipare se raportează ca nestandard, fără acțiune; liniile negre (deja închise sau fără legătură cu facturi, ex. comisioane bancare) se sar.
Robotul selectează tranzacția, apasă Modific și deschide panoul cu facturile partenerului (butonul Detalii), unde SAGA listează facturile deschise: număr, dată, total, neachitat. Panoul afișează și suma de închis („De încasat” / „De achitat”) și „Suma rămasă”. Dacă partenerul nu are facturi deschise, robotul apasă Renunț și raportează tranzacția (FĂRĂ FACTURI).
Robotul aplică regulile în ordine, de la cea mai sigură la ultima soluție; prima regulă care produce o potrivire decide închiderea (vezi tabelul de mai jos). Toate comparațiile de sume sunt exacte, la bănuț — nu există prag de toleranță.
Închiderea efectivă: factura acoperită integral se bifează Integral; factura acoperită parțial primește suma în câmpul Achitat. La final, „Suma rămasă” trebuie să fie 0.00. Panoul are și un buton FIFO nativ al SAGA — poate fi folosit de robot la regula 5, în locul bifării manuale (de confirmat la implementare).
În modul live, robotul apasă Salvez și așteaptă revenirea în modul de vizualizare (confirmarea salvării). În simulare apasă Renunț — nimic nu se modifică. La orice eroare în timpul editării, robotul apasă Renunț, ca tranzacția să nu rămână blocată în editare.
La final, robotul produce raportul de rulare (CSV): fiecare tranzacție procesată, cu regula de potrivire folosită, facturile închise (integral/parțial) și statusul — inclusiv excepțiile. Raportul e instrumentul de audit: închiderile pe FIFO și cazurile nestandard sunt evidențiate distinct, pentru verificare.
| # | Regulă | Condiție | Acțiune |
|---|---|---|---|
| 1 | Referință în explicație | Din explicația plății se extrag candidați de număr de factură (normalizați: fără spații, majuscule) și se potrivesc cu facturile deschise ale partenerului. Suma trebuie să corespundă exact facturilor referite. | Integral pe facturile referite; dacă suma acoperă parțial ultima factură referită — parțial pe aceasta. |
| 2 | Sumă exactă, factură unică | Fără referință; exact o factură deschisă cu Neachitat egal cu suma plății. Dacă două facturi au aceeași sumă — ambiguu, se trece la regula următoare. | Integral pe factura respectivă. |
| 3 | Combinație de facturi | Suma plății = suma exactă a unei combinații de 2–3 facturi deschise (plată multiplă). O singură combinație posibilă; altfel ambiguu. | Integral pe toate facturile din combinație. |
| 4 | Plată parțială țintită | Suma mai mică decât orice factură deschisă și: explicația referă o factură anume, sau partenerul are o singură factură deschisă. | Parțial (suma în câmpul Achitat) pe factura identificată. Plățile parțiale succesive se acumulează natural — factura reapare cu Neachitat diminuat. |
| 5 | FIFO — ultima soluție | Nicio regulă de mai sus nu a produs o potrivire. | Facturile sortate crescător după dată; Integral cât acoperă suma, parțial pe prima factură care depășește restul. Închiderile FIFO se marchează distinct în raport, pentru audit. |
| Situație | Comportament |
|---|---|
| Tranzacție neagră (închisă sau fără facturi asociate) | Se sare; nu se numără la excepții. |
| Tranzacție roșie, conturi nestandard (nu 401/411) | Se raportează ca NESTANDARD; nicio acțiune. |
| Partener fără facturi deschise | Renunț + raportare FĂRĂ FACTURI. |
| Re-rulare pe aceeași perioadă | Idempotentă — tranzacțiile închise devin negre și se sar natural; nu există dublă închidere. |
| Simulare (dry-run) | Identică cu rularea live până la salvare; se apasă Renunț, raportul arată ce s-ar fi închis și pe ce regulă. |
jurnal_banca_complet.py, pornit prin RUN_jurnal_banca_complet.bat; pe SAGA Desktop se reface aceeași logică pe ecranele echivalente. Regulile de lucru validate în prototip se preiau: liniile de închis se recunosc în jurnal după conturile evidențiate cu roșu; jurnalul se parcurge pe zile → tranzacții → facturile partenerului; închiderea unei facturi se face cu Modific, bifa Integral sau suma în câmpul Achitat, apoi Salvez (sau Renunț).jurnal_banca_complet.py · scriptul prototip — jurnal de bancă (scanare + reconciliere)RUN_jurnal_banca_complet.bat · fișierul de pornire a prototipuluiRobot de sine stătător: deschide browserul, se autentifică pe SAGA Web (web3.sagasoft.ro) și deschide sesiunea de lucru pe firma țintă. Este precondiția comună a tuturor roboților care operează pe SAGA Web — rulează o dată, la începutul lanțului, apoi lasă sesiunea deschisă pentru roboții următori. Există deja un prototip funcțional care face întreaga logare — el este baza acestei specificații.
| Parametru | Descriere |
|---|---|
| Firma țintă | Denumirea firmei din lista SAGA Web (ex. „BONO FINTECH - TEST SAGA S.R.L.”). Căutarea se face după denumire — trebuie să identifice firma în mod unic. |
| Contul de conectare SAGA Web. | |
| Parolă | Parola contului. În prototip, credențialele se citesc dintr-un fișier de configurare în text simplu (config_v2.txt) — mod de stocare securizat de clarificat. |
| Data de lucru | Data sesiunii — câmpul de dată de lângă butonul Conectare (implicit data curentă). |
Se deschide un browser Chrome dedicat robotului, pregătit să rămână deschis și după ce logarea se termină — sesiunea lui este refolosită de ceilalți roboți SAGA Web (validare facturi, jurnal bancă), care nu se mai loghează din nou.
Se deschide web3.sagasoft.ro; apare ecranul de logare cu câmpurile Email și Parola.
Robotul completează e-mailul și parola și apasă butonul Autentificare.
După autentificare apare pagina de selecție a firmei. Robotul caută firma țintă în listă după denumire și dă click pe rândul ei; rândul selectat se evidențiază.
Se verifică data de lucru din câmpul de lângă butonul Conectare, apoi se apasă Conectare — se deschide sesiunea de lucru pe firma aleasă.
Sesiunea rămâne deschisă, iar robotul următor se conectează la ea. Browserul nu se închide cât timp mai rulează roboți SAGA Web; la finalul lanțului se închide manual sau de ultimul robot.
login_si_selectie_firma.py, pornit prin RUN_LOGIN.bat. Ce avem nevoie de la robot: logarea se face o singură dată, la începutul lanțului, iar sesiunea deschisă este refolosită de toți ceilalți roboți SAGA Web din aceeași rulare.login_si_selectie_firma.py · scriptul prototip — logare și selecția firmeiRUN_LOGIN.bat · fișierul de pornire a prototipuluiSAGA Web (web3.sagasoft.ro) · robotul încarcă toate fișierele XML ale lunii în modulul Diverse → Import date: facturi primite, facturi emise, încasări și plăți. Un singur robot pentru toate tipurile de documente — include și înlocuiește fostul robot de Import încasări și plăți.
| Tip document | Fișier (exemplu observat) | Destinație detectată | Mesaj la import |
|---|---|---|---|
| Facturi primite | F_50884558_THD24110_05.08.2026.xml | Facturi | „Importul a fost realizat cu succes.” — fără număr de înregistrări. |
| Facturi emise | F_50884558_BNF26101_10.08.2026.xml | Facturi | „Importul a fost realizat cu succes.” — fără număr de înregistrări. |
| Încasări | I_31.08.2026.xml | Incasari | „S-au importat N înregistrări.” |
| Plăți | P_31.08.2026.xml | Plati | „S-au importat N înregistrări.” |
Numele fișierelor din tabel sunt modele descărcabile — exemple reale din testarea din august. La facturile primite, ordinea în care se importă fișierele nu are importanță (verificat în testare).
Din bara de meniu se deschide Interval și se completează data de început și data de final, astfel încât perioada să acopere datele tuturor documentelor din fișiere, apoi se închide dropdown-ul.
Din meniul Diverse se alege Import date.
Se apasă + Adauga fisiere XML și, în dialogul de selectare (tip XML File), se aleg toate fișierele lunii deodată: facturi primite, facturi emise, încasări, plăți.
Fișierele apar în listă cu destinația detectată automat din conținut (Facturi / Incasari / Plati) și starea „Neimportat”. Robotul verifică destinația fiecărui rând înainte de a continua.
Pentru fiecare fișier din listă, robotul execută:
Pasul 5 se repetă pentru fiecare fișier din listă, până când toate au starea „Importat”.
SAGA Web · robotul parcurge lista Intrări și validează, una câte una, toate facturile nevalidate din perioada de lucru. Există deja un prototip funcțional care face întreaga validare — el este baza acestei specificații.
| Parametru | Descriere |
|---|---|
| Firma țintă | Firma SAGA Web pe care se lucrează (sesiunea autentificată). |
| Interval de lucru | Perioada pentru care se validează facturile (ex. 01.03.2026 – 31.03.2026). |
| Excel imobilizări (opțional) | Folosit de fluxul de imobilizări (robot separat) pentru potrivirea activelor pe facturi. |
În SAGA Web, din meniul Operații se alege Intrări (ALT+3).
Din bara de meniu se deschide Interval și se completează data de început și data de final a perioadei, apoi se închide dropdown-ul. Lista se filtrează pe perioada aleasă.
Robotul parcurge rândurile listei și identifică starea fiecărei facturi după pictograma de lacăt: lacăt deschis = nevalidată, lacăt închis (roșu) = validată. Rândurile fără număr de document se ignoră; facturile deja validate se sar.
Robotul selectează factura (click pe rând), așteaptă încărcarea liniilor și apasă butonul Validez.
Dacă factura conține imobilizări, SAGA afișează popup-ul „Înregistrăm imobilizarea?”. Robotul apasă NU — imobilizarea nu se înregistrează la validare; înregistrarea imobilizărilor se face separat, de robotul dedicat (planificat). Dacă popup-ul nu apare în câteva secunde, robotul merge mai departe.
După validare, lacătul facturii devine roșu (închis), iar butonul Validez se dezactivează (rămâne activ Devalidez). La final, robotul numără facturile și generează rezumatul: total facturi, validate în această rulare, sărite (deja validate), nevalidate rămase.
validare_masiva.py, pornit prin RUN_VALIDARE_MASIVA.bat.validare_masiva.py · scriptul prototip — validare facturi intrări RORUN_VALIDARE_MASIVA.bat · fișierul de pornire a prototipului| Regulă | Comportament |
|---|---|
| Factură deja validată (lacăt închis) | Se sare; se contorizează la „sărite”. |
| Rând fără număr de document | Se ignoră (nu e factură). |
| Numărul de facturi nu e presupus fix | Lista se recitește la fiecare iterație; oprire controlată dacă rândul dispare. |
| Popup imobilizări | Se apasă NU — imobilizarea nu se înregistrează la validare; apariția popup-ului se consemnează, iar factura se contorizează separat. |
| Re-rulare pe aceeași perioadă | Idempotentă — facturile validate anterior se sar, nimic nu se dublează. |
SAGA Web · robotul parcurge lista Intrări - valuta și validează, una câte una, toate facturile externe nevalidate din perioada de lucru. Există deja un prototip funcțional care face întreaga validare — el este baza acestei specificații. Fluxul este simetric cu validarea facturilor intrări RO.
| Parametru | Descriere |
|---|---|
| Firma țintă | Firma SAGA Web pe care se lucrează (sesiunea autentificată). |
| Interval de lucru | Perioada pentru care se validează facturile (ex. 01.03.2026 – 31.03.2026). |
În SAGA Web, din meniul Operații se alege Intrări - valuta (facturile externe).
Din bara de meniu se deschide Interval și se completează data de început și data de final a perioadei, apoi se închide dropdown-ul. Lista se filtrează pe perioada aleasă.
Robotul parcurge rândurile listei și identifică starea fiecărei facturi după pictograma de lacăt: lacăt deschis = nevalidată, lacăt închis (roșu) = validată. Rândurile fără număr de document se ignoră; facturile deja validate se sar.
Robotul selectează factura (click pe rând), așteaptă încărcarea liniilor și apasă butonul Validez.
Dacă apare popup-ul „Înregistrăm imobilizarea?”, robotul apasă NU — la facturile externe nu se înregistrează imobilizări. Fallback: DA urmat de Renunț (ALT+R). Apariția popup-ului se consemnează în raport.
După validare, lacătul facturii devine roșu (închis), iar butonul Validez se dezactivează (rămâne activ Devalidez). La final, robotul numără facturile și generează rezumatul: total facturi externe, validate în această rulare, sărite (deja validate), nevalidate rămase.
validare_masiva_valuta.py, pornit prin RUN_VALIDARE_MASIVA_VALUTA.bat.validare_masiva_valuta.py · scriptul prototip — validare facturi intrări valutăRUN_VALIDARE_MASIVA_VALUTA.bat · fișierul de pornire a prototipului| Regulă | Comportament |
|---|---|
| Factură deja validată (lacăt închis) | Se sare; se contorizează la „sărite”. |
| Rând fără număr de document | Se ignoră (nu e factură). |
| Numărul de facturi nu e presupus fix | Lista se recitește la fiecare iterație; oprire controlată dacă rândul dispare. |
| Popup imobilizări | Se apasă NU (fallback: DA + Renunț ALT+R); apariția se raportează. |
| Re-rulare pe aceeași perioadă | Idempotentă — facturile validate anterior se sar, nimic nu se dublează. |
SAGA Web · robotul parcurge lista Ieșiri și validează, una câte una, toate facturile emise nevalidate din perioada de lucru. Există deja un prototip funcțional care face întreaga validare — el este baza acestei specificații. Fluxul este simetric cu validarea facturilor de intrare.
| Parametru | Descriere |
|---|---|
| Firma țintă | Firma SAGA Web pe care se lucrează (sesiunea autentificată). |
| Interval de lucru | Perioada pentru care se validează facturile (ex. 01.03.2026 – 31.03.2026). |
În SAGA Web, din meniul Operații se alege Ieșiri (ALT+4) — facturile emise.
Din bara de meniu se deschide Interval și se completează data de început și data de final a perioadei, apoi se închide dropdown-ul. Lista se filtrează pe perioada aleasă.
Robotul parcurge rândurile listei și identifică starea fiecărei facturi după pictograma de lacăt: lacăt deschis = nevalidată, lacăt închis (roșu) = validată. Rândurile fără număr de document se ignoră; facturile deja validate se sar.
Robotul selectează factura (click pe rând), așteaptă încărcarea liniilor și apasă butonul Validez.
După validare, lacătul facturii devine roșu (închis), iar butonul Validez se dezactivează (rămâne activ Devalidez). La final, robotul numără facturile și generează rezumatul: total facturi emise, validate în această rulare, sărite (deja validate), nevalidate rămase.
validare_masiva_iesiri.py, pornit prin RUN_VALIDARE_MASIVA_IESIRI.bat.validare_masiva_iesiri.py · scriptul prototip — validare facturi ieșiri RORUN_VALIDARE_MASIVA_IESIRI.bat · fișierul de pornire a prototipului| Regulă | Comportament |
|---|---|
| Factură deja validată (lacăt închis) | Se sare; se contorizează la „sărite”. |
| Rând fără număr de document | Se ignoră (nu e factură). |
| Numărul de facturi nu e presupus fix | Lista se recitește la fiecare iterație; oprire controlată dacă rândul dispare. |
| Re-rulare pe aceeași perioadă | Idempotentă — facturile validate anterior se sar, nimic nu se dublează. |
SAGA Web · robotul parcurge lista Ieșiri - valuta (Exporturi) și validează, una câte una, toate facturile emise în valută nevalidate din perioada de lucru. Fluxul este identic cu validarea facturilor ieșiri RO — se schimbă doar modulul țintă; prototipul de la ieșirile RO se parametrizează pe acest modul.
| Parametru | Descriere |
|---|---|
| Firma țintă | Firma SAGA Web pe care se lucrează (sesiunea autentificată). |
| Interval de lucru | Perioada pentru care se validează facturile (ex. 01.03.2026 – 31.03.2026). |
În SAGA Web, din meniul Operații se alege Ieșiri - valuta (facturile emise în valută).
Din bara de meniu se deschide Interval și se completează data de început și data de final a perioadei, apoi se închide dropdown-ul. Lista se filtrează pe perioada aleasă.
Robotul parcurge rândurile listei și identifică starea fiecărei facturi după pictograma de lacăt: lacăt deschis = nevalidată, lacăt închis (roșu) = validată. Rândurile fără număr de document se ignoră; facturile deja validate se sar.
Robotul selectează factura (click pe rând), așteaptă încărcarea liniilor și apasă butonul Validez.
După validare, lacătul facturii devine roșu (închis), iar butonul Validez se dezactivează (rămâne activ Devalidez). La final, robotul numără facturile și generează rezumatul: total facturi, validate în această rulare, sărite (deja validate), nevalidate rămase.
validare_masiva_iesiri.py, pornit prin RUN_VALIDARE_MASIVA_IESIRI.bat), parametrizat pe modulul de valută. Diferențele față de ieșirile RO sunt de confirmat la implementare.validare_masiva_iesiri.py · scriptul prototip de la ieșirile RO (comun)RUN_VALIDARE_MASIVA_IESIRI.bat · fișierul de pornire a prototipului (comun)| Regulă | Comportament |
|---|---|
| Factură deja validată (lacăt închis) | Se sare; se contorizează la „sărite”. |
| Rând fără număr de document | Se ignoră (nu e factură). |
| Numărul de facturi nu e presupus fix | Lista se recitește la fiecare iterație; oprire controlată dacă rândul dispare. |
| Re-rulare pe aceeași perioadă | Idempotentă — facturile validate anterior se sar, nimic nu se dublează. |
SAGA Web · robotul generează balanța de verificare a lunii — analitică, exportată în format XML — și o predă împreună cu statusul, salvată cu denumirea standard (CUI_perioadă).
| Parametru | Descriere |
|---|---|
| Firma țintă | Firma SAGA Web pe care se lucrează (sesiunea autentificată). |
| Perioada | Luna pentru care se generează balanța. |
În SAGA Web, din meniul Situații se alege Balanțe. Se deschide fereastra de opțiuni a balanței.
Robotul lasă bifele implicite ale coloanelor (Solduri inițiale an, Sume precedente, Rulaje perioadă, Sume totale, Solduri finale) și verifică perioada: luna și anul balanței trebuie să fie luna cerută. Apoi bifează opțiunea Analitică, cu varianta „Cu" selectată și fără conturi alese — balanța include astfel toate conturile analitice. Moneda rămâne Lei. La final apasă Accept.
SAGA afișează balanța ca tabel: fiecare cont cu denumirea și sumele pe coloanele alese, iar pe ultimul rând totalurile. Robotul verifică că tabelul s-a încărcat și că totalurile debitoare și creditoare sunt egale între ele pe fiecare pereche de coloane.
Robotul apasă butonul Export (primul buton din bara de deasupra tabelului, stânga sus). Se deschide fereastra „Export date", cu lista coloanelor balanței — implicit sunt bifate coloanele de la Cont până la Creditoare (Sume finale); robotul le lasă așa, fără să bifeze sau să debifeze nimic. Din butonul de format (stânga jos) alege XML, apoi apasă Accept — fișierul XML al balanței se descarcă. Balanța se predă în format XML; fereastra Tipărire (care produce PDF sau XLS) nu face parte din fluxul robotului.
Fișierul XML descărcat se salvează cu denumirea formată din CUI-ul clientului Bono, urmat de _ și perioada balanței (ex. pentru CUI 12345678 și luna septembrie 2026: 12345678_09.2026.xml). Sub această denumire fișierul se predă mai departe.
| Regulă | Comportament |
|---|---|
| Luna sau anul din fereastra de opțiuni nu e perioada cerută | Robotul le schimbă din selectoare; dacă nu reușește, se oprește și raportează. |
| Totalurile debitoare și creditoare nu sunt egale | Robotul nu predă fișierul; raportează pentru verificare manuală. |
| Formatul de export | Întotdeauna XML, din butonul Export; fereastra Tipărire (PDF/XLS) nu se folosește. |
SAGA Web · robotul generează Declarația 100 a perioadei, din fereastra Închidere luna, tabul D. 100. Fluxul e descris mai jos, pas cu pas; robotul predă fișierul declarației împreună cu statusul. Depunerea la ANAF nu face parte din acest robot.
| Parametru | Descriere |
|---|---|
| Firma țintă | Firma SAGA Web pe care se lucrează (sesiunea autentificată). |
| Perioada | „Luna an" — este ultima lună închisă. |
| Suma impozitului pe dividende | Suma primită din Vertigo, din contul 446.01 — de completat pe rândul de dividende. |
Declarația 100 se generează din fereastra Închidere luna, tabul D. 100.
Robotul selectează luna declarației din selectorul din dreapta sus. Perioada vine din Vertigo.
Robotul apasă Actualizare date (dreapta sus). Lista creanțelor fiscale se populează, iar rândurile pentru care firma datorează impozit în perioada respectivă primesc sumă în coloana Datorat, scadența în coloana Scadență și bifa Preluat.
Dacă perioada este ultima lună dintr-un trimestru (martie, iunie, septembrie, decembrie), robotul verifică faptul că rândul corespunzător regimului de impozitare al clientului există și are sumă în coloana Datorat:
Dacă robotul a primit din Vertigo o sumă pe contul 446.01, bifează rândul „006.(604) — Impozit pe ven. din dividende distribuite persoanelor fizice" și completează suma primită în coloana Datorat.
Robotul apasă Generare PDF 100 (stânga jos) — SAGA produce fișierul declarației și îl salvează într-un fișier temporar, iar robotul îl preia de acolo și îl salvează într-o altă locație.
SAGA Web · robotul generează Decontul special de TVA — Declarația 301 — de două ori pe lună: o dată pe codul special de TVA (VIES), pentru facturile din UE, și o dată pe codul fiscal al firmei. Fluxul e descris mai jos, pas cu pas; robotul predă fișierele împreună cu statusul. Depunerea la ANAF nu face parte din acest robot.
| Parametru | Descriere |
|---|---|
| Firma țintă | Firma SAGA Web pe care se lucrează (sesiunea autentificată). |
| Perioada | Luna declarației. Vine din Vertigo. |
| Codul special de TVA (VIES) | Vine din Vertigo — pe el se declară facturile din UE. |
| Codul fiscal | Vine din Vertigo — pe el se depune a doua declarație. |
Robotul deschide ecranul Jurnal de cumpărări / vânzări și tabul Decont 301.
Robotul selectează luna declarației din selectorul tabului (dreapta sus). Perioada vine din Vertigo.
În câmpul Cod pentru AIC, robotul completează codul special de TVA (VIES) primit din Vertigo — pe acest cod se declară facturile din UE. Bifa Rectificativă rămâne nebifată.
Robotul apasă Actualizare date (dreapta sus) — lista operațiunilor lunii se populează, pe tipuri de operațiune. Dacă lista e goală, pentru luna respectivă nu există nimic de declarat: robotul raportează „fără operațiuni" și nu generează fișierul.
Robotul apasă Generare PDF — fișierul declarației se descarcă și se salvează sub denumirea D301_CUI_luna_an_vies (declarația pe codul special de TVA) sau D301_CUI_luna_an_codfiscal (declarația pe codul fiscal), apoi se predă.
Robotul parcurge pașii 1–2 de la A (tabul Decont 301, selectarea perioadei primite din Vertigo), completează în câmpul Cod pentru AIC codul fiscal primit din Vertigo, apasă Actualizare date și verifică operațiunile; dacă lista e goală raportează „fără operațiuni". La final apasă Generare PDF, iar fișierul declarației se descarcă și se predă.
| Regulă | Comportament |
|---|---|
| Perioada primită din Vertigo nu e ultima lună închisă din SAGA | Robotul se oprește înainte de Actualizare date și raportează. |
| Lista operațiunilor e goală | Raportează „fără operațiuni — nu se depune" pentru codul respectiv; nu e eroare. |
| Bifa Rectificativă | Rămâne întotdeauna nebifată în fluxul standard; rectificativele se fac doar la cerere expresă. |
| Tabul Decont 301 e inactiv (sunt active Decont de TVA-D300 și D394) | Firma e plătitoare de TVA — decontul de TVA și D394 fac obiectul altei specificații; robotul raportează. |
SAGA Web · robotul generează Declarația 390 — operațiunile intracomunitare ale lunii — din ecranul Jurnal de cumpărări / vânzări, tabul Declarația 390. Fluxul e descris mai jos, pas cu pas; robotul predă fișierul de depunere împreună cu statusul. Depunerea la ANAF nu face parte din acest robot.
| Parametru | Descriere |
|---|---|
| Firma țintă | Firma SAGA Web pe care se lucrează (sesiunea autentificată). |
| Perioada | Luna declarației. Vine din Vertigo și trebuie să fie ultima lună închisă. |
În ecranul Jurnal de cumpărări / vânzări, robotul deschide tabul Declarația 390. Lista arată partenerii intracomunitari ai lunii: țara, codul de operator, denumirea și sumele pe tip de operațiune (achiziții, livrări, livrări triunghiulare, prestări), cu totalurile jos. Bifa Rectificativă rămâne nebifată în fluxul standard.
Robotul selectează luna declarației din selectorul de lună / an al tabului (dreapta sus, lângă Actualizare date). Perioada vine din Vertigo și trebuie să fie ultima lună închisă.
Robotul apasă Actualizare date (dreapta sus) — lista se populează cu partenerii intracomunitari ai lunii. Dacă lista rămâne goală, pentru luna respectivă nu există operațiuni intracomunitare: robotul raportează „fără operațiuni” și nu generează fișierul.
Robotul apasă „Verifică toți terții cu privire la înreg. în scopuri de TVA” (dreapta jos) — SAGA verifică valabilitatea codurilor de TVA ale partenerilor din listă. Dacă un partener are codul invalid, robotul se oprește și raportează — declarația nu se generează cu coduri invalide.
Robotul apasă Generare XML (dreapta sus) — SAGA validează declarația și descarcă fișierul de depunere în browser. Generare PDF există și el, pentru varianta de consultare.
Dacă declarația nu trece validarea, SAGA afișează mesajul „Declarația nu este validă”, cu lista erorilor (în exemplul de mai jos: un cod de operator care nu respectă algoritmul țării). Robotul capturează erorile și le raportează — fișierul nu se predă.
Dacă XML-ul este corect, se primește mesajul de mai jos: declarația este validă, fișierul XML e descărcat în secțiunea de descărcări a browserului, iar fișierul PDF se generează prin DukIntegrator. Robotul apasă OK și predă fișierul XML împreună cu statusul.
| Regulă | Comportament |
|---|---|
| Perioada primită din Vertigo nu e ultima lună închisă din SAGA | Robotul se oprește și raportează. |
| Lista operatorilor e goală | Raportează „fără operațiuni — nu se depune"; nu e eroare. |
| Partener cu cod de TVA invalid | Se oprește și raportează partenerul — declarația nu se generează cu coduri invalide. |
| Erori la validarea XML-ului | Raportează erorile afișate de SAGA; fișierul nu se predă până la corectare. |
| Bifa Rectificativă | Rămâne întotdeauna nebifată în fluxul standard; rectificativele se fac doar la cerere expresă. |
SAGA Web · robotul generează Declarația 406 (SAF-T) pentru ultimul trimestru încheiat, din ecranul Situații → Declarația 406 (SAF-T). Informațiile generale, reprezentantul și perioada vin din Vertigo. Fluxul e descris mai jos, pas cu pas; robotul predă fișierul XML împreună cu statusul. Depunerea la ANAF nu face parte din acest robot.
| Parametru | Descriere |
|---|---|
| Firma țintă | Firma SAGA Web pe care se lucrează (sesiunea autentificată). |
| Perioada | Ultimul trimestru încheiat — datele De la / până la vin din Vertigo; toate lunile perioadei trebuie să fie închise. |
| Informații generale | Tip declarație, tip contabilitate și statut TVA — vin din Vertigo. |
| Reprezentant | Nume, prenume, funcție, telefon, email — vin din Vertigo. |
Din bara de meniu SAGA Web se deschide meniul Situații și se alege Declarația 406 (SAF-T). Se deschide ecranul D406 (SAF-T), cu taburile Informații generale, Nomenclatoare, Registru jurnal și Documente contabile.
În tabul Informații generale, robotul completează câmpul Tip declarație cu „Declaratie trimestriala”, Tip contabilitate cu „Contabilitate societati comerciale” și Statut TVA cu „Persoana impozabila ce aplica regimul special de scutire pentru intreprinderile mici”. Restul vin din Vertigo: la secțiunea Reprezentant câmpurile Nume, Prenume, Funcție, Telefon și Email, iar perioada De la / până la — ultimul trimestru încheiat. La final apasă butonul Actualizare date.
Dacă apar erori la actualizare, SAGA afișează un mesaj de atenționare (în exemplul de mai jos: erori de validare a terților), pune fișierul de erori în secțiunea de descărcări a browserului, iar datele nu se actualizează. Robotul salvează raportul de erori generat de SAGA, raportează eroarea și se oprește. Eroarea de mai jos este doar un exemplu.
La succes se primește mesajul „Datele au fost actualizate cu succes” — robotul apasă OK. SAGA a adunat datele perioadei în taburile Nomenclatoare, Registru jurnal și Documente contabile, iar butonul Generare declarație devine activ.
Robotul apasă Generare declarație — apare mesajul „Generarea XML-ului a început”, iar SAGA produce și validează fișierul declarației.
Dacă după generare declarația nu este validă, SAGA afișează mesajul „Declarația nu este validă”, cu lista erorilor. Robotul raportează erorile menționate și se oprește. Lista de mai jos este doar un exemplu.
La succes se primește mesajul de mai jos: declarația a fost generată cu succes, fișierul XML arhivat e în secțiunea de descărcări a browserului, iar fișierul PDF se generează prin DukIntegrator. Robotul salvează XML-ul sub denumirea D406_CUI_luna (ex. D406_50884558_09_2026.xml) și îl predă împreună cu statusul.
| Regulă | Comportament |
|---|---|
| Perioada nu e închisă / validată în SAGA | Robotul se oprește înainte de generare și raportează — întâi rulează Închidere de lună. |
| Câmpurile din Informații generale și reprezentantul | Se completează cu informațiile primite din Vertigo: tip declarație, tip contabilitate, statut TVA; nume, prenume, funcție, telefon, email. |
| Perioada declarației | Ultimul trimestru încheiat — datele De la / până la vin din Vertigo. |
| Erori la Actualizare date | Robotul salvează raportul de erori descărcat, raportează și se oprește; corecția e manuală. |
| Erori la validarea XML-ului | Raportează erorile menționate și se oprește; fișierul nu se predă. |
| Denumirea fișierului predat | XML-ul se salvează sub D406_CUI_luna (ex. D406_50884558_09_2026.xml). |
SAGA Web · robotul rulează închiderea de lună pentru luna precedentă lunii curente: actualizează și validează diferențele de curs valutar, apoi validează secțiunile din tabul Închidere luna, de sus în jos. La ultima lună dintr-un trimestru, înainte de închiderea conturilor de cheltuieli și venituri, calculează și înregistrează impozitul — pe profit sau pe venit, după regimul firmei. La final apasă Validare închidere lună, iar SAGA deschide automat luna următoare.
| Parametru | Descriere |
|---|---|
| Firma țintă | Firma SAGA Web pe care se lucrează (sesiunea autentificată). |
| Luna de închis | Luna precedentă lunii curente. Fereastra preselectează ultima lună neînchisă — cele două trebuie să coincidă. |
| Regimul de impozitare al firmei | Impozit pe profit sau impozit pe venit (microîntreprindere) — determină ce tab de impozit e activ la final de trimestru. |
În SAGA Web, din meniul Operații se alege Închidere luna (ultima opțiune din meniu).
La deschiderea ferestrei, în dreapta sus este deja preselectată ultima lună neînchisă. Robotul verifică dacă aceasta coincide cu luna precedentă lunii curente. Dacă nu coincide, nu continuă — raportează situația pentru verificare manuală.
Se deschide tabul Calcul diferente de curs și se apasă Actualizare date (dreapta sus).
Lista se populează cu conturile în valută și diferențele recalculate. Robotul apasă apoi Validez (stânga jos). Apare mesajul verde de succes.
Robotul revine pe tabul Închidere luna și apasă Validez pentru fiecare secțiune, în ordine, de sus în jos: Înregistrare operații contabile aferente stocurilor → Înregistrare cheltuieli / venituri în avans → Înregistrare amortizare imobilizări.
După fiecare validare apare, în colțul din dreapta jos, mesajul verde „Validarea a fost finalizată cu succes", iar banda secțiunii devine albastră.
Dacă luna de închis este martie, iunie, septembrie sau decembrie, înainte de secțiunea Închidere conturi de cheltuieli și venituri robotul calculează impozitul trimestrului. Cele două taburi de impozit nu pot fi active simultan: la firmele plătitoare de impozit pe profit e activ tabul Impozit pe profit, la microîntreprinderi tabul Impozit pe venit.
Impozit pe profit: se deschide tabul Impozit pe profit. Dacă apare mesajul de mai jos, robotul apasă OK și completează data de la care începe calculul impozitului — prima zi a primei luni din trimestrul care se închide (ex. 01.07 pentru trimestrul iulie–septembrie).
SAGA afișează cheltuielile și veniturile trimestrului și impozitul calculat. Robotul apasă Validez, apoi revine pe tabul Închidere luna și continuă cu pașii rămași.
Impozit pe venit (microîntreprinderi): același mecanism, pe tabul Impozit pe venit — se verifică data de început și procentul, apoi se apasă Validez și se revine pe tabul Închidere luna.
Robotul apasă Validez pe ultima secțiune din tabul Închidere luna — Închidere conturi de cheltuieli și venituri. Apare mesajul verde de succes, iar banda devine albastră.
La final, robotul apasă butonul Validare inchidere luna (stânga jos).
Se primește mesajul că validarea s-a efectuat cu succes, iar SAGA deschide automat luna următoare (luna nouă apare în selectorul din dreapta sus, iar butonul din stânga jos devine „Devalidare închidere" pentru luna abia închisă).
| Regulă | Comportament |
|---|---|
| Luna preselectată nu coincide cu luna precedentă lunii curente | Robotul se oprește înainte de orice validare și raportează. |
| Prima sau a doua lună din trimestru | Flux standard, fără pasul de impozit (pasul 5 se sare). |
| Ultima lună din trimestru (martie, iunie, septembrie, decembrie) | Impozitul se calculează și se înregistrează înainte de Închidere conturi de cheltuieli și venituri. |
| Tabul de impozit | E activ doar cel corespunzător regimului firmei: Impozit pe profit la plătitorii de impozit pe profit, Impozit pe venit la microîntreprinderi. |
| Secțiunea Înregistrare cheltuieli / venituri în avans lipsește | Se trece la secțiunea următoare — nu e eroare. |
| Ordinea validărilor | Întotdeauna de sus în jos; o secțiune se validează doar după ce precedenta s-a validat cu succes. |
SAGA Web (web3.sagasoft.ro) · robotul importă note contabile dintr-un fișier CSV direct în ecranul Operații → Articole contabile, prin funcția Import date a ecranului. Se folosește pentru înregistrările care nu vin din facturi sau extrase (ex. note de salarii, provizioane, regularizări, preluări de solduri).
Fiecare rând din fișier este o linie de notă contabilă: cont debit, cont credit și sumă. Notele compuse se scriu pe mai multe rânduri consecutive, cu aceeași dată și același număr de document. Antetul folosește exact denumirile de coloană de mai jos — atunci maparea coloanelor în SAGA se face automat.
| Poziție | Antet CSV | Câmp SAGA | Observații |
|---|---|---|---|
| 1 | DATA | Data | Obligatoriu. Data notei contabile, format ZZ.LL.AAAA (ex. 30.09.2026); trebuie să fie în intervalul de lucru. |
| 2 | NDP | Nr. document | Numărul documentului. Liniile aceleiași note poartă același număr (ex. STAT 09/2026). |
| 3 | CONT_D | Cont debit | Simbolul contului din planul de conturi, cu analitic unde există (ex. 641, 4315, 401.00107). Contul trebuie să existe în planul de conturi. |
| 4 | CONT_C | Cont credit | Idem cont debit. |
| 5 | SUMA | Suma | Obligatoriu. Suma în lei; separator zecimal punct (ex. 100.00), fără separator de mii. |
| 6 | EXPLICATIE | Explicație | Explicația înregistrării (ex. Salariu brut datorat). SAGA o afișează cu majuscule în registru. |
Format: CSV separat prin virgulă, encoding UTF-8, terminator de linie CRLF; primul rând = antetul cu denumirile exacte de mai sus (în fereastra de import, setarea „Prima linie din fisierele text contine denumirile coloanelor” este bifată implicit). Fereastra acceptă și fișiere .xls, .xlsx sau .txt, câte un singur fișier per import.
DATA,NDP,CONT_D,CONT_C,SUMA,EXPLICATIE30.09.2026,STAT 09/2026,641,421,12050,Salariu brut datorat30.09.2026,STAT 09/2026,421,4315,3013,CAS retinut salariat (25%)30.09.2026,STAT 09/2026,421,4316,1205,CASS retinut salariat (10%)30.09.2026,STAT 09/2026,421,444,722,Impozit pe venit retinut (10%)30.09.2026,STAT 09/2026,6461,436,271,CAM datorat angajator (2.25%)Din bara de meniu SAGA Web se deschide meniul Operatii și se alege Articole contabile (prima poziție din meniu). Se deschide registrul de articole contabile al firmei.
În bara de instrumente a registrului, lângă butonul de export, se apasă butonul Import date.
Se deschide fereastra Import, cu taburile „Import fisier” și „Setari”. Fișierul se trage în zona punctată sau se alege cu butonul … din dreapta câmpului de fișier.
În tabul Setari există o singură opțiune — „Prima linie din fisierele text contine denumirile coloanelor” — care rămâne bifată (fișierul nostru are antet).
După selectare, fereastra afișează conținutul fișierului, iar deasupra fiecărei coloane apare un selector cu câmpul SAGA în care se preia coloana. Dacă antetul folosește denumirile exacte din tabelul de mai sus, toate coloanele se mapează automat. O coloană nerecunoscută apare ca Nepreluat și se poate mapa manual din selector. Robotul verifică fiecare selector înainte de a continua.
Se apasă butonul Import. La succes, fereastra se închide fără mesaj de confirmare, iar registrul se reîmprospătează singur. Reușita se verifică prin prezența înregistrărilor în registru, nu printr-un mesaj.
Înregistrările importate apar în registru la data lor, cu numărul de document și explicația din fișier (afișată cu majuscule) și cu tipul Import în coloana Tip. Robotul verifică faptul că numărul de înregistrări importate corespunde cu numărul de rânduri din fișier și că sumele sunt corecte.