API - Institutions et registre
Le Registre Social Unifie n'a pas d'API a part : le registre, ce sont les menages (/api/menages), et l'entree au registre passe par la collecte. Cette page rassemble ce qui s'y rattache.
/api/rsu/*Les endpoints /api/rsu/pool, /api/rsu/integrate et /api/menages-collecte n'existent plus. Ils servaient une table de transit retiree depuis que la pre-collecte fait entrer au registre elle-meme. Le pool RSU se lit sur /api/menages avec statutRsu=integre_rsu.
Institutions
Base : /api/institutions. Permission : admin.settings.
| Methode | Endpoint | Description |
|---|---|---|
| GET | /institutions | Liste des institutions |
| GET | /institutions/dropdown | Liste courte pour les formulaires |
| GET | /institutions/stats | Statistiques |
| GET | /institutions/{id} | Detail |
| POST | /institutions | Creer |
| PATCH | /institutions/{id} | Modifier |
Types : ministere, agence_un, ong_internationale, ong_nationale, projet, bailleur, institution_publique.
Accords de partage
Base : /api/data-sharing-agreements.
| Methode | Endpoint | Description |
|---|---|---|
| GET | /data-sharing-agreements | Liste des accords |
| GET | /data-sharing-agreements/{id} | Detail |
| POST | /data-sharing-agreements | Creer |
| PATCH | /data-sharing-agreements/{id} | Modifier |
| POST | /data-sharing-agreements/{id}/activate | Activer |
| POST | /data-sharing-agreements/{id}/suspend | Suspendre |
Registre : les menages
Base : /api/menages. Permission : registre.menages_view.
Filtres utiles au registre :
| Parametre | Description |
|---|---|
identifiantRsu | Recherche par identifiant, partielle, chiffres continus |
statutRsu=integre_rsu | Les menages entres au registre |
institutionOrigine.id | L'institution qui a collecte |
order[identifiantRsu] | Tri par identifiant |
Chaque menage expose identifiantRsu, statutRsu, institutionOrigine, dateValidationRsu.
Entree au registre
Base : /api/menages. Permission : collecte.integration.
| Methode | Endpoint | Description |
|---|---|---|
| GET | /menages/pre-collecte | Menages en attente (importe, en_validation, valide, rejete) |
| GET | /menages/pre-collecte/stats | Compteurs par statut |
| POST | /menages/{id}/valider | Valider |
| POST | /menages/{id}/rejeter | Rejeter, avec motif |
| POST | /menages/valider-masse | Valider plusieurs menages { ids: [...] } |
| POST | /menages/{id}/integrer | Integrer : rapprochements, puis identifiant RSU |
| POST | /menages/integrer-masse | Integrer plusieurs menages { ids: [...] } |
Un rapprochement bloquant — piece d'identite ou telephone du chef identique a un menage du registre — refuse l'integration sans rien modifier ; en masse, ce menage est compte en erreur sans arreter le lot.
Reponse d'integration :
{
"success": true,
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"code": "ACC-12435",
"identifiantUnique": "PCH-2026-000123",
"identifiantRsu": "200120460973",
"status": "integrated"
}
}
Import de collecte
Base : /api/collecte-import. Permission : collecte.import.
Chaque projet collecte avec son propre compte : passer projet=<id> (ou projetId dans le corps) fait interroger le compte du projet, a defaut le compte global.
| Methode | Endpoint | Description |
|---|---|---|
| GET | /collecte-import/sources?projet= | Sources et leur etat de configuration pour ce projet |
| POST | /collecte-import/test-connection | { source, projetId } |
| GET | /collecte-import/questionnaires?source=&projet= | Formulaires du compte du projet |
| GET | /collecte-import/questionnaires/{id}/fields?source=&projet= | Champs d'un formulaire |
| POST | /collecte-import/preview | Apercu { source, questionnaireId, fieldMapping, projetId } |
| POST | /collecte-import/execute | Import { source, questionnaireId, fieldMapping, institutionId, projetId, programmeId? } |
| POST | /collecte-import/upload | Import d'un fichier (multipart) |
Les menages importes arrivent en pre-collecte, en statut de collecte importe, rattaches a l'institution et au projet.
Synchronisation d'un projet
Base : /api/projets/{id}/synchronisation. Autorise : gestionnaire, ou utilisateur dont le perimetre contient le projet.
| Methode | Endpoint | Description |
|---|---|---|
| GET | /projets/{id}/synchronisation | Comptes Kobo et Survey Solutions du projet, secrets masques |
| PUT | /projets/{id}/synchronisation | Enregistrer { kobo?: {...} | null, surveySolutions?: {...} | null } |
| POST | /projets/{id}/synchronisation/test | { source: 'kobo' | 'survey_solutions' } |
Une section absente n'est pas touchee ; null la retire. Un secret omis est conserve.
Identifiant RSU
Douze chiffres tires au hasard, sans semantique, cle de Verhoeff en derniere position. Affiche en groupes de quatre (2001 2046 0973), stocke en chiffres continus (200120460973). Il ne change jamais une fois attribue.
Qui voit quoi
| Utilisateur | Voit |
|---|---|
| Gestionnaire | Tout |
accesRegistreNational (privilege accorde a la demande) | Tous les menages du registre |
| Rattache a une institution et a des projets | Son perimetre : menages collectes par son institution ou participant a ses projets, et leurs beneficiaires, paiements, plaintes |
| Sans institution ni privilege | Rien |
Hors perimetre, une ressource repond 404, jamais 403 : ne pas confirmer qu'elle existe.