Aller au contenu

Enregistrer un échange entrant

POST
/relation-tiers/v1/interactions
curl --request POST \
--url https://example.com/relation-tiers/v1/interactions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: example' \
--data '{ "direction": "INBOUND", "channel": "example", "businessAt": "2026-04-15T12:00:00Z", "receivedAt": "2026-04-15T12:00:00Z", "transportMessageId": "example", "contentFingerprint": "example", "contentRef": "example", "participants": [ { "actorId": "example", "role": "example" } ], "unknownAuthor": true, "summaryRef": "example" }'
X-Tenant-Id
string

Facultatif — le tenant fait foi dans le jeton ; s’il est fourni, il doit être identique, et le corps ne peut jamais le choisir.

X-Correlation-Id
string
Idempotency-Key
required
string

La clé d’idempotence de la commande — liée à l’intention métier, pas à la tentative réseau.

Media typeapplication/json
object
direction
required
string
Allowed values: INBOUND OUTBOUND INTERNAL
channel
required
string
businessAt
required
string format: date-time
receivedAt
string format: date-time
transportMessageId
string
contentFingerprint
string
contentRef

La référence du contenu — jamais le contenu lui-même.

string
participants
Array<object>
object
actorId
string
role
string
unknownAuthor

Vrai si aucun participant n’est identifiable à la réception.

boolean
summaryRef
string

L’échange est durable — l’original est immuable.

Media typeapplication/json
object
id
required
string
aggregateVersion
required
integer
status
required
string
Examplegenerated
{
"id": "example",
"aggregateVersion": 1,
"status": "example"
}

Aucune identité présentée (401).

L’identité présentée n’a pas la famille d’accès requise (403). Les 403 croisés entre familles sont prouvés par les tests d’assemblage. Un écart de tenant sur une ressource produit 404 (ne rien révéler), jamais ce code.

Version obsolète, chevauchement interdit ou clé d’idempotence réutilisée avec un contenu différent.

Media typeapplication/json

L’enveloppe d’erreur du catalogue (Problem Details).

object
type
required
string
title
required
string
status
required
integer
code
required
string
detail
string
instance
string
correlationId
required
string
retryable
boolean
violations
Array<object>
object
field
string
reason
string
ruleId
string
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"code": "example",
"detail": "example",
"instance": "example",
"correlationId": "example",
"retryable": true,
"violations": [
{
"field": "example",
"reason": "example",
"ruleId": "example"
}
]
}

Donnée comprise mais non admissible — règle identifiée, référence externe non résolue ou preuve insuffisante.

Media typeapplication/json

L’enveloppe d’erreur du catalogue (Problem Details).

object
type
required
string
title
required
string
status
required
integer
code
required
string
detail
string
instance
string
correlationId
required
string
retryable
boolean
violations
Array<object>
object
field
string
reason
string
ruleId
string
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"code": "example",
"detail": "example",
"instance": "example",
"correlationId": "example",
"retryable": true,
"violations": [
{
"field": "example",
"reason": "example",
"ruleId": "example"
}
]
}