oneapi
Sign in
Financiar v1 / RiscCredit

Payment incidents

Refusals to pay with debit instruments — cheques, bills of exchange, promissory notes — in the public aggregates of the Central Payment Incidents Register. In June 2026: 329,598 thousand lei refused, 4,356 refusals, 2,416 account holders who generated them, 1,311 persons at risk and 16 persons under a banking ban.

It contains no data about any individual company. The register is nominal at the NBR — there is a register of persons under a banking ban — but only aggregates are published. This route cannot look up a partner, and the absence of a result does NOT mean the absence of risk.

The coverage is given as SEGMENTS, not as an interval. Residents and the total are published month by month since February 1997, with no gaps — meta.segmente holds a single segment. The segment form stays so that a gap appearing at source would show, rather than be covered by a "from → to" interval.

Non-residents are reported separately only from February 2012. Before that, total is identical to rezidenti — verified across all preceding months, back to 1997 — so the older totals do not include them, and a total from 2011 and one from 2020 do not measure quite the same thing.

The 25 indicators are the same for each residency: amounts and number of refusals, in total and per instrument, separately for the major incidents — which are a subset in every month and account on average for about 72% of a month's refused amounts (66% weighted by amount) — plus the holders who generated them, the persons at risk and those under a banking ban, each in total, for individuals and for legal entities.

The units are never mixed: thousand lei for amounts, count for refusals and persons. Nothing is summed across indicators.

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

Query parameters

NameTypeDescriptionAccepted values
rezidentaoptional string | null Optional, defaults to total. Or rezidenti, nerezidenti. Non-residents only begin in February 2012. rezidentinerezidentitotal
de_laoptional string | null Optional, YYYY-MM. Without it, the last published month. e.g. 2024-06-15
pana_laoptional string | null Optional, YYYY-MM. At most 120 months. e.g. 2024-06-15

How it behaves

  • Refusals to pay with debit instruments — cheques, bills of exchange, promissory notes — in the public aggregates of the Payment Incidents Register. In June 2026: 329,598 thousand lei refused, 4,356 refusals, 2,416 account holders who caused them, 1,311 persons at risk and 16 persons under a banking ban.
  • Contains no data about any individual company. The register is name-level at the NBR — there is a register of persons under a banking ban — but only aggregates are published. This route cannot look up a counterparty, and the absence of a result does NOT mean the absence of risk.
  • Coverage is given as SEGMENTS, not as a range. Residents and the total are published month by month since February 1997, with no gaps, so meta.segmente holds a single segment. The segment form stays so that a gap appearing at source would show; an interval falling entirely inside a gap would get a 404 interval_fara_observatii, not an empty response.
  • Non-residents are reported separately only from February 2012. Before that, total is identical to rezidenti — verified across all earlier months, back to 1997 — so the older totals do not include them, and a total from 2011 and one from 2020 do not measure quite the same thing.
  • The 25 indicators are the same for each residency: amounts and counts of refusals, in total and per instrument, separately for major incidents, plus the account holders who caused them, the persons at risk and those under a banking ban — each split into total, individuals and legal entities.
  • Major incidents are a subset of the totals, verified in every month, and account on average for about 72% of a month's refused amounts (66% against cumulated amounts).
  • The cube checks out: residents + non-residents = total in every month for counts and persons, and in all but three months for amounts — the largest deviation is 0.10 thousand lei, i.e. rounding.
  • Amounts are continuous across the 2005 redenomination. Verified: the average amount per refusal is 9.53 thousand lei in 2004 and 9.32 in 2005 — no jump of 10,000 as un-redenominated lei would give, so the whole series is in new lei.
  • Units do not mix: mii lei for amounts, număr for refusals and persons. Nothing is summed across indicators.

What it is for

  • How often and for how much payments are refused in the economy, month by month.
  • The number of persons under a banking ban, as a payment-discipline indicator.
  • The share of major incidents in the total — how many refusals are serious.

Response structure

FieldTypeDescription
data.rezidenta string
data.de_la string Start of the interval the response covers.
data.pana_la string End of the interval the response covers, inclusive.
data.perioade array The months that actually carry observations, in order.
data.indicatori[].cod string Code from the source code list — the key you filter on.
data.indicatori[].indicator string The indicator's short code, without the residency prefix.
data.indicatori[].denumire string The name, without the residency prefix that repeats on every row.
data.indicatori[].unitate string mii lei for amounts, număr for refusals and persons.
data.indicatori[].valori object One value per month. null = no observation then.
meta.sursa string The official source the data comes from, with its licence where one is required.
meta.segmente[] array The continuous periods in which the series actually has data. NOT a single range — a single segment today.
meta.segmente[].de_la string Start of the covered interval.
meta.segmente[].pana_la string End of the covered interval, inclusive.
meta.segmente[].luni integer Number of months covered.
meta.dimensiuni integer
meta.luni integer Number of months covered.
meta.nota_nominal string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.nota_segmente string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.nota_nerezidenti string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.nota_majore string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.nota_unitati string What to know about the units of measure in the response.
meta.nota_null string Why some values are missing: the source did not publish, did not compute, or suppressed them.
meta.risc_de_credit string
meta.fara_date data is null and this says why. No values in the database for the requested residency. The interval falls entirely inside a hole in the series; the response gives the segments. The interval lies outside every segment.
meta.fara_date_cod The short, STABLE word for the reason, for clients that branch on it in code: fara_date is prose and may be rephrased, this is not.

Response examples

GEThttps://oneapi.ro/api/financiar/v1/incidente-plata
{
    "data": {
        "rezidenta": "total",
        "de_la": "2026-08",
        "pana_la": "2026-08",
        "perioade": [
            "2026-08"
        ],
        "indicatori": [
            {
                "cod": "CIPL_SRT",
                "indicator": "SRT",
                "denumire": "sume refuzate la plata cu instrumente de debit",
                "unitate": "mii lei",
                "valori": {
                    "2026-08": "282994.20"
                }
            }
        ]
    },
    "meta": {
        "sursa": "BNR — Centrala Incidentelor de Plăţi, agregate publice lunare.",
        "segmente": [
            {
                "de_la": "1997-02",
                "pana_la": "2026-08",
                "luni": 355
            }
        ],
        "dimensiuni": 25,
        "luni": 1,
        "nota_nominal": "NU conţine date despre nicio firmă anume. CIP e nominală la BNR, dar public se publică doar agregate. Absenţa unui rezultat NU înseamnă absenţa riscului.",
        "nota_segmente": "Acoperirea se dă ca SEGMENTE, nu ca interval; aici e un singur segment, fără goluri (1997-02 → 2026-08). Dacă sursa ar lăsa un gol, ar apărea ca segment separat.",
        "nota_nerezidenti": "Nerezidenţii se raportează separat abia din 2012-02. Înainte, `total` e identic cu `rezidenti` în fiecare lună, deci totalurile vechi nu-i includ.",
        "nota_majore": "Indicatorii cu „incidente majore\" sunt submulţime a celor totali — verificat în toate lunile — şi fac în medie circa 72% din sumele refuzate ale unei luni (66% raportat la sumele cumulate).",
        "nota_unitati": "Sumele sunt în mii lei, refuzurile şi persoanele în bucăţi. Nimic nu se însumează peste indicatori.",
        "nota_null": "`null` într-o lună înseamnă că nu există observaţie atunci — la clasa asta se întâmplă des.",
        "risc_de_credit": "/financiar/v1/risc-credit/agregate"
    }
}

Error codes

CodeSlugWhen it occurs
401neautentificatToken missing, invalid, expired or revoked.
403feature_indisponibilThe current plan does not include the feature the route depends on.
422validareinterval_prea_lung beyond 120 months, or a malformed month. rezidenta_necunoscuta — a value outside the list.
429cota_depasitaThe 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": "interval_prea_lung beyond 120 months, or a malformed month. rezidenta_necunoscuta — a value outside the list.",
        "detalii": {
            "rezidenta": [
                "The value sent does not satisfy the parameter rule."
            ]
        }
    }
}