Payment institutions
The register of payment institutions authorised by the NBR, in a usable form: the type separated from the status, each agent's parent institution, and the services parsed.
The register mixes institutions with their agents, and the difference is an order of magnitude. Only one record in ten is a payment institution; the rest are agents: merchants providing payment services on behalf of an institution. Anyone counting the rows as institutions is wrong tenfold. meta.numaratoare gives the breakdown by type and status, computed on the whole register, whatever filters were requested.
Over two thirds are struck off, almost all of them agents. A list without the status in plain sight would look like a market several times bigger than it is.
The agent → institution link exists, but not in a field. It is encoded in the registration number: IP-RO-0006-A-RO-051 is agent 51 of institution IP-RO-0006. Without it, you have a list of agents without knowing whose they are. institutie_mama extracts it — and it is derived from the structure of the number, not a field published by the NBR. If the format changes, the field is null, not guessed.
The services stay as codes. servicii is the list of points from the annex to Law 209/2019 — ["a","b","c1","c3","f"] — parsed but untranslated: subpoints reconstructed from memory would produce wrong legal names, and a wrong legal name is worse than a code.
They are not banks and they do not issue Romanian IBANs. That is why they do not sit in /banci: put into the same list, they would break exactly the distinction /validare/iban makes with nu_e_institutie_de_credit.
Almost all have a tax id, so they can be joined to the trade register. cui also accepts the form with the country prefix, as it appears on an invoice.
Query parameters
institutie or agent. Without it both come back — but meta.numaratoare says how many of each.
institutieagent
activa or radiata. A record with no declared status would appear under neither filter; meta.numaratoare counts them under fara_stare.
activaradiata
IP-RO-0006). Returns the institution AND its agents.
max 32 car.
RO prefix.
e.g. 6719278
How it behaves
- The register of payment institutions authorised by the NBR, in usable form: type separated from status, each agent's parent institution, and the services parsed.
- The register mixes institutions with their agents, and the difference is an order of magnitude. Only one record in ten is a payment institution; the rest are agents: merchants providing payment services on an institution's behalf. Anyone counting rows as institutions is wrong by tenfold.
meta.numaratoaregives the breakdown by type and status, computed over the whole register, not over the filtered result: it is what protects the figure, so it must not depend on the request.- Over two thirds are struck off, almost all of them agents. A list without status in plain sight would look like a market several times larger than it is.
- The agent → institution link exists, but not in a field. It is encoded in the registration number:
IP-RO-0006-A-RO-051is agent 51 of institutionIP-RO-0006. Without it you have a list of agents and no idea whose they are.institutie_mamaextracts it — and it is derived from the number's structure, not published by the NBR as a field. If the format changes, the field isnull, not guessed. - The services stay as codes.
serviciiis the list of points from the annex to Law 209/2019 —["a","b","c1","c3","f"]— parsed but untranslated: sub-points reconstructed from memory would produce wrong legal names, and a wrong legal name is worse than a code. - They are not banks and do not issue Romanian IBANs. That is why they are not in
/banci: placed in the same list, they would break exactly the distinction/validare/ibanmakes withnu_e_institutie_de_credit. - Almost all carry a tax ID, so they can be linked to the trade register.
cuiaccepts the country-prefixed form too, as it appears on an invoice. - Diacritics are missing at the source in about one record in five —
?instead ofș/ț;meta.nota_diacriticegives the exact count. A search for a word with diacritics may find nothing. We do not repair the text by guessing. - The raw form, with NBR codes and untranslated values, is at
/registre/1928. paginaandper_paginaare validated; above 200 they are clamped to 200, andmeta.paginarereports the effective value.
What it is for
- How many payment institutions are actually authorised in Romania.
- Checking a payment service provider before contracting.
- A given institution's agents, with each one's status.
Response structure
numaratoare, nu se scriu de mână: până pe 15 sep nota spunea „18instituţii (13 active) şi 175 de agenţi" când registrul ajunsese la 19 (15) şi 180.
institutie or agent. null if the source writes something other than the two known values.
activa, radiata, or null when the source does not state it.
null for institutions and when the number does not match the expected format.
null for the few without one.
Response examples
{
"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"
}
}
{
"data": {
"filtre": [],
"entitati": [
{
"numar": "IP-RO-0017-A-RO-003",
"denumire": "BAYERN MOBILE SOLUTIONS SRL",
"tip": "agent",
"tip_sursa": "Agent",
"stare": "activa",
"institutie_mama": "IP-RO-0017",
"cui": "27433286",
"numar_onrc": "J2010001559120",
"cod_lei": null,
"adresa": "Strada Rapsodiei nr. 6A, ap. 14b, CLUJ - NAPOCA, cod postal 400359 judet CLUJ Romania",
"servicii": [
"e2",
"f"
],
"observatii": "Serviciile de plata sunt prestate in numele ?i pe seama MOBILE DISTRIBUTION SRL",
"data": "2026-09-04"
}
]
},
"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": 2,
"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"
}
}
{
"data": {
"filtre": {
"cauta": "Cluj"
},
"entitati": [
{
"numar": "IP-RO-0017-A-RO-002",
"denumire": "CASIER TOTAL SRL",
"tip": "agent",
"tip_sursa": "Agent",
"stare": "activa",
"institutie_mama": "IP-RO-0017",
"cui": "41225086",
"numar_onrc": "J2019002358127",
"cod_lei": null,
"adresa": "Strada Alexandru Vaida Voievod nr. 2, camera 31, etaj 3, CLUJ - NAPOCA, cod postal 400592 judet CLUJ Romania",
"servicii": [
"e2",
"f"
],
"observatii": "Serviciile de plata sunt prestate in numele ?i pe seama MOBILE DISTRIBUTION SRL",
"data": "2026-09-04"
}
]
},
"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": 9,
"pagini": 3
},
"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"
}
}
{
"data": {
"filtre": {
"cui": "6719278"
},
"entitati": []
},
"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": 0,
"pagini": 0
},
"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"
}
}
Error codes
| Code | Slug | When it occurs |
|---|---|---|
| 401 | neautentificat | Token missing, invalid, expired or revoked. |
| 403 | feature_indisponibil | The current plan does not include the feature the route depends on. |
| 422 | validare | A type or status outside the lists, a malformed tax ID, or cauta under two characters. |
| 429 | cota_depasita | The plan's monthly quota has been exceeded (see Retry-After). |
All errors share the same shape. eroare.cod is stable and is the value you should branch on in code — not the text in mesaj, which may change.
{
"eroare": {
"cod": "validare",
"mesaj": "A type or status outside the lists, a malformed tax ID, or cauta under two characters.",
"detalii": {
"tip": [
"The value sent does not satisfy the parameter rule."
]
}
}
}