Décider (accepter/rejeter) une demande de substitution
POST/pharmacy/v0/sessions/:sessionId/substitutions/:substitutionId/decision
Transition d'état sur une SubstitutionRequest PENDING — jamais une
création (200 dans tous les cas, y compris le rejeu conforme). PAS de
re-gate has_active_identification : la trace a déjà été créée sous
gate, le scoping FACILITY suffit. Idempotence canonique DISTINCTE de
la création (decisionIdempotencyKey). Une décision déjà posée
différente (payload ou décision) → 409.
Request
Responses
- 200
- 400
- 401
- 403
- 404
- 409
- 422
Décision appliquée (ou rejeu conforme) — SubstitutionRequest complète
En-tête X-Idempotency-Key absent ou invalide
Non authentifié
Rôle insuffisant
Session ou demande de substitution introuvable, ou hors périmètre (anti-énumération)
Décision déjà posée différente (payload ou décision), ou même clé d'idempotence de décision avec un corps différent
Corps de requête invalide (decision doit être ACCEPTED ou REJECTED)