Documentation API SBPAYGO
Intégrez facilement les paiements Mobile Money, cartes bancaires et virements dans votre application avec notre API RESTful simple et puissante.
Sécurisé
HTTPS + HMAC signatures
Rapide
< 200ms latence
Multi-région
144+ pays
Webhooks
Temps réel
URL de base
https://api.sbpaygo.comDémarrage rapide
Suivez ces étapes pour intégrer SBPAYGO en moins de 5 minutes.
Testez avec le mode sandbox
Utilisez vos clés de test (préfixe _test_) pour simuler des paiements.
Créez votre premier paiement
Effectuez un appel API pour initier un paiement.
curl -X POST https://api.sbpaygo.com/api/gateway/payments \
-H "Authorization: Bearer sbpaygo_sk_test_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"amount": 10000,
"currency": "XOF",
"provider": "wave",
"customer_email": "client@email.com",
"description": "Commande #123",
"success_url": "https://monsite.com/success",
"cancel_url": "https://monsite.com/cancel"
}'Authentification
L'API SBPAYGO utilise des clés API pour authentifier les requêtes. Vous recevez deux types de clés :
Clé de test
sbpaygo_sk_test_xxxxxPour le développement et les tests
Clé de production
sbpaygo_sk_live_xxxxxPour les transactions réelles
Incluez votre clé API dans le header de chaque requête :
# Pour les endpoints de paiement
Authorization: Bearer sbpaygo_sk_test_xxxxx
# Pour les endpoints de portefeuille
X-API-Key: sbpaygo_sk_test_xxxxxImportant - Sécurité
Ne partagez jamais vos clés secrètes. Ne les incluez jamais dans votre code frontend. Utilisez uniquement les clés côté serveur.
SDKs officiels
Installez nos bibliothèques officielles pour intégrer SBPAYGO encore plus rapidement.
import { SBPaygo } from '@sbpaygo/sdk';
const sbpaygo = new SBPaygo('sbpaygo_sk_test_xxxxx');
// Create a payment
const payment = await sbpaygo.payments.create({
amount: 10000,
currency: 'XOF',
provider: 'wave',
customerEmail: 'client@email.com'
});
// Get wallet balance
const balance = await sbpaygo.wallet.getBalance();
console.log('Balance:', balance.balances);
// Request a withdrawal
const withdrawal = await sbpaygo.withdrawals.create({
amount: 5000,
currency: 'XOF',
method: 'mobile_money_wave',
destination: { phone: '+221771234567' }
});Dépôts
Permettez à vos utilisateurs d'ajouter des fonds à leur portefeuille marchand.
/api/gateway/depositcurl -X POST https://api.sbpaygo.com/api/gateway/deposit \
-H "Authorization: Bearer sbpaygo_sk_test_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"amount": 50000,
"currency": "XOF",
"method": "wave",
"return_url": "https://monsite.com/wallet"
}'Retraits
Transférez des fonds depuis votre portefeuille marchand vers Mobile Money ou compte bancaire.
| Méthode | Frais | Délai |
|---|---|---|
| Wave | 0.5% | Instantané |
| Orange Money | 1% | Instantané |
| Virement bancaire | 1% | 2-3 jours |
/api/gateway/wallet/withdrawalcurl -X POST https://api.sbpaygo.com/api/gateway/wallet/withdrawal \
-H "X-API-Key: sbpaygo_sk_test_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"amount": 25000,
"currency": "XOF",
"method": "mobile_money_wave",
"destination": {
"phone": "+221771234567"
}
}'Webhooks
Recevez des notifications en temps réel lorsque des événements se produisent sur votre compte.
payment.pendingPaiement en attente de confirmationpayment.successPaiement confirmé et réussipayment.failedPaiement échouédeposit.completedDépôt crédité sur le comptewithdrawal.createdDemande de retrait crééewithdrawal.completedRetrait effectué avec succèswithdrawal.failedRetrait échouéfrom flask import Flask, request
import hmac
import hashlib
app = Flask(__name__)
WEBHOOK_SECRET = "your_webhook_secret"
def verify_signature(payload, signature):
expected = hmac.new(
WEBHOOK_SECRET.encode(),
payload,
hashlib.sha256
).hexdigest()
return hmac.compare_digest(signature, expected)
@app.route('/webhook', methods=['POST'])
def handle_webhook():
signature = request.headers.get('X-SBPAYGO-Signature')
if not verify_signature(request.data, signature):
return {"error": "Invalid signature"}, 401
event = request.json
if event['event'] == 'payment.success':
payment = event['data']
# Update order status in your database
print(f"Payment {payment['payment_id']} succeeded!")
elif event['event'] == 'withdrawal.completed':
withdrawal = event['data']
print(f"Withdrawal {withdrawal['withdrawal_id']} completed!")
return {"received": True}, 200Codes d'erreur
L'API utilise les codes HTTP standards. Voici les codes les plus courants :
| Code | Nom | Description |
|---|---|---|
400 | Bad Request | Requête invalide ou paramètres manquants |
401 | Unauthorized | Clé API manquante ou invalide |
403 | Forbidden | Accès refusé (compte inactif ou permissions insuffisantes) |
404 | Not Found | Ressource non trouvée |
422 | Validation Error | Erreur de validation des données |
429 | Rate Limited | Trop de requêtes (limite: 100/min) |
500 | Server Error | Erreur interne du serveur |
Référence API complète
Liste de tous les endpoints disponibles.
| Méthode | Endpoint | Description | Tag |
|---|---|---|---|
POST | /api/gateway/payments | Créer un paiement | Paiements |
GET | /api/gateway/payments/:id | Obtenir un paiement | Paiements |
GET | /api/gateway/payments | Lister les paiements | Paiements |
POST | /api/gateway/deposit | Créer un dépôt | Portefeuille |
GET | /api/gateway/wallet/balance | Obtenir le solde | Portefeuille |
POST | /api/gateway/wallet/withdrawal | Demander un retrait | Portefeuille |
GET | /api/gateway/wallet/transactions | Historique transactions | Portefeuille |
GET | /api/gateway/wallet/withdrawals | Historique retraits | Portefeuille |
POST | /api/gateway/merchants | Créer un compte marchand | Marchands |
GET | /api/gateway/dashboard | Tableau de bord | Marchands |
