Studiu de caz · Instrumente / Open source

GetCIF

Date publice.Gata de integrat.

Un API gratuit și documentat care face datele publice despre firmele din România mai ușor de interogat, de înțeles și de folosit.

Acces
API gratuit, documentat
Model
Cache / snapshot / sursă live
Stadiu
Live
Introducerea documentației GetCIF, cu un exemplu de cerere și răspunsul JSON
Referința API GetCIF: tabelul endpointurilor de căutare după CIF și un exemplu curl
Semantica răspunsuluiȘtii de unde vin datele.meta.data_origin → CACHE / SNAPSHOT / ANAF

01 / Pe scurt

Nu doar încă un proxy.

GetCIF oferă dezvoltatorilor o cale simplă de a căuta firme din România după CIF. În spatele unui API mic și consecvent se ocupă de validare, cache, snapshoturi și serviciile publice ANAF, astfel încât o integrare primește un răspuns previzibil, nu ciudățeniile sursei.

Este gratuit, documentat în engleză și română și are SDK-uri pentru Node.js și PHP.

02 / Problema

Datele sunt publice. Să te bazezi pe ele e mai greu.

Datele despre firme și TVA de la ANAF sunt disponibile gratuit, dar o integrare directă preia fiecare asperitate a sursei.

  1. O sursă imprevizibilă

    Serviciile publice pot fi lente, limitate sau indisponibile pentru scurt timp. Dacă le apelezi direct, fiecare astfel de moment devine problema aplicației tale.

  2. Date de intrare cu reguli proprii

    CIF-urile trebuie normalizate, CNP-urile trebuie ținute departe, iar căutările după dată au nevoie de o valoare implicită rezonabilă. Fiecare integrare reînvață aceleași reguli.

  3. Răspunsuri gândite pentru sursă

    Răspunsurile brute reflectă felul în care sursa stochează datele, nu cum vrea o aplicație să le folosească, și nu spun dacă datele vin dintr-o interogare live.

03 / Ce face

Suprafață mică. Contract clar.

Câteva endpointuri evidente, un singur format de răspuns și sursa fiecărui rezultat inclusă în răspuns.

  • Căutare de firme

    Caută o firmă după CIF sau mai multe deodată. Cererile bulk păstrează ordinea în care au fost trimise, inclusiv duplicatele.

  • Date brute, la nevoie

    Fiecare endpoint structurat are un echivalent brut care păstrează același format și pune răspunsul original ANAF în data.raw.

  • Mai mult decât datele firmei

    Bilanțurile, registrul agricultorilor, registrul cultelor și registrul RO e-Factura urmează aceleași convenții.

  • SDK-uri și contract OpenAPI

    SDK-uri tipizate pentru Node.js / TypeScript și PHP, plus specificația OpenAPI pentru orice alt limbaj.

Endpointuri pentru căutarea după CIF
MetodăCaleDescriere
GET/v1/cifs/{cif}Căutare structurată
GET/v1/cifs/{cif}/rawRăspunsul brut ANAF
POST/v1/cifs/bulkCăutare structurată bulk
POST/v1/cifs/bulk/rawCăutare brută bulk
Căutare simplă
GET /v1/cifs/1590082

{
  "data": {
    "cif": "1590082",
    "name": "ACME SRL",
    ...
  },
  "meta": {
    "data_origin": "CACHE"
  }
}

04 / Sub capotă

Întâi munca ieftină.

Fiecare căutare urmează aceeași secvență. Un apel live către ANAF este ultima variantă, nu comportamentul implicit.

  1. 01

    Validare

    Normalizează identificatorii, respinge CNP-urile și interpretează datele înainte de orice apel extern.

  2. 02

    Rezolvare

    Stabilește cheia căutării. Endpointurile cu dată folosesc implicit ziua curentă în Europe/Bucharest.

  3. 03

    Surse locale

    Folosește cache-ul curent și snapshoturile salvate înainte de o cerere live.

  4. 04

    Limitare

    Aplică limitele de trafic și regulile de rezervă înainte de a ajunge la sursă.

  5. 05

    Interogare

    Apelează ANAF doar când înregistrarea nu există deja local.

  6. 06

    Formatare

    Returnează un format stabil: data plus meta, cu rezultate per CIF pentru cererile bulk.

Proaspăt când se poate. Util când nu.

Fiecare răspuns reușit spune de unde provine, astfel încât o integrare poate deosebi un răspuns rapid din cache de un snapshot salvat sau de o interogare live.

  1. 01 / Prima opțiuneCACHE

    O înregistrare aflată deja în fereastra curentă de cache.

    lipsă
  2. 02 / RezervăSNAPSHOT

    O înregistrare salvată dintr-o căutare anterioară.

    nesalvat
  3. 03 / Sursa liveANAF

    Serviciul public, apelat doar când înregistrarea trebuie obținută live.

meta.data_originX-Data-OriginCACHESNAPSHOTANAF

Pagina din documentația GetCIF care descrie cei șase pași ai unei cereri
  • Căutările live ajută ulterior

    Odată obținută și salvată, o înregistrare poate scuti cererile următoare de aceeași muncă.

  • Erorile sunt gândite, nu transmise

    Când ANAF are probleme, API-ul poate returna o înregistrare disponibilă local în loc să transfere problema către aplicația care îl apelează.

05 / Tehnologii

Piese simple și de încredere.

Nimic exotic. Fiecare componentă are un singur rol în drumul unei căutări.

API
Go · chi
Cache + limite de trafic
Redis
Snapshoturi
PostgreSQL · sqlc · pgx · golang-migrate
Contract
OpenAPI
Observabilitate
OpenTelemetry
SDK-uri
TypeScript (@getcif/sdk) · PHP (getcif/sdk)
Site-ul de documentație
React · Vite · Tailwind CSS
Implementare
Docker · Traefik · Dokploy

06 / Stadiul actual

Live, documentat, intenționat mic.

Scopul este intenționat restrâns: acces de încredere la date utile despre firmele din România, cu suficient cache, proveniență și logică de rezervă pentru integrări mai puțin fragile.

API
Live la api.getcif.dev
Documentație
Engleză și română
SDK-uri
Node.js și PHP · 0.1.0

Proiectul următor · 02

Agrafa

Cunoaște starea.Prinde schimbarea.

Un sistem de monitorizare scris în Go care colectează starea nodurilor și a serviciilor, evaluează starea, aplică reguli de alertare și expune un model de citire util pentru dashboarduri.

Agent
Go / gopsutil
Backend
Go / PostgreSQL / REST
Focus
Noduri / servicii / alerte
Vezi studiul de caz