Sceller l'import après l'envoi des octets
const url = 'https://example.com/entreprise/v1/imports/signaletiques-salaries/example:sceller';const options = { method: 'POST', headers: { 'X-Tenant-Id': 'example', 'X-Correlation-Id': 'example', 'Idempotency-Key': 'example', Authorization: 'Bearer <token>', 'Content-Type': 'application/json' }, body: '{"empreinteSha256":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/entreprise/v1/imports/signaletiques-salaries/example:sceller \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --header 'Idempotency-Key: example' \ --header 'X-Correlation-Id: example' \ --header 'X-Tenant-Id: example' \ --data '{ "empreinteSha256": "example" }'Le scellement vérifie la taille observée, l’empreinte, le format, l’absence de contenu dangereux et la cohérence avec les métadonnées annoncées. Une anomalie fatale rejette l’import avant toute exécution métier.
Autorisations
Section intitulée « Autorisations »Paramètres
Section intitulée « Paramètres »Paramètres (path)
Section intitulée « Paramètres (path) »Paramètres (header)
Section intitulée « Paramètres (header) »Le teneur de compte — injecté et signé par la passerelle, dérivé de l’identité authentifiée. Il n’est jamais fourni comme valeur libre dans l’URL ou le corps.
La corrélation de bout en bout — propagée jusqu’aux événements.
La clé d’idempotence, de portée tenant + appelant + route + clé. Même clé et même corps : la réponse initiale. Même clé, corps différent : 409.
Corps de la requêterequired
Section intitulée « Corps de la requêterequired »object
L’empreinte des octets envoyés — l’identité du contenu.
Examplegenerated
{ "empreinteSha256": "example"}Réponses
Section intitulée « Réponses »L’import est scellé et validé, ou rejeté par un contrôle global.
object
Un import a exactement un périmètre dans un seul tenant (RM-021). En GROUPE, chaque ligne désigne son entreprise, vérifiée membre à la date de référence ; une entreprise extérieure fait rejeter la ligne, sans jamais élargir le périmètre.
object
Les compteurs par statut de ligne, agrégés depuis les partitions — jamais obtenus en rechargeant les lignes.
object
Example
{ "statut": "EN_ATTENTE_FICHIER", "perimetre": { "type": "ENTREPRISE" }}JSON invalide ou champ obligatoire absent (INVALID_REQUEST).
Le format d’erreur du § 21.2 — application/problem+json.
object
object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "code": "example", "detail": "example", "instance": "example", "correlationId": "example", "errors": [ { "path": "example", "code": "example" } ]}Identité absente ou invalide (UNAUTHENTICATED).
Droit insuffisant (FORBIDDEN) — les 403 croisés entre familles sont prouvés par les tests d’assemblage.
Ressource absente dans le tenant courant — y compris une ressource d’un autre tenant, dont l’existence n’est jamais confirmée (404, jamais 403).
Le format d’erreur du § 21.2 — application/problem+json.
object
object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "code": "example", "detail": "example", "instance": "example", "correlationId": "example", "errors": [ { "path": "example", "code": "example" } ]}IDEMPOTENCY_KEY_REUSED (même clé, corps différent), SOURCE_VERSION_CONFLICT (version incompatible) ou conflit d’empreinte d’import.
Le format d’erreur du § 21.2 — application/problem+json.
object
object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "code": "example", "detail": "example", "instance": "example", "correlationId": "example", "errors": [ { "path": "example", "code": "example" } ]}BUSINESS_RULE_VIOLATION ou IMPORT_SCOPE_VIOLATION — demande syntaxiquement valide mais incohérente au regard du métier ou du périmètre annoncé.
Le format d’erreur du § 21.2 — application/problem+json.
object
object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "code": "example", "detail": "example", "instance": "example", "correlationId": "example", "errors": [ { "path": "example", "code": "example" } ]}