Skip to content

ansforge/psc-psi-api

Repository files navigation

Documentation de l'API PSI

Table des matières

  1. Introduction
  2. Prérequis
  3. Logique métier
  4. Spécifications techniques
  5. Exemples d'utilisation
  6. Ressources supplémentaires

Introduction

L'API PSI permet d'enrôler des tiers dans le système PSI (Pro Santé Identité). Elle est conçue pour un usage interne et externe tels que le le RPPS et les établissements de santé afin d'enregistrer les professionnels en santé tout en validant la qualité des donnéés d'identité auprès du RNIPP.

L'API est exposée via Gravitee de l' ANS (Agence du Numérique en Santé) à l'URL suivante :
https://psi-partenaire.gateway.api.esante.gouv.fr/

Cette documentation fournit une vue d'ensemble de la logique métier, des spécifications techniques et des exemples d'utilisation pour faciliter l'intégration.


Prérequis

Avant de commencer à utiliser l'API, assurez-vous de remplir les conditions suivantes :

  • Accès à l'API : Vous devez disposer des droits d'accès à l'URL Gravitee mentionnée ci-dessus. Pour cela, merci de remplir le formulaire de demande dipsonible à l'URL suivante : prochainement disponible
  • Authentification : Les appels à l'API nécessitent une authentification. Les clés d'API ou les jetons nécessaires vous seront fournis par l'administrateur ANS de Gravitee.
  • Outils recommandés :
    • Un outil pour tester les API REST, comme Postman.
    • Un lecteur de fichiers YAML pour consulter le fichier Swagger fourni.

Logique métier

La logique métier de l'API est décrite dans le schéma suivant :

Logique métier

Résumé de la logique métier

  1. Recherche initiale :

    • L'API commence par rechercher les traits d'identité dans le système PSI.
    • Si aucun compte PSI n'existe, une recherche est effectuée dans le RNIPP, le RPPS et l'API-PSC.
  2. Validation et enrôlement :

    • Si les données sont valides et qu'une correspondance unique est trouvée, un compte PSI est créé ou mis à jour.
    • En cas de divergences ou de correspondances multiples, des informations sont retournées à l'appelant pour résolution.
  3. Cas spécifiques :

    • Gestion des identifiants RPPS.
    • Création de comptes avec des données partielles (e-mail et téléphone non vérifiés).

Spécifications techniques

Endpoints disponibles

1. Créer ou mettre à jour une identité

  • Méthode : POST
  • URL : /v1/identities
  • Description : Permet de créer ou de mettre à jour une identité dans le système PSI.
Requête
  • Headers :
    • Content-Type: application/json
    • esante-api-key: <votre api key>
  • Body (exemple) :
{
  "lastName": "DUPONT",
  "firstNames": "Jean Pierre",
  "birthDate": "1995-02-15",
  "genderCode": "M",
  "birthLocationCode": "99103",
  "birthPlace": "OSLO",
  "professionalLastName": "Durant",
  "email": "[email protected]",
  "phone": "0612345678",
  "identifier": "8100112345678"
}
Réponses
  • 201 Created : Identité créée avec succès.
  • 400 Bad Request : Erreur de validation des données (exemple : format de date incorrect).
  • 404 Not Found : Aucune correspondance trouvée dans le RNIPP.
  • 409 Conflict : Un compte PSI existe déjà pour ces traits d'identité.
  • 500 Internal Server Error : Erreur interne.

Pour plus de détails sur les schémas de requêtes et réponses, consultez le fichier Swagger : PSI_swagger_15-10-25.yml.


Schémas des données

Voici les principaux schémas utilisés par l'API :

1. RegisterOrUpdateIdentityRequestDto

  • Description : Représente les données nécessaires pour créer ou mettre à jour une identité.
  • Propriétés :
    • lastName (string) : Nom de famille.
    • firstNames (string) : Liste des prénoms séparés par un espace.
    • birthDate (string) : Date de naissance (format ISO-8601).
    • genderCode (string) : Sexe (M, F, I).
    • birthLocationCode (string) : Code INSEE du lieu de naissance.
    • birthPlace (string): libellé du lieu de naissance (à ne renseigner que si birthLocationCode est un pays étranger),
    • professionalLastName (string): Nom d'exercice (nom de famille professionnel),
    • email (string) : Adresse e-mail.
    • phone (string) : Numéro de téléphone.
    • identifier (string) : Identifiant (optionnel)(ex. : identifiant RPPS).

2. RegisterOrUpdateIdentityResponseDto

  • Description : Réponse retournée après la création ou mise à jour d'une identité.
  • Propriétés :
    • rppsIdentifiers (array of string) : Liste des identifiants RPPS associés.
    • identityTraits (object) : Traits d'identité trouvés.

Pour une liste complète des schémas, référez-vous au fichier Swagger.


Exemples d'utilisation

1. Création d'une identité avec succès

Requête :

curl -X POST "https://apimgmtui.integ.api.esante.gouv.fr/v1/identities" \
-H "Content-Type: application/json" \
-H "esante-api-key: <votre api key>" \
-d '{
  "lastName": "DUPONT",
  "firstNames": "Jean Pierre",
  "birthDate": "1995-02-15",
  "genderCode": "M",
  "birthLocationCode": "99103",
  "birthPlace": "OSLO",
  "professionalLastName": "Durant",
  "email": "[email protected]",
  "phone": "0612345678",
  "identifier": "8100112345678"
}'

Réponse :

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "rppsIdentifiers": [
    "810000000000"
  ],
  "identityTraits": {
    "lastName": "DUPONT",
    "firstNames": "Jean Pierre",
    "birthDate": "1995-02-15",
    "genderCode": "M",
    "birthLocationCode": "99103",
    "birthPlace": "OSLO",
    "professionalLastName": "Durant"
  }
}

2. Erreur de validation (format de date incorrect)

Requête :

{
  "lastName": "DUPONT",
  "firstNames": "Jean Pierre",
  "birthDate": "01-01-1990",  // Format incorrect
  "genderCode": "M",
  "birthLocationCode": "99103",
  "birthPlace": "OSLO",
  "professionalLastName": "Durant",
  "email": "[email protected]",
  "phone": "0612345678",
  "identifier": "8100112345678"
}

Réponse :

{
    "timestamp": "2025-12-01T15:22:22.954149+01:00",
    "status": "400",
    "error": "Des erreurs ont été détectées lors de la validation. Veuillez consulter le détail",
    "detail": [
        {
            "object": "registerIdentityRequestDto",
            "field": "birthDate",
            "message": "Le format de date est invalide. Format attendu : aaaa-mm-jj",
            "rejected": "01-01-1990",
            "constraint": "DateTime"
        }
    ],
    "path": "/v1/identities"
}

Ressources supplémentaires


Si vous avez des questions ou des problèmes, veuillez contacter l'équipe technique à l'adresse suivante : [email protected].


About

PSC PSI API

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •