Skip to content

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.

{
"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.

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_cursor is always returned, also on an empty page. Store it and send it as since next time. It does not expire with data refreshes and is bound to the types and type filters.
  • has_more: true means 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-Match returns 304 and is free.

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