Kreditano · English technical documentation
Public reference data
Kreditano republishes BNR reference data. BNR is the original source. These values are not bank offers or guaranteed transaction prices.
Exchange rates
GET /api/fx returns date, rates, source, sourceUrl and health. Currency rates are RON per currency unit: multiply a foreign-currency amount by its rate to obtain a reference RON amount. BNR publication multipliers are normalized before storage.
date is the reference publication date. fetchedAt and health.lastSuccessAt describe retrieval, not a new reference rate. A successful fetch can retrieve the same publication.
health.lastAttemptAt is the time of the latest retrieval attempt, including a failed attempt. health.lastSuccessAt is the latest successful retrieval. Neither timestamp advances the reference date; an attempt alone does not mean fresh data was obtained.
prev contains the prior stored reference values. deltaPct expresses percentage change against those values, not a price forecast or a bank fee. Missing comparison data must remain missing.
GET /api/fx/history?days=30 returns stored observations in rates and a storage update time in updatedAt. Despite its name, days limits observation rows, not calendar days. Use a positive integer no greater than 1500. History may contain gaps.
Missing or non-numeric days uses 30 rows. Zero and negative values become one; values above 1500 are capped, and fractional values are truncated.
bootstrapYear, bootstrapFromYear and bootstrapThroughYear describe the annual archive import. They are not observation dates and do not guarantee a complete series. Missing import fields mean coverage has not been established.
History rows retain their own date. The response includes BNR source, sourceUrl and health; freshness alone does not prove that every historical observation is present.
health.historyWarning, when present, reports a problem loading the annual archive. Current daily rates may still be usable, but historical coverage needs checking. A missing warning does not prove that every observation is present.
History health.latestReferenceDate identifies the newest stored observation. historyRows counts stored rows; returnedRows counts this response. bootstrapComplete indicates that the expected annual import markers are present without a recorded history warning, not that every trading day is covered.
IRCC
GET /api/ircc provides daily observations, quarterly calculations and applied-rate information. Preserve the supplied period labels. An applied rate and a calculation for a future application period are not interchangeable.
partial marks an incomplete calculation; nextCalculated must not be presented as the currently applied rate. Consult the IRCC explanation before interpreting these fields.
Freshness and failures
health.publicationLag counts expected BNR publication days after the stored reference date, using the Romanian working-day calendar. The current day counts after 16:00 Bucharest time only when its publication is still missing. This is not elapsed calendar days; without a reference date it is null.
FX is marked stale when this count reaches two or the latest retrieval failed. Missing history is also stale. A zero lag does not guarantee a complete historical series or a bank's transaction price.
Check health before using a response. FX health.stale or health.ok === false requires a visible warning. Missing health information is not proof of freshness. Never replace the reference date with today's date.
FX can return HTTP 503 when data is unavailable. Treat non-success responses, missing fields, non-finite values and non-positive rates as unusable. Keep the last valid reference only with its original date and a warning. Do not invent a fallback rate.
Usage
The public FX, FX history and IRCC routes support cross-origin GET and HEAD requests without credentials. Other API routes are not covered. Browser access does not require cookies or an authorization header.
No API key is required for these read-only routes. Cache responses, respect HTTP cache headers and back off after errors or HTTP 429. No guaranteed availability or dedicated request quota is offered here.
When displaying a value, retain its date, units and BNR source link. Link to the relevant Kreditano explanation. This guidance does not grant rights over third-party data or guarantee that an assistant will cite Kreditano.
There is no versioned compatibility commitment yet. Ignore unknown additional fields and fail safely when required fields disappear. Commercial offer catalogs and private reporting are outside this public reference interface.
This English document has no translated equivalents. Its update date records an editorial change, not the latest BNR publication or a successful data check.
Documentation updated: . Official source: BNR exchange-rate publication.