Signierte Anfragen
HMAC-SHA256 über Zeitstempel und unveränderten Body, gesendet als X-Tailride-Signature: v1=…, mit dem Zeitstempel in X-Tailride-Timestamp, damit du alte oder wiederholt eingespielte Anfragen abweisen kannst.
Tailride schickt einen signierten JSON-Webhook, sobald eine Rechnung verarbeitet oder bearbeitet wird — mit Lieferant, Beträgen, USt., Positionen und einem Link zum PDF. Durchsuche Rechnungen per REST-API oder verbinde Zapier und Make, ganz ohne Code.
Ein Webhook ist ein HTTP-POST, den Tailride an eine URL deiner Wahl sendet. Es gibt zwei Ereignisse: invoice.processed, wenn eine neue Rechnung ausgelesen wurde, und invoice.updated, wenn jemand sie bearbeitet, ein Dokument anhängt oder sie als bezahlt markiert. Jede Anfrage ist mit HMAC-SHA256 signiert, wird wiederholt, wenn dein Server nicht erreichbar ist, und im Aktivitätsprotokoll der Rechnung festgehalten — so bekommen dein ERP, dein Data Warehouse oder dein Freigabeprozess genau die Daten, die du im Dashboard siehst.
Was dein Endpunkt empfängt
So sendet Tailride eine invoice.processed-Zustellung. invoice.updated enthält dieselbe Rechnung plus eine Liste der Änderungen.
import crypto from "node:crypto";
export function isFromTailride(req, rawBody, secret) {
const ts = req.headers["x-tailride-timestamp"];
const sig = req.headers["x-tailride-signature"]?.replace("v1=", "") ?? "";
if (Math.abs(Date.now() / 1000 - Number(ts)) > 300) return false;
const expected = crypto.createHmac("sha256", secret)
.update(`${ts}.${rawBody}`).digest("hex");
return sig.length === expected.length &&
crypto.timingSafeEqual(Buffer.from(sig), Buffer.from(expected));
}curl "https://tailride.so/api/v1/invoices?search=northwind&limit=20" \
-H "X-Api-Key: trapi_…"POST /hooks/tailride HTTP/1.1
Content-Type: application/json
User-Agent: Tailride-Webhooks/1.0
X-Tailride-Event: invoice.processed
X-Tailride-Timestamp: 1792574400
X-Tailride-Signature: v1=5f2c8e…b41d
{
"event": "invoice.processed",
"timestamp": "2026-10-21T09:20:00.000Z",
"data": {
"invoice": {
"id": "6716f0c2e4b09a35d8f11a42",
"from": "billing@northwind.example",
"invoiceId": "INV-4471",
"invoiceDate": "2026-10-20T00:00:00.000Z",
"documentType": "invoice",
"amount": 1249,
"currency": "EUR",
"payment": { "status": "unpaid" },
"vendor": { "name": "Northwind Supplies GmbH", "countryCode": "DE", "taxId": "DE811234567" },
"items": [
{ "description": "Office chairs", "quantity": 2, "unitPrice": 524.79,
"taxRate": 19, "taxAmount": 199.42, "subtotal": 1049.58, "total": 1249 }
],
"tags": ["office"],
"attachment": { "url": "https://…/INV-4471.pdf", "expiresAt": "2026-10-22T09:20:00.000Z" }
}
}
}Fünf Minuten in den Einstellungen, danach kommt jede Rechnung von selbst.
Gib unter Einstellungen → Webhooks einen Namen und eine URL ein, wähle das Ereignis und füge bei Bedarf bis zu fünf eigene Header hinzu — etwa einen API-Schlüssel, den dein Endpunkt erwartet.
Jeder Webhook erhält sein eigenes whsec_-Secret. Damit prüfst du den Header X-Tailride-Signature. Erneuere es, wann immer du willst; das alte funktioniert dann sofort nicht mehr.
Wird eine Rechnung verarbeitet oder geändert, sendet Tailride per POST ein JSON mit der vollständigen Rechnung. Antworte innerhalb von 10 Sekunden mit einem beliebigen 2xx-Status.
Schreib die Daten in dein ERP, eine Datenbank oder einen Freigabeprozess — oder überlass das ohne Code den Tailride-Apps für Zapier und Make.
HMAC-SHA256 über Zeitstempel und unveränderten Body, gesendet als X-Tailride-Signature: v1=…, mit dem Zeitstempel in X-Tailride-Timestamp, damit du alte oder wiederholt eingespielte Anfragen abweisen kannst.
Bis zu drei Versuche mit 10 Sekunden Timeout. Netzwerkfehler, Timeouts sowie 408-, 429- und 5xx-Antworten werden wiederholt; andere 4xx-Antworten gelten als Ablehnung. Mit data.invoice.id erkennst du Wiederholungen.
Lieferant und USt-IdNr., Rechnungsnummer und Daten, Betrag, Währung, Zahlungsstatus, Abo-Details, Tags und jede Position mit ihrem Steuersatz — dazu Download-Links für das PDF und die zugehörigen Dokumente.
invoice.updated wird bei Bearbeitungen, bei hinzugefügten oder entfernten zugehörigen Dokumenten und bei Änderungen des Zahlungsstatus ausgelöst — mit altem und neuem Wert jedes geänderten Felds.
Private und interne Adressen werden blockiert, Weiterleitungen nie verfolgt, und das Signatur-Secret sowie die Werte eigener Header werden verschlüsselt gespeichert.
Jede Zustellung — auch jede fehlgeschlagene — erscheint im Aktivitätsprotokoll der Rechnung. So siehst du, was wann wohin gesendet wurde.
invoice.processed wird ausgelöst, wenn ein neues Dokument ausgelesen und als Rechnung erkannt wurde. invoice.updated wird ausgelöst, wenn sich eine verarbeitete Rechnung danach ändert: bearbeitete Felder, angehängte oder entfernte zugehörige Dokumente, ein neuer Zahlungsstatus. Jeder Webhook abonniert ein Ereignis — für beide legst du einen zweiten Webhook an.
Berechne mit dem whsec_-Secret des Webhooks einen HMAC-SHA256 über den Wert von X-Tailride-Timestamp, einen Punkt und den unveränderten Request-Body. Vergleiche das Hex-Ergebnis mit dem Wert nach v1= in X-Tailride-Signature und weise Anfragen ab, deren Zeitstempel älter als ein paar Minuten ist.
Tailride versucht es bis zu dreimal im Abstand weniger Sekunden. Netzwerkfehler, Timeouts und 408-, 429- oder 5xx-Antworten werden wiederholt; jede andere 4xx-Antwort gilt als Ablehnung. Scheitern alle Versuche, steht der Fehler im Aktivitätsprotokoll der Rechnung — Verpasstes holst du dir über die API.
Mit einem trapi_-API-Schlüssel kannst du das Konto abfragen (GET /api/v1/me), verarbeitete Rechnungen mit GET /api/v1/invoices durchsuchen und seitenweise abrufen — bis zu 100 pro Seite — und Zapier oder Make für Rechnungsereignisse anmelden. Die Basis-URL ist https://tailride.so/api/v1; sende den Schlüssel als X-Api-Key oder als Bearer-Token.
Ja. Die Zapier-App ist öffentlich: Trigger für New Invoice und Updated Invoice sowie die Suche Find Invoice. Die Make-App — neue oder aktualisierte Rechnungen beobachten, Rechnungen suchen, einen API-Aufruf ausführen — gibt es auf Einladung; frag den Support nach dem Link.
Alle kostenpflichtigen Pläne, für Unternehmenskonten. Der Kontoinhaber verwaltet sie unter Einstellungen → Webhooks: bis zu 10 Webhooks und 10 API-Schlüssel, dazu die Webhooks, die Zapier und Make für dich anlegen.
Download-Links in einem Webhook funktionieren 24 Stunden, Links aus der API eine Stunde. Speichere die Datei bei dir, wenn du sie behalten möchtest.
Weiterlesen
Die fertigen Integrationen, die Entwickler-Dokumentation und woher die Rechnungen überhaupt kommen.
Webhooks, API-Schlüssel und die Zapier-App sind in jedem kostenpflichtigen Plan enthalten.