Versions et journal des changements
L’API publique est versionnée dans son chemin (/v1). Une version publiée ne casse jamais vos intégrations : elle ne reçoit que des évolutions compatibles, listées ci-dessous.
Ce qui peut évoluer sans prévenir
- Nouvelles routes, nouveaux événements de webhook, nouveaux droits de clé.
- Nouveaux champs dans les réponses, nouveaux paramètres facultatifs dans les requêtes.
- Nouvelles valeurs dans une liste de valeurs (statut d’un envoi, type d’événement) et nouveaux codes d’erreur pour de nouveaux cas.
Votre intégration doit donc ignorer les champs qu’elle ne connaît pas et traiter une valeur inconnue comme un cas générique (par exemple, un statut inconnu comme « en cours »). Branchez votre logique sur le code des erreurs, jamais sur leur message.
Ce qui ne change jamais dans une version
- Une route, un champ ou un droit ne disparaît pas et ne change pas de nom ni de type.
- Un paramètre facultatif ne devient pas obligatoire ; une validation existante ne se durcit pas.
- Un code d’erreur ou un statut garde son sens.
Nouvelle version majeure
Si une rupture devient nécessaire, elle arrive dans une nouvelle version (/v2) qui coexiste au moins 12 mois avec la précédente. Les routes concernées renvoient alors les en-têtes Deprecation et Sunset (date d’arrêt) et un lien vers le guide de migration ; les comptes qui les utilisent encore sont prévenus par e-mail 90, 30 et 7 jours avant l’arrêt.
Journal des changements
1.2.0 · 1er octobre 2026
- Nouvelles routes au pluriel, même contrat :
GET /v1/geo/addresses,GET /v1/geo/cities,GET /v1/routes,POST /v1/ai/letters. Les anciennes (/v1/geo/address,/v1/geo/city,/v1/route,/v1/ai/letter) sont dépréciées : toujours servies jusqu’au 1er octobre 2027 au moins, avec les en-têtesDeprecation,SunsetetLink. - Itinéraire introuvable :
404 not_foundavecdetails.reason=route_not_found(au lieu du coderoute_not_found). Idempotency-Keyaccepté aussi par le serveur MCP avec une clé (un calcul rejoué n’est pas facturé deux fois).- Messages de validation (
details.issues[].message) en français ; une erreur502ne renvoie plus que le nom du prestataire dansdetails. - Dates renvoyées en UTC avec le suffixe
Z(jusqu’ici+00:00pour certaines) ; version de l’API dans/health. - Clé
vf_test_: une demande de service (POST /v1/requests) n’envoie plus d’e-mail à l’équipe ; limite par adresse IP en amont de la vérification de la clé. - Guide des erreurs complété (liste des codes).
1.1.0 · 1er octobre 2026
- Webhooks : renouvellement du secret depuis l’espace développeur ; pendant 24 h, l’en-tête
Vitef-Signatureporte deux signatures (v1=nouveau et ancien secret) : acceptez l’une ou l’autre (guide). - Webhooks : un point de terminaison est désactivé automatiquement après 5 livraisons abandonnées de suite, avec un e-mail ; vous le réactivez depuis l’espace développeur.
1.0.0 · 1er octobre 2026
- Première version stable de
/v1: contrat figé, toute évolution ultérieure reste compatible. - Idempotence : en-tête
Idempotency-Keysur tous lesPOST(guide). - Pagination par curseur et nouvelle liste des envois
GET /v1/mailings(guide). - Droits des clés (scopes) : chaque route exige un droit, refus en
403 insufficient_scope(guide). - Envoi au dépôt incertain : réponse
201au statutpaid, dépôt terminé automatiquement, sans doublon ni double facturation. - Documentation publique limitée à
/v1; l’API ne répond plus aux appels faits depuis un navigateur (CORS) : appelez-la depuis votre serveur.