Accueil / API

API Marketplace et webhooks

Le Client Leads n'utilise rien d'autre que cette API. Tout ce que fait l'application, vos outils peuvent le faire : suivre le catalogue, enchérir, acheter, récupérer un lead, télécharger une facture.

L'essentiel

Adresse de base
https://app.tissora-travel.com/api/v1, en HTTPS uniquement, réponses JSON.
Authentification
Clé API en en-tête Authorization: Bearer lv_live_…. La clé n'est affichée qu'à sa création ; nous n'en conservons qu'une empreinte. Elle se révoque à tout moment, peut expirer à une date choisie et peut être limitée à des adresses IP ou à des plages CIDR.
Périmètres
Dix périmètres à combiner selon le besoin : auctions:read, bids:write, purchases:read, leads:read, wallet:read, wallet:topup, tokens:manage, webhooks:manage, account:write, legal:sign. Donnez à chaque intégration le strict nécessaire : une clé ne crée que des clés moins étendues qu'elle (périmètres, adresses IP, échéance).
Débit
600 requêtes par minute et par adresse IP. Au-delà, réponse 429 avec l'en-tête Retry-After. Les en-têtes X-RateLimit-Limit et X-RateLimit-Remaining accompagnent chaque réponse.
Opérations rejouables
Envoyez un en-tête Idempotency-Key avec toute écriture : une même clé renvoie la même réponse pendant 24 heures, sans double enchère ni double achat.
Suivi en direct
GET /auctions/updates accepte une attente longue jusqu'à 25 secondes et renvoie les ouvertures, enchères, prolongations, clôtures et remises en vente survenues depuis votre dernier appel.
Données personnelles
Un seul point d'accès en renvoie : GET /purchases/{id}/lead, réservé à l'agence acheteuse, périmètre leads:read, journalisé, jamais mis en cache. Après la date de suppression il répond 410 lead_purged.
Documents à jour
Une nouvelle version des documents contractuels est notifiée quinze jours avant sa date d'effet (webhook et e-mail legal.reacceptance_required). À partir de cette date, enchères, achats immédiats et recharges répondent 403 legal_acceptance_required jusqu'à la signature ; achats, fiches acquises, factures et réclamations restent accessibles.

Webhooks

Votre serveur est prévenu sans interroger l'API. Aucun webhook ne contient de donnée personnelle : il porte des références, à vous d'appeler l'API pour le détail.

ÉvénementQuand
auction.outbidUne autre agence vous a dépassé
auction.extendedLa clôture d'une enchère que vous suivez est repoussée
auction.won, auction.lostL'enchère est close
invoice.issued, credit_note.issuedUne facture ou un avoir vient d'être émis
wallet.credited, wallet.low_balanceRecharge créditée, solde sous votre seuil
lead.purge_warning, lead.purgedUn lead acquis sera supprimé dans 48 heures, puis l'a été
lead.erasure_requestedLe voyageur a demandé l'effacement de ses données : supprimez-les sans délai de vos propres outils et confirmez-nous l'exécution
wallet.credit_expiringUn crédit expire bientôt : 30 puis 7 jours avant son échéance
agency.tourism_licence_expiringVotre licence touristique vérifiée expire dans 30 jours
dispute.resolvedVotre réclamation a reçu une réponse
legal.reacceptance_requiredDe nouveaux documents sont à signer
pingEnvoi de test déclenché par vous
Signature
Chaque envoi porte X-LV-Timestamp et X-LV-Signature : le HMAC-SHA256, en hexadécimal, de l'horodatage, d'un point et du corps brut, calculé avec le secret de votre point de réception. Refusez tout envoi dont l'horodatage s'écarte de plus de cinq minutes.
Secret
Affiché une seule fois à la création du webhook, stocké chiffré chez nous.
Nouvelles tentatives
En cas d'échec : 1 minute, 5 minutes, 30 minutes, 2 heures, 12 heures. Après cinq échecs consécutifs, le webhook est désactivé. La livraison est garantie « au moins une fois » : dédoublonnez sur X-LV-Event-Id.
Adresse de réception
HTTPS obligatoire, délai de réponse de 10 secondes, redirections non suivies. Les adresses internes ou privées sont refusées, à la création comme à chaque envoi.