# ERP Localization data API

Read-only static JSON, regenerated at each build. Base: https://erplocalization.com/api/v1/ . OpenAPI 3.1: https://erplocalization.com/api/openapi.json . HTML docs with Try it: https://erplocalization.com/api/ . Every response: `{"meta": {version, generated_at, licence, count}, "data": ...}`. CORS: `Access-Control-Allow-Origin: *`.

Licence: CC BY-NC 4.0 (attribution "ERP Localization (erplocalization.com)"); commercial licence enquiries pwn@mail.grokbot.com, https://erplocalization.com/data-licence/ .

## Endpoints
- `GET https://erplocalization.com/api/v1/index.json` – This list of endpoints
- `GET https://erplocalization.com/api/v1/countries/{code}.json` – Full detail for one country: toggles, all facts, local ERPs, partner flags, partners
- `GET https://erplocalization.com/api/v1/erps/{id}.json` – Full detail for one ERP: e-invoicing support per country, partner flags, provider connectors
- `GET https://erplocalization.com/api/v1/countries.json` – All countries with region, page URL, counts and derived toggles
- `GET https://erplocalization.com/api/v1/erps.json` – All ERP products (id, name, vendor, category, neutral profile)
- `GET https://erplocalization.com/api/v1/facts.json` – Every fact (country key facts, ERP e-invoicing support, VAT reporting and SAF-T requirements) with source and verification
- `GET https://erplocalization.com/api/v1/local-erps.json` – Local / regional ERP and accounting systems per country
- `GET https://erplocalization.com/api/v1/partner-flags.json` – Country × ERP flags where localisation is via local partners or add-ons
- `GET https://erplocalization.com/api/v1/partners.json` – Localization partners and apps (neutral, alphabetical; no pricing, no featured marker)
- `GET https://erplocalization.com/api/v1/news.json` – Vendor news items flagged as localization/compliance-relevant (titles, dates and links only)
- `GET https://erplocalization.com/api/v1/sponsors.json` – Active sponsors – paid placements, kept separate from and never mixed into verified data
- `GET https://erplocalization.com/api/v1/filters/e-invoicing-mandatory.json` – Countries with a B2B or B2G e-invoicing mandate (in force or enacted)
- `GET https://erplocalization.com/api/v1/filters/e-invoicing-mandatory-b2b.json` – Countries with a B2B e-invoicing mandate (in force or enacted)
- `GET https://erplocalization.com/api/v1/filters/e-invoicing-b2b-in-force.json` – Countries where a B2B mandate already applies
- `GET https://erplocalization.com/api/v1/filters/e-invoicing-mandatory-b2g.json` – Countries with a B2G e-invoicing mandate
- `GET https://erplocalization.com/api/v1/filters/real-time-reporting.json` – Countries with clearance or real-time invoice reporting in force
- `GET https://erplocalization.com/api/v1/filters/saft-required.json` – Countries requiring a SAF-T file
- `GET https://erplocalization.com/api/v1/filters/toggles-unknown.json` – Countries with at least one toggle still unknown (null)
- `GET https://erplocalization.com/api/openapi.json` – OpenAPI 3.1 description

## Derived toggles (null = unknown, never guessed)
- `e_invoicing_mandatory_b2b`: Domestic B2B e-invoicing mandate in force or enacted with a date (true 25, false 21, null 15 of 61)
- `e_invoicing_b2b_in_force`: B2B mandate already applies (at least in part, e.g. obligation to receive) on 2026-10-16 (true 17, false 29, null 15 of 61)
- `e_invoicing_mandatory_b2g`: Mandatory e-invoicing to/for public bodies (in force or enacted) (true 18, false 9, null 34 of 61)
- `real_time_reporting`: Invoice-level clearance or real-time/continuous transaction reporting to the tax authority in force (true 14, false 3, null 44 of 61)
- `saft_required`: A SAF-T file (national variant) must be submitted periodically or on request (true 7, false 0, null 54 of 61)
- `audit_file_on_request`: A non-SAF-T standard tax-audit file (FEC, GoBD, FAF) must be produced on request (true 3, false 0, null 58 of 61)

## 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
- **Meta**: version, generated_at, licence, count, notice, docs, openapi, toggle_coverage

`verification`: official | secondary | unverified. `effective_date` is null until recorded as a structured field. Partners are neutral (alphabetical, no pricing, no featured flag). Sponsors are only in sponsors.json and never affect verified data.

---
Canonical: https://erplocalization.com/api/ · Informational only; not tax or legal advice.
