Webhooks bei neuen Werten
Ab dem Tarif Pro meldet Quellenkontor jeden neuen oder geänderten Wert an deinen Server. So pflegst du Werte, ohne selbst nachzusehen.
Wann eine Nachricht kommt
#Webhooks gibt es ab dem Tarif Pro. Sobald ein neuer, geänderter oder korrigierter Wert im Änderungsprotokoll steht, schickt Quellenkontor eine Nachricht an deine Adresse.
- Zugestellt wird einmal am Tag, um 07:00 Uhr UTC. Eine Änderung vom Montag erreicht dich also spätestens am Dienstagmorgen.
- Du bekommst nur Änderungen, die nach dem Anlegen des Webhooks eingetragen wurden. Den Stand davor holst du einmal über den Verlauf.
- Neue Werte tragen wir ein, wenn sie amtlich verkündet sind, meist Wochen vor ihrer Gültigkeit. Deine Software hat damit Vorlauf.
Webhook anlegen
#- Im Konto unter Webhooks die Adresse deines Servers eintragen. Sie muss mit https:// beginnen und einen Domainnamen haben, keine IP-Adresse und keinen internen Namen.
- Die Datensätze wählen, die dich interessieren. Ohne Auswahl bekommst du alle.
- Das Geheimnis kopieren. Es beginnt mit
whsec_und wird nur einmal angezeigt. Damit prüfst du die Signatur. - Mit "Test senden" eine Testnachricht auslösen und prüfen, dass dein Server sie annimmt.
Je Konto sind bis zu 10 Webhooks möglich.
Ereignisse
#| ereignis | Bedeutung |
|---|---|
wert.neu | Eine neue Stufe ist eingetragen, zum Beispiel die Rechengrößen des Folgejahres |
ankuendigung | Eine verkündete Änderung, deren Wert oder Feld erst später kommt, zum Beispiel eine neue Formel ab dem nächsten Jahr |
wert.geaendert | Eine bestehende Stufe hat sich durch eine neue Regelung geändert |
korrektur | Wir haben einen Fehler in einem Wert berichtigt. Prüfe betroffene Berechnungen |
datensatz.neu | Ein neuer Datensatz ist verfügbar |
test | Testnachricht aus dem Konto, ohne Datensatz |
Aufbau der Nachricht
#Die Nachricht kommt per POST mit dem Header Content-Type: application/json:
| Feld | Bedeutung |
|---|---|
ereignis | Art der Änderung, siehe oben |
id | Nummer des Eintrags im Änderungsprotokoll, eindeutig und aufsteigend |
datensatz | Betroffener Datensatz, bei test null |
gueltig_ab | Ab wann der neue Wert gilt, sonst null |
text | Kurze Beschreibung der Änderung |
beleg_url | Amtliche Quelle der Änderung |
abruf | Fertige API-Adresse, um den neuen Wert abzufragen |
gesendet_am | Zeitpunkt des Versands in UTC |
Signatur prüfen
#Jede Nachricht trägt den Header Quellenkontor-Signatur in der Form t=<Zeitstempel>,v1=<Signatur>. Die Signatur ist ein HMAC-SHA256 in Hex über den Zeitstempel, einen Punkt und den rohen Text der Anfrage, mit dem Geheimnis des Webhooks als Schlüssel. So prüfst du sie:
- Den rohen Text lesen, bevor du ihn als JSON parst. Schon ein anderes Leerzeichen verändert die Signatur.
- Die Signatur selbst berechnen und zeitkonstant mit v1 vergleichen.
- Nachrichten mit einem Zeitstempel älter als fünf Minuten verwerfen. Das schützt vor wiederholten Nachrichten.
Node.js
Python
Antworten und Wiederholungen
#- Antworte innerhalb von 8 Sekunden mit einem Status 2xx. Erledige aufwendige Arbeit danach, zum Beispiel über eine Warteschlange.
- Weiterleitungen (3xx) folgen wir nicht, sie gelten als Fehlschlag.
- Bei einem Fehlschlag versuchen wir es beim nächsten täglichen Lauf erneut, insgesamt höchstens fünf Mal. Danach geben wir diese Nachricht auf.
Nachrichten verarbeiten
#Speichere die id jeder verarbeiteten Nachricht. Wenn dein Server eine Nachricht verarbeitet, aber zu spät geantwortet hat, kommt sie beim nächsten Lauf noch einmal. Mit der id erkennst du das. Den neuen Wert holst du dann über die Adresse in abruf, das zählt als eine Abfrage.
Fehlt etwas oder ist etwas unklar? Schreib uns, wir ergänzen die Doku.