Vibe coding pentru contabili — cum am construit un tool fără să scriu o linie de cod.

Povestea unui weekend în care 8.000 de CIF-uri s-au verificat în 80 de secunde la ANAF — fără developer, fără ofertă, fără factură. Doar un dialog răbdător cu AI-ul.

AI Accounting Hub
02.05.2026
// Vibe coding · ANAF bulk check tool

Imaginează-ți situația: Ai nevoie să actualizezi baza de date internă de furnizori și trebuie să verifici dacă toți partenerii sunt încă plătitori de TVA, dacă vreunul e declarat inactiv, dacă cineva a intrat în TVA la încasare și — pentru că suntem în 2026 — dacă figurează în registrul RO e-Factura. Termenul: ieri.

Pe site-ul ANAF poți verifica un CIF. Apoi încă unul. Apoi încă unul. La al 50-lea începi să te întrebi dacă există vreo soluție mai inteligentă. La al 200-lea descoperi că există — ANAF expune un serviciu web pentru verificare bulk, până la 100 de CUI-uri într-un singur request. Doar că serviciul e gândit pentru programatori, nu pentru contabili. Aici ar fi trebuit să se termine povestea.

Nu s-a terminat. Pentru că între tine și un developer, în 2026, stă AI-ul. Iar termenul tehnic pentru ce am făcut weekend-ul trecut se cheamă vibe coding: descrii în limbaj natural ce vrei, AI-ul scrie codul, tu testezi, rafinezi, rulezi. Rezultatul: un mic executabil .exe care procesează 8.000 de CIF-uri în 80 de secunde, rulează pe orice PC cu Windows și nu a costat decât câteva ore de răbdare.

Problema — 8.000 de rânduri și un singur câmp

Verificarea unui CIF e simplă. Resurse există cu duiumul: mfinante.gov.ro, registrul ANAF al plătitorilor de TVA, registrul TVA la încasare, registrul contribuabililor inactivi, registrul RO e-Factura. Pe rând, una câte una, fiecare cu propriul câmp de input și propriul rezultat.

Dacă lucrezi cu un soft localizat pe specific românesc — gen SAGA — funcția e deja inclusă: bagi fișierul, scoți rezultatul. Sfârșit. Dar dacă firma ta lucrează pe un ERP extern (SAP, Oracle, Microsoft Dynamics) sau pe un CRM care n-a auzit de codul fiscal românesc, verificările trebuie făcute extern. Manual. Pentru fiecare. La 8.000 de rânduri devine, hai să-i spunem cu eufemism, neproductiv.

Notă tehnică pentru cei curioși: ANAF expune endpointul public https://webservicesp.anaf.ro/api/PlatitorTvaRest/v9/tva, care acceptă maxim 100 de CUI-uri pe request și un request pe secundă. Răspunsul vine în format JSON și conține tot ce te interesează: denumire, stare societate, plătitor TVA, TVA la încasare, split TVA, RO e-Factura, adresă și multe altele. E generos — doar că trebuie să știi cum să îl interoghezi.

Înainte de AI — brief, cotație, factură

În urmă cu trei ani, scenariul ar fi fost predictibil. Cauți un developer prin cunoștințe sau pe LinkedIn. Îi explici, pe larg, ce vrei. Aștepți o ofertă. Negociezi. Semnezi. Aștepți două săptămâni. Primești un MVP care nu face exact ce voiai. Mai aștepți câteva runde de feedback. Plătești. Speri ca developerul să mai fie disponibil când apare bug-ul de la ANAF de la prima actualizare.

Pentru o problemă recurentă a unei firme mari, calculul ține. Pentru o firmă mică, costul nu se justifică. Așa că majoritatea s-au resemnat să verifice manual.

Acum se cheamă vibe coding

Termenul a fost popularizat la începutul lui 2025 de Andrej Karpathy (fost Tesla, fost OpenAI). Ideea e simplă: vorbești cu AI-ul ca și cum ai vorbi cu un junior developer paralel cu tine pe ecran. Îi spui ce vrei, el scrie codul, tu rulezi. Dacă ceva nu merge, îi spui ce nu merge. El corectează. Repeți până funcționează.

Diferența față de programarea clasică: nu trebuie să cunoști sintaxa limbajului. Diferența față de no-code (Zapier, Make, Bubble): nu ești limitat de ce a vrut platforma să îți pună la dispoziție. Diferența față de „cere unui prieten dev să te ajute": prietenul tău dev nu răspunde duminică la 23:14.

Vibe coding nu e magie. E o conversație lungă și uneori frustrantă cu un colaborator care știe sintaxa pe care n-o știi tu — DAR care e MEREU disponibil. — observație după aproximativ 60 de iterații

Disclaimer onest — nu sunt programator

Înainte să te entuziasmezi: n-am background tehnic. Știu să scriu o formulă în Excel, înțeleg vag ce e o variabilă și am instalat odată Python ca să rulez un script primit de la cineva — operațiune care a durat două ore și o căutare pe Google. Atât.

Și totuși, weekend-ul trecut am ieșit din zona „contabil cu Excel" și am ajuns cu un fișier verificare_anaf.exe de 35 MB, pe care îl pot trimite oricui prin e-mail sau WeTransfer și care merge dintr-un dublu-click. Nu pentru că am învățat să programez între timp. Ci pentru că am învățat să iterez — exact ce am scris în articolul anterior despre prompting.

Promisiunea vibe coding-ului nu e că oricine devine inginer software peste noapte. Promisiunea e că bariera de intrare pentru a-ți construi propriile tool-uri interne a scăzut dramatic. Nu vei putea concura cu produse comerciale ... dar nici nu trebuie. Tu rezolvi nevoia ta, pe șurubul ăla particular pe care nimeni n-o să îți facă produs comercial.

Procesul — în iterații, cum altfel

Iată traseul real, fără înfrumusețări. Dacă te aștepți la „un singur prompt", nu există așa ceva. Dar nu există nici „300 de iterații" — adevărul e undeva la mijloc, suficient de aproape de cel mai bun raport timp/rezultat pe care l-am văzut într-un proiect IT.

Iterația 1 — punctul de plecare

I-am dat AI-ului documentația ANAF a serviciului web (cea publică, de la webservicesp.anaf.ro) și i-am spus, simplu:

Sunt contabil, fără cunoștințe de programare. Am atașat
documentația serviciului ANAF de verificare CIF în bulk.
Vreau un script Python care:
  - primește o listă de CIF-uri
  - le trimite la ANAF respectând limita de 100 per request
  - extrage denumirea, statusul TVA și starea societății
  - le scrie într-un fișier Excel

Explică-mi ce trebuie să instalez și cum să rulez.

AI-ul a livrat un script de ~40 de linii și instrucțiuni pas-cu-pas pentru instalare. L-am rulat. A mers din prima pe 5 CIF-uri. Pe 100 a crăpat — depășise limita de un request pe secundă.

Iterația 2 — limitele ANAF

I-am spus: „Crapă pe pachete de peste 100 de CIF-uri. ANAF mi-a dat eroare 429". AI-ul a explicat: e limita de rate (un request pe secundă) și a rescris codul cu un time.sleep(1.1) între pachete și un mecanism de retry pentru erori temporare. Cele 40 de linii de cod deveniseră 80. Mergea.

Iterația 3 — CIF-urile murdare

Datele reale n-au fost niciodată curate. În fișierul meu, același CIF apărea ca RO 12345678, ro12345678, 12345678, sau cu spații, puncte, virgule. ANAF cere doar cifre. I-am spus AI-ului: „Adaugă o funcție care curăță CIF-ul: scoate prefixul RO, spațiile, caracterele non-numerice, și păstrează doar cifrele". Două minute mai târziu, eram în iterația 3.

Iterația 4–7 — interfața grafică

Aici am stat cel mai mult. Voiam să nu mai rulez scriptul din linie de comandă. Voiam o fereastră normală, cu butoane.

I-am cerut AI-ului o interfață tkinter (mi-a sugerat el că e cea mai simplă opțiune nativă în Python). În câteva runde am ajuns la:

  • câmp pentru verificare individuală (un singur CIF)
  • buton de încărcare fișier Excel pentru verificare bulk
  • bară de progres care arată câte pachete s-au procesat
  • preview cu primele 10 rezultate, actualizat în timp real
  • buton de export Excel cu rezultatele complete

Iterația 8 — împachetarea în .exe

Ultima problemă: nu pot trimite cuiva un script Python și să îi cer să instaleze Python, pip, dependințe etc. Soluția: PyInstaller, o unealtă care împachetează tot — Python, librării, codul tău — într-un singur executabil. AI-ul mi-a dat comanda exactă, am rulat-o, am primit fișierul .exe. L-am dat unui coleg care nu are Python pe PC. A mers din prima.

Despre iterații, sincer: n-am ținut contul exact, dar am avut undeva între 50 și 70 de schimburi de mesaje cu AI-ul. Cele mai multe au fost rapide („merge", „crapă", „prea mic textul", „pune și o coloană pentru cod CAEN"). Dar fără momente de frustrare reală.

Tool-ul, în practică

Aplicația finală face exact două lucruri, ambele bine. Single check — pentru când vrei să verifici un CIF rapid, fără Excel, fără bătaie de cap. Bulk check — pentru când ai o listă lungă, încarci un Excel, aștepți și exporți rezultatul.

Pentru fiecare CIF, tool-ul scoate: denumirea firmei, status plătitor TVA, status TVA la încasare, status inactiv/reactiv, status split TVA, status RO e-Factura, adresă completă, cod CAEN și multe altele. Adică tot ce expune ANAF, fără să mai fii nevoit să intri pe trei portaluri diferite.

8.000
// CIF-uri într-un test real
~80 sec
// timp total procesare
100/req
// limita ANAF, respectată

Cifrele sunt valabile când și ANAF-ul cooperează. Pentru că, după cum bine știți, în ultima perioadă serviciile ANAF petrec mai mult timp în mentenanță decât în producție. Tool-ul are mecanisme de retry pentru erorile temporare, dar nu poate să facă magie când serverul de la ANAF e pur și simplu picat. La fel ca toți cei care folosesc serviciile fiscale digitale: așteptăm.

Lecții pentru contabili

N-am scris articolul ca să te conving să devii „programator de weekend". L-am scris pentru câteva observații care cred că merită reținute, indiferent dacă vei construi un tool sau nu.

  1. Bariera tehnică nu mai e ce era. Acum trei ani, articolul ăsta nu se putea scrie. Acum e o întrebare de zile, nu de luni. Asta înseamnă că tu, contabilul, decizi ce tool-uri îți construiești singur.
  2. Iterația e totul. Exact ca la prompting (vezi articolul anterior): primul răspuns e draft. Nu abandonezi — rafinezi. La cod e și mai evident, pentru că ai feedback imediat: rulează sau crapă.
  3. Nu reinventezi roata. Dacă lucrezi pe SAGA și softul are deja funcția — folosește-o. Tool-ul ăsta e pentru cazurile în care ești pe ERP extern și ANAF nu e prezent în soft. Nu confunda „pot construi tool-ul" cu „trebuie să construiesc tool-ul".
  4. Testează, mai ales pe date reale. Un tool care merge perfect pe 10 CIF-uri poate să crape spectaculos pe 100. Nu pune niciodată în producție ceva ce nu ai testat la scara la care îl vei folosi.
  5. AI scrie codul, dar tu validezi rezultatul. Profesia noastră e construită pe verificare. Aplicația ta e ca o balanță: nu o tipărești fără să o verifici. Compară 20 de rezultate cu verificarea manuală. Dacă se potrivesc — gata. Dacă nu — ai descoperit ceva.

Închiderea exercițiului

Nu confunda asta cu sfârșitul programatorilor profesioniști. Tool-ul ăsta n-ar trece nici primul code review într-o firmă serioasă. Dar nici nu trebuie. E o aplicație internă, pentru o nevoie internă, construită de cineva care înțelege problema mai bine decât oricine altcineva — pentru că o trăiește la birou, în fiecare zi.

La raftul cu acronime contabile am adăugat ieri CISO — Context In, Smart Out. Adăugăm acum un al doilea rafter: V&V — Vibe & Verify. Vorbești cu AI-ul, descrii problema, primești soluția. Apoi verifici, exact ca pe orice cifră care îți trece prin mână. Pentru că la sfârșitul zilei, indiferent cine scrie codul, semnătura de pe raport rămâne tot a ta.

Punem la dispoziție tool-ul descris în articol. ANAF CIF Checker — aplicația pentru verificare bulk și single CIF, direct din API-ul public ANAF. Rulează din dublu-click pe orice PC cu Windows, fără instalare, fără cont.
↓ Descarcă AnafCIFChecker.zip  ·  Vezi toate resursele →
Articolul #007

AI Accounting Hub

aiaccountinghub.ro

Hub educațional independent pentru profesioniștii financiari interesați de integrarea AI în procesele contabile. Evoluție fără zgomot — fără bariere, fără taxe, fără reclame.

Mai multe din hub.

Arhiva articolelor