e-Factura: verifică clientul înainte să emiți factura

Din 2024, facturile B2B circulă prin sistemul RO e-Factura al ANAF. Un CUI greșit sau o firmă radiată se observă cel mai ieftin înainte de emitere. Verifică-le printr-un apel API.

Problema

Din 1 ianuarie 2024, operatorii economici stabiliți în România raportează facturile B2B în sistemul RO e-Factura al ANAF, iar din 1 iulie 2024 le transmit destinatarilor prin același sistem. Factura se leagă de CUI-ul cumpărătorului: nu mai este un PDF trimis pe e-mail, ci un document structurat, ale cărui date de identificare trebuie să fie corecte din prima. Un CUI scris greșit în fișa clientului, o denumire veche sau un client care între timp și-a încetat activitatea înseamnă facturi respinse, corecții și întârzieri la încasare.

Cele mai multe erori vin din date de client introduse manual sau rămase neschimbate ani de zile. O verificare automată la crearea clientului, și din nou înainte de emiterea unei facturi mari, costă un apel API.

Cum funcționează

Aplicația ta de facturare apelează API-ul înainte de a trimite factura prin sistemul ANAF și compară rezultatul cu datele din fișa clientului.

  • GET /companies/search?country=RO&company_number=... caută clientul după CUI. Acceptă CUI-ul cu sau fără prefixul RO.
  • Compari company_name și adresa cu fișa clientului din aplicație.
  • Verifici status: o firmă dizolvată sau radiată nu mai este un client cu care să mergi mai departe.
  • GET /vat/RO5022670 confirmă în VIES că numărul de TVA este activ.
  • POST /monitor te anunță când clientul își schimbă statusul sau denumirea.
import requests

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

def client_ok(cui: str, denumire_din_fisa: str) -> bool:
    r = requests.get(f'{BASE}/companies/search', headers=H,
                     params={'country': 'RO', 'company_number': cui})
    rezultate = r.json().get('data', [])
    if not rezultate:
        return False  # CUI inexistent sau persoana nu este servită
    firma = rezultate[0]
    return firma['status'] == 'active' and firma['company_name'].upper() == denumire_din_fisa.upper()

Ce poți verifica

Verificare înainte de facturăCâmp
CUI-ul există în Registrul Comerțuluirezultat la company_number
Denumirea din fișa clientului este cea din registrucompany_name
Clientul nu este dizolvat, în lichidare sau în insolvențăstatus, local_status
Adresa este actualăcâmpurile de adresă
Numărul de TVA este activvat_number și GET /vat/RO...

Ce nu face acest apel

  • Nu este o verificare a sistemului ANAF și nu înlocuiește validarea făcută de acesta: Prometiam servește datele Registrului Comerțului.
  • Numărul de TVA din vat_number este construit din CUI (RO + CUI), iar registrul nu confirmă înregistrarea. Confirmarea o dă GET /vat/RO....
  • Persoanele fizice și întreprinderile individuale (PFA, II, IF) nu sunt servite; pentru ele căutarea nu returnează nimic.
  • Datele se actualizează lunar, deci o schimbare din ultimele zile poate lipsi.
  • Nu există administratori, capital social sau anunțuri de insolvență pentru România.

Când rulezi verificarea

Momentul cel mai util este crearea sau modificarea fișei de client: o singură verificare prinde CUI-urile scrise greșit înainte să ajungă în prima factură. A doua verificare utilă este înaintea unei facturi de valoare mare sau după o pauză lungă de colaborare, când clientul și-a putut schimba denumirea sau statusul.

Pentru clienții recurenți, o monitorizare cu POST /monitor este mai ieftină decât reverificarea la fiecare factură: primești un webhook doar când ceva se schimbă în registru. Dacă firma ta emite facturi către clienți din alte țări europene, aceleași apeluri funcționează cu parametrul country al țării respective.

Clienți din alte țări

Dacă emiți facturi și către clienți din alte țări, aceeași structură de răspuns funcționează pentru toate cele 27 de țări acoperite, cu parametrul country potrivit. Regulile de e-facturare diferă de la țară la țară, așa că verificarea CUI-ului rămâne specifică României, iar pentru celelalte piețe găsești detalii în pagina despre e-facturare.

Ce plan se potrivește

O verificare la crearea fiecărui client și una înainte de facturile mari încap, pentru majoritatea firmelor, în Starter (9,99 EUR pe lună, 1.000 de credite). Perioada de probă durează 14 zile, cu 500 de credite; cardul este necesar, dar nu se încasează nimic în timpul probei. Vezi și pagina despre e-facturare.

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 trimite factura prin e-Factura direct cu acest API?
Nu. Prometiam nu emite și nu transmite facturi. API-ul verifică datele clientului din Registrul Comerțului, înainte să trimiți factura prin sistemul ANAF.
Acceptă API-ul CUI cu prefixul RO?
Da, o căutare cu RO5022670 este citită ca CUI-ul 5022670.
Ce se întâmplă cu un CUI cu cifră de control greșită?
Cifra de control este orientativă: câteva CUI reale nu o respectă. Instrumentul gratuit de căutare afișează un avertisment, nu o respingere.
Cum confirm că numărul de TVA este activ?
Cu GET /vat/RO..., care interoghează VIES. Câmpul vat_number din înregistrare este construit după regulă și nu confirmă înregistrarea.