
Storing Customer VAT IDs in PostgreSQL
How to store customer VAT IDs in PostgreSQL — normalization (EL, XI, casing), immutable evidence rows, indexing, and what to persist for audit.
Read article →Practical articles on EU VAT rates, VIES integration, compliance patterns, and regulatory updates — written for developers.

How to store customer VAT IDs in PostgreSQL — normalization (EL, XI, casing), immutable evidence rows, indexing, and what to persist for audit.
Read article →
A VAT check can return company name, address, registration date, legal form and industry. See every enrichment field vatnode returns and how to use it.
Read article →
Every vatnode/VIES error code and how to handle it in production — 400, 422, 429, 502, 503, 504, 500 — with retry, fallback and user-facing behavior.
Read article →
Validate an Italian Partita IVA in Node.js — IT format and checksum, VIES IT behavior, national registry fallback, and storing audit evidence.
Read article →
Calling VIES directly looks free until you count SOAP, downtime, caching, audit evidence, and national fallback. An honest build-vs-buy breakdown for VAT validation.
Read article →
Backfill-validate a whole customer base of EU VAT IDs, then keep it fresh. Batching, handling VIES outages mid-run, spotting numbers that went invalid.
Read article →
A VAT ID is the number that identifies a business for VAT across the EU. What it's for, how it's structured, and how to check one is valid.
Read article →
A VAT number can match the format perfectly and still not be registered. The three states of a VAT ID, what VIES confirms, and what a format check can't tell you.
Read article →
Capture and validate a customer VAT ID during signup or checkout without blocking the flow. Async patterns, graceful VIES-downtime handling, and audit evidence.
Read article →
Validate Polish NIP VAT numbers in Node.js — regex, mod-11 checksum, VIES PL quirks, and the MF white list (wykaz podatników VAT) fallback when VIES is down.
Read article →
How long can you cache a VIES VAT check before it stops counting as compliant? TTLs, consultation numbers, Redis patterns, and audit-safe re-validation.
Read article →
A Node.js implementation checklist for the EU reverse-charge mechanism in B2B SaaS: buyer VAT validation, invoice flags, Article 196 citation, and audit evidence.
Read article →
Validate French TVA numbers in Node.js — regex with the 2-char key, VIES FR quirks, INSEE/SIRENE fallback, and how to design a resilient validation pipeline.
Read article →
The VIES consultation number is the reference VIES returns when you validate an EU VAT ID. What it is, where to find it in the SOAP response, and how to store it as audit evidence.
Read article →
Validate German USt-IdNr. in Node.js — regex format check, VIES DE quirks, BZSt fallback when VIES is down, and how to tell the two sources apart in your response.
Read article →
The official vatnode MCP server lets AI agents (Claude Desktop, Cursor, ChatGPT, Cline) validate EU VAT numbers against VIES, look up VAT rates, and check formats — directly in the chat. 30-second install, free tier, signed with npm provenance.
Read article →
A practical guide to all EU VAT rate types — standard, reduced, super-reduced, and parking — plus territorial exceptions for Spain (Canary Islands), Portugal (Azores, Madeira), France (DOM), and other EU regions where different rates apply.
Read article →
VIES national nodes go offline regularly. This guide covers retry patterns, queue-based approaches, BZSt fallback for Germany, and how to use the VIES_UNAVAILABLE error code correctly.
Read article →
Full table of EU VAT rates 2026: standard, reduced, super-reduced, and parking rates for all 27 EU member states. Includes recent changes, currency, and how to access rates via API.
Read article →