Home

Data API

A read-only, static JSON API generated at each build. No key, CORS open (Access-Control-Allow-Origin: *). Every response is {"meta":{version, generated_at, licence, count}, "data":…}. Machine-readable spec: /api/openapi.json (OpenAPI 3.1). Endpoint list: /api/v1/index.json.

Licence: data is CC BY-NC 4.0, attribution “ERP Localization (erplocalization.com)”. Commercial use needs a commercial licence – enquiries to pwn@mail.grokbot.com. Informational only; not tax or legal advice.

Derived toggles

Per country, derived only where the recorded source text is clear; null means unknown, never a guess. Counts across 61 countries:

FieldMeaningtruefalsenull
e_invoicing_mandatory_b2bDomestic B2B e-invoicing mandate in force or enacted with a date252115
e_invoicing_b2b_in_forceB2B mandate already applies (at least in part, e.g. obligation to receive) on 2026-10-16172915
e_invoicing_mandatory_b2gMandatory e-invoicing to/for public bodies (in force or enacted)18934
real_time_reportingInvoice-level clearance or real-time/continuous transaction reporting to the tax authority in force14344
saft_requiredA SAF-T file (national variant) must be submitted periodically or on request7054
audit_file_on_requestA non-SAF-T standard tax-audit file (FEC, GoBD, FAF) must be produced on request3058

verification: official = checked on an official or vendor page as recorded in the dataset, secondary = reputable secondary source, unverified = no source confirmed. effective_date is null until dates are recorded as structured fields; deadlines are in the fact text / details. Sponsored content lives only in sponsors.json and never changes facts, toggles or order.

GET /api/v1/index.json

List of all endpoints, plus toggle coverage in meta.

Model Endpoint – fields: path, description, count

Example response
{
 "meta": {
  "version": "1.0.0",
  "generated_at": "2026-10-16T20:36:43Z",
  "licence": {
   "name": "CC BY-NC 4.0",
   "url": "https://creativecommons.org/licenses/by-nc/4.0/",
   "commercial_licence": "/data-licence/",
   "commercial_contact": "pwn@mail.grokbot.com",
   "attribution": "ERP Localization (erplocalization.com)"
  },
  "count": 19,
  "docs": "https://erplocalization.com/api/",
  "openapi": "https://erplocalization.com/api/openapi.json",
  "toggle_coverage": {
   "e_invoicing_mandatory_b2b": {
    "true": 25,
    "false": 21,
    "null": 15
   },
   "e_invoicing_b2b_in_force": {
    "true": 17,
    "false": 29,
    "null": 15
   },
   "e_invoicing_mandatory_b2g": {
    "true": 18,
    "false": 9,
    "null": 34
   },
   "real_time_reporting": {
    "true": 14,
    "false": 3,
    "null": 44
   },
   "saft_required": {
    "true": 7,
    "false": 0,
    "null": 54
   },
   "audit_file_on_request": {
    "true": 3,
    "false": 0,
    "null": 58
   }
  }
 },
 "data": [
  {
   "path": "/api/v1/index.json",
   "description": "This list of endpoints",
   "count": null
  }
 ]
}
Try it

GET /api/v1/countries.json

All countries with counts and derived toggles.

Model Country – fields: code, name, region, url, api_url, counts, toggles, vat_standard_rate, vat_reduced_rates, vat_name, vat_registration_threshold, vat_filing_frequency

Example response
{
 "meta": {
  "version": "1.0.0",
  "generated_at": "2026-10-16T20:36:43Z",
  "licence": {
   "name": "CC BY-NC 4.0",
   "url": "https://creativecommons.org/licenses/by-nc/4.0/",
   "commercial_licence": "/data-licence/",
   "commercial_contact": "pwn@mail.grokbot.com",
   "attribution": "ERP Localization (erplocalization.com)"
  },
  "count": 61
 },
 "data": [
  {
   "code": "al",
   "name": "Albania",
   "region": "Southeast Europe & Caucasus",
   "url": "https://erplocalization.com/albania/",
   "api_url": "/api/v1/countries/al.json",
   "counts": {
    "facts": 10,
    "facts_verified": 10,
    "erp_matrix_cells": 0,
    "local_erps": 0,
    "partners": 0,
    "partner_flags": 4
   },
   "toggles": {
    "e_invoicing_mandatory_b2b": true,
    "e_invoicing_b2b_in_force": true,
    "e_invoicing_mandatory_b2g": true,
    "real_time_reporting": true,
    "saft_required": null,
    "audit_file_on_request": null
   },
   "vat_standard_rate": 20,
   "vat_reduced_rates": null,
   "vat_name": "TVSH",
   "vat_registration_threshold": null,
   "vat_filing_frequency": null
  }
 ]
}
Try it

GET /api/v1/countries/{code}.json

One country with toggles, every fact, local ERPs, partner flags and partners. Codes are lower-case ISO 3166-1 alpha-2.

Model CountryDetail – fields: facts, local_erps, partner_flags, partners

Example response
{
 "meta": {
  "version": "1.0.0",
  "generated_at": "2026-10-16T20:36:43Z",
  "licence": {
   "name": "CC BY-NC 4.0",
   "url": "https://creativecommons.org/licenses/by-nc/4.0/",
   "commercial_licence": "/data-licence/",
   "commercial_contact": "pwn@mail.grokbot.com",
   "attribution": "ERP Localization (erplocalization.com)"
  },
  "count": 1
 },
 "data": {
  "code": "fr",
  "name": "France",
  "region": "Western Europe",
  "url": "https://erplocalization.com/france/",
  "api_url": "/api/v1/countries/fr.json",
  "counts": {
   "facts": 30,
   "facts_verified": 28,
   "erp_matrix_cells": 11,
   "local_erps": 2,
   "partners": 6,
   "partner_flags": 0
  },
  "toggles": {
   "e_invoicing_mandatory_b2b": true,
   "e_invoicing_b2b_in_force": true,
   "e_invoicing_mandatory_b2g": null,
   "real_time_reporting": null,
   "saft_required": null,
   "audit_file_on_request": true
  },
  "vat_standard_rate": 20,
  "vat_reduced_rates": [
   10
  ],
  "vat_name": "TVA",
  "vat_registration_threshold": "Residents: EUR 85,000 for sales of goods and EUR 37,500 for services (the guide mentions a planned lower services threshold, not confirmed here). Non-EU businesses: no threshold.",
  "vat_filing_frequency": "Typically monthly (form CA3).",
  "facts": [
   {
    "id": "fr-currency",
    "country": "fr",
    "erp": null,
    "topic": "currency",
    "label": "Currency",
    "value": "Euro (EUR)",
    "status": "verified",
    "mandatory": null,
    "effective_date": null,
    "source_url": "https://www.six-group.com/dam/download/financial-information/data-center/iso-currrency/lists/list-one.xml",
    "source_urls": [
     "https://www.six-group.com/dam/download/financial-information/data-center/iso-currrency/lists/list-one.xml",
     "https://www.ecb.europa.eu/euro/intro/html/index.en.html"
    ],
    "verification": "official",
    "last_checked": "2026-10-16"
   }
  ],
  "local_erps": [
   {
    "id": "fr-cegid",
    "country": "fr",
    "name": "Cegid",
    "segment": "SMB / mid-market",
    "description": "Management software for accounting, finance, payroll/HR and retail",
    "website": "https://www.cegid.com/",
    "source_url": "https://www.cegid.com/",
    "verification": "official",
    "last_checked": "2026-10-16"
   }
  ],
  "partner_flags": [],
  "partners": [
   {
    "id": "fr-business-central-pagero-onesource-pagero-thomson-reuters",
    "name": "Pagero (ONESOURCE Pagero, Thomson Reuters)",
    "erp": "business-central",
    "country": "fr",
    "partner_type": "E-invoicing provider app (AppSource)",
    "summary": "AppSource extension connecting Business Central to the Pagero network; the listing names this country among accounts-receivable e-invoicing countries.",
    "source_urls": [
     "https://appsource.microsoft.com/en-us/product/dynamics-365-business-central/PUBID.pagero-4798327%7CAID.pagero%7CPAPPID.92b90d1d-ecde-4d26-a95b-1d57720e79c6?tab=Overview"
    ],
    "source_kind": "Microsoft AppSource listing",
    "last_checked": "2026-10-16"
   }
  ]
 }
}
Try it

GET /api/v1/erps.json

ERP products. Profiles are neutral and stripped of pricing/commercial terms.

Model ERP – fields: id, name, vendor, category, profile, website, url, api_url, counts

Example response
{
 "meta": {
  "version": "1.0.0",
  "generated_at": "2026-10-16T20:36:43Z",
  "licence": {
   "name": "CC BY-NC 4.0",
   "url": "https://creativecommons.org/licenses/by-nc/4.0/",
   "commercial_licence": "/data-licence/",
   "commercial_contact": "pwn@mail.grokbot.com",
   "attribution": "ERP Localization (erplocalization.com)"
  },
  "count": 11
 },
 "data": [
  {
   "id": "netsuite",
   "name": "NetSuite",
   "vendor": "Oracle",
   "category": "Cloud suite (Oracle)",
   "profile": "Oracle describes NetSuite ERP as \"an all-in-one, AI-powered, cloud business management solution\" covering accounting, orders, inventory, projects, production, supply chain and warehouse operations. States that NetSuite OneWorld manages multiple currencies, taxation rules and reporting requirements across geographies and subsidiaries, with real-time consolidation.",
   "website": "https://www.netsuite.com/portal/products/erp.shtml",
   "url": "https://erplocalization.com/erp/netsuite/",
   "api_url": "/api/v1/erps/netsuite.json",
   "counts": {
    "e_invoicing_countries": 14,
    "partner_flags": 35,
    "partners": 24
   }
  }
 ]
}
Try it

GET /api/v1/erps/{id}.json

One ERP: e-invoicing support per country, partner flags and provider connectors. Ids: netsuite, business-central, sap-s-4hana, sap-business-one, odoo, sage-intacct, lensing-everest, light, unit4-erpx, workday-financials, ifs-cloud.

Model ERPDetail – fields: e_invoicing_support, other_facts, partner_flags, providers

Example response
{
 "meta": {
  "version": "1.0.0",
  "generated_at": "2026-10-16T20:36:43Z",
  "licence": {
   "name": "CC BY-NC 4.0",
   "url": "https://creativecommons.org/licenses/by-nc/4.0/",
   "commercial_licence": "/data-licence/",
   "commercial_contact": "pwn@mail.grokbot.com",
   "attribution": "ERP Localization (erplocalization.com)"
  },
  "count": 1
 },
 "data": {
  "id": "netsuite",
  "name": "NetSuite",
  "vendor": "Oracle",
  "category": "Cloud suite (Oracle)",
  "profile": "Oracle describes NetSuite ERP as \"an all-in-one, AI-powered, cloud business management solution\" covering accounting, orders, inventory, projects, production, supply chain and warehouse operations. States that NetSuite OneWorld manages multiple currencies, taxation rules and reporting requirements across geographies and subsidiaries, with real-time consolidation.",
  "website": "https://www.netsuite.com/portal/products/erp.shtml",
  "url": "https://erplocalization.com/erp/netsuite/",
  "api_url": "/api/v1/erps/netsuite.json",
  "counts": {
   "e_invoicing_countries": 14,
   "partner_flags": 35,
   "partners": 24
  },
  "e_invoicing_support": [
   {
    "id": "fr-e-invoicing-support-netsuite",
    "country": "fr",
    "erp": "netsuite",
    "topic": "e_invoicing_erp_support",
    "label": "NetSuite e-invoicing support",
    "value": "native + access point",
    "status": "verified",
    "mandatory": null,
    "effective_date": null,
    "source_url": "https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/article_0427124940.html",
    "source_urls": [
     "https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/article_0427124940.html"
    ],
    "verification": "official",
    "last_checked": "2026-10-16",
    "details": {
     "mandate": "E-invoicing & e-reporting reform (Plateformes Agréées)",
     "scope": "Domestic B2B e-invoicing; e-reporting for B2C/cross-border",
     "deadlines": "Receive: all 1 Sep 2026; issue+report large/mid 1 Sep 2026; SMEs/micro 1 Sep 2027",
     "format": "Factur-X, UBL 2.1, CII via approved platform (PA)",
     "vendors": "NetSuite Electronic Business SuiteApp, Oracle Business Network (OBN), Avalara (licences required)",
     "notes": "France Electronic Invoicing via OBN + Avalara; users reported sandbox defects (Aug 2026)"
    }
   }
  ],
  "other_facts": [
   {
    "id": "at-netsuite-country-help",
    "country": "at",
    "erp": "netsuite",
    "topic": "erp_localization",
    "label": "NetSuite country help",
    "value": "No country help topic listed by Oracle (may still be covered by region-specific SuiteApps or partners)",
    "status": "verified",
    "mandatory": null,
    "effective_date": null,
    "source_url": "https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/book_4198429264.html",
    "source_urls": [
     "https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/book_4198429264.html"
    ],
    "verification": "official",
    "last_checked": "2026-10-16"
   }
  ],
  "partner_flags": [
   {
    "id": "at-netsuite",
    "country": "at",
    "erp": "netsuite",
    "flag": "limited native / partner",
    "note": "Oracle lists no country-specific NetSuite help topics; localisation usually through partner SuiteApps or add-ons (region-specific SuiteApps may still apply).",
    "source_url": "https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/book_4198429264.html",
    "verification": "official",
    "last_checked": "2026-10-16"
   }
  ],
  "providers": [
   {
    "provider": "Avalara E-Invoicing and Live Reporting",
    "connector_type": "vendor-branded",
    "built_by": "Oracle NetSuite with Avalara",
    "direction": "send + receive",
    "countries_in_scope": [],
    "source_urls": [
     "https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_0423105418.html",
     "https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_0319043032.html",
     "https://www.avalara.com/us/en/products/e-invoicing.html"
    ],
    "verification": "official",
 
…
Try it

GET /api/v1/facts.json

Every fact with source URL, verification level and last-checked date.

Model Fact – fields: id, country, erp, topic, label, value, status, mandatory, effective_date, source_url, source_urls, verification, last_checked, details

Example response
{
 "meta": {
  "version": "1.0.0",
  "generated_at": "2026-10-16T20:36:43Z",
  "licence": {
   "name": "CC BY-NC 4.0",
   "url": "https://creativecommons.org/licenses/by-nc/4.0/",
   "commercial_licence": "/data-licence/",
   "commercial_contact": "pwn@mail.grokbot.com",
   "attribution": "ERP Localization (erplocalization.com)"
  },
  "count": 986
 },
 "data": [
  {
   "id": "at-currency",
   "country": "at",
   "erp": null,
   "topic": "currency",
   "label": "Currency",
   "value": "Euro (EUR)",
   "status": "verified",
   "mandatory": null,
   "effective_date": null,
   "source_url": "https://www.six-group.com/dam/download/financial-information/data-center/iso-currrency/lists/list-one.xml",
   "source_urls": [
    "https://www.six-group.com/dam/download/financial-information/data-center/iso-currrency/lists/list-one.xml",
    "https://www.ecb.europa.eu/euro/intro/html/index.en.html"
   ],
   "verification": "official",
   "last_checked": "2026-10-16"
  }
 ]
}
Try it

GET /api/v1/local-erps.json

Local and regional ERP / accounting systems.

Model LocalERP – fields: id, country, name, segment, description, website, source_url, verification, last_checked

Example response
{
 "meta": {
  "version": "1.0.0",
  "generated_at": "2026-10-16T20:36:43Z",
  "licence": {
   "name": "CC BY-NC 4.0",
   "url": "https://creativecommons.org/licenses/by-nc/4.0/",
   "commercial_licence": "/data-licence/",
   "commercial_contact": "pwn@mail.grokbot.com",
   "attribution": "ERP Localization (erplocalization.com)"
  },
  "count": 91
 },
 "data": [
  {
   "id": "de-datev",
   "country": "de",
   "name": "DATEV",
   "segment": "SMB / tax advisers",
   "description": "Accounting, payroll and tax software and services, closely tied to the German tax-adviser channel",
   "website": "https://www.datev.de/",
   "source_url": "https://www.datev.de/",
   "verification": "official",
   "last_checked": "2026-10-16"
  }
 ]
}
Try it

GET /api/v1/partner-flags.json

Where a global ERP is localised via local partners or add-ons.

Model PartnerFlag – fields: id, country, erp, flag, note, source_url, verification, last_checked

Example response
{
 "meta": {
  "version": "1.0.0",
  "generated_at": "2026-10-16T20:36:43Z",
  "licence": {
   "name": "CC BY-NC 4.0",
   "url": "https://creativecommons.org/licenses/by-nc/4.0/",
   "commercial_licence": "/data-licence/",
   "commercial_contact": "pwn@mail.grokbot.com",
   "attribution": "ERP Localization (erplocalization.com)"
  },
  "count": 108
 },
 "data": [
  {
   "id": "at-netsuite",
   "country": "at",
   "erp": "netsuite",
   "flag": "limited native / partner",
   "note": "Oracle lists no country-specific NetSuite help topics; localisation usually through partner SuiteApps or add-ons (region-specific SuiteApps may still apply).",
   "source_url": "https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/book_4198429264.html",
   "verification": "official",
   "last_checked": "2026-10-16"
  }
 ]
}
Try it

GET /api/v1/partners.json

Partners and apps, neutral and alphabetical (country, ERP, name). No pricing, no featured flag.

Model Partner – fields: id, name, erp, country, partner_type, summary, source_urls, source_kind, last_checked

Example response
{
 "meta": {
  "version": "1.0.0",
  "generated_at": "2026-10-16T20:36:43Z",
  "licence": {
   "name": "CC BY-NC 4.0",
   "url": "https://creativecommons.org/licenses/by-nc/4.0/",
   "commercial_licence": "/data-licence/",
   "commercial_contact": "pwn@mail.grokbot.com",
   "attribution": "ERP Localization (erplocalization.com)"
  },
  "count": 63
 },
 "data": [
  {
   "id": "at-business-central-pagero-onesource-pagero-thomson-reuters",
   "name": "Pagero (ONESOURCE Pagero, Thomson Reuters)",
   "erp": "business-central",
   "country": "at",
   "partner_type": "E-invoicing provider app (AppSource)",
   "summary": "AppSource extension connecting Business Central to the Pagero network; the listing names this country among accounts-receivable e-invoicing countries.",
   "source_urls": [
    "https://appsource.microsoft.com/en-us/product/dynamics-365-business-central/PUBID.pagero-4798327%7CAID.pagero%7CPAPPID.92b90d1d-ecde-4d26-a95b-1d57720e79c6?tab=Overview"
   ],
   "source_kind": "Microsoft AppSource listing",
   "last_checked": "2026-10-16"
  }
 ]
}
Try it

GET /api/v1/news.json

Vendor news flagged as localization-relevant; titles, dates and links only.

Model NewsItem – fields: id, title, url, date, first_seen, erps, source

Example response
{
 "meta": {
  "version": "1.0.0",
  "generated_at": "2026-10-16T20:36:43Z",
  "licence": {
   "name": "CC BY-NC 4.0",
   "url": "https://creativecommons.org/licenses/by-nc/4.0/",
   "commercial_licence": "/data-licence/",
   "commercial_contact": "pwn@mail.grokbot.com",
   "attribution": "ERP Localization (erplocalization.com)"
  },
  "count": 24
 },
 "data": [
  {
   "id": "n1",
   "title": "Install UK localization as an extension to the base app",
   "url": "https://learn.microsoft.com/en-us/dynamics365/release-plan/2025wave2/smb/dynamics365-business-central/install-uk-localization-as-app",
   "date": null,
   "first_seen": "2026-10-16T18:32:44Z",
   "erps": [
    "business-central"
   ],
   "source": "https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/whatsnew/whatsnew-update-27-0"
  }
 ]
}
Try it

GET /api/v1/sponsors.json

Paid placements, if any. Always separate from verified data; currently empty.

Model Sponsor – fields: id, name, scope, tagline, description, url, start, end, sponsored

Example response
{
 "meta": {
  "version": "1.0.0",
  "generated_at": "2026-10-16T20:36:43Z",
  "licence": {
   "name": "CC BY-NC 4.0",
   "url": "https://creativecommons.org/licenses/by-nc/4.0/",
   "commercial_licence": "/data-licence/",
   "commercial_contact": "pwn@mail.grokbot.com",
   "attribution": "ERP Localization (erplocalization.com)"
  },
  "count": 0,
  "notice": "Sponsored content. Not part of the verified dataset; does not affect facts, toggles or listing order."
 },
 "data": []
}
Try it

GET /api/v1/filters/{name}.json

Precomputed country lists: e-invoicing-mandatory, e-invoicing-mandatory-b2b, e-invoicing-b2b-in-force, e-invoicing-mandatory-b2g, real-time-reporting, saft-required, toggles-unknown.

Model FilterItem – fields: code, name, region, toggles, api_url

Example response
{
 "meta": {
  "version": "1.0.0",
  "generated_at": "2026-10-16T20:36:43Z",
  "licence": {
   "name": "CC BY-NC 4.0",
   "url": "https://creativecommons.org/licenses/by-nc/4.0/",
   "commercial_licence": "/data-licence/",
   "commercial_contact": "pwn@mail.grokbot.com",
   "attribution": "ERP Localization (erplocalization.com)"
  },
  "count": 36
 },
 "data": [
  {
   "code": "al",
   "name": "Albania",
   "region": "Southeast Europe & Caucasus",
   "toggles": {
    "e_invoicing_mandatory_b2b": true,
    "e_invoicing_b2b_in_force": true,
    "e_invoicing_mandatory_b2g": true,
    "real_time_reporting": true,
    "saft_required": null,
    "audit_file_on_request": null
   },
   "api_url": "/api/v1/countries/al.json"
  }
 ]
}
Try it

Models

Country

code, name, region, url, api_url, counts, toggles, vat_standard_rate, vat_reduced_rates, vat_name, vat_registration_threshold, vat_filing_frequency

CountryDetail

facts, local_erps, partner_flags, partners

ERP

id, name, vendor, category, profile, website, url, api_url, counts

ERPDetail

e_invoicing_support, other_facts, partner_flags, providers

Fact

id, country, erp, topic, label, value, status, mandatory, effective_date, source_url, source_urls, verification, last_checked, details

LocalERP

id, country, name, segment, description, website, source_url, verification, last_checked

PartnerFlag

id, country, erp, flag, note, source_url, verification, last_checked

Partner

id, name, erp, country, partner_type, summary, source_urls, source_kind, last_checked

NewsItem

id, title, url, date, first_seen, erps, source

Sponsor

id, name, scope, tagline, description, url, start, end, sponsored

Toggles

e_invoicing_mandatory_b2b, e_invoicing_b2b_in_force, e_invoicing_mandatory_b2g, real_time_reporting, saft_required, audit_file_on_request

Meta

version, generated_at, licence, count, notice, docs, openapi, toggle_coverage

Page last updated: · Markdown version

Newsletter – monthly digest of mandate and ERP support changes. Subscribe on the home page.