Deweloperzy
Jeden klucz, jeden nagłówek, twoje własne liczby.
Klucz tworzysz sam w KRONENWERK i tam wybierasz, co mu wolno. Czytasz nim swoich klientów, faktury, sprawy i pozycje otwarte — oraz tworzysz klientów, sprawy i szkice faktur. Zdarzenia z bieżącej pracy trafiają pod adres, który wskażesz: podpisane i z ponowieniami.
Dostęp
Dwie linie i jesteś połączony.
Klucz jest pokazywany dokładnie raz; zapisywany jest tylko jego skrót. Klucz testowy i produkcyjny to dwa osobne klucze z dwoma osobnymi przedrostkami, a klucz nigdy nie może więcej niż osoba, która go wydała.
| Adres bazowy | Nagłówek |
|---|---|
| https://kronenwerk.org/api/extern/v1 | Authorization: Bearer greif_live_… |
Co odczytujesz
Każdy adres wymaga własnego zakresu.
Klucz ma tylko te uprawnienia, które mu nadasz. Gdy któregoś brakuje, ścieżka odpowiada 403 zamiast danymi — dotyczy to także twojego własnego klucza.
| Ścieżka | Zakres | Co wraca |
|---|---|---|
| GET /api/extern/v1/me | Sam klucz: firma, środowisko, zakresy, ostatnie użycie. Pierwsze wywołanie, jakie się pisze. |
|
| GET /api/extern/v1/customers | customers:read | Strona klientów i dostawców, od najnowszych. |
| GET /api/extern/v1/customers/{id} | customers:read | Pojedynczy klient wraz z danymi podstawowymi. |
| POST /api/extern/v1/customers | customers:write | Tworzy klienta. KRONENWERK pobiera numer z własnej sekwencji firmy. |
| GET /api/extern/v1/invoices | invoices:read | Wystawione faktury, filtrowane wg stanu zapłaty i daty wystawienia. |
| GET /api/extern/v1/invoices/{number} | invoices:read | Jedna wystawiona faktura w postaci utrwalonej w archiwum. |
| POST /api/extern/v1/invoices/drafts | invoices:write customers:read companies:read | Rozpoczyna szkic faktury dla klienta. Nie oznacza to jej wystawienia. |
| GET /api/extern/v1/transactions | transactions:read | Sprawy — zlecenia, projekty, partie produkcyjne — z etapem i terminem, najnowsze najpierw. Okres zawężają period, from i to; okno liczone jest według daty rozpoczęcia. |
| POST /api/extern/v1/transactions | transactions:write transactions:read | Tworzy sprawę. Numer, etap i historia powstają jak na ekranie produktu. |
| PATCH /api/extern/v1/transactions/{id} | transactions:write transactions:read | Zmienia istniejącą sprawę. Pominięte pole pozostaje bez zmian; "none" jako klient usuwa klienta. |
| GET /api/extern/v1/reports/outstanding | reports:read | Otwarte należności i zobowiązania na dziś, rozdzielone kierunkami. |
| GET /api/extern/v1/webhooks | webhooks:write | Punkty końcowe webhooków tej firmy. |
| GET /api/extern/v1/webhooks/events | webhooks:write | Zdarzenia, które może subskrybować punkt końcowy. |
| POST /api/extern/v1/webhooks | webhooks:write | Zarejestruj punkt końcowy; sekret podpisu pojawia się w odpowiedzi tylko raz. |
| DELETE /api/extern/v1/webhooks/{id} | webhooks:write | Wyłącz punkt końcowy; dziennik dostaw pozostaje. |
Przykład
Jedno wywołanie, jedna odpowiedź.
Każda kwota to liczba całkowita w najmniejszej jednostce swojej waluty, nigdy sformatowany tekst. Data to dzień kalendarzowy bez strefy czasowej. Dzięki temu żaden separator nie zostanie źle odczytany ani żaden dzień przesunięty o jeden.
| Żądanie | Odpowiedź |
|---|---|
| GET https://kronenwerk.org/api/extern/v1/invoices?status=OPEN&size=1 | {"data":[{"number":"R-2026-0001","issuedOn":"2026-04-02","buyer":"Kellermann GmbH","currency":"EUR","gross":{"minor":105910,"currency":"EUR"},"outstanding":{"minor":105910,"currency":"EUR"},"paymentState":"OPEN","overdue":false}],"page":0,"size":1,"total":1,"more":false} |
Webhooki
Sześć zdarzeń wywołanych rzeczywistą pracą.
Rejestrujesz adres i wybierasz, o czym ma być powiadamiany. Każda dostawa niesie stały identyfikator zdarzenia, niezmienny mimo ponowień — odbiorca, który raz je przetworzył, może odrzucić każdą późniejszą kopię.
| Zdarzenie | Kiedy jest wysyłane |
|---|---|
| invoice.issued | Faktura została wystawiona: numer jest zużyty, dokument zarchiwizowany i niezmienny. |
| invoice.paid | Faktura została w pełni rozliczona — przez płatność, niezależnie od sposobu jej zapisania. |
| invoice.cancelled | Faktura została anulowana: istnieje dokument korygujący, który w pełni ją znosi. Nic nie jest usuwane. |
| purchase.recorded | Zarejestrowano fakturę zakupu lub wydatek, z dostawcą, datą i kwotami. |
| payment.recorded | Zarejestrowano płatność, z kierunkiem, kwotą, dniem i dokumentem, który rozlicza. |
| bank.transaction.imported | Zaimportowano transakcję bankową; czeka na dopasowanie. |
Podpis
Każda dostawa jest podpisana, a podpis niesie moment w czasie.
Przy rejestracji adresu otrzymujesz sekret — raz. Sprawdzaj nim znacznik czasu i treść razem, nie samą treść: podpis bez momentu pozostaje ważny na zawsze i można ci go później odtworzyć.
| Nagłówek | Jak go sprawdzić |
|---|---|
| KRONENWERK-Signature: t=1775462400,v1=… | Policz HMAC z SHA-256 po znaczniku czasu, kropce i niezmienionej treści, używając sekretu jako klucza, i porównaj wynik z v1. Odrzuć dostawę, której znacznik czasu odbiega o więcej niż pięć minut od twojego zegara. |
Granica
Wersja robocza — tak. Wysyłka — nie.
Różnica między przygotowaniem czegoś a uruchomieniem tego jest sednem całego przedsięwzięcia i będzie mieszkać w usługach, a nie w interfejsie — czego zabrania ekran, zabronione jest tylko na tym ekranie. System AI nigdy nie może być obejściem kontroli finansowych.
| Może przygotować | Nie może uruchomić |
|---|---|
| Utworzyć wersję roboczą oferty | Wysłać ofertę |
| Utworzyć wersję roboczą faktury | Wystawić fakturę |
| Zaproponować dopasowanie płatności | Zaksięgować płatność |
| Zaproponować zwrot | Oddać pieniądze |