Urgent.News

What's breaking now, across thousands of outlets.

Tech

Checking Polish companies from code: VAT, KRS, REGON, EU VAT (REST + Python + MCP)

If you invoice or onboard Polish companies, sooner or later you have to check two dull things that turn out to matter a lot: is this company actually a registered VAT payer, and is the bank account they gave you the one that's on the government's official white list ("Biała Lista")? Both of those affect whether you can deduct the cost and reclaim VAT, so it's not really optional. The annoying…

Polish companies need to be checked for two important factors when invoicing or onboarding them: their VAT registration status and whether their provided bank account is on the government's official white list. These checks affect whether you can deduct costs and reclaim VAT. The Ministry of Finance, KRS court register, GUS statistics office, and EU's VIES service store this data separately, each with its own API and quirks.

To simplify this process, a service called skanfirmy.pl was created. It offers four REST endpoints for querying data: one for NIP (tax ID), one for multiple NIPs, one for REGON (GUS), and one to validate EU VAT numbers. The service returns JSON data, making it easy to integrate with various systems like cron jobs, AWS Lambda, or CI steps.

The status values from the Ministry of Finance are in Polish, so they must be compared against the raw values without translation to avoid breaking functionality when UI language changes. For larger lists, GET /nips/{list} or the /bulk page can return a CSV file. There's also an MCP server for agents to use the same NIP checks. To stay up-to-date on VAT status and white-list account changes, a monitoring endpoint can be used, which sends an HMAC-signed webhook when something changes. This allows for more frequent checks without constantly polling the registers.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

A hackathon is a compression test for how you actually work

A hackathon is a compression test for how you work. Everything you'd normally have weeks for gets squeezed into a window measured in hours — scoping, building, integrating, presenting — and what…

  • Hackathons compress software development stages into short timeframe
  • SYNTAX TERMINATOR placed among top 12 out of 250+ teams
  • Constraint drives efficient decision-making and prioritization

Why I built my own technical blog website.

Why I Built My Own Technical Blog Website I wanted a place to write about software engineering , projects I’m building, and things I learn along the way.

  • Author built personal technical blog for control and style
  • Uses TypeScript, React, PostgreSQL, Express, Drizzle ORM
  • Plans future enhancements like search, SEO, and Markdown support

Keeping Mac work alive without pretending awake means safe

A developer usually meets Mac power management through a simple need. A build, local server, download, or agent is still running, and idle sleep would interrupt it.

  • Afterlid distinguishes three Mac states: Sleepy, Awake, and Always On
  • Awake prevents both idle and display sleep when lid is open
  • Recovery process crucial, activation is a feature but recovery is the product

Why engineers need commercial awareness, not just technical depth

Engineers who only understand the technology, and never the business it serves, hit a ceiling early. The best ones develop commercial awareness — a real sense of how value is created, funded, and…

  • Engineers with commercial awareness surpass those with only technical depth.
  • Observing startup pitches at 21BY72 Season 4 highlights business value creation.
  • Understanding customer needs and business constraints refines engineering priorities.

More from Sunday 23 August →