Documentation développeur · Partner API v5

Intégrer la préparation des dossiers médicaux

Une API restreinte, documentée et testable. Ouvrez un compte développeur, générez une clé de test, appelez le premier point d'accès sur un environnement préchargé.

Base : secure.medicapp.ids.host/cloud/partner/v5

Compte développeur et clé de test

Renseignez trois champs. La clé est délivrée immédiatement à l'écran et par courriel. Aucune validation manuelle, aucun échange commercial préalable.

Clé limitée à l'environnement de test. Aucune donnée de santé réelle ne doit y être transmise.

À l'attention de l'équipe : la délivrance de clé est actuellement simulée côté navigateur. Elle doit être branchée sur le back-office avant mise en ligne. Point de branchement documenté dans /assets/js/site.js.

Authentification et portées

Chaque appel porte la clé dans l'en-tête Authorization. Deux portées distinctes encadrent ce qu'une clé peut atteindre.

Portée Ce qu'elle donne
partner:administrative Identité, statuts de parcours, avancement, complétude. Suffisante pour une intégration opérationnelle.
partner:medical Contenu de santé : réponses, documents, scores. Accordée après examen du besoin et engagement contractuel.
En-tête requis
Authorization: Bearer sk_test_VOTRE_CLE
Content-Type: application/json

Premier appel

Trois étapes, environ trente minutes pour parcourir la chaîne complète.

1 · Vérifier que la clé répond

GET/patients/pat_sandbox_001/protocol-status
curl https://secure.medicapp.ids.host/cloud/partner/v5\
/patients/pat_sandbox_001/protocol-status \
  -H "Authorization: Bearer sk_test_VOTRE_CLE"

2 · Déclencher une collecte

POST/patients/{uuid}/questionnaires/push
curl -X POST https://secure.medicapp.ids.host/cloud/partner/v5\
/patients/pat_sandbox_001/questionnaires/push \
  -H "Authorization: Bearer sk_test_VOTRE_CLE" \
  -H "Content-Type: application/json" \
  -d '{ "questionnaireUuid": "qst_sandbox_j7", "deliveryChannel": "SMS" }'

3 · Constater l'effet sur le dossier

Rappelez protocol-status : l'étape « Questionnaire J-7 » est passée à PENDING avec une échéance. C'est la chaîne du modèle métier qui se déroule — protocole, étape, événement, dossier.

Environnement de test

Une clé préfixée sk_test_ ouvre un espace isolé, préchargé avec trois personnes fictives et un protocole. Les envois y sont simulés : aucun courriel ni SMS n'est transmis à un destinataire réel.

Aucune donnée de santé réelle ne doit être transmise à l'environnement de test. Il ne relève pas du périmètre d'hébergement de données de santé applicable à la production.

Ressource Identifiant
Personne suivie pat_sandbox_001, pat_sandbox_002, pat_sandbox_003
Questionnaire qst_sandbox_j7
Protocole Protocole pré-opératoire genou

Capacité Disponible

Ouvrir un dossier

Comment mes utilisateurs entrent-ils dans Medicapp sans double saisie ?

Crée une personne suivie et le dossier associé depuis votre système. Le protocole indiqué démarre immédiatement : la première étape est déclenchée, l'invitation part sur le canal choisi.

POST/partner/v5/patients
{
  "externalId": "VOTRE-REF-4471",
  "firstName": "Camille",
  "lastName": "Ferrand",
  "email": "camille.ferrand@exemple.fr",
  "mobile": "+33600000000",
  "protocolUuid": "prt_qualification_mars"
}
201Créé
{
  "patientUuid": "pat_9c31…",
  "recordUuid": "rec_8f2a…",
  "externalId": "VOTRE-REF-4471",
  "dossierStatus": "IN_PROGRESS"
}

Portée requise : partner:administrative. À retenir : conservez externalId pour rapprocher les dossiers de votre référentiel sans stocker nos identifiants.

Le cas d'usage correspondant

Capacité Disponible

Demander une information

Comment déclencher une collecte depuis mon application ?

Envoie un questionnaire à une personne suivie, hors du calendrier prévu par le protocole. Utile lorsqu'un événement de votre système justifie une demande supplémentaire.

POST/patients/{patientUuid}/questionnaires/push
{
  "questionnaireUuid": "qst_sandbox_j7",
  "deliveryChannel": "SMS",
  "dueAt": "2026-09-15T00:00:00Z"
}

Portée requise : partner:medical. Canaux : EMAIL, SMS. À retenir : l'appel est idempotent sur la journée pour un même couple personne/questionnaire — un double envoi ne crée pas deux demandes.

Capacité Disponible

Consulter l'état d'un parcours

Où en est ce dossier, sans ouvrir Medicapp ?

Renvoie le protocole en cours et l'état de chacune de ses étapes. C'est l'appel qui alimente un tableau de bord côté partenaire.

GET/patients/{patientUuid}/protocol-status
{
  "patientUuid": "pat_sandbox_001",
  "protocol": {
    "name": "Protocole pré-opératoire genou",
    "status": "IN_PROGRESS"
  },
  "steps": [
    { "title": "Questionnaire initial",
      "status": "COMPLETED" },
    { "title": "Questionnaire J-7",
      "status": "PENDING",
      "dueAt": "2026-09-15T00:00:00Z" }
  ],
  "questionnairesCompleted": 1,
  "questionnairesTotal": 2
}

Portée requise : partner:administrative. Aucun contenu de santé n'est renvoyé : seulement des statuts.

Capacité Disponible

Suivre la complétude

Ce dossier est-il prêt à être instruit, et sinon que manque-t-il ?

C'est souvent le premier appel intégré, parce qu'il apporte un résultat immédiat : votre système sait, sans intervention humaine, quels dossiers peuvent être présentés à un professionnel.

GET/records/{recordUuid}/status
{
  "recordUuid": "rec_8f2a…",
  "dossierStatus": "INCOMPLETE",
  "missing": [
    "document:certificat",
    "questionnaire:antecedents"
  ],
  "lastReminderAt": "2026-09-01T09:12:00Z"
}

Statuts : IN_PROGRESS, INCOMPLETE, READY. Portée : partner:administrative.

Le cas d'usage correspondant

Capacité Disponible

Récupérer les résultats

Comment rapatrier les réponses, les pièces et les scores ?

Renvoie le contenu du dossier. Chaque réponse reste rattachée à la version du questionnaire à laquelle la personne a répondu — c'est ce qui permet de comparer deux points d'un suivi sans ambiguïté.

GET/records/{recordUuid}
{
  "recordUuid": "rec_8f2a…",
  "answers": [
    { "questionnaire": "Antécédents",
      "version": "3",
      "completedAt": "2026-09-02T14:05:00Z" }
  ],
  "documents": [
    { "type": "certificat",
      "receivedAt": "2026-09-03T08:41:00Z" }
  ],
  "scores": [
    { "name": "Oswestry", "value": 28 }
  ]
}

Portée requise : partner:medical. Cet appel donne accès à du contenu de santé : il suppose un cadre contractuel et un engagement de sécurité. Voir le passage en production.

Capacité En cours

Lancer une campagne de qualification

Comment ouvrir un lot de dossiers depuis mon outil de gestion ?

Ouvrir en un appel un ensemble de dossiers rattachés à un même protocole, avec une échéance commune, et suivre l'avancement du lot. Aujourd'hui, cette opération se fait par import de liste depuis l'application.

Cette capacité est en développement. Nous n'annonçons pas de date tant que nous ne pouvons pas la tenir. Si elle conditionne votre projet, écrivez-nous : cela pèse dans nos priorités.

Capacité En cours

Recevoir les événements

Comment être notifié plutôt qu'interroger l'API en boucle ?

Notification vers une adresse de votre choix lorsqu'un dossier devient complet, qu'une échéance approche ou qu'une règle se déclenche. En attendant, l'interrogation périodique de la complétude couvre l'essentiel des besoins.

En développement. Périmètre envisagé : record.ready, record.overdue, rule.triggered.

Erreurs

Code Signification Ce qu'il faut vérifier
401 Clé absente ou invalide En-tête Authorization: Bearer … présent, clé non révoquée.
403 Portée insuffisante L'appel requiert partner:medical et la clé ne dispose que de la portée administrative.
404 Ressource introuvable Identifiant erroné, ou ressource hors du périmètre accessible à votre clé.
409 Conflit Un dossier existe déjà pour cet externalId et ce protocole.
422 Requête invalide Champ obligatoire manquant, ou valeur non reconnue — le champ fautif est nommé dans la réponse.
429 Trop d'appels Respecter l'en-tête Retry-After.

Passer en production

Le passage de l'environnement de test à la production suppose quatre éléments. Aucun d'eux n'est un obstacle commercial : ce sont les conditions d'un traitement de données de santé.

  1. Un cadre contractuel entre votre organisation et Medicapp Connect
  2. La portée partner:medical si votre intégration accède au contenu de santé
  3. Un engagement de sécurité sur le stockage et la transmission des données reçues
  4. Une clé de production, distincte de la clé de test