Un véhicule est déposé sur le parc. Qui l’a amené est noté, rien de plus. Plus tard, un certificat de destruction doit être délivré, et il manque alors précisément ce que personne n’a documenté : quand la garde a été transférée, sur quelle base le véhicule est hors d’usage et si le propriétaire a été interrogé.
La surface Compliance est donc conçue comme une chaîne d’événements et non comme un formulaire : chaque commande réussie produit un événement avec hash et previousHash, et sa réponse nomme les blockers — ce qui manque encore. Un dossier ne passe pas en silence faute de regard.
| Surface | Rôles |
|---|---|
| Compliance | Recycleurs automobiles, Concession, Commerce automobile |
Ce que ce cas suppose
- Un établissement agréé comme émetteur. L’émetteur légal est l’établissement de démontage agréé ou l’installation de traitement autorisée — non la plateforme.
- Un identifiant d’organisation dans l’appel. La surface l’attend en en-tête ; il lie chaque événement à l’organisation responsable.
- Une clé d’idempotence. Un appel répété ne doit pas écrire un second événement dans la chaîne.
- La volonté de lire les blocages. Une réponse à blocages durs est une invitation à agir, non un message d’erreur à écarter.
Le déroulement
Le tableau indique pour chaque étape l’appel compétent et ce qui existe ensuite. La justification de l’étape figure en dessous.
| Étape | Appel | Ce qui existe ensuite |
|---|---|---|
| Ouvrir le dossier | POST /compliance/cases | facilityId, jurisdiction et legalProfile lient le dossier au site et au droit |
| Enregistrer la réception | POST /compliance/cases/{id}/intake | transferor et custody fixent qui a remis et sous la garde de qui se trouve désormais le véhicule |
| Établir le statut | POST /compliance/cases/{id}/status-determinations | basisCode et outcome — le classement porte son fondement juridique |
| Identifier le propriétaire | POST /compliance/cases/{id}/owner-identification | status et attempts prouvent la démarche, pas seulement le résultat |
Pourquoi chaque étape est nécessaire
- Ouvrir le dossier.
POST /compliance/casesprendfacilityId,jurisdiction,legalProfileet le véhicule. Le cadre juridique est donc posé au départ, non ajusté à la fin — une chaîne qui change de référentiel en route ne serait pas auditable. - Enregistrer la réception.
POST /compliance/cases/{id}/intakeportetransferOccurredAt,intakeType,transferoretcustody. Le transfert de garde est le cœur, d’où la nécessité de le documenter et non de l’estimer. - Établir le statut.
POST /compliance/cases/{id}/status-determinationsprendbasisCode,outcomeeteffectiveAt. Le classement porte son fondement juridique — c’est la différence entre une constatation qui résiste au contrôle et une affirmation. - Documenter l’identification du propriétaire.
POST /compliance/cases/{id}/owner-identificationportestatusetattempts. C’est la démarche qui est prouvée, non seulement le résultat : pour un véhicule sans propriétaire, c’est la question décisive, et un appel dédié existe pour l’orienter vers une installation de traitement.
curl -X POST \
-H 'X-Api-Key: <API_KEY>' \
-H 'X-Compliance-Organisation-Id: <ORGANISATION>' \
-H 'Idempotency-Key: fall-2026-09-12-017' \
-H 'Content-Type: application/json' \
-d '{"facilityId":"<facilityId>","jurisdiction":"DE","legalProfile":"DE_FZV_ANNEX_9_CURRENT","vehicle":{"vin":"<VIN>"}}' \
'https://api.tapinomahub.com/compliance/cases'Ce que l’on obtient
Il reste un dossier à chaîne d’événements continue, au classement motivé, qui dit lui-même ce qui manque ensuite. Traitement, certificat et notification s’appuient dessus, sans rien avoir à raconter après coup.
Où cela figure dans la documentation
Les listes de champs contractuelles, les codes d’erreur et les réponses d’exemple se trouvent dans le contrat OpenAPI de cette surface, à l’adresse docs.tapinomahub.com (tapinoma-compliance). Tous les cas d’usage classés par surface et par rôle : aperçu des cas d’usage.
Sources et références juridiques
Questions fréquentes
Qui est l’émetteur légal ?
L’établissement agréé ou l’installation de traitement autorisée. Chaque réponse réussie d’une commande indique le rôle de la plateforme dans platformRole ; le serveur ne crée l’instantané de l’organisation émettrice dans issuerSnapshot qu’à la délivrance du certificat de destruction.
Que signifie un blocage dur ?
Qu’une condition manque et ne peut être ignorée. Dans une réponse réussie, chaque blocage porte code, message et hard, le cas échéant un requirementId ; si un contrôle bloquant interdit l’action elle-même, le serveur répond par le statut 422 et une réponse d’erreur.
Dois-je contrôler moi-même la chaîne d’événements ?
Pas en continu. Pour un dossier ou une période, un dossier d’audit restitue les événements avec leurs empreintes — une lacune y apparaît.
