Changelog
Chaque entrée dit ce qui change et ce que votre intégration doit faire. Les changements cassants sont signalés comme tels.
04/11/2026 — L'identité complète d'un chauffeur
PATCH /v1/accounts/me/subaccounts/{id}accepte et les réponses rendentpreferred_language(en,es,fr),driver_card_number,emergency_contact_name,emergency_contact_phoneetexternal_identifier(unique dans le compte :fleet.driver_reference_already_existssinon).- Pour ces champs et
driving_license_number, une valeurnullou vide efface la donnée ; un champ omis ne change pas.
04/11/2026 — Le chauffeur, seul compte terrain
- Cassant — un sous-compte se crée et s'invite en type
driverseulement (POST /v1/accounts/me/subaccountset/subaccounts/invitations). Les typesvehicleetwarehouse_staffsont retirés ;typevautdriverpar défaut et tout autre valeur est refusée (422).typene se modifie plus parPATCH. Un sous-compte peut encore se lire en typegeneric: c'est le signataire terrain que la signature AdES enregistre. À faire : envoyezdriver, ou n'envoyez pastype. - Cassant —
linked_subaccount_idest retiré des véhicules, avec le codevehicle.invalid_subaccount_link: il n'est plus rendu, et il est ignoré s'il est envoyé.
04/11/2026 — Retrait du chauffeur de l'annuaire
- Cassant —
/v1/accounts/me/driversest retiré (les cinq méthodes répondent404), avec les codesdriver.not_found,driver.external_identifier_already_existsetdriver.invalid_subaccount_link. Cette fiche n'était lue par rien. À faire : un chauffeur se gère comme sous-compte de typedriver(/v1/accounts/me/subaccounts).
21/10/2026 — Vérification d'une signature
content_matches_signature(GET .../signatures/{id}/verify) ne signale plus une signature comme « contenu modifié » parce que le transport a avancé : le statut et les dates réelles sont pris tels qu'ils étaient au moment de la signature. Seule une modification du contenu (marchandise, parties, dates prévues…) le fait passer àfalse.- Signature manuscrite :
GET .../signatures/{id}/imagerend le tracé d'une signature sur écran, en SVG cadré sur le tracé (permission VIEW). - Chronologie :
GET /v1/freightdocuments/{id}/timelinerend tout ce qui est arrivé au document, trié : création, assignation, chauffeur, signatures, événements de terrain, pièces jointes, commentaires, livraison, archivage. Les entrées du lien d'accès ne sont rendues qu'à l'émetteur.
21/10/2026 — Livré, puis archivé
- Cassant —
DELIVEREDest l'état final d'une lettre de voiture. Elle ne passe plus àCLOSED21 jours après la livraison ; les documents qui portaientCLOSEDsont revenus àDELIVERED. À faire : traitezDELIVEREDcomme la fin du transport. - Archivage :
POST /v1/freightdocuments/{id}/archive(et/unarchive), réservé à l'émetteur, sur un document livré seulement (freight_document.not_deliveredsinon). Le document reste lisible ;archived_atle signale. - Cassant — la liste exclut les documents archivés par défaut :
GET /v1/freightdocuments?archived=trueles liste.
21/10/2026 — Plus d'e-mail sur les parties d'un e-CMR
- Cassant —
emailest refusé sur un rôle d'e-CMR (freight_document.invalid_role_assignment), comme sur le DeCA. Une partie est identifiée par son nom, son adresse et son identité fiscale, ou désigne un compte avecaccount_id. À faire : retirezemailde vos rôles. - Plus de notification à la création : aucune partie ne reçoit plus l'e-mail « un rôle vous a été attribué », et la flotte n'est plus prévenue d'un document qui ne lui est pas attribué. Seul le chauffeur assigné est notifié.
21/10/2026 — Preuve de la signature sur écran
- Cassant —
signer_attested: trueest obligatoire surPOST /v1/signatures/sign-on-glass: le signataire atteste signer lui-même et accepte les procédures e-CMR. Sinonsignature.attestation_required(422). À faire : présentez l'attestation au signataire et envoyez le champ. - Procédures e-CMR :
ecmr_procedures_urletecmr_procedures_versionsur le défi de signature et son contexte. Le PDF officiel les cite. - Scellement : chaque signature sur écran est scellée (empreinte du
dossier de preuve, cachet de la plateforme, horodatage).
GET .../signatures/{id}/verifyrenvoieseal_hashetseal_intact. - Chauffeur : il ne peut plus être changé après sa signature de prise en charge (case 23).
21/10/2026 — Livraison, clôture et mention CMR
- Cassant — la signature de livraison mène à
DELIVERED, plus àCLOSED. Le document reste livré 21 jours, la fenêtre des réserves du destinataire (CMR art. 30), puis passe automatiquement àCLOSED. Un webhook de statut est émis à chacune des deux transitions. À faire : traitezDELIVEREDcomme « livré », etCLOSEDcomme la fin définitive. - Mention CMR : le PDF officiel porte désormais la mention « soumis à la Convention CMR » (art. 6 §1 k) en trois langues.
- PDF avant prise en charge : tant que l'expéditeur et le transporteur n'ont pas signé (cases 22 et 23), le PDF porte « En attente des signatures de prise en charge ».
- Transport direct par votre propre flotte : un
SUBSEQUENTCARRIERest refusé (freight_document.invalid_role_addition), à la création comme ensuite. - Signature sur écran : la prise en charge du chauffeur (case 23) est
rattachée à la session qui l'ouvre, sans téléphone. Le signal
signer_phone_unrecognizedn'est plus calculé pour une signature sur écran.
21/10/2026 — La lettre de voiture est émise à l'assignation ; signature sur écran sans compte ; suivi client
- Cassant —
POST /v1/freightdocuments/{id}/issueest retiré. Une lettre de voiture passe àISSUEDà la première assignation d'un chauffeur (PATCH .../roles/{roleId}/assign-subaccount, oudriver_phone_numberà la création). Ce même appel fige le PDF officiel et facture l'unité du document. À faire : remplacez votre appelissuepar l'assignation du chauffeur. - PDF officiel et lien public.
GET .../pdfsert le PDF figé à l'assignation, puis refigé à chaque signature d'enlèvement, de prise en charge et de livraison. Son QR mène àGET /v1/public/ecmr/{token}, sans authentification. Ajout : rien à faire. - Module e-CMR. Créer une lettre de voiture exige que Fincargo ait activé le
module
ECMRsur votre compte ; sinonaccount.module_not_enabled(403). - Signature sur écran sans compte.
phone_numberdevient facultatif surPOST /v1/signatures/sign-on-glass, et le signataire n'a plus besoin de compte Fincargo.SignatureResponse.signer_subaccount_idpeut donc êtrenull; le nouveau champsigner_declared_nameporte le nom déclaré. À faire : accepteznulldanssigner_subaccount_id. - Suivi client par e-mail. Le nouveau champ facultatif
party_tracking(consignor_email,consignee_email, les deux ensemble) à la création d'une lettre de voiture envoie à l'expéditeur et au destinataire un e-mail à l'enlèvement et un autre à la livraison, avec le détail du transport et le lien vers le PDF officiel. Gratuit. Ajout : rien à faire. - Lien d'accès du chauffeur.
POST /v1/freightdocuments/{id}/roles/{roleId}/access-linkremet au chauffeur de votre flotte, déjà assigné, un lien qui ouvre ce seul document sans connexion ;.../access-link/whatsappl'envoie par WhatsApp (facturé s'il est accepté). Le lien cesse d'ouvrir le document quand il est remplacé, quand le chauffeur change ou quand le transport est terminé. Ajout : rien à faire. - Signature renforcée (AdES) fermée à la création pour l'instant :
signature_mechanism: "ADES"est refusé (freight_document.signature_mechanism_not_settable). Les documents AdES existants restent signables.
Voir L'émission et Signature électronique.
20/10/2026 — Vos chauffeurs par l'API, désignés par votre référence
GET /v1/fleet/drivers,GET /v1/fleet/drivers/{id}: vos chauffeurs, lisibles par clé API (droitdirectory:read).PATCH /v1/fleet/drivers/{id}: posez votre référence TMS sur un chauffeur (external_identifier, unique dans votre compte).driver_refdésigne un chauffeur par cette référence à la création d'un DeCa, à son attribution, au changement de chauffeur et à l'attribution d'une tournée. Ajout : rien à faire.
Voir Vos chauffeurs.
20/10/2026 — Le contrat OpenAPI publié en production
https://ecmr.fincargo.ai/openapi.jsonet/redocsont désormais servis en production, comme en test. Swagger (/docs) reste réservé à l'environnement de test.- Les routes de la console interne Fincargo ne figurent plus dans le schéma : elles ne font pas partie du contrat d'intégration.
Voir Environnements.
20/10/2026 — Droits des clés et plafond d'appels
- Les clés API et les clients OAuth2 portent des droits (scopes) par
famille :
deca,directory,ecmr,account, en:readou:write. Les clés et clients existants ont reçu tous les droits : rien ne change pour eux. - Changement cassant (création de client OAuth2) :
accounts:readn'est plus accepté à la création — utilisez les nouveaux scopes, ou omettezscopespour tous les droits. Un jeton déjà émis avecaccounts:readreste valable (il ouvre tout) jusqu'à son expiration. - Plafond de 600 appels par minute et par compte, avec les en-têtes
RateLimit-Limit,RateLimit-Remaining,RateLimit-Reset, et429+Retry-Afterau-delà.
Voir Authentification.
20/10/2026 — Statut, actions possibles et rattrapage (DeCa)
- Nouveau champ
statussur chaque DeCa :draft,awaiting_vehicle,issued,finished,deletion_requested,deleted,superseded,cancelled. Ajout : rien à faire. - Nouveau champ
available_actions, rempli par la lecture d'un document et par la création,nulldans la liste. - Nouveaux filtres de liste :
status(répétable),updated_since,external_identifier. Avec l'un d'eux et sansarchived, la recherche porte sur les deux côtés de la ligne d'archivage ; sans eux, la liste ne change pas.
Voir Cycle de vie d'un DeCa.
20/10/2026 — Références par compte et rejeux sans effet (DeCa)
external_identifierd'un DeCa : unique dans votre compte, et non plus sur toute la plateforme. Assouplissement : rien à faire.- Le refus d'une création rejouée porte
existing_id, l'identifiant du document déjà créé (control_document.external_identifier_already_exists), ou de la tournée (tour.reference_already_exists). Nouveau champ facultatif dans le corps d'erreur : rien à faire, sauf pour en profiter. - Rejouer la même assignation réussit (
assign-subaccount,POST /v1/tours/{id}/assignment,POST /v1/tours/{id}/send) :200et la ressource, au lieu d'un400. Changement de comportement : si votre intégration interprétait ce400comme « déjà fait », elle reçoit désormais directement le résultat. - Un document remplacé garde l'
external_identifierde l'original.
Voir Références et rejeux.
08/10/2026 — Annuaire : linked_account_id en lecture seule
- Changement cassant :
linked_account_idn'est plus accepté à la création ni à la modification d'une fiche partenaire ; une valeur envoyée est ignorée. Il reste dans les réponses, posé uniquement par l'acceptation d'une mise en relation entre deux comptes.
16/09/2026 — e-CMR : mécanisme de signature obligatoire
- Changement cassant :
POST /v1/freightdocumentsexigesignature_mechanism(SIGN_ON_GLASSouADES). Sans lui, la création est refusée (freight_document.signature_mechanism_required,400). Il n'y a pas de valeur par défaut, et le choix est figé pour la vie du document.
Version initiale
L'API e-CMR telle que publiée à l'ouverture du portail partenaires.