oneapi
Autentificare
Financiar v1 / Registre

Instituţiile de plată

Registrul instituţiilor de plată autorizate de BNR, în forma utilizabilă: tipul separat de stare,
instituţia-mamă a fiecărui agent şi serviciile parsate.

Registrul amestecă instituţiile cu agenţii lor, iar diferenţa e de un ordin de mărime. Doar
una din zece înregistrări e instituţie de plată; restul sunt agenţi: comercianţi care prestează
servicii de plată în numele unei instituţii. Cine numără rândurile află de zece ori mai multe
„instituţii de plată" decât există. meta.numaratoare dă defalcarea pe tip şi stare, calculată pe
* registrul întreg, indiferent de filtrele cerute — cifrele de aici nu se scriu de mână, fiindcă
* registrul creşte (15 sep: 199 de înregistrări, 19 instituţii dintre care 15 active, 180 de agenţi).
*
* Peste două treimi sunt radiate. O listă fără stare la vedere ar arăta ca o piaţă de câteva ori
* mai mare decât e.
*
* Legătura agent → instituţie există, dar nu într-un câmp. E codificată în numărul de înregistrare:
* IP-RO-0006-A-RO-051 e agentul 51 al instituţiei IP-RO-0006. Fără ea, ai o listă de agenţi fără
* să ştii ai cui sunt. institutie_mama o extrage — şi e dedusă din structura numărului, nu un câmp
* publicat de BNR. Dacă formatul se schimbă, câmpul e null, nu ghicit.
*
* Serviciile rămân coduri. servicii e lista punctelor din anexa Legii 209/2019 — ["a","b","c1","c3","f"]
— parsată, dar netradusă: subpunctele reconstituite din memorie ar produce denumiri legale greşite,
iar o denumire legală greşită e mai rea decât un cod.

Nu sunt bănci şi nu emit IBAN-uri româneşti. De aceea nu stau în /banci: puse în aceeaşi listă,
ar strica exact distincţia pe care /validare/iban o face cu nu_e_institutie_de_credit.

Aproape toate au CUI, deci se pot lega de registrul comerţului. cui acceptă şi forma cu prefixul de
ţară, cum apare pe factură.

GET
https://oneapi.ro/api/financiar/v1/institutii-plata

Parametri de interogare

NumeTipDescriereValori acceptate
tipopțional string | null Opţional: institutie sau agent. Fără el, vin amândouă — dar meta.numaratoare spune câte sunt din fiecare. institutieagent
stareopțional string | null Opţional: activa sau radiata. O înregistrare fără stare declarată n-ar apărea sub niciunul dintre filtre; meta.numaratoare le numără la fara_stare. activaradiata
institutieopțional string | null Opţional, numărul instituţiei (IP-RO-0006). Întoarce instituţia ŞI agenţii ei. max 32 car.
cuiopțional string | null Opţional. Cu sau fără prefixul RO. ex. 6719278
cautaopțional string | null Opţional, 2–64 de caractere. Caută în denumire, adresă, observaţii şi număr. max 64 car.
paginaopțional integer | null Opţional, implicit 1. 1
per_paginaopțional integer | null Opţional, implicit 50, maximum 200. 1

Cum se comportă

  • Registrul instituţiilor de plată autorizate de BNR, în forma utilizabilă: tipul separat de stare, instituţia-mamă a fiecărui agent şi serviciile parsate.
  • Registrul amestecă instituţiile cu agenţii lor, iar diferenţa e de un ordin de mărime. Doar una din zece înregistrări e instituţie de plată; restul sunt agenţi: comercianţi care prestează servicii de plată în numele unei instituţii. Cine numără rândurile ca instituţii greşeşte de zece ori.
  • meta.numaratoare dă defalcarea pe tip şi stare, calculată pe registrul întreg, nu pe rezultatul filtrat: ea apără cifra, deci nu are voie să depindă de cerere.
  • Peste două treimi sunt radiate, aproape toate agenţi. O listă fără stare la vedere ar arăta ca o piaţă de câteva ori mai mare decât e.
  • Legătura agent → instituţie există, dar nu într-un câmp. E codificată în numărul de înregistrare: IP-RO-0006-A-RO-051 e agentul 51 al instituţiei IP-RO-0006. Fără ea, ai o listă de agenţi fără să ştii ai cui sunt. institutie_mama o extrage — şi e dedusă din structura numărului, nu publicată de BNR ca un câmp. Dacă formatul se schimbă, câmpul e null, nu ghicit.
  • Serviciile rămân coduri. servicii e lista punctelor din anexa Legii 209/2019 — ["a","b","c1","c3","f"] — parsată, dar netradusă: subpunctele reconstituite din memorie ar produce denumiri legale greşite, iar o denumire legală greşită e mai rea decât un cod.
  • Nu sunt bănci şi nu emit IBAN-uri româneşti. De aceea nu stau în /banci: puse în aceeaşi listă, ar strica exact distincţia pe care /validare/iban o face cu nu_e_institutie_de_credit.
  • Aproape toate au CUI, deci se pot lega de registrul comerţului. cui acceptă şi forma cu prefixul de ţară, cum apare pe factură.
  • Diacriticele lipsesc la sursă la circa o cincime din înregistrări — ? în loc de ş/ţ; meta.nota_diacritice dă numărul exact. O căutare după un cuvânt cu diacritice poate să nu găsească nimic. Nu reparăm textul prin ghicit.
  • Forma brută, cu codurile BNR şi valorile netraduse, e la /registre/1928.
  • pagina şi per_pagina se validează; peste 200 se reduce automat la 200, iar meta.paginare dă valoarea efectivă.

La ce folosește

  • Câte instituţii de plată sunt cu adevărat autorizate în România.
  • Verificarea unui prestator de servicii de plată înainte de a contracta.
  • Agenţii unei instituţii anume, cu starea fiecăruia.

Structura răspunsului

CâmpTipDescriere
data.filtre[] string[] Filtrele aplicate efectiv, aşa cum le-a înţeles ruta — util când o valoare a fost normalizată.
data.entitati[] object[]
meta.sursa string Sursa oficială din care vin datele, cu licenţa ei acolo unde e cerută.
meta.numaratoare object Defalcarea pe tip şi stare a registrului ÎNTREG, independent de filtre.
meta.acoperire string Cât acoperă datele pe care le avem, faţă de ce publică sursa.
meta.paginare.pagina integer Pagina curentă, numărată de la 1.
meta.paginare.per_pagina integer Câte înregistrări are o pagină.
meta.paginare.total string Totalul înregistrărilor care se potrivesc, dincolo de pagina curentă.
meta.paginare.pagini integer Câte pagini are lista.
meta.nota_numaratoare string Cifrele se citesc din numaratoare, nu se scriu de mână: până pe 15 sep nota spunea „18
instituţii (13 active) şi 175 de agenţi" când registrul ajunsese la 19 (15) şi 180.
meta.nota_institutie_mama string Precizare despre cum se citeşte răspunsul: o capcană, o convenţie sau o limită a sursei.
meta.nota_servicii string Precizare despre cum se citeşte răspunsul: o capcană, o convenţie sau o limită a sursei.
meta.nota_iban string Precizare despre cum se citeşte răspunsul: o capcană, o convenţie sau o limită a sursei.
meta.nota_diacritice string Precizare despre cum se citeşte răspunsul: o capcană, o convenţie sau o limită a sursei.
meta.forma_bruta string
data.entitati[].numar string Numărul din registru. La agenţi, conţine şi numărul instituţiei-mamă.
data.entitati[].tip string institutie sau agent. null dacă sursa scrie altceva decât cele două valori cunoscute.
data.entitati[].tip_sursa string Ce scrie sursa, netradus — pentru cazul în care apare o valoare nouă.
data.entitati[].stare string activa, radiata, sau null când sursa n-o declară.
data.entitati[].institutie_mama string Numărul instituţiei al cărei agent e. null la instituţii şi când numărul nu are formatul aşteptat.
data.entitati[].servicii array Codurile serviciilor autorizate, din anexa Legii 209/2019. Netraduse.
data.entitati[].cui string Codul de identificare fiscală, fără prefixul de ţară. null la cele câteva fără.
data.entitati[].cod_lei null Identificatorul entităţii juridice. Puţine înregistrări îl au.
data.entitati[].data string Data înregistrării în registru.

Exemple de răspuns

GEThttps://oneapi.ro/api/financiar/v1/institutii-plata?per_pagina=3
{
    "data": {
        "filtre": [],
        "entitati": [
            {
                "numar": "IP-RO-0018-A-RO-001",
                "denumire": "PAYPOINT SERVICES S.R.L.",
                "tip": "agent",
                "tip_sursa": "Agent",
                "stare": "activa",
                "institutie_mama": "IP-RO-0018",
                "cui": "21307815",
                "numar_onrc": "J2007004785401",
                "cod_lei": null,
                "adresa": "P-ta Charles de Gaulle, Nr. 15, Etaj 4, BUCURESTI, sector 1, cod postal 011857 Romania",
                "servicii": [
                    "e2",
                    "f"
                ],
                "observatii": "serviciile de plata sunt furnizate in numele si pe seama NETOPIA FINANCIAL SERVICES S.A.",
                "data": "2026-09-11"
            }
        ]
    },
    "meta": {
        "sursa": "BNR — Registrul instituţiilor de plată (baza de date interactivă, clasa 1928).",
        "numaratoare": {
            "total": 199,
            "institutie": {
                "total": 19,
                "activa": 15,
                "radiata": 4,
                "fara_stare": 0
            },
            "agent": {
                "total": 180,
                "activa": 42,
                "radiata": 138,
                "fara_stare": 0
            },
            "fara_tip": 0
        },
        "acoperire": {
            "de_la": "2010-06-25",
            "pana_la": "2026-09-11"
        },
        "paginare": {
            "pagina": 1,
            "per_pagina": 3,
            "total": 199,
            "pagini": 67
        },
        "nota_numaratoare": "Registrul amestecă instituţiile cu agenţii lor: 19 instituţii (15 active) şi 180 de agenţi. `numaratoare` e calculată pe registrul ÎNTREG, nu pe rezultatul filtrat — ea apără cifra, deci nu depinde de cerere.",
        "nota_institutie_mama": "`institutie_mama` e DEDUSĂ din structura numărului de înregistrare (`IP-RO-0006-A-RO-051` → `IP-RO-0006`), nu publicată de BNR ca un câmp. Dacă formatul se schimbă, câmpul e `null`.",
        "nota_servicii": "`servicii` sunt codurile din anexa Legii 209/2019, parsate dar netraduse. Nu le transformăm în denumiri: o denumire legală greşită e mai rea decât un cod.",
        "nota_iban": "Instituţiile de plată NU sunt instituţii de credit şi nu emit IBAN-uri româneşti. Registrul băncilor e la /financiar/v1/banci.",
        "nota_diacritice": "Sursa publică `?` în loc de `ş`/`ţ` la 40 din 199 înregistrări. O căutare după un cuvânt cu diacritice poate să nu găsească nimic. Nu reparăm textul prin ghicit.",
        "forma_bruta": "/financiar/v1/registre/1928"
    }
}

Coduri de eroare

CodSlugCând apare
401neautentificatToken lipsă, invalid, expirat sau revocat.
403feature_indisponibilPlanul curent nu include funcţia de care ţine ruta.
422validareTip sau stare în afara listelor, CUI malformat, sau cauta sub două caractere.
429cota_depasitaCota lunară a planului a fost depăşită (vezi Retry-After).

Toate erorile au aceeași formă. eroare.cod e stabil și e cel după care trebuie să ramifici în cod — nu după textul din mesaj, care se poate schimba.

{
    "eroare": {
        "cod": "validare",
        "mesaj": "Tip sau stare în afara listelor, CUI malformat, sau cauta sub două caractere.",
        "detalii": {
            "tip": [
                "Valoarea trimisă nu respectă regula parametrului."
            ]
        }
    }
}