SIGES-CSPaix · Cohésion · Unité

Ministère de la Cohésion Nationale, de la Solidarité et de la Lutte contre la PauvretéPlateforme nationale de suivi des interventions de cohésion sociale

Armoiries de la République de Côte d'Ivoire

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

GET /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"
        }
    }
}
GET /api/v1/indicateurs ability : read:indicators

Liste paginée des indicateurs actifs.

Paramètres query

ParamètreDescription
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
    }
}
GET /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
GET /api/v1/interventions ability : read:interventions

Liste paginée des interventions (hors brouillons).

Paramètres query

ParamètreDescription
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&region=B%C3%A9lier'
GET /api/v1/structures ability : read:structures

Liste paginée des structures actives.

Paramètres query

ParamètreDescription
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'
GET /api/v1/stats ability : read:stats

Statistiques agrégées sur un exercice.

Paramètres query

ParamètreDescription
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'
POST /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"
    }
}
PUT /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 contient meta.page, meta.last_page, meta.total.
  • Erreurs : 401 token manquant/invalide, 403 ability manquante ou user inactif, 404 ressource introuvable, 422 validation.
  • 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.