Aller au contenu principal

GET /api/beneficiaires/{id}

Récupère les informations détaillées d'un bénéficiaire.

Endpoint

GET /api/beneficiaires/{id}

Paramètres d'URL

ParamètreTypeDescription
idUUIDIdentifiant unique du bénéficiaire

Headers

HeaderValeurRequis
AuthorizationBearer {token}Oui

Réponse succès

Code: 200 OK

{
"@context": "/api/contexts/Beneficiaire",
"@id": "/api/beneficiaires/550e8400-e29b-41d4-a716-446655440000",
"@type": "Beneficiaire",
"id": "550e8400-e29b-41d4-a716-446655440000",
"codeBeneficiaire": "BEN-2024-00001",
"nomComplet": "Fatou Diallo",
"telephone": "771234567",
"modePaiement": "orange_money",
"compteMobile": "771234567",
"compteBancaire": null,
"numeroMTN": null,
"typeBeneficiaire": "principal",
"actif": true,
"sexe": "F",
"statutEnrolement": "actif",
"dateEnrolement": "2024-01-15T10:30:00+00:00",
"dateSortie": null,
"motifSortie": null,
"documentVerifie": true,
"dateVerificationDocument": "2024-01-20",
"statutCycle": "actif",
"prochaineRecertification": "2025-01-15",
"estGradue": false,
"dateGraduation": null,
"tauxConformiteGlobal": "92.50",
"nombreCyclesCompletes": 3,
"dernierSuivi": "2024-06-15",
"menage": {
"@id": "/api/menages/1",
"@type": "Menage",
"id": 1,
"codeMenage": "MEN-2024-00001",
"tailleMenage": 5,
"chefMenage": {
"@id": "/api/chef_menages/1",
"nomComplet": "Mamadou Diallo"
},
"region": {
"@id": "/api/regions/1",
"nom": "Dakar"
},
"commune": {
"@id": "/api/communes/1",
"nom": "Commune 1"
}
},
"programme": {
"@id": "/api/programmes/1",
"@type": "Programme",
"id": 1,
"nom": "Transferts Monétaires 2024",
"code": "TM-2024"
},
"beneficiairePrincipal": null
}

Réponses erreur

404 Not Found

{
"@context": "/api/contexts/Error",
"@type": "hydra:Error",
"hydra:title": "An error occurred",
"hydra:description": "Item not found for \"/api/beneficiaires/invalid-uuid\""
}

403 Forbidden

{
"@context": "/api/contexts/Error",
"@type": "hydra:Error",
"hydra:title": "An error occurred",
"hydra:description": "Access Denied."
}

Exemples

cURL

curl https://sig.ucp-pch.org/api/beneficiaires/550e8400-e29b-41d4-a716-446655440000 \
-H "Authorization: Bearer TOKEN"

JavaScript

const getBeneficiaire = async (id) => {
const response = await fetch(
`https://sig.ucp-pch.org/api/beneficiaires/${id}`,
{
headers: {
'Authorization': `Bearer ${localStorage.getItem('token')}`
}
}
);

if (response.status === 404) {
throw new Error('Bénéficiaire non trouvé');
}

return response.json();
};

// Utilisation
try {
const beneficiaire = await getBeneficiaire('550e8400-e29b-41d4-a716-446655440000');
console.log(`Nom: ${beneficiaire.nomComplet}`);
console.log(`Type: ${beneficiaire.typeBeneficiaire}`);
console.log(`Statut: ${beneficiaire.statutCycle}`);
console.log(`Cycles complétés: ${beneficiaire.nombreCyclesCompletes}`);
console.log(`Ménage: ${beneficiaire.menage.codeMenage}`);
} catch (error) {
console.error(error.message);
}

Python

import requests

def get_beneficiaire(token, beneficiaire_id):
response = requests.get(
f'https://sig.ucp-pch.org/api/beneficiaires/{beneficiaire_id}',
headers={'Authorization': f'Bearer {token}'}
)

if response.status_code == 404:
raise Exception('Bénéficiaire non trouvé')

return response.json()

# Utilisation
beneficiaire = get_beneficiaire(token, '550e8400-e29b-41d4-a716-446655440000')
print(f"Code: {beneficiaire['codeBeneficiaire']}")
print(f"Nom: {beneficiaire['nomComplet']}")
print(f"Mode paiement: {beneficiaire['modePaiement']}")
print(f"Conformité: {beneficiaire['tauxConformiteGlobal']}%")

Champs de la réponse

Identité

ChampTypeDescription
idUUIDIdentifiant unique
codeBeneficiairestringCode unique (BEN-YYYY-NNNNN)
nomCompletstringNom complet du bénéficiaire
telephonestringNuméro de téléphone
sexestring"M" ou "F"

Paiement

ChampTypeDescription
modePaiementstringMode de paiement (orange_money, wave, etc.)
compteMobilestringNuméro de compte Mobile Money
compteBancairestringNuméro de compte bancaire
numeroMTNstringNuméro MTN Mobile Money

Type et statut

ChampTypeDescription
typeBeneficiairestring"principal" ou "substitut"
actifbooleanBénéficiaire actif
statutEnrolementstringStatut d'enrôlement
statutCyclestringStatut dans le cycle de vie
documentVerifiebooleanDocument d'identité vérifié

Cycle de vie

ChampTypeDescription
dateEnrolementdatetimeDate d'enrôlement
prochaineRecertificationdateDate de prochaine recertification
estGraduebooleanA terminé le programme
dateGraduationdateDate de graduation
nombreCyclesCompletesintegerNombre de cycles de paiement complétés
tauxConformiteGlobaldecimalTaux de conformité aux conditionnalités (0-100)
dernierSuividateDate du dernier suivi terrain

Notes

  • Les identifiants de bénéficiaires sont des UUID
  • Le bénéficiaire substitut référence son bénéficiaire principal via beneficiairePrincipal
  • Le taux de conformité est calculé sur toutes les conditionnalités du programme
  • La recertification est obligatoire périodiquement pour maintenir l'éligibilité