Intégration & API
API v1 · OpenAPI 3.1 · REST + OAuth 2 · HL7 v2.x · FHIR R4
Nos modules exposent une API REST sécurisée et des connecteurs HL7 / FHIR. Une sandbox est disponible pour vos équipes.
API REST
Authentification OAuth 2, documentation OpenAPI, webhooks sur les événements clés.
HL7 / FHIR
Messages ADT, ORM, ORU et ressources FHIR R4 pour le dialogue avec le SIH.
Sandbox
Un environnement de test avec des données fictives pour développer sans risque.
Accompagnement
Cadrage, développement de connecteurs spécifiques et recette avec vos équipes.
Deux mécanismes selon le contexte : OAuth 2 client credentials pour les appels serveur à serveur, Pro Santé Connect (OpenID Connect) pour agir au nom d’un professionnel avec sa carte CPS ou son e-CPS. Le jeton porte les périmètres (dmp:write, mssante:send…).
curl -X POST https://api.clii.example/oauth/token \ -d grant_type=client_credentials \ -d client_id=$CLIENT_ID -d client_secret=$CLIENT_SECRET \ -d scope="ins:read dmp:write mssante:send"
| Méthode | Endpoint | Description | Module |
|---|---|---|---|
| POST | /v1/ins/qualifier | Récupérer et qualifier l’INS (INSi) | mod_insi |
| POST | /v1/dmp/documents | Déposer un document CDA dans le DMP | mod_dmp_alimentation |
| GET | /v1/dmp/patients/{ins}/documents | Lister les documents du DMP | mod_dmp_consultation |
| GET | /v1/dmp/documents/{id} | Télécharger un document (CDA ou PDF) | mod_dmp_consultation |
| POST | /v1/dmp/patients/{ins}/autorisation | Recueillir l’autorisation d’accès | mod_dmp_gestion |
| POST | /v1/mssante/messages | Envoyer un document par MSSanté | mod_mssante |
| GET | /v1/mssante/inbox | Lire les documents reçus, rapprochés par INS | mod_mssante |
| POST | /v1/ordonnances | Créer une ordonnance numérique | mod_ordonnance_numerique |
| POST | /v1/fse | Créer et signer une FSE | mod_fse |
| GET | /v1/patients/{ins}/droits | Droits AMO / AMC (ADRi) | mod_adri |
| GET | /v1/flux | État des flux et alertes | mod_supervision_des_flux |
Le patient doit avoir une INS qualifiée et une autorisation d’accès recueillie. Le document est fourni en CDA-R2, ou en JSON structuré si vous utilisez le générateur CI-SIS.
curl -X POST https://api.clii.example/v1/dmp/documents \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "ins": "1 85 03 75 116 001 42", "type": "CR-CONSULT", "title": "Compte rendu de consultation", "cda": "<ClinicalDocument…>", "visible_patient": true }'
Chaque événement est envoyé en POST JSON, signé (X-Clii-Signature, HMAC-SHA256) et rejoué pendant 24 h en cas d’échec.
| dmp.document.deposited | Document déposé dans le DMP |
| dmp.document.rejected | Dépôt refusé (habilitation, INS non qualifiée, CDA invalide) |
| mssante.message.received | Nouveau document reçu par MSSanté |
| ins.qualified | INS qualifiée pour un patient |
| fse.noemie.received | Retour NOEMIE intégré |
| ordonnance.dispensed | Ordonnance délivrée en pharmacie |
{ "event": "dmp.document.deposited", "id": "evt_9c1…",
"data": { "document": "doc_01j9x…", "ins": "1 85 03 75 116 001 42", "type": "CR-CONSULT" },
"occurred_at": "2026-09-23T10:12:05Z" }Pour les établissements, les modules s’alimentent directement depuis le SIH : un connecteur écoute les messages HL7 v2 (MLLP) ou expose un serveur FHIR R4.
| ADT^A04 / A08 | Admission, mise à jour patient → qualification INS |
| ORU^R01 | Résultats → document CDA → DMP |
| MDM^T02 | Compte rendu → DMP + MSSanté |
| FHIR Patient | Identité et INS |
| FHIR DocumentReference | Documents DMP en lecture / écriture |
| Sandbox | https://sandbox.api.clii.example | Données fictives, DMP de test, MSSanté de test |
|---|---|---|
| Recette | https://staging.api.clii.example | Vos données de recette, environnements ANS de test |
| Production | https://api.clii.example | Environnements réels, certificats de production |
| 400 | invalid_cda | Le document ne respecte pas le CI-SIS (détail dans errors[]) |
| 401 | unauthorized | Jeton absent, expiré ou périmètre insuffisant |
| 403 | ins_not_qualified | L’INS du patient n’est pas qualifiée : appeler /v1/ins/qualifier |
| 403 | dmp_no_authorization | Autorisation d’accès au DMP non recueillie |
| 404 | dmp_not_found | Le patient n’a pas de DMP actif |
| 429 | rate_limited | Quota dépassé, réessayer après Retry-After |
| 503 | upstream_unavailable | Service national indisponible, dépôt mis en file |