Documentație API
Nouă endpointuri REST peste aceleași surse pe care le folosește aplicația. Răspunsuri JSON, autentificare cu cheie, creditele se scad doar la reușită.
Pe pagină
Cum începi
Cheia API se generează din contul tău, la Organizație → Chei API. Este disponibilă în pachetul Enterprise. Toate adresele sunt relative la:
Cererile pe HTTP sunt redirecționate; trimite-le direct pe HTTPS ca să nu pierzi antetul de autentificare la redirect.
Autentificare
Fiecare cerere trebuie să poarte cheia în antetul Authorization.
Fără ea, sau cu o cheie dezactivată, primești 401.
Cheia se afișează o singură dată, la creare. Dacă ai pierdut-o, generează alta — nu o putem recupera. Dezactivarea unei chei este definitivă și oprește imediat integrarea care o folosește.
Credite
Fiecare apel consumă din aceeași limită lunară ca verificările făcute din interfață.
Un CUI inexistent, o cheie invalidă sau o eroare a sursei nu te costă nimic. Verificarea disponibilității se face înainte, iar scăderea după.
| Endpoint | Credite |
|---|---|
GET /v1/status/ | 0 |
GET /v1/anaf/{cui}/ | 1 |
GET /v1/onrc/{cui}/ | 1 |
GET /v1/mfp/{cui}/ | 1 |
GET /v1/scoring/{cui}/ | 1 |
GET /v1/dosare/{cui}/ | 1 |
GET /v1/company/{cui}/ | 1 |
GET /v1/company/{cui}/pdf/ | 3 |
POST /v1/pep/ | 3 |
/v1/company/ costă un singur credit, deși adună date din mai multe surse —
e mai ieftin decât să ceri separat ANAF, ONRC, MFP și scoring.
Limite de cereri
Fiecare cheie are propria limită pe minut, implicit 10 cereri. O vezi în
răspunsul de la /v1/status/, în câmpul
rate_limit_per_minute.
Limitarea se aplică în stratul de autentificare, așa că răspunsul are codul
401 cu mesajul „Rate limit depășit”. Dacă tratezi 401 ca
„cheie greșită” și oprești integrarea, o vei opri degeaba — verifică mesajul.
Limita lunară de credite, în schimb, întoarce 429.
Coduri de eroare
Erorile vin ca JSON, cu un câmp error în limba română.
| Cod | Când apare | Ce faci |
|---|---|---|
400 |
CUI lipsă sau cu alte caractere decât cifre; nume mai scurt de 3 caractere la PEP | Corectează parametrul |
401 |
Cheie lipsă, invalidă, dezactivată — sau limita pe minut depășită | Citește mesajul: dacă e limita, reîncearcă în câteva secunde |
404 |
CUI-ul nu există în sursa interogată | Nu se consumă credit |
429 |
Limita lunară de credite atinsă | Răspunsul conține used, limit și remaining |
500 |
Sursa externă nu a răspuns sau a răspuns greșit | Reîncearcă mai târziu; nu se consumă credit |
Endpointuri
Starea contului: pachet, credite consumate și rămase, numele cheii și limita ei pe minut. Folosește-l ca verificare de sănătate — nu costă nimic.
curl https://pepcheck.ro/api/v1/status/ \
-H "Authorization: Bearer pk_live_…"import requests r = requests.get( "https://pepcheck.ro/api/v1/status/", headers={"Authorization": "Bearer pk_live_…"}, timeout=30, ) r.raise_for_status() print(r.json())
const r = await fetch("https://pepcheck.ro/api/v1/status/", { headers: { "Authorization": "Bearer pk_live_…" }, }); const data = await r.json(); console.log(data);
Date fiscale ANAF în timp real: stare de înregistrare, plătitor de TVA, TVA la încasare, split TVA, e-Factura, inactivitate fiscală și sediul social.
| Parametru | Unde | Obligatoriu | Descriere |
|---|---|---|---|
cui |
în adresă | Da | Codul unic de înregistrare, cu sau fără prefixul RO |
curl https://pepcheck.ro/api/v1/anaf/45945560/ \
-H "Authorization: Bearer pk_live_…"import requests r = requests.get( "https://pepcheck.ro/api/v1/anaf/45945560/", headers={"Authorization": "Bearer pk_live_…"}, timeout=30, ) r.raise_for_status() print(r.json())
const r = await fetch("https://pepcheck.ro/api/v1/anaf/45945560/", { headers: { "Authorization": "Bearer pk_live_…" }, }); const data = await r.json(); console.log(data);
Registrul Comerțului: denumire, număr de înmatriculare, formă juridică, cod CAEN, stare și sediu.
| Parametru | Unde | Obligatoriu | Descriere |
|---|---|---|---|
cui |
în adresă | Da | Codul unic de înregistrare, cu sau fără prefixul RO |
curl https://pepcheck.ro/api/v1/onrc/45945560/ \
-H "Authorization: Bearer pk_live_…"import requests r = requests.get( "https://pepcheck.ro/api/v1/onrc/45945560/", headers={"Authorization": "Bearer pk_live_…"}, timeout=30, ) r.raise_for_status() print(r.json())
const r = await fetch("https://pepcheck.ro/api/v1/onrc/45945560/", { headers: { "Authorization": "Bearer pk_live_…" }, }); const data = await r.json(); console.log(data);
Indicatori financiari din bilanțurile depuse la Ministerul Finanțelor: cifră de afaceri, profit net, număr de angajați, pe ani.
| Parametru | Unde | Obligatoriu | Descriere |
|---|---|---|---|
cui |
în adresă | Da | Codul unic de înregistrare, cu sau fără prefixul RO |
curl https://pepcheck.ro/api/v1/mfp/45945560/ \
-H "Authorization: Bearer pk_live_…"import requests r = requests.get( "https://pepcheck.ro/api/v1/mfp/45945560/", headers={"Authorization": "Bearer pk_live_…"}, timeout=30, ) r.raise_for_status() print(r.json())
const r = await fetch("https://pepcheck.ro/api/v1/mfp/45945560/", { headers: { "Authorization": "Bearer pk_live_…" }, }); const data = await r.json(); console.log(data);
Indicator orientativ de risc, 0–100, calculat din datele publice de mai sus. Răspunsul include componentele scorului, ca să poți arăta de ce a ieșit așa.
| Parametru | Unde | Obligatoriu | Descriere |
|---|---|---|---|
cui |
în adresă | Da | Codul unic de înregistrare, cu sau fără prefixul RO |
curl https://pepcheck.ro/api/v1/scoring/45945560/ \
-H "Authorization: Bearer pk_live_…"import requests r = requests.get( "https://pepcheck.ro/api/v1/scoring/45945560/", headers={"Authorization": "Bearer pk_live_…"}, timeout=30, ) r.raise_for_status() print(r.json())
const r = await fetch("https://pepcheck.ro/api/v1/scoring/45945560/", { headers: { "Authorization": "Bearer pk_live_…" }, }); const data = await r.json(); console.log(data);
Dosare de instanță din ECRIS, asociate firmei: număr, obiect, stadiu și instanță.
| Parametru | Unde | Obligatoriu | Descriere |
|---|---|---|---|
cui |
în adresă | Da | Codul unic de înregistrare, cu sau fără prefixul RO |
curl https://pepcheck.ro/api/v1/dosare/45945560/ \
-H "Authorization: Bearer pk_live_…"import requests r = requests.get( "https://pepcheck.ro/api/v1/dosare/45945560/", headers={"Authorization": "Bearer pk_live_…"}, timeout=30, ) r.raise_for_status() print(r.json())
const r = await fetch("https://pepcheck.ro/api/v1/dosare/45945560/", { headers: { "Authorization": "Bearer pk_live_…" }, }); const data = await r.json(); console.log(data);
Toate sursele într-un singur răspuns: ANAF, ONRC, MFP, dosare și scor. Un singur credit, în loc de patru apeluri separate.
| Parametru | Unde | Obligatoriu | Descriere |
|---|---|---|---|
cui |
în adresă | Da | Codul unic de înregistrare, cu sau fără prefixul RO |
curl https://pepcheck.ro/api/v1/company/45945560/ \
-H "Authorization: Bearer pk_live_…"import requests r = requests.get( "https://pepcheck.ro/api/v1/company/45945560/", headers={"Authorization": "Bearer pk_live_…"}, timeout=30, ) r.raise_for_status() print(r.json())
const r = await fetch("https://pepcheck.ro/api/v1/company/45945560/", { headers: { "Authorization": "Bearer pk_live_…" }, }); const data = await r.json(); console.log(data);
Raportul complet ca fișier PDF, cu antetul organizației tale, sursa și data fiecărei informații. Răspunsul este binar, nu JSON.
| Parametru | Unde | Obligatoriu | Descriere |
|---|---|---|---|
cui |
în adresă | Da | Codul unic de înregistrare, cu sau fără prefixul RO |
curl https://pepcheck.ro/api/v1/company/45945560/pdf/ \
-H "Authorization: Bearer pk_live_…"import requests r = requests.get( "https://pepcheck.ro/api/v1/company/45945560/pdf/", headers={"Authorization": "Bearer pk_live_…"}, timeout=30, ) r.raise_for_status() print(r.json())
const r = await fetch("https://pepcheck.ro/api/v1/company/45945560/pdf/", { headers: { "Authorization": "Bearer pk_live_…" }, }); const data = await r.json(); console.log(data);
Screening împotriva a peste 460 de liste de sancțiuni și persoane expuse politic, prin OpenSanctions.
| Câmp | Tip | Obligatoriu | Descriere |
|---|---|---|---|
name | string | Da | Numele căutat, minimum 3 caractere |
type | string | Nu | person (implicit) sau company |
curl -X POST https://pepcheck.ro/api/v1/pep/ \ -H "Authorization: Bearer pk_live_…" \ -H "Content-Type: application/json" \ -d '{"name": "Ion Popescu", "type": "person"}'
import requests r = requests.post( "https://pepcheck.ro/api/v1/pep/", headers={"Authorization": "Bearer pk_live_…"}, json={"name": "Ion Popescu", "type": "person"}, timeout=30, ) r.raise_for_status() print(r.json()["matches"])
const r = await fetch("https://pepcheck.ro/api/v1/pep/", { method: "POST", headers: { "Authorization": "Bearer pk_live_…", "Content-Type": "application/json", }, body: JSON.stringify({ name: "Ion Popescu", type: "person" }), }); const data = await r.json(); console.log(data.matches);
RO12345678 și 12345678 ajung la același loc:
prefixul și spațiile sunt eliminate înainte de interogare. Orice altceva
decât cifre întoarce 400.
Endpointul, CUI-ul, codul de răspuns, creditele consumate, durata, adresa IP și user-agentul intră în jurnalul organizației. Ai nevoie de el la control, și îl poți folosi ca să vezi care integrare consumă cât.