Firme nou înființate și modificări în registru: semnale de vânzare din ONRC

O firmă nouă în registru, o denumire nouă, un sediu mutat sau o formă juridică schimbată marchează adesea momentul în care o firmă începe să cumpere. API-ul urmărește conturile din CRM, îți trimite modificarea din Registrul Comerțului (ONRC) și listează firmele apărute în registru. Doar la nivel de firmă, fără datele personale ale administratorilor.

Modificările din Registrul Comerțului care deschid o vânzare

Pentru România, API-ul înregistrează apariția unei firme noi în registru și modificările de denumire, formă juridică, sediu social și status. Fiecare primește un event_type:

Modificareevent_typeDe ce contează pentru vânzări
Firmă nouă în registrunew_incorporationO firmă nouă are nevoie de bancă, contabil, asigurări, software și spațiu
Denumire nouăname_changeUn rebranding redeschide contractele, facturarea și sistemele
Formă juridică nouălegal_form_changeO transformare schimbă contractele și adesea nevoile firmei
Sediu social mutataddress_changeSediu nou: amenajări, servicii, furnizori locali. Poate fi însă doar o adresă de domiciliere, nu un birou
Dizolvare, lichidare, reorganizare, insolvență, falimentdissolution, liquidation, insolvencyOprește vânzarea, protejează factura și curăță CRM-ul

Capitalul social nu se publică pentru România, deci nu există evenimente capital_change. Fiecare eveniment poartă previous_value și new_value, ca să vezi ce s-a schimbat fără un al doilea apel.

Sursa ONRC se citește lunar, iar o schimbare apare odată cu citirea lunară. Un eveniment este datat din ziua citirii care îl vede prima dată (event_date), nu din ziua în care schimbarea a fost înregistrată la ONRC; istoricul începe cu prima încărcare a datelor, din octombrie 2026. O listă goală înseamnă doar că nu s-a văzut încă nicio modificare.

Urmărește-ți conturile și adu alerta în CRM

Găsește o singură dată înregistrarea fiecărui cont, abonează-l cu POST /monitor și păstrează id-ul din CRM ca label: se întoarce în fiecare alertă. Abonarea nu consumă credite și vizează doar ce se întâmplă după ea; trecutul unei firme îl citești cu GET /company-events/search?country=RO&company_number=5022670 (2 credite).

import requests

BASE = 'https://api.prometiam.com/functions/v1/risk-api'
H = {'Authorization': 'Bearer rk_live_...'}

# Conturile țintă, cum le ține CRM-ul: CUI și id-ul din CRM
conturi = [('5022670', 'crm-1001'), ('2816464', 'crm-1002')]

for cui, crm_id in conturi:
    r = requests.get(f'{BASE}/companies/search', headers=H,
                     params={'country': 'RO', 'company_number': cui})
    r.raise_for_status()
    gasite = r.json()['data']
    if not gasite:
        continue
    m = requests.post(f'{BASE}/monitor', headers=H, json={
        'company_id': gasite[0]['id'],
        'country': 'RO',
        'label': crm_id,                       # se întoarce în fiecare alertă
        'events': ['corporate_event', 'status_change', 'dissolution'],
        'webhook_url': 'https://example.com/hooks/prometiam',
    })
    m.raise_for_status()
    secret = m.json()['data']['webhook_secret']   # apare o singură dată: păstrează-l

Fiecare alertă ajunge semnată. Antetul X-Prometiam-Signature conține sha256= și HMAC-SHA256 al corpului, calculat cu webhook_secret, pe care POST /monitor îl returnează o singură dată. Verifică semnătura înainte să creezi sarcina pentru agentul de vânzări; un răspuns 2xx confirmă primirea, altfel livrarea se reîncearcă.

import hashlib, hmac, json, os

SECRET = os.environ['PROMETIAM_WEBHOOK_SECRET'].encode()   # webhook_secret de la POST /monitor

def alerta(corp: bytes, semnatura: str) -> int:
    """corp = corpul brut al cererii; semnatura = antetul X-Prometiam-Signature."""
    calculata = 'sha256=' + hmac.new(SECRET, corp, hashlib.sha256).hexdigest()
    if not hmac.compare_digest(semnatura, calculata):
        return 401
    a = json.loads(corp)
    # a['label'] = id-ul din CRM, a['alert_type'], a['company']['name'], a['event_date'];
    # la corporate_event: a['detail'] = {'event_type': 'name_change', 'previous_value': ..., 'new_value': ...}
    ...   # creează sarcina pentru proprietarul contului a['label']
    return 204

Webhook-urile sunt incluse în fiecare plan. Alertele se citesc și cu GET /monitor (abonările tale și ultimele 50 de alerte), deci un job nocturn poate ține locul webhook-ului. Perioada de probă urmărește 3 firme, Starter 25, Professional 250 și Scale 2.500.

Toate modificările din România, nu doar ale conturilor tale

Fără nume și fără CUI, același apel este fluxul de evenimente al țării: tot ce s-a văzut în registru, de la cel mai nou la cel mai vechi, filtrat cu event_type. date_from este implicit cu 7 zile în urmă și poate merge cel mult 31 de zile înapoi (o dată mai veche este refuzată cu 400). Un apel costă 2 credite pentru până la 100 de evenimente, iar pagina următoare se cere cu next_cursor.

# Firmele apărute în registru în ultimele 30 de zile, cele mai noi primele (100 de evenimente pe apel)
# pe macOS: date -v-30d +%F în loc de date -d '30 days ago' +%F
curl "https://api.prometiam.com/functions/v1/risk-api/company-events/search?country=RO&event_type=new_incorporation&date_from=$(date -d '30 days ago' +%F)&limit=100" \
  -H 'Authorization: Bearer rk_live_...'

Fiindcă sursa se citește lunar, intervalul implicit de 7 zile poate întoarce o listă goală între două citiri; de aceea exemplul pornește de acum 30 de zile. Un job frecvent reține cel mai recent event_date văzut, reia de la el și deduplică după id-ul evenimentului. Fluxul privește cel mult 31 de zile înapoi, deci rulează-l măcar o dată pe lună.

Firme noi din registru, după cod CAEN

founded_after listează firmele înființate de la o dată încoace, fără nume, de la cea mai nouă la cea mai veche: până la 100 de firme pe apel, la 1 credit, cu next_cursor pentru pagina următoare. Înregistrarea are founding_date, județul în region, localitatea în city și forma juridică în legal_form.

# Firmele înființate de la 15 august, cele mai noi primele (100 pe apel)
curl 'https://api.prometiam.com/functions/v1/risk-api/companies/search?country=RO&founded_after=2026-08-15&limit=100' \
  -H 'Authorization: Bearer rk_live_...'

Serverul filtrează doar după data înființării: un cnae= este refuzat cu 400. Codurile CAEN sunt activitățile autorizate ale firmei și stau în registry_details.caen_codes, iar activity_code apare doar când firma are una singură, deci filtrezi în codul tău. Un cod din listă arată că firma poate desfășura activitatea, nu că aceasta este activitatea ei principală.

def noi_in_it(de_la):
    """Firmele înființate de la o dată, cu cel puțin un cod CAEN 62 (IT) autorizat (folosește requests, BASE și H de mai sus)."""
    cursor = None
    while True:
        p = {'country': 'RO', 'founded_after': de_la, 'limit': 100}
        if cursor:
            p['cursor'] = cursor
        r = requests.get(f'{BASE}/companies/search', headers=H, params=p)
        r.raise_for_status()
        corp = r.json()
        for f in corp['data']:
            coduri = (f.get('registry_details') or {}).get('caen_codes') or []
            if any(c.startswith('62') for c in coduri):
                yield f['company_number'], f['company_name'], f['region']
        cursor = corp['pagination']['next_cursor']
        if not cursor:
            break

meta.data_as_of arată data la care se referă datele; firmele înregistrate după ea apar la citirea următoare, deci verifică-l înainte să presupui că „ultima săptămână” conține firme. Fiecare pagină de 100 de firme costă 1 credit: limitează de_la la perioada de care ai nevoie.

Regulile jocului

  • Doar date despre firme. API-ul nu oferă administratori pentru România; contactează firma pe canalele ei publice.
  • E-mailul comercial are propriile reguli. Art. 12 din Legea nr. 506/2004 cere consimțământul prealabil expres pentru comunicările comerciale prin e-mail, iar alin. (4) extinde regula și la abonații persoane juridice. Un semnal îți spune când să suni, nu că ai voie să scrii unei persoane; verifică cu juristul tău.
  • Pentru procesul tău de vânzări. Condițiile nu permit revânzarea datelor sub formă de listă sau ca serviciu de date concurent.
  • Fluxul privește 31 de zile înapoi. Alertele vin pentru firmele pe care le urmărești; fluxul țării acoperă cel mult ultima lună.

Ce nu primești pentru România

  • Doar înregistrări de firmă: fără administratori, fără semnalul de conformitate al registrului și fără capital social (deci nici segmentare după capital).
  • Fără anunțuri de insolvență: România nu este una dintre cele șaisprezece piețe cu anunțuri. Dizolvarea, lichidarea, insolvența și falimentul apar în status și în evenimentele din registru.
  • Persoanele fizice și întreprinderile individuale (PF, PFA, II, IF, AF) și sucursalele nu sunt servite niciodată.
  • Numărul de TVA este construit din CUI (RO + CUI), iar registrul nu confirmă înregistrarea; îl verifici cu GET /vat/RO....
  • Datele se citesc lunar: pentru o decizie urgentă, cere firmei un certificat constatator.

Cât costă

Monitorizarea nu consumă credite: planul stabilește câte firme urmărești (3 în perioada de probă, 25 în Starter, 250 în Professional și 2.500 în Scale; webhook-urile sunt incluse în fiecare plan). O căutare de firmă costă 1 credit, iar o căutare de evenimente sau un apel la fluxul țării 2 credite; erorile nu costă nimic. În perioada de probă, căutările de evenimente (inclusiv fluxul țării) au o limită de 25 de apeluri pe lună; de la Starter nu mai există această limită. Starter costă 9,99 EUR pe lună și include 1.000 de credite, Professional 29,99 EUR și 10.000 de credite, Scale 99,99 EUR și 50.000 de credite. Perioada de probă gratuită durează 14 zile și include 500 de credite: este necesar un card, în timpul probei nu se încasează nimic, apoi continuă planul Starter (9,99 EUR pe lună), dacă nu anulezi. Vezi prețurile.

Contains data from the National Trade Register Office (ONRC), CC BY 4.0

Pagini conexe

Începe perioada de probă gratuită de 14 zile · Documentația API

Perioada de probă durează 14 zile și include 500 de credite. Cardul este necesar, dar nu se încasează nimic în timpul probei; apoi continuă planul Starter (9,99 EUR pe lună), dacă nu anulezi.

Frequently asked questions

Pot primi toate firmele nou înființate din România, nu doar ale mele?
Da. GET /companies/search?country=RO&founded_after=... listează firmele înființate de la o dată încoace, iar fluxul cu event_type=new_incorporation arată ce a apărut în registru în ultimele 31 de zile cel mult. Alertele vin doar pentru firmele pe care le urmărești, iar cele mai noi înregistrări apar la citirea lunară următoare.
Cât de repede aflu că o firmă și-a schimbat sediul sau denumirea?
Odată cu citirea lunară a sursei ONRC: evenimentul este datat din ziua citirii care vede schimbarea, nu din ziua în care a fost înregistrată la ONRC. Pentru o decizie urgentă, cere firmei un certificat constatator.
Primesc și modificările de capital social?
Nu. Registrul nu publică capitalul social pentru România, deci nu există evenimente capital_change și nici câmp de capital.
Pot trimite e-mailuri comerciale firmelor din flux?
Un semnal nu este un consimțământ: comunicările comerciale prin e-mail au regulile art. 12 din Legea nr. 506/2004. Datele se folosesc în propriul proces de vânzări; condițiile nu permit revânzarea lor sub formă de listă.
Apar PFA-urile și întreprinderile individuale?
Nu. Persoanele fizice și întreprinderile individuale (PF, PFA, II, IF, AF) nu sunt servite niciodată, nici sucursalele.