Przejdź do głównej zawartości

Changelog

Stawka stosuje zmiany addytywne plus okno wycofania dla wszystkiego, co łamie kompatybilność. Nowe pola mogą pojawiać się bez zapowiedzi; istniejące pola nie znikają bez nagłówka Sunset i pisemnego harmonogramu.

  • Nowy endpoint GET /changes — zmaterializowany diff /rates z dnia na dzień. Filtruj changelog przez ?since=YYYY-MM-DD, ?country=XX i ?limit=N. Dni stanu ustalonego bez ruchów stawek zwracają 200 z count: 0, a nie 404.
  • Nowy endpoint GET /changes/YYYY-MM-DD — wszystkie zmiany wykryte w dniu konkretnego snapshotu. Cache immutable.
  • Nowe zdarzenie webhooka rates.changed — strzela raz na cykl crona, gdy numeryczne pole VAT zmieni się względem poprzedniego snapshotu. Payload niesie tę samą tablicę diff, którą zwraca /changes. Zobacz Webhooki.
  • /changes i rates.changed dzielą strukturę RateChange: { id, snapshotDate, country, field, old, new, detectedAt }.
  • Uwaga o backfillu. Log rate_change zaczyna się od tej wersji. Historyczne snapshoty /rates/YYYY-MM-DD sprzed tej daty pozostają dostępne; strumień diff-ów zawiera tylko ruchy, które cron miał szansę zaobserwować.

2026-05-29 — Klucze wymagane, okno wycofania zamknięte

Dział zatytułowany „2026-05-29 — Klucze wymagane, okno wycofania zamknięte”
  • Ruch bez klucza zwraca teraz 401 INVALID_KEY. Pierwotnie zapowiedziany sunset miał miejsce 2026-07-31; przełączyliśmy się wcześniej, bo żadna produkcyjna powierzchnia nie istniała przed panelem. Wszystkie endpointy — /rates, /rates/YYYY-MM-DD, /fx, /fx/YYYY-MM-DD, /vies/{country}/{vat} oraz / — wymagają teraz tokenu bearer.
  • Limit /vies/* per IP usunięty. Anonimowy limit 30 zapytań / 60s zniknął wraz ze ścieżką bez klucza. Ruch uwierzytelniony pozostaje ograniczony limitami przypisanymi do planu organizacji oraz kwotą miesięczną.
  • CORS zaostrzony. access-control-allow-origin to teraz https://stawka.eu (origin panelu + dokumentacji) zamiast *. Klienci server-to-server nie odczują zmiany; klienci przeglądarkowi z innych origin-ów będą blokowani na warstwie CORS.
  • Koperta błędu 429 RATE_LIMITED jest teraz stabilna. Pole body to dokładnie RATE_LIMITED (na niektórych ścieżkach 429 był to dowolny tekst w lower case); dokumentacja od dawna opisywała wariant upper case.
  • Nowy panel pod stawka.eu do zarządzania organizacjami, członkami i kluczami API.
  • Nowe plany — Free, Hobby (9 €/mies.), Pro (49 €/mies.). Każdy plan ma limit zapytań na minutę i miesięczną kwotę zapytań. Zobacz Limity i kwoty.
  • Nowe kwoty miesięczne — zapytania ponad miesięczny limit zwracają 429 QUOTA_EXCEEDED z Retry-After ustawionym na liczbę sekund do początku kolejnego miesiąca w strefie CET.
  • Nowy kod błędu: QUOTA_EXCEEDED (429). Istniejący kod RATE_LIMITED oznacza teraz „limit na minutę”, a nie „jakikolwiek 429”.
  • Nowe nagłówki w odpowiedziach blisko limitu: X-Quota-Limit oraz X-Quota-Remaining.
  • Nagłówki Authorization: Bearer cp_live_... trafiają teraz na limit per-organizacja i klucz wydany przez panel. Ruch bez klucza nadal działa w okresie wycofania. (Okno zostało zamknięte wcześniej, dnia 2026-05-29 — patrz wpis powyżej.)

Stawka działała wcześniej jako pojedynczy Worker z globalnym limitem per-IP i bez uwierzytelniania. Same endpointy i kształty ich odpowiedzi nie uległy zmianie; changelog opisuje powierzchnię wokół nich.