Changes and history
Every daily sync with the FURS lists records what changed: a new taxpayer, a new name or address, deactivation, reactivation, VAT registration or deregistration, VAT ID revocation, and removal from public listings.
| Endpoint | Purpose | Units | Key scope | Plan |
|---|---|---|---|---|
GET /v1/changes |
feed of all changes, for polling | 1 per page | changes |
Growth+ |
GET /v1/entities/{tax}/history |
changes of one taxpayer | 1 | changes |
Growth+ |
Lower plans get 403 plan_upgrade_required; a key without the changes scope gets 403 insufficient_scope. For changes of selected taxpayers only, use monitors and webhooks.
The change object
Section titled “The change object”{ "object": "change", "id": "chg_48213", "seq": 48213, "change_type": "updated", "tax_number": "19000013", "registration_number": "9000000020", "type": "legal_entity", "name": "PRIMER TRANSPORT IN TRGOVINA, D.O.O.", "changed_fields": ["address_raw", "city", "postcode", "street"], "before": { "city": "PIRAN", "postcode": "6330", "…": "…" }, "after": { "city": "PORTOROŽ", "postcode": "6320", "…": "…" }, "source_date": "2026-10-20", "detected_at": "2026-10-20T06:41:12.000Z", "data_version": 41, "redacted": false}change_type is one of created, updated, deactivated, reactivated, vat_registered, vat_deregistered, vat_revoked and suppressed (the taxpayer, a sole proprietor, was removed from public listings: delete your copy of their data). Tolerate unknown values. We never serve a type that is not on this list yet: such a row is skipped (the cursor moves past it) and logged, so it cannot break the feed, history or webhooks. redacted: true means names and values are withheld (fully suppressed taxpayer, a sole proprietor excluded from name search in the feed, or data already erased under the retention policy). Sole-proprietor changes count against the daily natural-person cap like lookups; exclude them with type=legal_entity.
Polling the feed
Section titled “Polling the feed”Start with a date (midnight Europe/Ljubljana) or an ISO 8601 timestamp, then always continue with next_cursor:
curl "https://api.maticna.si/v1/changes?since=2026-10-01&types=created,deactivated&limit=1000" \ -H "Authorization: Bearer $MATICNA_KEY"- Oldest first, up to 1,000 per page (
limit, default 100). next_cursoris always returned, also on an empty page. Store it and send it assincenext time. It does not expire with data refreshes and is bound to thetypesandtypefilters.has_more: truemeans the next page is ready; otherwise wait for the next refresh (FURS data refreshes once per working day, mornings).- An unchanged page with
If-None-Matchreturns304and is free.
Taxpayer history
Section titled “Taxpayer history”GET /v1/entities/19000013/history returns every change of all registrations under the tax number, oldest first, paginated with cursor. History starts with the first daily sync after the initial load. An unknown well-formed tax number returns 404 and costs 1 unit, like a lookup.
Source: FURS · unofficial source, not an official extract · Terms · Privacy · maticna.si