API Reference
Documentation complète de l'API REST YengaPay.
Base URL
| Environnement | URL |
|---|---|
| Production | https://api.yengapay.com/api/v1 |
Authentification
Toutes les requêtes API nécessitent une clé API dans le header Authorization :
curl -X GET https://api.yengapay.com/api/v1/project \
-H "Authorization: Bearer sk_live_votre_cle_secrete"
Format des requêtes
- Content-Type :
application/json - Encoding : UTF-8
Format des réponses
Succès
{
"id": "pi_abc123",
"status": "COMPLETED",
"amount": 1000,
"currency": "XOF",
"createdAt": "2024-01-15T10:30:00Z"
}
Erreur
{
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid amount",
"details": {
"field": "amount",
"reason": "Amount must be at least 100"
},
"requestId": "req_xyz789"
}
}
Codes de statut HTTP
| Code | Description |
|---|---|
| 200 | Succès |
| 201 | Créé |
| 400 | Requête invalide |
| 401 | Non authentifié |
| 403 | Non autorisé |
| 404 | Non trouvé |
| 429 | Trop de requêtes |
| 500 | Erreur serveur |
Pagination
Les endpoints de liste supportent la pagination :
GET /v1/payments?page=1&limit=20
Paramètres
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
page | integer | 1 | Numéro de page |
limit | integer | 20 | Éléments par page (max: 100) |
Réponse paginée
{
"data": [...],
"pagination": {
"page": 1,
"limit": 20,
"total": 150,
"totalPages": 8
}
}
Rate Limiting
| Environnement | Limite |
|---|---|
| Sandbox | 100 req/min |
| Production | 1000 req/min |
Headers de réponse :
X-RateLimit-Limit: Limite totaleX-RateLimit-Remaining: Requêtes restantesX-RateLimit-Reset: Timestamp de reset
Endpoints
Payment Intent
| Méthode | Endpoint | Description |
|---|---|---|
| POST | /payment-intent | Créer un PaymentIntent |
| GET | /payment-intent/:id | Récupérer un PaymentIntent |
| DELETE | /payment-intent/:id | Annuler un PaymentIntent |
Direct Payment
| Méthode | Endpoint | Description |
|---|---|---|
| POST | /direct-payment/init | Initialiser une session |
| POST | /direct-payment/pay | Déclencher le paiement |
| POST | /direct-payment/otp | Envoyer l'OTP |
| GET | /direct-payment/:id/status | Vérifier le statut |
Payout
| Méthode | Endpoint | Description |
|---|---|---|
| POST | /payout | Créer un décaissement |
| POST | /payout/bulk | Créer des décaissements bulk |
| GET | /payout/:id | Récupérer un décaissement |
| GET | /payout | Lister les décaissements |
Campaign
| Méthode | Endpoint | Description |
|---|---|---|
| POST | /campaign | Créer une campagne |
| POST | /campaign/:id/recipients | Ajouter des bénéficiaires |
| POST | /campaign/:id/execute | Exécuter la campagne |
| GET | /campaign/:id | Récupérer une campagne |
Cash Out
| Méthode | Endpoint | Description |
|---|---|---|
| POST | /cashout | Créer un retrait |
| GET | /cashout/:id | Récupérer un retrait |
Project
| Méthode | Endpoint | Description |
|---|---|---|
| GET | /project | Récupérer le projet |
| GET | /project/balance | Récupérer le solde |
| GET | /project/operators | Lister les opérateurs |
Webhooks
| Méthode | Endpoint | Description |
|---|---|---|
| GET | /webhooks | Lister les webhooks |
| POST | /webhooks | Créer un webhook |
| DELETE | /webhooks/:id | Supprimer un webhook |
| POST | /webhooks/:id/test | Tester un webhook |
Documentation interactive
Utilisez la documentation Swagger pour tester les endpoints directement :
SDKs
Nous recommandons d'utiliser nos SDKs officiels plutôt que d'appeler l'API directement :