Changelog

All notable changes to FirmAPI.

v1.24.0

Financial figures: one fixed meaning per number

  • ✓ Financial statements now separate net turnover, sales revenue, operating and financial income, total income, expenses, profit before and after tax, income tax, assets, equity, liabilities and further balance sheet items. Previously a single "revenue" field held net turnover, total income or cash receipts depending on the statement type.
  • ✓ Every figure shows the statement line it was read from (for example "Výkaz ziskov a strát r. 02 + r. 29").
  • ✓ Non-profits and sole traders using single-entry accounting get their own fields: receipts, expenditures, property, debts and the differences. They are no longer mixed with the income and profit of double-entry companies.
  • ✓ A figure the statement does not publish is empty, never zero.
  • ✓ Financial data is included in the Professional plan.
  • ✓ API (breaking change): `financials` and `financial_statements` gain `net_turnover`, `sales_revenue`, `total_income`, `total_expenses`, `profit_before_tax`, `accounting_basis`, `template_family`, `figure_sources` and more. The fields `total_revenue`, `revenue`, `profit`, `assets`, `employees_count`, `template_type` and `size_category` are removed. JS SDK 3.0.0 types the new shape.
  • ✓ Older years are being re-read gradually, newest statements first. Until a statement is re-read its figures are empty.
v1.23.0

More reliable linking of people across companies

  • ✓ The same person registered in several companies is linked into one profile more reliably: addresses are compared regardless of formatting (postcode with or without a space, order of parts, city district, country).
  • ✓ Fixed a bug where, after the weekly register update, some roles and shares were attached to an older, already merged person record and were missing from the person profile.
  • ✓ Sole-trader financial agents from the NBS register are linked to a person profile even when the address is written differently. When only the name and postcode match and it is the only such person, the link is marked as a probable match.
  • ✓ API: NBS entity detail and list return `person_match` (`address` or `name_postcode`). JS SDK 2.6.0 types it.
v1.22.0

NBS register: financial agents, who they work for and relation history

  • ✓ For a company in the National Bank of Slovakia register you now see which institution it works for as a financial agent, separately for each sector, with validity date and registration number.
  • ✓ For institutions (independent financial agents, insurers, banks, fund managers) you see their agent count by sector and the full, filterable list.
  • ✓ We now record history: when an authorisation or a link to an institution disappears from the register, it stays stored as ended with a date. A company removed from the register is no longer marked as regulated.
  • ✓ New NBS register page in the panel with filters by category, sector, institution, country, person type and status. Foreign entities and funds active in Slovakia without an IČO are now included.
  • ✓ Natural-person financial agents whose name and address exactly match a person from the business register show their NBS authorisations on the person profile too.
  • ✓ API: the `nbs` scope also returns `licences` (authorisations with parent institution and status), `agents_count`, `is_natural_person` and `entity_id`. New endpoints `/v1/nbs/entities`, `/v1/nbs/entities/{entity_id}` and `/v1/company/ico/{ico}/nbs-agents`.
  • ✓ New webhook event `nbs_licence.updated` when an authorisation or an agent link to an institution starts or ends.
  • ✓ PHP and JS SDK: new methods for the entity list, entity detail and an institution's agent list.
v1.21.0

EU funds 2021 – 2027 from ITMS21+: projects, applications, irregularities and receivables

  • ✓ A new ITMS21+ source covers the 2021 – 2027 programming period. Until now our only EU-fund data was contracts from the closed ITMS2014+.
  • ✓ On a company you now see projects where it is the recipient, a partner or a supplier, with the contracted and disbursed amounts, implementation status and flags for exclusion from funding or early termination.
  • ✓ Grant applications (ŽoNFP) including rejected and excluded ones, with the requested and approved grant amounts.
  • ✓ Irregularities and receivable documents held against the company from EU funds are part of the risk profile. An outstanding receivable shows in the risk overview on every plan.
  • ✓ Contracts financed from the 2021 – 2027 EU funds were added to the procurement summary, and every contract in the list now shows its source and value.
  • ✓ API: new `itms21` scope (projects, applications, irregularities, procurement summary); the data is also part of `scope=all`. `withItms21()` was added to the PHP and JS SDKs.
  • ✓ The source has its own page in the register overview and refreshes every night.
v1.20.1

Account and notification calls no longer cost credits

  • ✓ The `/account/usage`, `/account/quota`, `/account/history` and `/account/thresholds` endpoints, all notification management (`/notifications/*`) and batch status/results polling are no longer billed. Until now each of these calls cost one credit.
  • ✓ Credits wrongly charged for these calls have been refunded to every account.
  • ✓ These endpoints keep working when the credit balance or monthly quota is exhausted, so you can always check your account state.
v1.20.0

Company bodies as the register keeps them: board, supervisory board, shareholders, procurators

  • ✓ Registry people are now split by body. Next to `shareholders` and `statutory_body` the response carries `supervisory_board`, `procurators`, `liquidators`, `administrators`, `founders`, `branch_heads` and `legal_predecessors`; `other_stakeholders` keeps only persons that belong to none of them.
  • ✓ Every member of a collective body carries a `function` (chairman, vice_chairman, member) and rows are ordered chairman – vice-chairman – members. Statutory body rows add `body_type` (konatelia / predstavenstvo), `effective_from`, `effective_to`, `appointed_at` and the `current` flag.
  • ✓ Shareholders carry `share_paid`, `share_currency`, `contribution_kind` and `deposit_lien` next to the contribution amount.
  • ✓ New `shares` array with the share issues of joint-stock companies – type, form, kind, nominal value, count and transferability, including history.
  • ✓ Procurators carry the registered procurator acting rule (`acting_method`).
  • ✓ The company record in the panel, PDF, Markdown and JSON exports shows each body in its own section: the statutory body with its type and the acting rule stated once, the supervisory board, shareholders or partners titled by legal form (with a note on why the register lists no shareholders of most joint-stock companies), shares, procurators, liquidators and administrators, legal predecessors linked to their record, and founders. Former members are folded behind a single "+ N former" line.
  • ✓ The same person coming from the weekly RPO import and from ORSR no longer shows twice over a slightly different spelling or start date – rows are paired by name and overlapping period, and existing data is extended, never overwritten.
  • ✓ Person profiles show the real function (e.g. "chairman of the supervisory board").
  • ✓ PHP SDK v2.3.0 and JS SDK v2.3.0 know the new fields.
v1.19.0

Shareholders are shareholders only – supervisory board and procurators get their own field

  • ✓ The `shareholders` array now contains equity holders only (partners, shareholders, sole shareholder, limited and general partners). Supervisory board members, procurators, liquidators, administrators and other registered persons without a stake moved to the new `other_stakeholders` array. Joint-stock companies no longer list their supervisory board as shareholders.
  • ✓ Every row in both arrays carries `stakeholder_type` (the registry role), `effective_from`, `effective_to` and a `current` flag, so former persons can be told apart from current ones.
  • ✓ Duplicate rows for the same person in the same period are merged.
  • ✓ The company detail in the panel and in exports shows other registered persons in a separate section; the person profile shows the real role instead of a generic "Shareholder".
  • ✓ Change history distinguishes shareholder changes from changes of other registered persons.
  • ✓ PHP SDK v2.2.0 and JS SDK v2.2.0 know the new fields and `other_stakeholders`.
v1.18.0

Faster base lookup and a new orsr scope

  • ✓ The base company response (no scope parameter) is now truly basic – identification, address, status, legal form, dates and, for commercial register companies, orsr_id and registered capital. Shareholders, the statutory body and business activities are requested with the new `orsr` scope; `all` keeps including them as before.
  • ✓ API key verification caches only the account and plan fields it needs, so every call is handled a little faster.
  • ✓ The PHP and JS SDKs gained a `withOrsr()` helper.
v1.17.0

Court decisions, SBS licences and the carrier register are live

  • ✓ Court decisions now come from the official Ministry of Justice decisions register (nearly 4.7 million rulings). We find a company by searching for its ICO in the decision text and keep only the matches where the number is genuinely given as a party identifier, not as an invoice or reference number. Each decision carries the court, case number, form, date, the company role in the proceedings and a link to the document.
  • ✓ SBS licences (Ministry of Interior private security services authority) are working. We return every licence a company holds at once - guarding, detective, training and consultancy, technical, in-house protection, CIT and accredited services.
  • ✓ The JISCD carrier register is now imported in full, so we hold every registered carrier along with licence and permit numbers, transport type and validity.
  • ✓ All three sources moved from planned to live, and each has its own register page describing what it holds, the fields it returns and a sample call.
v1.16.0

The complete register list and a more honest description of what we return

  • ✓ The register list is now complete at 48 – eleven Tax Authority datasets were added (notified bank accounts, excess VAT deductions, the section 68d special scheme, VAT deregistration reasons, corporate income tax, income tax registration, taxpayer personal accounts, R&D and investment deductions, income exemptions and the register of regulated persons), along with the Central Project Register and EU-funded contracts from ITMS2014+.
  • ✓ Every live register now has its own page describing what it contains, the fields returned, the update frequency and a sample call – 48 pages in both Slovak and English.
  • ✓ The Tax Authority registers got their own group in the menu and on the data page.
  • ✓ API samples across the site were reconciled with the actual response. Some examples showed parameters and field names the API never returned.
  • ✓ Court decisions moved to the planned sources – Slovak courts publish rulings without a company ID, so we cannot yet attribute them reliably.
  • ✓ Private security licences and the JISCD transport register are also marked as planned until access to the source is resolved.
  • ✓ Contact details were removed from the data page – we never populated that source and it should not have appeared among the fields on offer.
  • ✓ Update frequencies were corrected where they were wrong, and we now state that search and company detail in the web panel cost no credits.
v1.15.0

A new section describing the registers and use cases

  • ✓ Added dedicated pages for each register group and for the registers you ask about most, describing what they contain, which fields we return and how often we refresh them.
  • ✓ Use cases are now split by software type: invoicing, accounting, legal, CRM, signup forms, contract party verification, creditworthiness, KYB and batch processing.
  • ✓ Separate pages explain webhooks, email notifications and exports to PDF, Markdown and JSON.
  • ✓ The top navigation is now a proper dropdown menu that reaches everything in one click.
  • ✓ Every new page also has a machine-readable Markdown version for language models, and is listed in llms.txt and in the sitemap.
v1.14.0

A clearer company record, and alerts on business activities

  • ✓ The company record is now split into tabs, so you no longer scroll past dozens of sections to reach the one you came for. The risk profile stays pinned at the top, and the Risk tab shows how many signals are active.
  • ✓ "Show everything" restores the original single-scroll layout at any time, and your choice is remembered.
  • ✓ PDF export always contains the complete record, whichever tab is selected.
  • ✓ Added notifications and webhooks for business activity changes: added, ended, suspended and resumed.
  • ✓ These changes also appear in the change history on the company record.
v1.13.0

Business activities for every register

  • ✓ Every company and sole trader now shows its full list of business activities, including validity dates and suspensions.
  • ✓ Coverage spans all source registers – trade, commercial, civic associations and the rest – not just selected subjects.
  • ✓ Added the `registered_activities` API scope for programmatic access.
  • ✓ Backfilled subjects that were missing from the database, so IČO lookups now find them too.
  • ✓ The admin panel now flags this source if it stops refreshing.
v1.12.0

New pages, markdown output for AI tools and more reliable data

  • ✓ New pages: Company verification, Company monitoring and a FirmAPI vs. FinStat comparison – a clear overview of what the service can do.
  • ✓ Key pages now have markdown versions for AI assistants (e.g. /dokumentacia.md, /cennik.md) plus an /llms.txt index following the llms.txt convention.
  • ✓ Faster and more reliable enrichment from the Public Sector Partners register (RPVS) – lookups no longer get lost during peaks.
  • ✓ The execution authorizations import runs at full capacity again, and detail backfill no longer hammers the register with pointless repeated requests.
  • ✓ Admin statistics now show real counts of execution authorizations, public sector partners, regulated entities, companies with SK-NACE and tax-unreliable companies.
  • ✓ Fixed an occasional company search failure during registration.
v1.11.0

Data display, export and change-detection fixes

  • ✓ Financial Administration import sections (VAT, income tax, research & investment deductions, exemptions, regulated entities) now display correctly according to your plan – previously they were unavailable.
  • ✓ The company risk profile (debts, insolvency, illegal employment) is now truthful on every plan, including companies with a short company ID (IČO).
  • ✓ Company export (PDF, JSON, Markdown) now also includes CRP projects (Project Register) and all Financial Administration sections.
  • ✓ Change detection no longer reports false changes when only the ordering of fields in the data changed rather than their content (applies to all sources, e.g. ORSR registered capital).
  • ✓ Company change e-mails are now human-readable – instead of raw JSON they show a clear field name and values (e.g. "Amount: 5 000 · Currency: EUR").
  • ✓ The Upgrade page now offers a Custom option for individual limits and requirements.
v1.10.0

Complete SDK types & consistent scope=all

  • ✓ JS/TS SDK: response types added for every scope – debtor lists, insolvency, commercial bulletin, public contracts, procurement, illegal employment, court decisions and employer headcount. TypeScript now knows the shape of each section.
  • ✓ scope=all (withAll) now returns every section your plan includes – court decisions, illegal employment, employer headcount, travel agencies, veterinary establishments and Financial Administration imports.
  • ✓ scope=all now consistently respects your plan – it returns exactly the sections your plan covers.
v1.9.0

Financial statements – multi-year series & latest-year fix

  • ✓ Financial statements now return the full multi-year series (revenue, profit, equity, assets and liabilities per year), so trend charts can be drawn. Available via the `financial_statements` and `all` API scopes and in the JS SDK (new `FinancialStatementsInfo` type with a `statements` array).
  • ✓ Fix: the "latest financial statement" sometimes showed the wrong (older) year instead of the most recent reporting period. It now always uses the newest year – in the API, on the company detail page and in the admin panel.
v1.8.0

CRP – Projects register (state & EU-funded projects)

  • ✓ New data source: CRP – Register projektov (crp.gov.sk). The company panel now shows state- and EU-funded projects where the company is the beneficiary – project name, provider, type and amount of aid, dates and a link to the register detail.
  • ✓ `crp_projects` scope added to PHP and JS SDKs (new `withCrpProjects()` method).
  • ✓ More reliable imports: a data source is no longer marked successful when nothing was actually downloaded, so an upstream outage is visible immediately.
v1.7.0

SVPS approved establishments + name+address fuzzy linking

  • ✓ New data source: SVPS (Štátna veterinárna a potravinová správa SR) – every approved food and veterinary establishment in Slovakia. The company panel now shows approval numbers, section/activity, location and the establishment name for each registered site.
  • ✓ New `NameAddressLinker` service used by sources that don't publish an IČO. SVPS establishments are matched to companies by name+city with a confidence score (≥ 0.80 to surface). Lower-confidence matches are stored but not exposed.
  • ✓ `svps_establishments` scope added to PHP and JS SDKs (new `withSvpsEstablishments()` methods).
v1.6.0

SOI travel agency registry + RÚZ live refresh

  • ✓ New data source: SOI – Travel agency registry. Each registered tour operator now exposes its insolvency protection provider, coverage amount, contract validity and any activity ban.
  • ✓ Financial statements (RÚZ) are now refreshed automatically from the RÚZ live API on company detail view when older than 30 days – no longer dependent on the weekly bulk import.
  • ✓ `soi_travel_agency` scope added to PHP and JS SDKs (new `withSoiTravelAgency()` methods).
  • ✓ PHP and JS SDKs also gained the previously missing helpers `withFsImports()`, `withIllegalEmployment()`, `withCourtDecisions()`, `withEmployerHeadcount()`.
v1.5.0

NBS supervision: regulator categories surfaced as a separate field

  • ✓ For NBS-regulated companies the response now includes supervision categories (e.g. Insurer, Bank, Crypto-asset service provider, Loan servicer) as distinct labels.
  • ✓ Previously NBS data exposed only a flat list of scopes; the new structure distinguishes between the category (entity type) and the specific licensed activities.
  • ✓ API responses in the `nbs` scope now include a `categories` array alongside the existing `license_types`.
  • ✓ JS SDK bumped to v1.5.0 (extended the `nbs` type with `categories`).
v1.4.0

Financial Administration SR – 10 new tax data sources

  • ✓ VAT excess deductions (§79) – per-period breakdown of approved excess VAT deductions, including the deduction amount and the company's own tax liability.
  • ✓ VAT payers list – current VAT registrations with start and end dates for each registration.
  • ✓ VAT deregistration reasons – history of cancelled VAT registrations with the year of cancellation.
  • ✓ Corporate income tax (DPPO) – per-period summary of submitted tax returns including tax liability and any declared loss.
  • ✓ Reliable VAT payer (DS RDP) – flag indicating whether the company is listed as a reliable VAT payer by the Financial Administration.
  • ✓ Special accounts for tax debtors (OUD) – bank accounts published by the Financial Administration due to outstanding tax debt, including IBAN and bank code.
  • ✓ R&D expense deductions – list of claimed research and development deductions with project description, deduction amount and start date.
  • ✓ Investment incentives – tax relief drawn under investment projects, with investment volume and planned incentive percentage.
  • ✓ Patent box (§13a) – income exemptions from intellectual property under the patent-box regime, with subtype, period and subject description.
  • ✓ Regulated entities – companies monitored by the Financial Administration as regulated subjects, with type and validity window.
  • ✓ All sources refresh daily from Financial Administration SR lists and are available under the new fs_imports scope.
  • ✓ PHP and JS SDKs gain withFsImports() helper.
v1.3.0

ÚVO – four new public-procurement registers with daily refresh

  • ✓ ÚVO REGES (qualified-supplier register) – reconnected and refreshed daily. For every company we now indicate whether it is a registered economic operator together with its registration number. Foreign suppliers are kept in their original ID format.
  • ✓ ÚVO Contracting Authorities Register – new contracting_authority scope with the statutory section and classification label. Surfaced on the company panel, profile and API response.
  • ✓ ÚVO Debarred Persons Register – new debarred scope with active-ban indicator, violation reason, ban window and related persons. Fires the debarred.updated webhook in the risk group.
  • ✓ ÚVO Reference Records – new uvo_references scope with reference count, total contract value (EUR) and the 25 most recent contracts including document links, ratings and buyer names.
  • ✓ All four ÚVO data sources refresh daily, staggered through the early morning so the data on the company panel and the API stays current.
  • ✓ PHP + JS SDKs gain withContractingAuthority(), withDebarred() and withUvoReferences() helpers.
  • ✓ New webhook events: contracting_authority.updated, debarred.updated, uvo_references.updated.
  • ✓ The dashboard "Full refresh" and admin "Refresh all" buttons now kick off a full refresh across every data source – the new ÚVO sources land in the per-company overview shortly after the click.
v1.2.0

Sanctions screening, LEI, EU tenders and 6 more enrichment sources

  • ✓ EU consolidated sanctions (FSF) and OFAC SDN/Consolidated screening – fuzzy-matched against every Slovak company by name with Jaro-Winkler. Hits surface under the new sanctions scope and fire a sanctions.match webhook on first detection.
  • ✓ GLEIF LEI lookup – when a Slovak company has a Legal Entity Identifier registered with the Slovak statistical office, you get the LEI plus parent / ultimate-parent LEI under the gleif scope.
  • ✓ UVO REGES (Zoznam hospodárskych subjektov) – qualified-supplier flag and registration validity under the reges scope.
  • ✓ Register sociálnych podnikov – social-enterprise certification status, type, granted-at and revoked-at dates under the social_enterprise scope.
  • ✓ TED (Tenders Electronic Daily v3) – EU-wide procurement notices the company appeared on as a buyer, under the ted_tenders scope.
  • ✓ REPLIK – Zoznam správcov konkurznej podstaty – when the IČO matches a registered insolvency administrator, you get the licence number, region and validity under the replik_administrator scope.
  • ✓ MV SR Register SBS – private-security-service licence under the sbs scope (NACE 80.* pre-filtered).
  • ✓ JISCD register dopravcov – road-transport eurolicence and vehicle counts under the transport_licence scope (NACE 49.* pre-filtered).
  • ✓ ÚRSO držitelia povolení – energy/gas/heat/water licence segments under the utility_licence scope (NACE 35.* / 36.* / 37.* pre-filtered).
  • ✓ New webhook events: sanctions.match, qualified_supplier.updated, social_enterprise.updated, gleif.updated, ted_tender.published, insolvency_administrator.updated, sbs_licence.updated, transport_licence.updated, utility_licence.updated.
  • ✓ PHP and JS SDKs add withSanctions(), withGleif(), withReges(), withSocialEnterprise(), withTedTenders(), withReplikAdministrator(), withSbs(), withTransportLicence(), withUtilityLicence() helpers.
v1.1.0

Credit-based billing replaces request limits

  • ✓ Per-minute and daily request limits removed – they were a stupid idea, layered on top of the monthly quota for no good reason. Internally we already metered every request as a credit, so the new model is just exposing what was always there.
  • ✓ Each plan now refills a credit balance every month. One API call = one credit. If you have credits, the API answers – no artificial pacing limits.
  • ✓ Cached responses still cost zero credits, so high-traffic apps over the same companies stay cheap.
  • ✓ Unused credits roll over to the next month (capped per plan) and remain valid for 3 months.
  • ✓ New endpoints: GET /v1/account/quota and POST /v1/account/thresholds for setting custom low-balance alerts.
  • ✓ Existing subscriptions stay on the legacy monthly-quota mode (without daily/per-minute limits) until you migrate from the dashboard.
v1.0.0

Public launch

  • ✓ Sandbox API with 10 demo companies and a dedicated sandbox key for testing
  • ✓ Company search and expanded company detail view in the admin dashboard
  • ✓ New "What data we provide" subpage
v0.7.0

New regulatory data sources

  • ✓ RPVE integration (Register of execution authorizations)
  • ✓ NBS integration – Slovak financial market entities
  • ✓ SK-NACE code enrichment from the Slovak Statistical Office
  • ✓ RPVS integration (Register of Public Sector Partners)
  • ✓ Tax reliability index and erased VAT payers imports
v0.6.0

Support and UX

  • ✓ Support ticket system with assignment, auto-status and attachments
  • ✓ Rich-text editor and notification badges for messages
  • ✓ Custom error pages
v0.5.0

Faster search

  • ✓ Company name search is now up to 25x faster
v0.4.0

Deeper RPO data

  • ✓ EU-funded public procurement imports (ITMS2014+)
  • ✓ VšZP debtor data
  • ✓ On-demand RPO company lookups
  • ✓ Stakeholders, statutory bodies and registered equity from RPO
v0.3.0

Enrichment, auth and billing

  • ✓ 9 new public data sources: financial statements, 5 debtor lists, public procurement, insolvencies, commercial bulletin, ORSR
  • ✓ "Enrich All" admin action
  • ✓ Email verification with branded email templates
  • ✓ Optional two-factor authentication for dashboard and admin
  • ✓ Admin custom billing management (prices, discounts, notes)
  • ✓ Company registration with live company lookup and Stripe billing prefill
  • ✓ Rate limiting on the public company lookup endpoint
  • ✓ Opt-in enrichment via the ?scope= query parameter
  • ✓ Fluent builder pattern in PHP and JS SDKs
v0.2.0

Freshness and reliability

  • ✓ Weekly RPO data refresh with automatic recovery
  • ✓ Automatic refresh of outdated company data
  • ✓ XML sitemap
  • ✓ Real company count on the homepage
v0.1.0

Initial launch

  • ✓ REST API for Slovak company lookup by IČO and ORSR ID
  • ✓ User and admin panel, API key and subscription management
  • ✓ Webhook system and notifications UI
  • ✓ PHP and JavaScript SDKs (MIT licensed)
  • ✓ Full Slovak and English localization
  • ✓ Response caching – cache hits consume no credits

We respect your privacy

We use necessary cookies to make the site work. With your consent we also use analytics cookies (Google Analytics) to understand how the site is used. More in our Privacy Policy.