Aller au contenu

Sceller l'import après l'envoi des octets

POST
/entreprise/v1/imports/signaletiques-salaries/{importId}:sceller
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.

importId
required
string
>= 1 characters
X-Tenant-Id
required
string
>= 1 characters

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.

X-Correlation-Id
required
string
>= 1 characters

La corrélation de bout en bout — propagée jusqu’aux événements.

Idempotency-Key
required
string
>= 1 characters

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.

Media typeapplication/json
object
empreinteSha256
required

L’empreinte des octets envoyés — l’identité du contenu.

string
Examplegenerated
{
"empreinteSha256": "example"
}

L’import est scellé et validé, ou rejeté par un contrôle global.

Media typeapplication/json
object
importId
required
string
statut
required
string
Allowed values: EN_ATTENTE_FICHIER RECU VALIDATION PRET_A_TRAITER TRAITEMENT TERMINE TERMINE_AVEC_ANOMALIES REJETE
perimetre

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
type
required
string
Allowed values: ENTREPRISE GROUPE
entrepriseId
string
groupeId
string
dateReference
string format: date
empreinteSha256
string
nombreDePartitions
integer
compteurs

Les compteurs par statut de ligne, agrégés depuis les partitions — jamais obtenus en rechargeant les lignes.

object
key
additional properties
integer format: int64
Example
{
"statut": "EN_ATTENTE_FICHIER",
"perimetre": {
"type": "ENTREPRISE"
}
}

JSON invalide ou champ obligatoire absent (INVALID_REQUEST).

Media typeapplication/problem+json

Le format d’erreur du § 21.2 — application/problem+json.

object
type
string
title
string
status
required
integer
code
required
string
detail
string
instance
string
correlationId
string
errors
Array<object>
object
path
string
code
string
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).

Media typeapplication/problem+json

Le format d’erreur du § 21.2 — application/problem+json.

object
type
string
title
string
status
required
integer
code
required
string
detail
string
instance
string
correlationId
string
errors
Array<object>
object
path
string
code
string
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.

Media typeapplication/problem+json

Le format d’erreur du § 21.2 — application/problem+json.

object
type
string
title
string
status
required
integer
code
required
string
detail
string
instance
string
correlationId
string
errors
Array<object>
object
path
string
code
string
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é.

Media typeapplication/problem+json

Le format d’erreur du § 21.2 — application/problem+json.

object
type
string
title
string
status
required
integer
code
required
string
detail
string
instance
string
correlationId
string
errors
Array<object>
object
path
string
code
string
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"code": "example",
"detail": "example",
"instance": "example",
"correlationId": "example",
"errors": [
{
"path": "example",
"code": "example"
}
]
}