Schematy odpowiedzi
Endpointy VAT używają snake_case, zgodnie z nazewnictwem ze źródła
TEDB; endpoint VIES używa camelCase, zgodnie z odpowiedzią SOAP VIES.
Ta niespójność jest celowa — każdy endpoint zachowuje konwencje swojej
usługi nadrzędnej, dzięki czemu użytkownik może bez trudu skorelować
pola z oryginalną dokumentacją.
Wersję w formacie czytelnym dla maszyn znajdziesz w
interaktywnej referencji API lub pobierając specyfikację
bezpośrednio z /openapi.json.
GET /rates i GET /rates/YYYY-MM-DD
Dział zatytułowany „GET /rates i GET /rates/YYYY-MM-DD”{ "version": "2026-05-27", // data sytuacji, na którą obowiązują stawki "source": "European Commission TEDB", "rates": { "DE": { "country": "Germany", "currency": "EUR", "flag": "https://flagcdn.com/de.svg", "standard": 19, // punkty procentowe, null jeśli brak "reduced": [7], // posortowane rosnąco, może być puste "super_reduced": null, // pojedyncza stawka lub null "parking": null // pojedyncza stawka lub null } // ... po jednym wpisie dla każdego kraju UE-27 ze stawką STANDARD }}GET /changes
Dział zatytułowany „GET /changes”{ "changes": [ { "id": "rc_a1b2c3d4e5f6", // stabilny id, bezpieczny do deduplikacji po retry "snapshotDate": "2026-05-30", // data, w której zmiana weszła w życie "country": "HU", // ISO 3166-1 alpha-2 "field": "standard", // standard | super_reduced | parking | reduced[N] "old": 27, // poprzednia wartość, null jeśli wcześniej brak "new": 25, // bieżąca wartość, null jeśli usunięta "detectedAt": "2026-05-30T07:00:23.000Z" } ], "count": 1, // liczba zwróconych wierszy (≤ limit) "limit": 50 // zastosowany limit}GET /changes/YYYY-MM-DD
Dział zatytułowany „GET /changes/YYYY-MM-DD”{ "snapshotDate": "2026-05-30", // powtórzony parametr ścieżki "changes": [ // ... ten sam kształt co wyżej, posortowane po kraju i polu ], "count": 0 // 0 to poprawny dzień stanu ustalonego}GET /fx i GET /fx/YYYY-MM-DD
Dział zatytułowany „GET /fx i GET /fx/YYYY-MM-DD”{ "date": "2026-05-27", // data publikacji przez EBC "base": "EUR", "rates": { // waluta → jednostek za 1 EUR "USD": 1.085, "GBP": 0.84 // ... posortowane alfabetycznie }}GET /vies/{country}/{vat}
Dział zatytułowany „GET /vies/{country}/{vat}”{ "countryCode": "DE", // zwrócone w tej samej formie, w jakiej je przesłano (GR vs EL) "vatNumber": "123456789", "requestDate": "2026-05-27+02:00",// surowy znacznik czasu VIES z timezone "valid": true, "name": "Acme GmbH", // null, jeśli VIES nie udostępnił lub zwrócił '---' "address": "Hauptstraße 1" // null, jeśli VIES nie udostępnił lub zwrócił '---'}Wszystkie odpowiedzi błędu mają wspólny kształt:
{ "error": "<code>" }Pełną listę kodów i ich mapowanie na statusy HTTP znajdziesz w sekcji Błędy.