Webhooks & API · Betaalde abonnementen

Elke verwerkte factuur, rechtstreeks naar je eigen systemen.

Tailride verstuurt een ondertekende JSON-webhook zodra een factuur is verwerkt of bewerkt — leverancier, bedragen, btw, factuurregels en een link naar de PDF. Zoek facturen via een REST API, of koppel Zapier en Make zonder één regel code te schrijven.

Wat is de factuurwebhook van Tailride?

Een webhook is een HTTP POST die Tailride naar een URL van jouw keuze stuurt. Er zijn twee gebeurtenissen: invoice.processed wanneer een nieuwe factuur is gelezen, en invoice.updated wanneer iemand de factuur bewerkt, er een document aan toevoegt of hem als betaald markeert. Elk verzoek wordt ondertekend met HMAC-SHA256, opnieuw geprobeerd als je server niet bereikbaar is en vastgelegd in de activiteitenlog van de factuur, zodat je ERP, datawarehouse of goedkeuringsflow dezelfde gegevens krijgt die jij in het dashboard ziet.

Wat je eindpunt ontvangt

Het echte verzoek, inclusief headers

Zo verstuurt Tailride een invoice.processed-levering. invoice.updated bevat dezelfde factuur plus een lijst van wat er is gewijzigd.

Instellingen → Webhooks
ERP-synchronisatiehttps://erp.example.com/hooks/tailride
Actief
Gebeurtenis
Factuur verwerkt invoice.processed
Signing secret
whsec_••••••••••••3f9aSigning secret kopiërenSigning secret vernieuwen
Aangepaste headers
Authorization: Bearer ••••••
De handtekening controleren (Node.js)
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));
}
Facturen zoeken via de REST API
curl "https://tailride.so/api/v1/invoices?search=northwind&limit=20" \
  -H "X-Api-Key: trapi_…"
Verzoek
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" }
    }
  }
}

Zo werkt het

Vijf minuten in Instellingen, daarna komt elke factuur vanzelf binnen.

01Voeg een eindpunt toe

Vul in Instellingen → Webhooks een naam en een URL in, kies de gebeurtenis en voeg eventueel tot vijf aangepaste headers toe — bijvoorbeeld een API-sleutel die je eindpunt verwacht.

02Kopieer het signing secret

Elke webhook krijgt een eigen whsec_-secret. Daarmee controleer je de header X-Tailride-Signature. Vernieuw het wanneer je wilt; het oude werkt dan meteen niet meer.

03Ontvang facturen

Wordt een factuur verwerkt of gewijzigd, dan stuurt Tailride een POST met JSON en de volledige factuur. Antwoord binnen 10 seconden met een willekeurige 2xx-status.

04Automatiseer de rest

Schrijf de gegevens naar je ERP, een database of een goedkeuringsflow — of laat de Tailride-apps voor Zapier en Make het doen, zonder code.

Klaar voor productie

Ondertekende verzoeken

HMAC-SHA256 over de timestamp en de ruwe body, verstuurd als X-Tailride-Signature: v1=…, met de timestamp in X-Tailride-Timestamp, zodat je oude of herhaalde verzoeken kunt weigeren.

Verstandige herhaalpogingen

Tot drie pogingen met een time-out van 10 seconden. Netwerkfouten, time-outs en 408-, 429- en 5xx-antwoorden worden opnieuw geprobeerd; andere 4xx-antwoorden gelden als weigering. Gebruik data.invoice.id om een herhaling te negeren.

De hele factuur

Leverancier en btw-nummer, factuurnummer en datums, bedrag, valuta, betaalstatus, abonnementsgegevens, tags en elke factuurregel met zijn belastingtarief — plus downloadlinks voor de PDF en de bewijsstukken.

Wijzigingen, niet alleen nieuwe facturen

invoice.updated wordt verstuurd bij bewerkingen, bij toegevoegde of verwijderde bewijsstukken en bij een gewijzigde betaalstatus, met de vorige en de huidige waarde van elk gewijzigd veld.

Goed afgeschermd

Privé- en interne adressen worden geblokkeerd, redirects worden nooit gevolgd, en het signing secret en de waarden van aangepaste headers worden versleuteld opgeslagen.

Zichtbaar bij elke factuur

Elke levering — en elke mislukte — staat in de activiteitenlog van de factuur, zodat je ziet wat er wanneer naar welk adres is gestuurd.

Wat teams ermee bouwen

  • Elke verwerkte factuur in een ERP of eigen tool zetten waarvoor geen kant-en-klare Tailride-integratie bestaat.
  • Factuur- en regelgegevens in een datawarehouse laden voor uitgavenrapportages.
  • Via Zapier of Make een goedkeuring in Slack of Microsoft Teams starten wanneer er een factuur boven een bepaald bedrag binnenkomt.
  • Een CRM of projecttool bijwerken zodra een factuur als betaald is gemarkeerd.

Veelgestelde vragen

Op welke gebeurtenissen kan ik me abonneren?

invoice.processed wordt verstuurd wanneer een nieuw document is gelezen en als factuur is herkend. invoice.updated wordt verstuurd wanneer een verwerkte factuur daarna verandert: bewerkte velden, toegevoegde of verwijderde bewijsstukken, een nieuwe betaalstatus. Elke webhook is geabonneerd op één gebeurtenis, dus voeg een tweede webhook toe om beide te ontvangen.

Hoe controleer ik of een verzoek echt van Tailride komt?

Bereken HMAC-SHA256 over de waarde van X-Tailride-Timestamp, een punt en de ruwe body van het verzoek, met het whsec_-secret van de webhook. Vergelijk het hexadecimale resultaat met de waarde na v1= in X-Tailride-Signature, en weiger verzoeken waarvan de timestamp meer dan een paar minuten oud is.

Wat gebeurt er als mijn eindpunt niet bereikbaar is?

Tailride probeert het tot drie keer, met een paar seconden ertussen. Netwerkfouten, time-outs en 408-, 429- of 5xx-antwoorden worden opnieuw geprobeerd; elke andere 4xx geldt als weigering. Mislukken alle pogingen, dan zie je dat in de activiteitenlog van de factuur — haal wat je hebt gemist op via de API.

Wat kan de REST API?

Met een trapi_-API-sleutel kun je het account uitlezen (GET /api/v1/me), verwerkte facturen doorzoeken en doorbladeren — tot 100 per pagina — met GET /api/v1/invoices, en Zapier of Make abonneren op factuurgebeurtenissen. De basis-URL is https://tailride.so/api/v1; stuur de sleutel mee als X-Api-Key of als Bearer-token.

Is er een app voor Zapier of Make?

Ja. De Zapier-app is openbaar: triggers voor New Invoice en Updated Invoice, en een zoekactie Find Invoice. De Make-app — nieuwe of bijgewerkte facturen volgen, facturen zoeken, een API-call doen — is beschikbaar op uitnodiging; vraag support om de link.

Bij welke abonnementen horen webhooks en de API?

Bij alle betaalde abonnementen, voor zakelijke accounts. De accounteigenaar beheert ze in Instellingen → Webhooks: tot 10 webhooks en 10 API-sleutels, plus de webhooks die Zapier en Make voor je aanmaken.

Hoe lang blijven de bestandslinks geldig?

Downloadlinks in een webhook werken 24 uur; links die de API teruggeeft, werken één uur. Sla het bestand zelf op als je het wilt bewaren.

Stuur je facturen naar de plek waar je werkt

Webhooks, API-sleutels en de Zapier-app zitten bij elk betaald abonnement inbegrepen.

Tailride
Factuurwebhooks & REST API — elke verwerkte factuur naar je systemen | Tailride