Requêtes signées
HMAC-SHA256 calculé sur l’horodatage et le corps brut, envoyé sous la forme X-Tailride-Signature: v1=…, avec l’horodatage dans X-Tailride-Timestamp pour que vous puissiez rejeter les requêtes anciennes ou rejouées.
Tailride envoie un webhook JSON signé dès qu’une facture est traitée ou modifiée — fournisseur, montants, TVA, lignes et lien vers le PDF. Recherchez vos factures via une API REST, ou connectez Zapier et Make sans écrire de code.
Un webhook est une requête HTTP POST que Tailride envoie à l’URL de votre choix. Il existe deux événements : invoice.processed quand une nouvelle facture a été lue, et invoice.updated quand quelqu’un la modifie, y joint un document ou la marque comme payée. Chaque requête est signée en HMAC-SHA256, renvoyée si votre serveur est indisponible et consignée dans le journal d’activité de la facture : votre ERP, votre entrepôt de données ou votre circuit d’approbation reçoit les mêmes données que celles de votre tableau de bord.
Ce que reçoit votre endpoint
Voici une livraison invoice.processed telle que Tailride l’envoie. invoice.updated contient la même facture, plus la liste de ce qui a changé.
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" }
}
}
}Cinq minutes dans les Paramètres, puis chaque facture arrive toute seule.
Dans Paramètres → Webhooks, saisissez un nom et une URL, choisissez l’événement et ajoutez si besoin jusqu’à cinq en-têtes personnalisés — par exemple une clé API qu’attend votre endpoint.
Chaque webhook a son propre secret whsec_. Servez-vous-en pour vérifier l’en-tête X-Tailride-Signature. Régénérez-le quand vous voulez ; l’ancien cesse aussitôt de fonctionner.
Quand une facture est traitée ou modifiée, Tailride envoie en POST un JSON contenant la facture complète. Répondez avec n’importe quel statut 2xx dans les 10 secondes.
Écrivez les données dans votre ERP, une base de données ou un circuit d’approbation — ou laissez les applications Tailride pour Zapier et Make s’en charger, sans code.
HMAC-SHA256 calculé sur l’horodatage et le corps brut, envoyé sous la forme X-Tailride-Signature: v1=…, avec l’horodatage dans X-Tailride-Timestamp pour que vous puissiez rejeter les requêtes anciennes ou rejouées.
Jusqu’à trois tentatives, avec un délai d’expiration de 10 secondes. Les erreurs réseau, les délais dépassés et les réponses 408, 429 et 5xx sont retentés ; les autres réponses 4xx valent refus. Utilisez data.invoice.id pour ignorer un doublon.
Fournisseur et numéro de TVA, numéro et dates de facture, montant, devise, statut de paiement, détails d’abonnement, tags et chaque ligne avec son taux de taxe — plus des liens de téléchargement pour le PDF et les documents justificatifs.
invoice.updated se déclenche lors des modifications, de l’ajout ou du retrait de documents justificatifs et des changements de statut de paiement, avec l’ancienne et la nouvelle valeur de chaque champ modifié.
Les adresses privées et internes sont bloquées, les redirections ne sont jamais suivies, et le secret de signature comme les valeurs des en-têtes personnalisés sont stockés chiffrés.
Chaque livraison — et chaque échec — apparaît dans le journal d’activité de la facture : vous voyez ce qui a été envoyé, où et quand.
invoice.processed se déclenche quand un nouveau document a été lu et reconnu comme une facture. invoice.updated se déclenche quand une facture traitée change ensuite : champs modifiés, documents justificatifs joints ou retirés, nouveau statut de paiement. Chaque webhook s’abonne à un seul événement : ajoutez un second webhook pour recevoir les deux.
Calculez le HMAC-SHA256 de la valeur de X-Tailride-Timestamp, suivie d’un point et du corps brut de la requête, avec le secret whsec_ du webhook. Comparez le résultat hexadécimal à la valeur qui suit v1= dans X-Tailride-Signature, et rejetez les requêtes dont l’horodatage date de plus de quelques minutes.
Tailride fait jusqu’à trois tentatives, à quelques secondes d’intervalle. Les erreurs réseau, les délais dépassés et les réponses 408, 429 ou 5xx sont retentés ; toute autre réponse 4xx est traitée comme un refus. Si toutes les tentatives échouent, l’échec apparaît dans le journal d’activité de la facture — utilisez l’API pour récupérer ce qui vous a échappé.
Avec une clé API trapi_, vous pouvez lire le compte (GET /api/v1/me), rechercher et parcourir les factures traitées — jusqu’à 100 par page — avec GET /api/v1/invoices, et abonner Zapier ou Make aux événements de factures. L’URL de base est https://tailride.so/api/v1 ; envoyez la clé dans X-Api-Key ou comme jeton Bearer.
Oui. L’application Zapier est publique : déclencheurs New Invoice et Updated Invoice, et une recherche Find Invoice. L’application Make — surveiller les factures nouvelles ou modifiées, rechercher des factures, effectuer un appel API — est disponible sur invitation ; demandez le lien au support.
Tous les forfaits payants, pour les comptes entreprise. Le propriétaire du compte les gère dans Paramètres → Webhooks : jusqu’à 10 webhooks et 10 clés API, plus les webhooks que Zapier et Make créent pour vous.
Les liens de téléchargement d’un webhook fonctionnent pendant 24 heures ; ceux renvoyés par l’API, pendant une heure. Enregistrez le fichier de votre côté si vous devez le conserver.
Pour aller plus loin
Les intégrations prêtes à l’emploi, la documentation développeurs, et d’où viennent les factures au départ.
Webhooks, clés API et application Zapier sont inclus dans tous les forfaits payants.