Przejdź do głównej zawartości

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.

{
"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
}
}
{
"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
}
{
"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
}
{
"date": "2026-05-27", // data publikacji przez EBC
"base": "EUR",
"rates": { // waluta → jednostek za 1 EUR
"USD": 1.085,
"GBP": 0.84
// ... posortowane alfabetycznie
}
}
{
"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.