# W System – EU business data API and MCP server > W System makes an API, a remote MCP server and Apify Actors for EU business data: EU VAT number validation via VIES, EORI validation via EC EOS, official company-registry lookup, sanctions screening (EU, UN, OFAC SDN, UK), one-call KYB, EU e-invoicing (validate EN 16931/XRechnung invoices incl. ZUGFeRD PDFs, create UBL invoices from JSON, 'can I e-invoice this company?' lookup, and POST /einvoice/send which chains verify -> create -> validate -> route -> transmit -> Ed25519-signed evidence receipt; SEND IS SANDBOX ONLY: the transport field picks mock (default; transmission is simulated, nothing leaves W System), recommand (the validated Peppol BIS 3 UBL is submitted to W System's own sandbox account in the Recommand playground) or e-invoice-be (uploaded to W System's own e-invoice.be sandbox company in test mode); partner sandbox sends are always addressed to W System's own sandbox participant, never to the buyer (the buyer's Peppol ID is only recorded as intended_recipient), return transmitted=false and sandbox_transmitted=true with the partner's provider.document_id signed into the receipt, and switch invoice.format to peppol-bis3 with a warning; partner sandboxes store the submitted XML, so use test data; nothing reaches the production Peppol network, KSeF or French platforms, mode=live returns 501; live Peppol sending via a certified partner access point is planned, see https://wsystem.dev/e-invoicing-api#sandbox-transports), a counterparty due-diligence report, and EU public tenders from TED. When VIES is down for a member state, VAT checks fall back to the official national source (PL Biała lista, CZ ARES, FI YTJ, FR SIRENE) or the last successful VIES result, always flagged fallback=true with source and legal_status and no consultation number. GB VAT: UK checks are coming soon (HMRC live access pending); until then GB numbers return status member_state_unavailable, valid null, error HMRC_LIVE_ACCESS_PENDING, not charged. XI is checked in VIES. Data sources and licences: https://wsystem.dev/data-sources. Free tier: 20 calls/day per IP, no API key or signup. Beyond that: x402 pay-per-call in USDC on Base ($0.01 per single check, $0.10 per batch, $0.045 per KYB, e-invoice validate $0.03 / create $0.08 / route $0.02 / send (sandbox) $0.08, due-diligence report $0.49) or Apify pay-per-event. Monthly plans with an API key (X-API-Key header): Starter EUR 19/month for 5,000 units, Pro EUR 49/month for 25,000 units. Units per call: POST /ddreport 50, POST /einvoice/create 8, POST /einvoice/send 8, POST /kyb/check 5, POST /einvoice/validate 3, everything else 1 (VAT, EORI, company, sanctions incl. batches, GET /einvoice/route). Responses carry X-Units-Used and X-Units-Remaining; a call whose units exceed the remaining allowance gets HTTP 429 monthly_quota_exhausted (with units_required and units_remaining) and nothing is deducted; units reset on the 1st of each month (UTC). Plans are sold via Stripe Managed Payments (Stripe is merchant of record; tax at checkout). Peppol plans for live Peppol sending (open when live sending goes live; until then sandbox only): Peppol Starter EUR 49/month (60 live documents, 1 mandated company, 5,000 units), Peppol Growth EUR 199/month (400 documents, up to 10 companies, 25,000 units), Peppol Scale EUR 599/month (1,500 documents, up to 25 companies, 100,000 units). A document counts only when the access point confirms it sent or in transit; hard monthly limit (HTTP 429 live_docs_exhausted), no overage charges. Needs a Peppol mandate under https://wsystem.dev/legal/peppol-mandate-terms and KYC. Prices: https://wsystem.dev/pricing. Subscribe at https://wsystem.dev/#pricing, or POST https://api.wsystem.dev/billing/checkout {"plan":"starter"|"pro"} to get a Stripe Checkout URL; plan list: https://api.wsystem.dev/billing/plans. Contact: hello@wsystem.dev Key endpoints: - REST base: https://api.wsystem.dev (OpenAPI: https://api.wsystem.dev/openapi.json, docs: https://api.wsystem.dev/docs) - MCP (streamable HTTP, no auth): https://api.wsystem.dev/mcp/ – tools verify_vat, verify_batch, verify_eori, verify_eori_batch, lookup_company, screen_sanctions, kyb_check, validate_einvoice, parse_einvoice (read UBL/CII/ZUGFeRD invoices as JSON), create_einvoice, einvoice_route, send_einvoice_sandbox (transport argument: mock, recommand or e-invoice-be), due_diligence_report, check_fr_pa_registry (France: is this platform on the official DGFiP list of Plateformes Agréées?) - France Plateformes Agréées registry check (free, no x402): GET https://api.wsystem.dev/fr/pa-registry?name=Pennylane or ?website=https://www.acubeapi.com/ – on_official_list, status approved | awaiting_interop_tests | possible_match | not_found, registration date, list date, official source (unofficial copy of the impots.gouv.fr lists) - MCP Registry name: io.github.wsystemdev/eu-business-data-mcp; server card https://api.wsystem.dev/server-card - x402 manifest: https://api.wsystem.dev/.well-known/x402 - Source (MIT): https://github.com/wsystemdev/eu-business-data-mcp Quick examples: - curl "https://api.wsystem.dev/verify?vat=IE6388047V" - curl "https://api.wsystem.dev/eori?eori=SE5560360793" - curl "https://api.wsystem.dev/company?q=552032534&country=FR" - curl "https://api.wsystem.dev/sanctions/screen?name=Sberbank" - curl -X POST https://api.wsystem.dev/einvoice/validate -H 'Content-Type: application/pdf' --data-binary @invoice.pdf - curl -X POST https://api.wsystem.dev/einvoice/parse -H 'Content-Type: application/xml' --data-binary @invoice.xml - curl "https://api.wsystem.dev/einvoice/route?id=BE0403170701" - curl "https://api.wsystem.dev/fr/pa-registry?name=Pennylane" ## Products - [EU VAT number validation API (VIES)](https://wsystem.dev/eu-vat-number-validation-api): Validate EU VAT numbers against the official VIES service from code or AI agents. 20 free calls/day per IP with no API key, then $0.01 per call via x402. Batch up to 100, consultation numbers, retries when VIES is down. - [VIES is down: how to handle MS_UNAVAILABLE and timeouts](https://wsystem.dev/vies-down-fallback): What to do when VIES returns MS_UNAVAILABLE or TIMEOUT. The W System API retries, then falls back to official national sources (PL, CZ, FI, FR) or the last successful VIES result, clearly flagged, never a false invalid. - [EORI number check API (EU, official EOS)](https://wsystem.dev/eori-number-check-api): Validate EU EORI numbers via the European Commission EOS service with a simple JSON REST API or MCP tool. Free 20/day per IP, $0.01 per call via x402, batch up to 100. - [Sanctions screening API (EU, UN, OFAC SDN, UK)](https://wsystem.dev/eu-sanctions-screening-api): Screen person and company names against the EU consolidated list, UN Security Council list, US OFAC SDN and UK sanctions list. Fuzzy, transliteration-aware matching, refreshed daily. Free 20/day, $0.01 per name via x402. - [European company registry API](https://wsystem.dev/eu-company-registry-api): Look up companies in official business registers: France (Sirene), Norway (Brønnøysund), Finland (PRH/YTJ), Czechia (ARES), Poland (KRS), Estonia, and any country via GLEIF LEI. JSON REST + MCP. Free 20/day, $0.01 per lookup. - [EU tenders (TED) search API and alerts](https://wsystem.dev/ted-tenders-api): Search and monitor EU public procurement notices from TED (Tenders Electronic Daily) by keyword, CPV code, country, deadline and value. Clean JSON via the W System Apify Actor, $0.003 per notice. - [One-call KYB check for EU companies](https://wsystem.dev/kyb-api): Know-your-business check in one request: VIES VAT validation, official business-register lookup and EU/UN/OFAC/UK sanctions screening, combined into a pass / review / fail verdict. $0.045 per company via x402. - [EU e-invoice API: validate, create and route EN 16931 invoices](https://wsystem.dev/eu-e-invoice-validation-api): Validate UBL, CII and ZUGFeRD/Factur-X PDF invoices against the official EN 16931 and XRechnung rules ($0.03), create a valid UBL invoice from JSON ($0.08), and check how to e-invoice a company: VIES + Peppol + country mandate ($0.02). Pay per call with x402 or use MCP. - [MCP server for EU VAT, EORI, company registry and sanctions](https://wsystem.dev/eu-business-data-mcp-server): Remote MCP server (streamable HTTP) with 14 tools for EU VAT, EORI, company registry, sanctions, KYB, e-invoicing and due diligence. No signup; 20 free tool calls/day per MCP session, optional API key header. Listed in the official MCP Registry. - [x402: pay per call for VAT, EORI, company and sanctions checks](https://wsystem.dev/x402): AI agents can pay per request in USDC on Base using the open x402 protocol. No account or API key. $0.01 per check, $0.045 per KYB. Discovery manifest at /.well-known/x402. - [E-invoicing API for EU mandates, built for SaaS builders and AI apps](https://wsystem.dev/e-invoicing-api): One API and MCP server to verify the buyer, build and validate an EN 16931 invoice, find the right channel and get a signed evidence receipt. Live today: verify, create, validate, route, sandbox send. Live Peppol sending is coming; join early access. ## Free tools - [E-invoice validator](https://wsystem.dev/e-invoice-validator): validate XRechnung, ZUGFeRD / Factur-X PDF, UBL and CII against EN 16931 + KoSIT XRechnung rules in the browser (rule IDs, business terms, fix hints), create a test UBL from JSON, run a sandbox send (mock transport) - [Bulk VAT checker for CSV files](https://wsystem.dev/bulk-vat-checker): validate up to 50 EU VAT numbers in the browser via VIES, download CSV - [VIES status](https://wsystem.dev/vies-status): live VIES availability per member state from the EC check-status endpoint (JSON: https://api.wsystem.dev/vies/status) - [EORI lookup](https://wsystem.dev/eori-lookup): check an EU/XI EORI number in the EC EOS service - [Peppol ID lookup](https://wsystem.dev/peppol-id-lookup): find a company's Peppol participant id from its EU VAT number (Directory + SML/SMP) - [Peppol participant identifier schemes](https://wsystem.dev/peppol-scheme-ids): all active Peppol ICD scheme codes (0208, 9925, 9930, 0088 …) with format rules, plus deprecated/removed schemes and replacements - [EN 16931 and XRechnung validation rules](https://wsystem.dev/en16931-validation-rules): every BR, BR-CO, BR-S, BR-DE, UBL-CR and CII-SR rule id with the official text, severity and fixes for common errors (BR-CO-16, BR-S-08, BR-DE-15) - [VERI*FACTU IDType 02 (NIF-IVA) check](https://wsystem.dev/verifactu-nif-iva-check): AEAT v1.2.2 rules for an EU customer identified by NIF-IVA (structure table per country, uppercase only, F1/F3/R1-R4, must be identified) with a free format + VIES pre-check - [VIES error codes explained](https://wsystem.dev/vies-error-codes): what MS_UNAVAILABLE, MS_MAX_CONCURRENT_REQ, TIMEOUT and the other VIES faults mean and how to retry - [VIES API alternatives](https://wsystem.dev/vies-api-alternatives): VIES direct, vatcomply, vatlayer, Vatstack, Abstract and W System compared - [GitHub Action einvoice-validate-action](https://github.com/wsystemdev/einvoice-validate-action): validate UBL, CII and ZUGFeRD / Factur-X invoices in CI against EN 16931 + XRechnung (`uses: wsystemdev/einvoice-validate-action@v1`), inline annotations with rule IDs, free tier without a key - [JavaScript/TypeScript client](https://www.npmjs.com/package/wsystem) (`npm install wsystem`) and [Postman collection](https://github.com/wsystemdev/wsystem-postman) - [PHP client and Laravel `eu_vat` validation rule](https://github.com/wsystemdev/wsystem-php) (`composer require wsystem/wsystem-php`, [on Packagist](https://packagist.org/packages/wsystem/wsystem-php); PHP 8.1+, zero dependencies; passes when VIES is down unless `eu_vat:strict`) ## Guides - [VAT number checker MCP for Claude](https://wsystem.dev/vat-number-checker-mcp-claude): how to check EU VAT numbers in Claude with the free remote MCP server https://api.wsystem.dev/mcp/ (no API key needed: 20 tool calls/day per MCP session, Claude connector traffic from Anthropic's cloud counted per session in a shared 2,000/day pool; optional X-API-Key header, also via the connector's Request headers): Claude.ai / Claude Desktop custom connector steps (Customize > Connectors, Add custom connector, No sign in), Claude Desktop config via npx mcp-remote, Claude Code `claude mcp add --transport http`, real verify_vat responses, VIES-down fallback, limits and pricing, dated comparison with other VAT MCP servers - [EU VAT validation guide](https://wsystem.dev/eu-vat-validation-guide): formats for 27 states + XI, how VIES works, when validation is required, consultation numbers, error codes - [Germany's BMF letter of 15 October 2026 on e-invoicing](https://wsystem.dev/germany-bmf-letter-15-october-2026-e-invoicing): what the third BMF letter on mandatory B2B e-invoicing changes for invoicing software (no deadline change; BT-113/BT-22 for final invoices until 30 June 2030; construction, gross-price invoices, corrections, business-rule errors, penalties), checklist and example - [Germany e-invoicing deadlines + free XRechnung checker](https://wsystem.dev/germany-e-invoicing-deadlines): receive since 1 Jan 2025, issue above EUR 800k from 1 Jan 2027, transition ends 31 Dec 2027; free EN 16931 + KoSIT XRechnung checker - [France e-invoicing 2027 for invoicing software](https://wsystem.dev/france-e-invoicing-2027-sme-software): first-month figures (75% chose a receiving platform, 20M+ invoices by 4 Oct 2026), SMEs issue from 1 Sep 2027, four new mentions incl. client SIREN, rejection vs refusal per the official guide, 2026 finance-law penalties, checklist and a live SIREN check - [France approved e-invoicing platforms](https://wsystem.dev/france-approved-e-invoicing-platforms): search the DGFiP list of plateformes agréées (approved + awaiting interoperability tests), JSON copy at https://wsystem.dev/data/fr-plateformes-agreees.json - [France e-reporting after the BOFiP of 30 September 2026](https://wsystem.dev/france-e-reporting-bofip-30-september-2026-software): official DGFiP commentary on transaction and payment e-reporting (CGI art. 290 / 290 A): B2C daily totals, foreign customer identifiers (EU VAT number, or ISO country code + 16 characters of the name), payment data, frequency and deadlines per VAT regime, platform controls, checklist - [UK e-invoicing from 1 April 2029](https://wsystem.dev/uk-e-invoicing-2029-roadmap-software): HM Treasury/HMRC roadmap of 28 October 2026; domestic B2B and B2G VAT invoices as e-invoices, everyone must receive; Peppol via certified Access Points; standards and Access Point consultation Spring 2027; final requirements and identifiers Oct 2027-Apr 2028; software provider requirements Spring 2028; separate digital reporting consultation to 20 Jan 2027; builder checklist - [Ireland e-invoicing from 1 November 2028](https://wsystem.dev/ireland-e-invoicing-2028-software): Finance Bill (No. 2) 2026 and Revenue's 21 October 2026 implementation paper; phases 1 Nov 2028 (large corporates issue and report in real time, all receive), 1 Nov 2029, 1 Jul 2030 ViDA; EN 16931, Peppol default and reporting route, five-corner model, business identifier, scheme 9935 lookup trap, builder checklist - [Read incoming XRechnung / ZUGFeRD / Factur-X invoices as JSON](https://wsystem.dev/read-xrechnung-zugferd-json-api): POST /einvoice/parse turns UBL, CII and ZUGFeRD/Factur-X PDF e-invoices into one JSON shape (parties, dates, totals, VAT breakdown, IBAN, lines, attachments); values as written, no validation (use /einvoice/validate); free tier, x402 $0.01, MCP tool parse_einvoice - [Latvia e-invoicing from 1 January 2028 for software](https://wsystem.dev/latvia-e-invoicing-2028-software): B2B e-invoices mandatory 2028-01-01 (Accounting Law amended 5 Jun 2025), B2G since 2025, data to VID within 5 working days since 2026 (Cabinet Regulation 749), UBL 2.1 / Peppol BIS Billing 3.0; free buyer VAT + Peppol check - [Romania RO e-Factura for software (2026)](https://wsystem.dev/romania-e-factura-software): B2B via RO e-Factura since 2024, B2C since 2025, 5-working-day upload deadline and wider scope from 1 Jan 2026 (OUG 89/2025), CNP traders from 1 Jun 2026, CIUS-RO on EN 16931; free buyer VAT check - [Shopware 6 EU VAT ID check](https://wsystem.dev/shopware-eu-vat-check): free GPL plugin for Shopware 6.6/6.7 that checks customer VAT IDs live in VIES at registration and profile update (invalid and country-mismatch rejected, VIES outage accepted by default), relies on Shopware's Tax-free for companies setting, and stores the VIES consultation number in order custom fields; no account needed - [WooCommerce EU VAT number validation](https://wsystem.dev/woocommerce-eu-vat-number-validation): free GPL plugin that checks EU VAT numbers in VIES at checkout, applies B2B reverse charge and stores the VIES consultation number on the order; no account needed - [Croatia e-invoicing 2026–2027 (Fiscalisation 2.0)](https://wsystem.dev/croatia-e-invoicing-2027-software): VAT businesses issue and receive eRačun since 1 Jan 2026; non-VAT issue from 1 Jan 2027; EN 16931 Croatian CIUS, access points / information intermediaries, MIKROeRAČUN, FAQ citations, checklist and live route example - [Peppol participant lookup in 2026](https://wsystem.dev/peppol-participant-lookup-sml-smp-2026): developer guide to Peppol dynamic discovery after OpenPeppol took over the SML on 2 September 2026 (participant.sml.prod.tech.peppol.org replaces edelivery.tech.ec.europa.eu), SHA-256/Base32 hashing, U-NAPTR Meta:SMP, SMP service group, Python example, Directory gap, 0245/0225/0208/0106/0191 schemes - [Belgium Peppol e-invoicing for software builders](https://wsystem.dev/belgium-peppol-e-invoicing-software): Belgian B2B Peppol BIS 3 mandate in force since 1 January 2026 (scope, exclusions, 0208 enterprise-number addressing, FAQ rules for reverse charge, VATEX gaps, credit notes, attachments, BT-33, BT-72, self-billing), fines EUR 1,500/3,000/5,000, FPS Finance as Peppol Authority from 1 January 2027, 2028 e-reporting pre-draft, checklist and live route + create examples - [Spain B2B e-invoicing from 6 October 2027 for software](https://wsystem.dev/spain-b2b-e-invoicing-2027-software): Royal Decree 238/2026 and Order HAC/1028/2026 (in force 6 Oct 2026): B2B e-invoices from 6 Oct 2027 above EUR 8m volume of operations and 6 Oct 2028 for all, EN 16931 in UBL/CII/EDIFACT/Facturae, UBL faithful copy to the AEAT public solution, buyer status and payment reporting within 4 working days, PDF companion for large issuers for 12 months, VERI*FACTU dates, checklist - [Norway e-invoicing from 1 January 2027 for software](https://wsystem.dev/norway-e-invoicing-2027-software): law of 19 June 2026 no. 39 and Skattedirektoratet regulation of 29 Sep 2026: B2B e-invoices in EHF / Peppol BIS Billing 3.0 from 2027 where the buyer can receive, other structured formats by agreement to 2029, NOK 50,000 exemption, buyer organisation number from 2028, receive duty and digital bookkeeping from 2030, 0192 Peppol addressing, checklist - [Greece e-invoicing from 2 November 2026 for software](https://wsystem.dev/greece-e-invoicing-2-november-2026-software): second-period start for businesses up to EUR 1m (A.1128/2025 as amended by A.1197/2026), parallel ERP use until 31 Jan 2027, licensed provider or timologio only from 1 Feb 2027, MARK/QR, EN 16931 download via downloadingInvoiceUrl, checklist and live example - [Slovakia eFaktúra 2027 for invoicing software](https://wsystem.dev/slovakia-efaktura-2027-invoicing-software): what Slovak e-invoices (mandatory 1 January 2027, Peppol BIS Billing 3.0) must contain beyond EN 16931 per the Financial Administration transposition v1.13 (0245:DIČ endpoints, addresses, IČO, BT-33, BT-7, VATEX), timeline incl. bill 1454 no-fines proposal, invoice UUIDv5, checklist and live example - [eFaktúra 2027: povinné náležitosti UBL faktúry (Slovak)](https://wsystem.dev/efaktura-2027-povinne-nalezitosti-ubl): Slovak-language version of the Slovakia page for Slovak accountants and developers: fields beyond EN 16931 per transposition v1.13, 0245:DIČ, timeline incl. bill 1454, VATEX, invoice UUID, self-billing reported by C3 (FAQ 21 Oct 2026), checklist and live example - [Poland KSeF from 1 January 2027 for invoicing software](https://wsystem.dev/poland-ksef-2027-invoicing-software): KSeF (FA(3) XML) mandatory for every business from 1 Jan 2027 (PLN 10,000 relief, cash-register invoices and receipts-with-NIP end), KSeF number or collective identifier in transfers between active VAT payers (art. 108g), offline24/QR codes, fines under art. 106ni (up to 100% of VAT / 18.7%) moved to 1 Jan 2028 by bill UD477 adopted by the government on 20 Oct 2026 (not yet law), checklist and live route example - [W System blog](https://wsystem.dev/blog): all articles, newest first (RSS: https://wsystem.dev/blog/feed.xml) - [Integration guides (Python, JS, n8n, Make, Zapier, x402)](https://github.com/wsystemdev/eu-business-data-mcp/tree/main/docs) ## Apify Actors (pay per event) - https://apify.com/wsystem/eu-vat-checker - https://apify.com/wsystem/eu-eori-checker - https://apify.com/wsystem/european-company-registry - https://apify.com/wsystem/sanctions-screening - https://apify.com/wsystem/kyb-company-check - https://apify.com/wsystem/eu-tenders-search ## Optional - [Full text for LLMs](https://wsystem.dev/llms-full.txt) - Not affiliated with the European Commission. Results are not legal or tax advice.