Hi HN,
If you run a B2B SaaS or e-commerce platform in Europe, you are legally required to validate your customers' VAT numbers for the reverse charge mechanism. The official way to do this is via the European Commission's VIES API (SOAP/REST).
The problem? It is notoriously unreliable. It frequently goes down during business hours, has strict rate limits, and is generally slow because it queries member states' databases synchronously. Furthermore, it only provides a snapshot in time—if a client goes bankrupt months later, you won't know until invoices bounce.
I got frustrated dealing with these 5xx errors in checkout flows, so I built VatFlow to act as a resilient proxy and monitoring system.
Here is the technical stack and how it works:
100% Serverless: Built on AWS API Gateway and Node.js Lambdas.
Caching Layer: I use DynamoDB to cache responses (with a configurable TTL). If VIES goes down, returning customers can still be validated instantly.
Webhooks via DynamoDB Streams: You can subscribe to a VAT number. A nightly EventBridge cron job checks the status. If the administrative status or address changes, it fires a POST request to your endpoint.
Native SDKs: I wrote zero-dependency wrappers for Node.js and PHP that handle the exponential backoff and retries natively.
It is currently hosted on RapidAPI to handle the billing and rate-limiting, with a free tier available for testing.
I would love to get your feedback on the serverless architecture, the caching strategy, or the API design. Happy to answer any technical questions!
QuiCreatDev•1h ago