YELEN CORE — Documentation API

Référence technique des APIs, authentification et intégration

APIs Disponibles

Apache Fineract — Core Banking API

https://api.yelen.io/api/

Gestion des clients, comptes d'épargne, crédits, comptabilité générale, reporting réglementaire.

HR & Paie API

https://hr.yelen.io/api/v1/

Gestion des employés, bulletins de paie, congés, absences, avances, stagiaires, prestataires, portail employé.

Keycloak — IAM & Authentification

https://auth.yelen.io/

Gestion des utilisateurs, rôles, authentification OIDC/OAuth2, SSO. Realm : mufedeb

Apache Superset — BI & Reporting

https://superset.yelen.io/

Tableaux de bord interactifs, rapports BCEAO, analyse de portefeuille de crédits, requêtes SQL.

Mobile Money Gateway

https://pay.yelen.io/

Passerelle de paiement mobile : dépôts, retraits, transferts via Orange Money et Moov Money.

GED — Gestion Électronique des Documents

https://ged.yelen.io/

Archivage numérique avec OCR automatique (français). Gestion des pièces KYC, contrats, PV, courriers réglementaires. Propulsé par Paperless-ngx.

Guide d'Authentification

Toutes les APIs sont protégées par Keycloak (OpenID Connect). Le client OIDC est yelen-web-app dans le realm mufedeb.

ParamètreValeur
Token Endpointhttps://auth.yelen.io/realms/mufedeb/protocol/openid-connect/token
Authorization Endpointhttps://auth.yelen.io/realms/mufedeb/protocol/openid-connect/auth
Client IDyelen-web-app
Grant Typepassword (service) ou authorization_code (SPA)
Realmmufedeb

Obtenir un token d'accès

Envoyez vos identifiants au endpoint token de Keycloak pour recevoir un JWT.

Inclure le token dans les requêtes

Ajoutez le header Authorization: Bearer <token> à chaque appel API.

Rafraîchir le token

Utilisez le refresh_token pour obtenir un nouveau token sans re-saisir les identifiants.

Exemples d'Appels API (curl)

1. Obtenir un token Keycloak

# Authentification - obtenir un JWT
curl -X POST https://auth.yelen.io/realms/mufedeb/protocol/openid-connect/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=password" \
  -d "client_id=yelen-web-app" \
  -d "username=VOTRE_USER" \
  -d "password=VOTRE_MDP"

# Réponse : { "access_token": "eyJ...", "refresh_token": "eyJ...", "expires_in": 300 }

2. Lister les employés (HR API)

# GET /api/v1/employees - Liste paginée des employés
curl -X GET https://hr.yelen.io/api/v1/employees?page=1&size=20 \
  -H "Authorization: Bearer eyJ..."

# Filtrer par agence
curl -X GET https://hr.yelen.io/api/v1/employees?agence_id=1&statut=actif \
  -H "Authorization: Bearer eyJ..."

3. Générer un bulletin de paie (HR API)

# POST /api/v1/payroll/generate - Générer les bulletins du mois
curl -X POST https://hr.yelen.io/api/v1/payroll/generate \
  -H "Authorization: Bearer eyJ..." \
  -H "Content-Type: application/json" \
  -d '{"mois": 4, "annee": 2026}'

4. Créer un client Fineract (Core Banking)

# POST /api/v1/clients - Créer un nouveau client
curl -X POST https://api.yelen.io/api/v1/clients \
  -H "Authorization: Basic VOTRE_AUTH_FINERACT" \
  -H "Fineract-Platform-TenantId: default" \
  -H "Content-Type: application/json" \
  -d '{
    "officeId": 1,
    "firstname": "Amidou",
    "lastname": "OUEDRAOGO",
    "active": true,
    "locale": "fr",
    "dateFormat": "dd MMMM yyyy",
    "activationDate": "01 avril 2026"
  }'

5. Rafraîchir un token expiré

# Rafraîchir le token avec le refresh_token
curl -X POST https://auth.yelen.io/realms/mufedeb/protocol/openid-connect/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=refresh_token" \
  -d "client_id=yelen-web-app" \
  -d "refresh_token=eyJ..."

Endpoints HR & Paie (référence rapide)

MéthodeEndpointDescription
GET/api/v1/employeesListe des employés
POST/api/v1/employeesCréer un employé
GET/api/v1/employees/{id}Détail employé
PUT/api/v1/employees/{id}Modifier un employé
POST/api/v1/payroll/generateGénérer les bulletins
GET/api/v1/payroll/payslipsListe des bulletins
GET/api/v1/payroll/payslip/{id}/pdfTélécharger PDF
GET/api/v1/leavesListe des congés
POST/api/v1/leavesDemander un congé
GET/api/v1/absencesListe des absences
GET/api/v1/advancesListe des avances
GET/api/v1/internsListe des stagiaires
GET/api/v1/contractorsListe des prestataires
GET/api/v1/hr/dashboardTableau de bord RH
GET/api/v1/hr-payroll/healthHealth check

Documentation complète interactive : Swagger UI | ReDoc

API GED / Paperless-ngx (référence rapide)

Base URL : https://ged.yelen.io/api/ — Authentification : Authorization: Token <token>

MéthodeEndpointDescription
POST/api/token/Obtenir un token d'authentification
GET/api/documents/Liste des documents
POST/api/documents/post_document/Uploader un document
GET/api/documents/{id}/download/Télécharger un document
GET/api/documents/{id}/preview/Prévisualiser un document
GET/api/tags/Liste des tags
GET/api/correspondents/Liste des correspondants
GET/api/document_types/Liste des types de documents

Exemple : uploader un document

# Obtenir un token
curl -X POST https://ged.yelen.io/api/token/ \
  -H "Content-Type: application/json" \
  -d '{"username":"yelen-admin","password":"..."}'

# Uploader un fichier avec tag et correspondant
curl -X POST https://ged.yelen.io/api/documents/post_document/ \
  -H "Authorization: Token eyJ..." \
  -F "[email protected]" \
  -F "title=Contrat Credit 2026-001" \
  -F "correspondent=1" \
  -F "document_type=2" \
  -F "tags=2"

Documentation complète : API Paperless-ngx | Interface GED

API Tontine \& Doni-Doni

M\éthodeEndpointDescription
GET/api/v1/tontines/groupsListe des groupes tontine
POST/api/v1/tontines/groupsCr\éer un groupe
GET/api/v1/tontines/groups/{id}D\étail d'un groupe (membres, cycles)
POST/api/v1/tontines/groups/{id}/membersAjouter un membre
POST/api/v1/tontines/groups/{id}/cyclesD\émarrer un cycle
POST/api/v1/tontines/contributionsEnregistrer une cotisation
POST/api/v1/tontines/cycles/{id}/distributeDistribuer au b\én\éficiaire
GET/api/v1/tontines/groups/{id}/reportRapport du groupe
Doni-Doni (Collecte journali\ère)
GET/api/v1/doni-doni/carnetsListe des carnets
POST/api/v1/doni-doni/carnetsCr\éer un carnet
GET/api/v1/doni-doni/carnets/{id}D\étail carnet (collectes, versements)
POST/api/v1/doni-doni/collectesEnregistrer une collecte
POST/api/v1/doni-doni/collectes/batchSync offline (lot de collectes)
POST/api/v1/doni-doni/versementsVerser au compte \épargne
GET/api/v1/doni-doni/agent/{id}/todayCollectes du jour (vue agent)

Documentation Swagger : API Tontine | Interface Web

Limites & Sécurité

ServiceLimiteFenêtre
APIs (Fineract, HR, Superset, Webapp, Tontine)100 requêtespar minute
Authentification (Keycloak)20 requêtespar minute

En cas de dépassement, l'API retourne HTTP 429 Too Many Requests. Les headers X-RateLimit-Remaining-Minute et RateLimit-Reset indiquent le quota restant.