I built UBL API (https://www.ublapi.com) to solve a massive engineering headache for B2B SaaS founders: European e-invoicing compliance.
If you are building software that does business in the EU, you are likely hitting mandates requiring Peppol or XRechnung XML formats. The official UBL (Universal Business Language) specifications are incredibly dense. Writing a compliant XML generator from scratch takes weeks of trial and error just to pass the strict European schema validators.
I built this API to abstract that entire process out of your codebase. You POST a clean JSON payload, and the API returns valid Peppol/XRechnung XML, instantly checked against the official validator rules.
The Tech Stack & Challenges:
Under the hood, this is a serverless architecture designed to be dropped into any Next.js/Node app.
Core: Next.js App Router deployed on Vercel.
Database: Supabase (PostgreSQL) managed with Prisma.
Edge Security: Upstash Redis for sliding-window IP rate limiting to prevent proxy abuse.
Billing/Limits: Paddle for billing.
Getting the serverless connection pooling and atomic API quota increments locked down under concurrent load was the hardest part of building this infrastructure. I ended up having to write strict atomic database locks and idempotent webhooks to prevent concurrency quota bypasses.
There is a permanent free tier (50 API calls/month) so you can test the XML generation and validation without needing a credit card.
I would love your feedback on the API documentation, the JSON schema design, or if you can find any edge cases the validator misses!
here :https://www.ublapi.com/
Top comments (0)