Przejdź do treści

API VAT UE do Twojego systemu fakturowania i ERP

API VAT UE pozwala sprawdzać numery kontrahentów z Unii i zarządzać listą monitoringu prosto z programu fakturującego albo systemu ERP. Wysyłasz zapytanie z kluczem w nagłówku, dostajesz odpowiedź JSON ze statusem numeru, nazwą z rejestru i numerem konsultacji, a potwierdzenie trafia do archiwum.

Sprawdź numer kontrahenta teraz

Wynik pochodzi z rejestru kraju kontrahenta: status numeru, nazwa i adres firmy. Całą listę odbiorców sprawdzamy codziennie w planach od 99 zł netto.

Szafy serwerowe w chłodnym korytarzu centrum danych

Po co łączyć sprawdzenie numeru z systemem fakturowania

Ręczne sprawdzenie działa, dopóki faktur jest kilka w tygodniu. Przy setkach dokumentów miesięcznie ktoś w końcu pominie numer, wpisze go z literówką albo sprawdzi go dzień po wysyłce. Integracja przenosi sprawdzenie w miejsce, w którym i tak powstaje faktura. System pyta o status numeru, zanim dokument zostanie zatwierdzony, zapisuje wynik przy fakturze i blokuje stawkę 0% albo adnotację odwrotne obciążenie, gdy numer jest nieważny.

Druga korzyść to porządek w danych kontrahentów. Nowy odbiorca dodany w ERP może od razu trafić do monitoringu, a zmiany statusu wracają do systemu i oznaczają kartotekę. Dział IT nie musi budować własnej obsługi rejestrów 27 krajów i Irlandii Północnej, ich przerw w działaniu ani formatów numerów.

Klucz API i uwierzytelnienie

Klucz tworzysz w panelu, w zakładce /panel/api. Widzisz go tylko raz, w chwili utworzenia, więc od razu zapisz go w menedżerze sekretów albo w zmiennej środowiskowej aplikacji. My przechowujemy wyłącznie skrót klucza, dlatego zgubionego klucza nie da się odczytać, a jedynie unieważnić i utworzyć nowy.

Klucz przesyłasz w nagłówku X-Api-Klucz każdego zapytania. Nigdy w adresie. Zapytanie z kluczem w parametrze adresu odrzucamy z kodem 400, bo adresy zostają w logach serwerów pośrednich, w historii przeglądarki i w narzędziach analitycznych. Klucz należy do zespołu, a nie do jednej osoby, więc odejście pracownika nie przerywa integracji. Przydział zapytań wynika z planu właściciela zespołu.

Sprawdzenie numeru jednym zapytaniem

Sprawdzenie numeru to zapytanie GET z dwuliterowym kodem kraju i numerem bez prefiksu. Przykład dla numeru niemieckiego, w którym klucz zastępujesz własnym:

curl -H "X-Api-Klucz: TWOJ_KLUCZ" https://biznesmeni.eu/api/v1/sprawdz/DE/123456789

Odpowiedź ma postać JSON. Przykładowa odpowiedź dla ważnego numeru z kraju, który nie udostępnia nazwy ani adresu, wygląda tak:

{
  "kraj": "DE",
  "numer": "123456789",
  "numer_pelny": "DE123456789",
  "status": "wazny",
  "nazwa": null,
  "adres": null,
  "numer_konsultacji": "WAPIAAAAZ1x2y3z4",
  "sprawdzono": "2026-10-17T09:41:22+02:00",
  "id": 18452,
  "potwierdzenie_pdf": "https://biznesmeni.eu/potwierdzenie/18452"
}

Pole status przyjmuje jedną z wartości wazny, niewazny, kraj_niedostepny albo zly_format. Pola nazwa i adres mają wartość null, gdy rejestr kraju ich nie podaje, co jest normalne między innymi przy numerach niemieckich. Numer konsultacji pojawia się, gdy w ustawieniach konta podasz numer VAT UE swojej firmy jako wnioskodawcy. Czas sprawdzenia podajemy w formacie ISO 8601 ze strefą czasową.

Monitoring kontrahentów z poziomu API

Lista monitoringu, którą widzisz w panelu, jest dostępna także przez API. Numery z listy sprawdzamy każdej nocy, a o zmianie statusu wysyłamy mail, tak samo jak przy liście prowadzonej ręcznie.

  • POST /api/v1/monitoring dodaje kontrahenta. W treści zapytania przesyłasz pola kraj, numer i opcjonalnie etykieta, na przykład identyfikator kontrahenta z ERP. Nowy wpis wraca z kodem 201, a numer, który już jest na liście, z kodem 409 i danymi istniejącego wpisu.
  • GET /api/v1/monitoring zwraca listę kontrahentów zespołu z ostatnim statusem i czasem ostatniego sprawdzenia, po 200 wierszy na stronę. Kolejne strony pobierasz parametrem strona.
  • DELETE /api/v1/monitoring/{id} usuwa kontrahenta z listy. Usunięcie nie zwalnia miejsca w limicie monitoringu do końca okresu rozliczeniowego.
  • GET /api/v1/zmiany z parametrem od w formacie ISO 8601 zwraca zmiany statusu wykryte od wskazanej chwili, z wartością poprzednią i nową. To wygodny sposób, żeby raz dziennie oznaczyć w ERP kontrahentów, których numer przestał być ważny.

Przykład dodania kontrahenta z etykietą:

curl -X POST -H "X-Api-Klucz: TWOJ_KLUCZ" -H "Content-Type: application/json" \
  -d '{"kraj": "CZ", "numer": "12345678", "etykieta": "K-00417"}' \
  https://biznesmeni.eu/api/v1/monitoring

Kody odpowiedzi i obsługa błędów

Błędy zwracamy jako JSON z polem blad i opisem po polsku. Integracja powinna rozróżniać przynajmniej poniższe przypadki.

Kod HTTPZnaczenieCo zrobić w integracji
200zapytanie przyjęte, status numeru w polu statuszapisać wynik, przy kraj_niedostepny zaplanować ponowienie
201kontrahent dodany do monitoringuzapisać identyfikator wpisu przy kartotece
400klucz przekazany w adresieunieważnić klucz w panelu, nowy przesyłać w nagłówku
401brak klucza albo klucz nieprawidłowy lub unieważnionysprawdzić konfigurację, nie ponawiać w pętli
403plan bez dostępu do APIzmienić plan na Eksport albo wyższy
409numer jest już w monitoringuużyć identyfikatora z odpowiedzi
422zły format danych, na przykład nieznany kod krajupoprawić dane, ponowienie nic nie da
429przydział zapytań w okresie wykorzystanywstrzymać zapytania do nowego okresu albo zmienić plan

Kod 200 ze statusem kraj_niedostepny zasługuje na osobną uwagę. Rejestry poszczególnych państw mają przerwy techniczne i okresy przeciążenia. W takiej sytuacji nie zgadujemy wyniku i nie podajemy statusu z pamięci, tylko mówimy wprost, że rejestr nie odpowiedział. Integracja powinna ponowić zapytanie po kilkunastu minutach, a fakturę z odwrotnym obciążeniem albo stawką 0% zatwierdzić dopiero po rozstrzygnięciu.

Limity zapytań w planach

Każde przyjęte zapytanie zużywa jedno miejsce z przydziału w okresie rozliczeniowym, a przydział odnawia się z nowym okresem. Nagłówki X-Limit-Okres i X-Limit-Zostalo pozwalają śledzić zużycie bez zaglądania do panelu.

  • Start, bez dostępu przez API.
  • Eksport, 5 000 zapytań miesięcznie, 499 zł netto albo 249 zł netto miesięcznie przy płatności rocznej.
  • Biuro, 30 000 zapytań miesięcznie, 999 zł albo 499 zł netto.
  • Instytucja, 200 000 zapytań miesięcznie oraz dziennik dostępu zespołu, w którym widać tworzenie i unieważnianie kluczy, 1 990 zł albo 995 zł netto.

Do cen doliczamy 23% VAT. Pełne porównanie planów jest w cenniku.

Dobre praktyki integracji

  • Cache po swojej stronie. Jeden kontrahent na kilku fakturach tego samego dnia nie wymaga kilku zapytań. Zapisz wynik z datą i używaj go do końca dnia, a stałych odbiorców przenieś do monitoringu, który sprawdzamy co noc bez zużywania przydziału API.
  • Ponowienia tylko tam, gdzie mają sens. Ponawiaj przy statusie kraj_niedostepny i przy błędach sieci, z rosnącym odstępem. Nie ponawiaj przy 401, 403 i 422, bo wynik się nie zmieni.
  • Numer konsultacji przy fakturze. Zapisz w dokumencie albo w jego metadanych numer konsultacji, czas sprawdzenia i identyfikator potwierdzenia. Przy kontroli wskażesz dowód z dnia transakcji w kilka sekund.
  • Osobny klucz dla każdego systemu. Program fakturujący, sklep i hurtownia danych dostają własne klucze, więc wyciek jednego nie zatrzymuje pozostałych.
  • Walidacja formatu przed wysyłką. Usuń spacje i kropki, sprawdź dwuliterowy kod kraju. Pamiętaj, że Grecja ma prefiks EL, a Irlandia Północna przy towarach XI.

Jeśli dopiero porządkujesz zasady sprawdzania numerów w firmie, zacznij od strony, na której wyjaśniamy, czego wymaga ustawa przy tym, czym jest weryfikacja VAT UE. Biura, które obsługują wielu klientów, znajdą opis teczek na stronie weryfikacja kontrahentów dla biura rachunkowego, a mechanikę nocnego sprawdzania listy opisujemy przy temacie, jakim jest stała weryfikacja kontrahenta. Pojedynczy numer sprawdzisz bez klucza na stronie głównej, gdzie robisz każde sprawdzenie VAT unijnego.

Najczęstsze pytania

Od którego planu dostępne jest API VAT UE?

Od planu Eksport, który daje 5 000 zapytań w miesiącu. Plan Biuro ma 30 000 zapytań, a Instytucja 200 000. W planie Start nie ma dostępu przez API i zapytanie z kluczem takiego konta kończy się kodem 403.

Czy mogę przekazać klucz API w adresie zapytania?

Nie. Klucz przyjmujemy wyłącznie w nagłówku X-Api-Klucz. Zapytanie z kluczem w parametrze adresu odrzucamy, bo adresy trafiają do logów serwerów i historii przeglądarek. Taki klucz należy unieważnić w panelu i utworzyć nowy.

Co zwraca API, gdy rejestr kraju nie odpowiada?

Odpowiedź z kodem 200 i statusem kraj_niedostepny. To nie jest wynik o ważności numeru, tylko informacja o przerwie po stronie rejestru. Ponów zapytanie później i nie traktuj numeru jako ważnego ani nieważnego do czasu rozstrzygnięcia.

Czy każde zapytanie zużywa przydział?

Tak, każde zapytanie przyjęte z prawidłowym kluczem liczy się do limitu okresu rozliczeniowego. Nagłówki X-Limit-Okres i X-Limit-Zostalo w każdej odpowiedzi pokazują przydział i to, ile z niego zostało.

Czy sprawdzenie przez API trafia do archiwum potwierdzeń?

Tak. Sprawdzenie wykonane przez API zapisujemy tak samo jak sprawdzenie z panelu, a odpowiedź zawiera identyfikator i adres potwierdzenia PDF. Dzięki temu dowód z dnia faktury możesz pobrać później, bez ponownego pytania rejestru.

Ile kluczy API może mieć zespół?

Klucze tworzysz i unieważniasz w panelu w zakładce API. Dobrą praktyką jest osobny klucz dla każdego systemu, który łączy się z API, bo unieważnienie jednego nie zatrzymuje pozostałych integracji.

Cała lista kontrahentów pod stałą kontrolą

Monitoring numerów VAT UE, archiwum potwierdzeń i eksport. Od 99 zł netto miesięcznie przy płatności rocznej.

Porównaj plany