Permet de tester rapidement si un Professionnel de Santé peut avoir accès à vos pages restreintes

Présentation de l'API

Notre API vous permet de vérifier en temps réel si un professionnel de santé est bien en activité via son numéro RPPS. Cette API est un outil essentiel pour les sites web réservés aux professionnels de santé (PdS) afin de valider l’accès aux contenus restreints.

L’Annuaire Santé rassemble des données d’identification des professionnels et de leurs structures issues des référentiels nationaux tels que le RPPS, ADELI, et FINESS. Notre API exploite ces données publiques et en libre accès pour offrir une solution rapide et fiable aux développeurs de sites tiers.

Pour en savoir plus sur l’extraction des données en libre accès des professionnels intervenant dans le système de Santé, voici le lien vers le site officiel : https://annuaire.sante.fr/web/site-pro/extractions-publiques 

Fonctionnalités de l'API

Validation

Assurez-vous en un instant qu'un numéro RPPS correspond bien à un professionnel de santé en activité.

Données Officielles

L'API utilise les données disponibles sur l'annuaire esanté, garantissant une information exacte et à jour.

Intégration simple et rapide

L’intégration de notre API ne nécessite qu’une seule requête HTTP. Vous pouvez facilement ajouter cette fonctionnalité à vos formulaires ou systèmes d’authentification.

Réponse Immédiate

Obtenez une réponse rapide pour confirmer l'identité et le statut du professionnel de santé.

Tarification

50 € HT par mois par site tiers

Le tarif couvre les frais de développement, d’hébergement et de maintenance de l’API. Il ne s’agit pas d’une monétisation des données des professionnels de santé, qui restent gratuites et accessibles sur l’annuaire esanté (https://annuaire.sante.fr/).

La facturation se fait uniquement annuellement (à date) et la tarification s’applique par site tiers. Si vous souhaitez utiliser cette API pour plusieurs sites de votre organisation, merci de nous contacter via le formulaire en bas de page.

Une fois le paiement annuel effectué, vous recevrez une clé API par email, vous donnant un accès immédiat à l’API. L’API est limitée, à date, à 2 requêtes / IP / seconde, n’hésitez pas à nous contacter pour toute demande supérieure.

Documentation

Accès API

Pour vérifier si un Professionnel de Santé est bien en activité, la requête est la suivante :

				
					https://api.verification-rpps.fr/api/pds/{{rpps_recherche}}?api_key={{client_api_key}}

				
			

Variables à modifier

  • {{rpps_recherche}} : à remplacer par le numéro RPPS
  • {{client_api_key}} : à remplacer par la clé API reçue par email 

L’API se met à jour toutes les nuits à 23h.

Retours possibles

Numéro RPPS non valide ou introuvable

				
					{
    "message": "Not Found",
    "isError": true
}

				
			

Numéro RPPS valide

				
					{
    "message": "success",
    "isError": false,
    "result": {
        "typeDIdentifiantPp": "8",
        "identifiantPp": "XXXXXXXXXXX",
        "identificationNationalePp": "XXXXXXXXXXXXX",
        "codeCiviliteDExercice": "",
        "libelleCiviliteDExercice": "",
        "codeCivilite": "MME",
        "libelleCivilite": "Madame",
        "nomDExercice": "DUPONT",
        "prenomDExercice": "JEAN",
        "codeProfession": "60",
        "libelleProfession": "Infirmier",
        "codeCategorieProfessionnelle": "C",
        "libelleCategorieProfessionnelle": "Civil",
        "codeTypeSavoirFaire": "",
        "libelleTypeSavoirFaire": "",
        "codeSavoirFaire": "",
        "libelleSavoirFaire": "",
        "codeModeExercice": "S",
        "libelleModeExercice": "Salarié",
        "numeroSiretSite": "XXXXXXXXXXXXXX",
        "numeroSirenSite": "",
        "numeroFinessSite": "XXXXXXXXX",
        "numeroFinessEtablissementJuridique": "XXXXXXXXX",
        "identifiantTechniqueDeLaStructure": "FXXXXXXXXX",
        "raisonSocialeSite": "Hôpital Exemple",
        "enseigneCommercialeSite": "",
        "complementDestinataireCoordStructure": "",
        "complementPointGeographiqueCoordStructure": "",
        "numeroVoieCoordStructure": "123",
        "indiceRepetitionVoieCoordStructure": "",
        "codeTypeDeVoieCoordStructure": "R",
        "libelleTypeDeVoieCoordStructure": "Rue",
        "libelleVoieCoordStructure": "de la Santé",
        "mentionDistributionCoordStructure": "",
        "bureauCedexCoordStructure": "75000 Paris",
        "codePostalCoordStructure": "75000",
        "codeCommuneCoordStructure": "75056",
        "libelleCommuneCoordStructure": "Paris",
        "codePaysCoordStructure": "",
        "libellePaysCoordStructure": "",
        "telephoneCoordStructure": "0123456789",
        "telephone2CoordStructure": "",
        "telecopieCoordStructure": "0123456790",
        "adresseEMailCoordStructure": "",
        "codeDepartementStructure": "",
        "libelleDepartementStructure": "",
        "ancienIdentifiantDeLaStructure": "XXXXXXXXXX",
        "autoriteDEnregistrement": "//ARS",
        "codeSecteurDActivite": "SA16",
        "libelleSecteurDActivite": "Etab. pour Handicapés",
        "codeSectionTableauPharmaciens": "",
        "libelleSectionTableauPharmaciens": "",
        "codeRole": "FON-33",
        "libelleRole": "Salarié en poste fixe",
        "codeGenreActivite": "GENR01",
        "libelleGenreActivite": "Activité standard de soin ou de pharmacien"
    }
}

				
			

Note : Les données présentées dans les exemples sont anonymisées pour protéger la confidentialité des professionnels de santé.

Erreurs statuts

  • Erreur 429 : trop de requêtes à l’API (maximum de 2 requêtes / seconde / IP pour l’instant)
  • Erreur 401 : mauvaise clé API – erreur d’authentification

Intégration

Intégrez facilement notre API dans vos formulaires pour vérifier les numéros RPPS lors de la création de comptes ou de l’accès à des contenus réservés aux professionnels de santé.

Exemple PHP

				
					<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $rpps = $_POST['rpps'];
    $apiKey = 'VOTRE_CLE_API';  // Remplacez par votre clé API
    $url = "https://api.verification-rpps.fr/api/pds/{$rpps}?api_key={$apiKey}";

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $response = curl_exec($ch);
    curl_close($ch);

    $data = json_decode($response, true);

    if ($data['isError']) {
        echo "Numéro RPPS invalide.";
    } else {
        echo "Bonjour, " . $data['result']['prenomDExercice'] . " " . $data['result']['nomDExercice'] . ". Vous êtes un(e) " . $data['result']['libelleProfession'] . ".";
        // Vous pouvez ensuite traiter le formulaire ou rediriger l'utilisateur
    }
}
?>

<form method="post" action="">
    <label for="rpps">Entrez votre numéro RPPS :</label>
    <input type="text" id="rpps" name="rpps" required>
    <button type="submit">Vérifier</button>
</form>

				
			

Exemple JS (validation côté client)

				
					<form id="rppsForm">
    <label for="rpps">Entrez votre numéro RPPS :</label>
    <input type="text" id="rpps" name="rpps" required>
    <button type="submit">Vérifier</button>
    <p id="resultMessage"></p>
</form>

<script>
document.getElementById('rppsForm').addEventListener('submit', function(event) {
    event.preventDefault();  // Empêche le formulaire de se soumettre immédiatement
    
    const rpps = document.getElementById('rpps').value;
    const apiKey = 'VOTRE_CLE_API';  // Remplacez par votre clé API
    const url = `https://api.verification-rpps.fr/api/pds/${rpps}?api_key=${apiKey}`;

    fetch(url)
        .then(response => response.json())
        .then(data => {
            if (data.isError) {
                document.getElementById('resultMessage').textContent = 'Numéro RPPS invalide.';
            } else {
                document.getElementById('resultMessage').textContent = `Bonjour, ${data.result.prenomDExercice} ${data.result.nomDExercice}. Vous êtes un(e) ${data.result.libelleProfession}.`;
                // Vous pouvez ensuite procéder à l'envoi du formulaire ou à d'autres actions
            }
        })
        .catch(error => {
            console.error('Erreur:', error);
            document.getElementById('resultMessage').textContent = 'Une erreur est survenue. Veuillez réessayer plus tard.';
        });
});
</script>

				
			

Exemple Node.js (validation côté serveur)

Nécessite l’utilisation d’un package tel que axios

				
					const rpps = ...;
    const apiKey = 'VOTRE_CLE_API'; // Remplacez par votre clé API
    const url = `https://api.verification-rpps.fr/api/pds/${rpps}?api_key=${apiKey}`;

    try {
        const response = await axios.get(url);
        const data = response.data;

        if (data.isError) {
            res.status(400).json({ message: 'Numéro RPPS invalide.' });
        } else {
            res.json({
                message: 'Numéro RPPS valide.',
                details: {
                    nom: data.result.nomDExercice,
                    prenom: data.result.prenomDExercice,
                    profession: data.result.libelleProfession,
                    modeExercice: data.result.libelleModeExercice,
                    structure: data.result.raisonSocialeSite,
                    adresse: `${data.result.numeroVoieCoordStructure} ${data.result.libelleTypeDeVoieCoordStructure} ${data.result.libelleVoieCoordStructure}, ${data.result.bureauCedexCoordStructure}`
                }
            });
        }
    } catch (error) {
        console.error('Erreur lors de la validation du RPPS:', error.message);
        res.status(500).json({ message: 'Erreur serveur. Veuillez réessayer plus tard.' });
    }
				
			

Contact / support

Support et Assistance

Notre équipe est disponible pour vous assister dans l’intégration de l’API. N’hésitez pas à nous contacter pour toute question ou besoin d’aide technique.

Formulaire de contact

Pour toute question concernant l’API ou pour en savoir plus sur les tarifications possibles pour plusieurs sites tiers, veuillez nous contacter via le formulaire suivant.