API SIGES-CS v1
Intégrez les données du Système Intégré de Gestion du Secteur Paix & Cohésion Sociale dans vos outils tiers : tableaux de bord BI, applications mobiles, scripts d'analyse.
Authentification
Bearer token personnel (PAT) généré depuis votre profil.
Lecture + écriture encadrée
Lecture sur tous les domaines ; écriture limitée aux financements externes, dans le périmètre du token.
Abilities
Chaque token a ses propres permissions granulaires.
1.Authentification
Toutes les requêtes API doivent inclure un header Authorization avec un token personnel.
Créez-en un depuis votre profil → Tokens d'accès API.
Authorization: Bearer sigescs_pat_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Accept: application/json
Abilities disponibles
read:indicators
Lire les indicateurs et leurs valeurs
read:interventions
Lire les interventions (hors brouillons)
read:structures
Lire les structures
read:stats
Lire les statistiques agrégées
write:financements
Créer / mettre à jour des financements externes
2.Endpoints disponibles
/api/v1/me
Profil de l'utilisateur du token (et infos du token).
Exemple cURL
curl -H 'Authorization: Bearer sigescs_pat_xxx' https://sigescs.com/api/v1/me
Exemple de réponse
{
"data": {
"user": {
"id": 1,
"name": "Alice",
"email": "alice@example.com",
"role": "gestionnaire"
},
"token": {
"name": "Mon mobile",
"abilities": [
"read:indicators"
],
"last_used_at": "2026-06-16T03:00:00Z"
}
}
}
/api/v1/indicateurs
ability : read:indicators
Liste paginée des indicateurs actifs.
Paramètres query
| Paramètre | Description |
|---|---|
per_page |
Nombre par page (1-100, défaut 25) |
type |
Filtre type (activite, resultat, impact) |
kpi |
true/false pour filtrer KPI uniquement |
q |
Recherche dans l'intitulé |
Exemple cURL
curl -H 'Authorization: Bearer sigescs_pat_xxx' 'https://sigescs.com/api/v1/indicateurs?kpi=1&per_page=10'
Exemple de réponse
{
"data": [
{
"id": 42,
"code": "IND-001",
"intitule": "Personnes formées",
"type": "activite",
"unite": "personnes",
"valeur_courante": 1250,
"cible_annuelle": 1500,
"taux_atteinte": 83.3,
"alert_state": "none",
"is_kpi": true
}
],
"meta": {
"page": 1,
"per_page": 25,
"total": 47,
"last_page": 2
}
}
/api/v1/indicateurs/{id}
ability : read:indicators
Détail d'un indicateur.
Exemple cURL
curl -H 'Authorization: Bearer sigescs_pat_xxx' https://sigescs.com/api/v1/indicateurs/42
/api/v1/interventions
ability : read:interventions
Liste paginée des interventions (hors brouillons).
Paramètres query
| Paramètre | Description |
|---|---|
statut |
Filtre par statut (en_cours, termine, approuve…) |
region |
Filtre par nom de région |
annee |
Filtre par année (YYYY) |
q |
Recherche dans l'intitulé |
per_page |
Pagination (max 100) |
Exemple cURL
curl -H 'Authorization: Bearer sigescs_pat_xxx' 'https://sigescs.com/api/v1/interventions?annee=2026®ion=B%C3%A9lier'
/api/v1/structures
ability : read:structures
Liste paginée des structures actives.
Paramètres query
| Paramètre | Description |
|---|---|
type |
Filtre type (ong, ministere, partenaire…) |
region |
Filtre par nom de région |
q |
Recherche dénomination |
Exemple cURL
curl -H 'Authorization: Bearer sigescs_pat_xxx' 'https://sigescs.com/api/v1/structures?type=ong'
/api/v1/stats
ability : read:stats
Statistiques agrégées sur un exercice.
Paramètres query
| Paramètre | Description |
|---|---|
annee |
Année (défaut : année en cours) |
Exemple cURL
curl -H 'Authorization: Bearer sigescs_pat_xxx' 'https://sigescs.com/api/v1/stats?annee=2026'
/api/v1/financements
ability : write:financements
Crée un financement externe. Le `structure_id` doit appartenir au périmètre du token (sinon 403). Throttle écriture dédié (30 req/min).
Exemple cURL
curl -X POST -H 'Authorization: Bearer sigescs_pat_xxx' -H 'Content-Type: application/json' \
-d '{"structure_id":7,"exercice":2026,"bailleur":"PNUD","type":"bailleur","intitule":"Appui cohésion","montant":1500000,"statut":"promis"}' \
https://sigescs.com/api/v1/financements
Exemple de réponse
{
"data": {
"id": 12,
"structure_id": 7,
"exercice": 2026,
"bailleur": "PNUD",
"type": "bailleur",
"intitule": "Appui cohésion",
"montant": 1500000,
"devise": "FCFA",
"statut": "promis"
}
}
/api/v1/financements/{id}
ability : write:financements
Met à jour un financement externe existant. Le financement ciblé et le `structure_id` envoyé doivent rester dans le périmètre du token.
Exemple cURL
curl -X PUT -H 'Authorization: Bearer sigescs_pat_xxx' -H 'Content-Type: application/json' \
-d '{"structure_id":7,"exercice":2026,"bailleur":"PNUD","type":"bailleur","intitule":"Appui cohésion","montant":2000000,"statut":"obtenu"}' \
https://sigescs.com/api/v1/financements/12
3.Webhooks sortants
SIGES-CS pousse des événements vers vos endpoints HTTPS (Slack, Teams, Discord, services maison) avec une signature HMAC-SHA256 vérifiable. Configurez-les depuis votre profil → Webhooks sortants.
Événements souscrivables
intervention.validated
Intervention validée (passage à approuvé)
intervention.terminated
Intervention terminée
intervention.suspended
Intervention suspendue
indicator.alert
Indicateur en alerte (sous/sur performance)
plan.closed
Plan annuel clôturé
rapport.ready
Rapport généré disponible
Format payload
{
"event": "intervention.validated",
"delivered_at": "2026-06-16T03:30:00+00:00",
"data": {
"intervention_id": 42,
"reference": "INT-BLR-2026-001",
"intitule": "Atelier médiation Daloa",
"structure_id": 7,
"region": "Haut-Sassandra",
"validated_by": {
"id": 3,
"name": "Alice Kouassi"
}
}
}
Vérification de la signature
Chaque requête contient le header X-SIGESCS-Signature: sha256=….
Vérifiez-le côté receveur :
// PHP
$expected = 'sha256=' . hash_hmac('sha256', $rawBody, $secret);
if (! hash_equals($expected, $_SERVER['HTTP_X_SIGESCS_SIGNATURE'])) {
http_response_code(401); exit;
}
// Node.js
const expected = 'sha256=' + crypto.createHmac('sha256', SECRET).update(rawBody).digest('hex');
if (!crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(req.headers['x-sigescs-signature']))) {
return res.status(401).end();
}
4.Conventions générales
- Format : JSON uniquement (request & response).
- Pagination :
?per_page=N(1-100, défaut 25). Réponse contientmeta.page,meta.last_page,meta.total. - Erreurs :
401token manquant/invalide,403ability manquante ou user inactif,404ressource introuvable,422validation. - Encodage : UTF-8 partout.
- Cache : pas de cache HTTP — chaque appel est servi en temps réel.
- Traçabilité :
last_used_at+ IP enregistrés à chaque appel sur le token.
Besoin d'aide pour intégrer ? Contactez l'équipe SIGES-CS.