Cuprins
Am văzut de multe ori aceeași scenă: cineva din vânzări cere „firmele de IT din Cluj”, primește un export și după două săptămâni agenții se plâng că jumătate din numere nu mai răspund. Nu e vina agenților. Lista era făcută pe criterii vagi, iar în ea intraseră firme radiate, PFA-uri fără activitate și societăți cu sediul la contabil, în alt oraș.
O listă de lead-uri B2B care chiar se poate lucra pornește de la registrul oficial și de la patru lucruri precise: activitatea principală, locul sediului, starea firmei și regimul fiscal. Mai jos e felul în care o construiesc eu cu API-ul de căutare firme de la BilantAPI, cu tot cu costul și cu ce fac cu rezultatele.
De ce nu cumpăr baze de date gata făcute
O bază exportată o dată pe an începe să se strice din ziua în care ai primit-o. Firmele se radiază, se mută, devin inactive fiscal sau intră în insolvență, iar tu afli abia când sună cineva degeaba. Căutarea de firme din BilantAPI citește registrul ANAF, actualizat zilnic, și întoarce doar firmele înmatriculate la registrul comerțului, adică pe cele cu număr de înregistrare. Entitățile care n-au ce căuta într-o campanie B2B rămân pe dinafară din prima.
Partea care îmi place cel mai mult e că fiecare rezultat vine cu profilul complet, în aceeași formă ca ruta pentru o singură firmă. Ai denumirea, numărul de registru, forma juridică, starea, activitatea principală, sediul social și domiciliul fiscal cu codurile SIRUTA, regimul de TVA, e-Factura și situația de la registrul comerțului. Nu mai faci o a doua cerere ca să afli dacă firma e activă.

Profilul clientului, tradus în parametri
Înainte de orice linie de cod, iau profilul clientului ideal și îl scriu în filtrele pe care le înțelege API-ul. Să zicem că vinzi un software de gestiune pentru firme de construcții și ai oameni pe teren în Cluj și Timiș.
Activitatea înseamnă diviziunile CAEN 41, 42 și 43, adică clădiri, geniu civil și lucrări speciale. Parametrul caen acceptă orice nivel, de la secțiune până la clasă, așa că nu trebuie să înșiri toate clasele. Zona o dai cu judet=CJ,TM. Adaugi stare=ACTIVA ca să rămână doar firmele active și tip=SRL,SA ca să lași deoparte întreprinderile individuale. Ca prag minim de sănătate fiscală pui inactiv_fiscal=nu, iar dacă vinzi cu factură cu TVA, și platitor_tva=da.
Regula de combinare e ușor de ținut minte. Filtrele diferite se adună (ȘI), iar mai multe valori ale aceluiași filtru, despărțite prin virgulă, înseamnă SAU. Așa că judet=CJ,TM&caen=41,42,43 se citește „Cluj sau Timiș” și „construcții în oricare dintre cele trei diviziuni”.
Excluderile le tratez la fel de serios ca filtrele. Dacă vinzi doar antreprenorilor generali, probabil nu vrei firmele de instalații electrice din diviziunea 43. Le scoți cu caen_exclus, care se scrie la fel ca caen. Codurile cercetate efectiv apar în meta.coduri_caen, deci poți verifica în răspuns ce a intrat de fapt în filtru. Eu mă uit acolo de fiecare dată când combin mai multe niveluri de CAEN, pentru că e ușor să scapi ceva.
Prima rulare o faci în sandbox
Sandbox-ul întoarce date fictive și nu consumă credite, așa că acolo îmi verific sintaxa. Îți trebuie totuși o cheie API, pe care o primești după ce îți faci contul gratuit, fără card. Cheia merge în antetul X-API-KEY.
curl -H 'X-API-KEY: cheia-ta' \
'https://www.bilantapi.ro/api/sandbox/v1/registru/firme?caen=41,42,43&judet=CJ,TM&stare=ACTIVA&tip=SRL,SA&inactiv_fiscal=nu'
Răspunsul are forma obișnuită, {"success": true, "data": [...], "meta": {...}}. Firmele sunt în data, iar în meta.paginare găsești pagina curentă, rezultatele pe pagină, totalul și numărul de pagini. Totalul e primul lucru pe care îl citesc. Îmi spune dacă segmentul are 80 de firme sau 8.000 și dacă trebuie să strâng filtrele sau să le lărgesc.
Pentru producție schimbi doar prefixul în https://www.bilantapi.ro/api/v1. Paginarea se cere cu pagina și pe_pagina: implicit vin 25 de firme pe pagină, iar maximul e 100. Toate filtrele sunt descrise în documentația API.
Cât te costă lista, înainte s-o descarci
Căutarea costă un credit pe fiecare firmă întoarsă. Dacă totalul arată 1.200 de firme și le vrei pe toate, plătești 1.200 de credite. La fiecare cerere, meta.taxare îți arată câte firme s-au taxat (rezultate_taxate), cu cât fiecare (credite_pe_rezultat) și totalul (credite). Cererile fără rezultat și erorile 400 nu consumă credite, deci o greșeală de sintaxă nu te costă nimic.
Obiceiul meu e să trimit întâi o cerere cu pe_pagina=1. Costă un singur credit și îmi dă meta.paginare.total. Abia apoi hotărăsc dacă iau tot segmentul sau doar o felie din el, de exemplu firmele înregistrate după o anumită dată, cu inregistrate_de_la. Pe un segment mare, diferența dintre „iau tot” și „iau ce pot suna luna asta” se vede direct în credite.

Ce păstrez când import în CRM
Nu import tot profilul. Țin câmpurile care mă ajută la segmentare și la împărțirea lead-urilor pe agenți:
| Câmp din răspuns | La ce îl folosești |
|---|---|
cui, denumire | Identificarea firmei și deduplicarea față de clienții existenți |
caen_principal | Segmentul și mesajul campaniei |
sediu_social cu SIRUTA | Atribuirea pe agenți, după județ și localitate |
fiscal.platitor_tva | Tipul de ofertă și de factură |
stare_juridica | Excluderea firmelor în insolvență, lichidare sau dizolvare |
Cheia unică în CRM e câmpul numeric cui, nu numărul de la registrul comerțului din numar_registru. Denumirile se schimbă, CUI-ul rămâne. Când rulezi aceeași căutare peste o lună și o parte din firme vin din nou, nu te trezești cu dubluri.
Telefoanele și emailurile nu sunt în profilul fiscal. Pentru ele există API-ul Date de contact, în două variante: după CUI, pentru o firmă, sau ca listă, cu aceleași filtre ca la căutare, plătită doar pentru firmele care au măcar un canal de contact. Dacă ai deja lista și vrei contacte doar pentru primele 100 de firme calificate, cererea pe CUI iese mai ieftin decât să iei contacte pentru tot segmentul. Eu aproape întotdeauna calific întâi și cumpăr contacte după.
Unde se strică de obicei o listă
Prima greșeală pe care o văd des e localitatea scrisă din memorie. Potrivirea e exactă, deci „Cluj” nu găsește „Cluj-Napoca”. Pentru un oraș folosește numele oficial sau codul SIRUTA și pune și județul, pentru că multe localități au nume comune.
A doua e încrederea oarbă în codul CAEN principal. O firmă poate face mult mai mult decât arată activitatea ei principală, iar căutarea filtrează doar după aceasta. Activitățile secundare autorizate le afli din API-ul Coduri CAEN, pe CUI, pentru firmele care te interesează cu adevărat.
Apoi, lipsa filtrului de stare. Fără stare=ACTIVA îți intră în listă firme radiate sau suspendate, iar agenții pierd timp cu ele. Și, poate cea mai scumpă greșeală, listele uriașe și necalificate. Zece mii de firme pe care nu le sună nimeni nu înseamnă pipeline. Aș face mai degrabă trei segmente de câteva sute, fiecare cu mesajul lui. Oricum, paginarea unei căutări merge doar până la primele 10.000 de rezultate.
Lista trebuie ținută la zi
Prospectarea nu se termină când ai importat fișierul. Fluxul care mi se pare cel mai simplu de întreținut: o dată pe lună rulezi aceeași căutare, importi în CRM doar CUI-urile noi, iar firmele care au ieșit din filtru, pentru că s-au radiat sau au devenit inactive fiscal, le marchezi ca pierdute. Pentru firmele înființate recent ai un endpoint separat, firmele noi, care îți dă înregistrările dintr-un interval de până la 31 de zile, cu aceleași filtre.
Dacă vrei întâi să vezi cum arată un domeniu pe județe, fără să scrii cod, registrul public de pe pagina de firme îți dă o idee înainte să alegi filtrele.
Eu aș începe cu un singur segment, cu două-trei filtre clare, și l-aș scoate chiar azi. Filtrele și exemplele de răspuns sunt pe pagina API Căutare firme. Contul îl faci în câteva minute la înregistrare, fără card, și primești 250 de credite gratuite, destule cât să scoți și să verifici prima listă.
Întrebări frecvente
Pot să caut după mai multe coduri CAEN în aceeași cerere?
Da. Pui codurile în parametrul caen, despărțite prin virgulă, la orice nivel: clasă, grupă, diviziune sau secțiune. Ce nu vrei scoți apoi cu caen_exclus.
Cât plătesc pentru o listă de 500 de firme?
500 de credite, pentru că se taxează un credit pe fiecare firmă întoarsă. Cererile care nu întorc nimic nu consumă credite.
Primesc și telefoanele firmelor în listă?
Nu. Căutarea îți dă profilul fiscal complet. Telefoanele, emailurile și site-urile le iei din API-ul Date de contact, care are și el o variantă de listă cu aceleași filtre.



