Financial statements (AJPES)
GET /v1/entities/{tax_number}/financials returns the key figures from the annual reports that companies file with
AJPES (balance sheet and income statement), newest year first. AJPES publishes them under the
CC BY 4.0 licence; every figure carries its source.
| Who | capital companies (d.o.o., d.d., k.d.d., SE) and cooperatives (z.o.o., z.b.o.), about 78,000 companies, matched by registration number (matična) |
| Never | sole proprietors (s.p.) and other natural persons: coverage.status: not_covered, no figures |
| Statements | standalone statements (posamični izkazi, figures); for large companies that file an ESEF report, also the group’s consolidated statements (consolidated) |
| Documents | audited and consolidated reports AJPES publishes only as files (PDF, ZIP) are in documents, with a link to AJPES |
| Units | 1 per call; include=financials_latest on the entity lookup +1 when it returns data |
| Key scope | entities:read |
| MCP | the get_financials tool returns the same object (MCP) |
curl "https://api.maticna.si/v1/entities/19000006/financials?years=3" \ -H "Authorization: Bearer $MATICNA_KEY"Response
Section titled “Response”{ "object": "financials", "tax_number": "19000006", "registration_number": "9000000010", "coverage": { "status": "available", "reason": null, "detail": "Annual-report figures published by AJPES.", "detail_sl": "Podatki iz letnih poročil, ki jih objavlja AJPES." }, "currency": "EUR", "source": { "dataset": "ajpes_lp", "name": "AJPES – letna poročila", "name_en": "AJPES – annual reports", "publisher": "AJPES", "url": "https://www.ajpes.si", "licence": "CC-BY-4.0", "licence_url": "https://creativecommons.org/licenses/by/4.0/", "attribution": "Vir: AJPES (www.ajpes.si), CC BY 4.0; izračuni maticna.si", "attribution_required": true }, "access": { "plan": "growth", "max_years": 10, "figures": "full", "items": true, "years_capped": false }, "years": [ { "year": 2025, "report_type": "01", "basis": "standalone", "source_format": "ajpes_json", "period_start": "2025-01-01", "period_end": "2025-12-31", "period_months": 12, "size_class": null, "currency": "EUR", "quality": "ok", "restated": false, "revision": 1, "figures": { "revenue": 1840210.55, "net_profit": 96340.12, "employees": 14.62, "total_assets": 1210400.0, "equity": 610220.4, "ebit": 121880.3, "…": "…" }, "methods": { "revenue": "official", "net_profit": "official", "ebit": "derived", "…": "…" }, "provenance": { "bilanca_stanja": { "dataset": "ajpes_lp", "source": "AJPES – letna poročila", "year": 2025, "statement": "bilanca_stanja", "report_type": "01", "basis": "standalone", "period_end": "2025-12-31", "published_on": "2026-04-15", "updated_on": null, "as_of": "2026-04-15", "fetched_at": "2026-10-20T03:12:44.000Z", "licence": "CC-BY-4.0", "licence_url": "https://creativecommons.org/licenses/by/4.0/", "attribution": "Vir: AJPES (www.ajpes.si), CC BY 4.0; izračuni maticna.si", "url": "https://www.ajpes.si", "method": "official" }, "izkaz_poslovnega_izida": { "statement": "izkaz_poslovnega_izida", "…": "…" } }, "consolidated": null } ], "documents": [], "as_of": "2026-04-15"}| Field | Description |
|---|---|
coverage.status |
available: at least one year with figures. documents_only: AJPES publishes this company’s reports only as documents (e.g. an audited report in PDF), see documents. no_reports: a company AJPES covers, but we have not loaded a published report yet. not_covered: no financials for this taxpayer, see reason |
coverage.detail, detail_sl |
the explanation in English and Slovenian |
coverage.reason |
natural_person (s.p. and other natural persons, never served) or legal_form_not_covered (e.g. associations, institutes, foreign companies) |
years[] |
newest first. Only reports that pass the checks below |
years[].figures |
key figures in EUR (employees: average number from hours worked, 2 decimals). null: not reported. Only the figures of your plan are present |
years[].basis |
the statements figures come from: standalone (the company alone) whenever they exist; consolidated only for a group without standalone statements |
years[].source_format |
ajpes_json: AJPES’s structured table; esef: we read the figures from the ESEF report (below) |
years[].consolidated |
the group’s consolidated statements of the same year (same shape: figures, methods, provenance, items) when the ESEF report has them; otherwise null |
years[].methods |
official: one row as AJPES published it, or one tagged IFRS concept; derived: computed by maticna.si (formulas below) |
years[].provenance |
one stamp per statement: source, year, statement, report type, publication date (published_on), correction date (updated_on), as_of (the source’s own date), fetched_at (when we fetched it), licence and attribution |
years[].period_months |
below 12 for a first, last or changed business year |
years[].quality |
ok, or warning when the net result in the balance sheet differs from the income statement |
years[].restated, revision |
AJPES corrected the report after first publication; we serve the latest version |
years[].items |
the raw AJPES line items (T001…: current year, P001…: previous year), or for ESEF the XBRL concepts (T:ifrs-full:Revenue, P:… for the previous year, in EUR), only with include=items |
documents[] |
documents AJPES publishes for the same years: year, type (report_type, doc_name: RLP, KLP, eRLP, eKLP), label and label_en, format (pdf, zip), size, publication date, structured (we read the figures from it) and url |
access |
what your plan serves; years_capped: true when you asked for more years than the plan allows |
as_of |
the newest source date among the years served |
Parameters: years (1–10, default 5; capped by the plan) and include=items (raw line items).
| Plan | Years | Figures | Raw line items (include=items) |
|---|---|---|---|
| Hobby | not included (403 plan_upgrade_required, available from the Starter plan) | ||
| Starter | last 3 years | summary: revenue, net profit, employees, total assets, equity | no (403 plan_upgrade_required) |
| Growth | all years | all 24 figures | yes |
| Custom | all years | all 24 figures | yes |
years above the plan’s limit is not an error: you get the years the plan serves and access.years_capped: true.
The Hobby plan has no financials: the endpoint, the MCP tool get_financials and include=financials_latest on GET /v1/entities/{tax} return 403 plan_upgrade_required and cost no units.
Figures and the AJPES rows
Section titled “Figures and the AJPES rows”AJPES publishes a reduced selection of each report as numbered rows (T001–T089 for companies). The row is not the
AOP code; the AOP code is in brackets. Cooperatives file a shorter table (rows 1–24 match, later rows are shifted by 2);
we map them with their own table.
| Field | Item | Statement | Method | AJPES row (AOP) |
|---|---|---|---|---|
total_assets |
Total assets (sredstva) | balance sheet | official | T001 (001) |
non_current_assets |
Non-current assets | balance sheet | official | T002 (002) |
current_assets |
Current assets | balance sheet | official | T013 (032) |
inventories |
Inventories | balance sheet | official | T015 (034) |
receivables |
Short-term trade receivables | balance sheet | official | T019 (048) |
cash |
Cash | balance sheet | official | T020 (052) |
equity |
Equity (kapital) | balance sheet | official | T024 (056) |
share_capital |
Share capital | balance sheet | official | T026 (058) |
provisions |
Provisions and long-term accruals | balance sheet | official | T034 (072) |
long_term_liabilities |
Long-term liabilities | balance sheet | official | T037 (075) |
short_term_liabilities |
Short-term liabilities | balance sheet | official | T041 (085) |
financial_debt |
Financial debt | balance sheet | derived | T038 + T043 (076 + 087) |
liabilities |
Liabilities (long and short-term debt; total assets − equity also includes provisions) | balance sheet | derived | T037 + T041 |
revenue |
Net sales revenue (čisti prihodki od prodaje) | income statement | official | T047 (110) |
operating_revenue |
Operating revenue (kosmati donos) | income statement | derived | T047 + T048 + T049 + T050 (AOP 126 is not published) |
operating_expenses |
Operating expenses | income statement | derived | T051 + T054 + T059 + T063 |
ebit |
Operating profit (EBIT) | income statement | derived | operating_revenue − operating_expenses |
ebitda |
EBITDA | income statement | derived | ebit + depreciation (other write-downs are not added back) |
depreciation |
Depreciation and amortisation | income statement | official | T060 (145) |
financial_income |
Financial income | income statement | derived | T064 + T065 + T066 |
financial_expenses |
Financial expenses | income statement | derived | T067 + T068 + T069 |
income_tax |
Income tax | income statement | official | T072 (184) |
net_profit |
Net profit or loss (signed) | income statement | official | T074 (186 − 187) |
employees |
Average number of employees (from hours worked) | income statement | official | T075 (188) |
ESEF reports (large companies)
Section titled “ESEF reports (large companies)”Banks, insurers, listed companies and other audited companies do not file the structured table with AJPES; they file an audited and a consolidated annual report. Up to 2023 that is a PDF; from 2024 it is an ESEF package (a ZIP with an XHTML file tagged in Inline XBRL with the IFRS taxonomy). We read the package ourselves:
- only the reporting period AJPES states and the year before it (
P:), nothing else; - contexts without dimensions are the group (consolidated); the context with
ifrs-full:SeparateMemberis the company alone (standalone). When a report tags no separate statements it is the company alone, unless AJPES files it as the consolidated report; - amounts are converted to euros (
scale,signand the number format are applied); other dimensions (equity components, non-controlling interests) and amounts in other units are left out; - check: assets = equity + liabilities (± 0.1 %); reports that fail it are never served.
| Field | IFRS concept (ifrs-full:) |
Method |
|---|---|---|
total_assets |
Assets | official |
non_current_assets, current_assets |
NoncurrentAssets, CurrentAssets | official |
inventories |
Inventories | official |
receivables |
TradeAndOtherCurrentReceivables (else CurrentTradeReceivables) | official |
cash |
CashAndCashEquivalents | official |
equity, share_capital |
Equity, IssuedCapital | official |
provisions |
Provisions (else the sum of the provision lines) | official or derived |
long_term_liabilities, short_term_liabilities |
NoncurrentLiabilities, CurrentLiabilities | official |
financial_debt |
NoncurrentFinancialLiabilities + CurrentFinancialLiabilities (else borrowings) | derived |
liabilities |
Liabilities (provisions included; else non-current + current, else assets − equity) | official or derived |
revenue |
Revenue (else RevenueFromContractsWithCustomers; banks have none) | official |
ebit |
ProfitLossFromOperatingActivities | official |
ebitda |
ebit + depreciation |
derived |
depreciation |
DepreciationAndAmortisationExpense (else depreciation + amortisation) | official or derived |
financial_income, financial_expenses |
FinanceIncome, FinanceCosts | official |
income_tax |
IncomeTaxExpenseContinuingOperations | official |
net_profit |
ProfitLoss | official |
employees |
only when the report tags it | official |
operating_revenue, operating_expenses |
no IFRS counterpart (null) |
IFRS line items are not exactly the Slovenian table’s (e.g. liabilities includes provisions), so comparing companies
across sources is not like for like. The source is in source_format and report_type (72 audited, 73
consolidated annual report).
Documents and the link to AJPES
Section titled “Documents and the link to AJPES”Years AJPES publishes only as documents (e.g. the audited report as a PDF up to 2023) are in documents. The download
link of AJPES’s API needs our key, so url is the company’s public page in AJPES’s JOLP
application (https://www.ajpes.si/jolp/podjetje.asp?maticna=…). AJPES asks you to sign in there (free registration,
or as an anonymous user) and allows 20 companies a day. We do not pass the documents on.
Coverage and years
Section titled “Coverage and years”- Companies: AJPES publishes structured annual reports for capital companies and cooperatives. We match them by matična to the FURS register; a company without a matična in the FURS lists cannot be matched.
- Years: AJPES serves the current year and the five previous ones per company. Companies file by 31 March and reports are published from April. We keep every year we have loaded, so history does not disappear when AJPES’s window moves on.
- Loading: reports are loaded gradually and refreshed nightly within AJPES’s rate limits. A covered company whose
reports are not loaded yet returns
coverage.status: no_reports. - Checks: every report must balance (assets = liabilities + equity, assets = the sum of their parts) and have
non-negative revenue and employees. Reports that fail, and all-zero reports, are never served. Banks and insurers file
no structured table: their figures come from their ESEF reports (2024 on), older years are in
documents. - Corrections: when AJPES corrects a report we serve the new version with
restated: trueand a higherrevision. - Personal data: only figures. We do not republish the PDF documents or the free-text notes of the reports; we only link to the documents (AJPES JOLP).
Attribution (CC BY 4.0): your obligation
Section titled “Attribution (CC BY 4.0): your obligation”The data is AJPES’s, licensed under CC BY 4.0. If you show or pass on these figures (in an app, a report, a spreadsheet, an AI answer), keep the attribution with them:
Vir: AJPES (www.ajpes.si), CC BY 4.0; izračuni maticna.si
- name the source (AJPES, with a link to www.ajpes.si),
- link the licence (creativecommons.org/licenses/by/4.0),
- say that figures were derived:
methodsmarks every figure we computed (“izračuni maticna.si”).
The source.attribution field and every provenance stamp carry this text, so you can print it as it is. The
licence, not us, sets this condition: it applies to everyone who reuses the figures, including your own customers.
Errors
Section titled “Errors”| Status | Code | When |
|---|---|---|
| 403 | plan_upgrade_required |
include=items below the Growth plan (0 units) |
| 404 | not_found |
a well-formed tax number that is not in the FURS lists (1 unit, like a lookup) |
| 422 | invalid_tax_number |
wrong check digit (0 units) |
| 400 | bad_request |
years outside 1–10 or an unknown include value (0 units) |
A sole proprietor (s.p.) is not an error: the answer is 200 with coverage.status: not_covered,
reason: natural_person, years: [] and no registration number. It costs 1 unit and counts towards the daily
natural-person cap, like a lookup.
Source: FURS · unofficial source, not an official extract · Terms · Privacy · maticna.si