Skip to main content

API Reference

L’API SahelPay est une API REST qui utilise JSON pour les requêtes et réponses.

Base URL

EnvironnementURL
Sandboxhttps://sandbox.sahelpay.ml
Productionhttps://api.sahelpay.ml

Authentification

Toutes les requêtes doivent inclure votre clé secrète dans le header Authorization :
Authorization: Bearer sk_test_xxx

Format des réponses

Succès

{
  "success": true,
  "data": {
    // Données de la ressource
  }
}

Erreur

{
  "success": false,
  "error": {
    "code": "INVALID_AMOUNT",
    "message": "Le montant doit être supérieur à 100 FCFA"
  }
}

Codes d’erreur HTTP

CodeDescription
200Succès
400Requête invalide
401Non authentifié
403Accès refusé
404Ressource non trouvée
429Rate limit dépassé
500Erreur serveur

Rate Limiting

L’API est limitée à 100 requêtes par minute par clé API. Headers de réponse :
  • X-RateLimit-Limit: Limite totale
  • X-RateLimit-Remaining: Requêtes restantes
  • X-RateLimit-Reset: Timestamp de reset

Idempotence

Pour éviter les doublons, utilisez le header X-Idempotency-Key :
X-Idempotency-Key: order-123
Les requêtes avec la même clé d’idempotence retournent le même résultat.

Endpoints disponibles

Paiements

EndpointMéthodeDescription
/v1/paymentsPOSTCréer un paiement
/v1/payments/{id}GETRécupérer un paiement
/v1/payments/{id}/statusGETVérifier le statut
/v1/payments/{id}/detailsGETDétails complets (fees, ledger)
/v1/payments/{id}/reconcilePOSTRéconcilier manuellement
/v1/payments/searchGETRechercher par référence client
/v1/payments/historyGETLister les paiements

Liens de paiement

EndpointMéthodeDescription
/v1/payment-linksPOSTCréer un lien de paiement
/v1/payment-linksGETLister les liens
/v1/payment-links/{slug}GETRécupérer un lien

Payouts (Envoi d’argent)

EndpointMéthodeDescription
/v1/payoutsPOSTCréer un payout
/v1/payouts/{id}GETRécupérer un payout
/v1/payoutsGETLister les payouts
/v1/payouts/{id}DELETEAnnuler un payout
/v1/payouts/statsGETStatistiques des payouts

Plans d’abonnement

EndpointMéthodeDescription
/v1/plansPOSTCréer un plan
/v1/plansGETLister les plans
/v1/plans/{id}GETRécupérer un plan
/v1/plans/{id}/deactivatePATCHDésactiver un plan
/v1/plans/{id}DELETESupprimer un plan
/v1/public/plansGETPlans publics (sans auth)

Abonnements

EndpointMéthodeDescription
/v1/subscriptionsPOSTCréer un abonnement
/v1/subscriptionsGETLister les abonnements
/v1/subscriptions/{id}GETRécupérer un abonnement
/v1/subscriptions/{id}DELETEAnnuler un abonnement
/v1/subscriptions/with-paymentPOSTCréer abonnement + lien paiement

Customer Portal

EndpointMéthodeDescription
/v1/portal/sessionsPOSTCréer une session portail client

Remboursements

EndpointMéthodeDescription
/v1/refundsPOSTCréer un remboursement
/v1/refundsGETLister les remboursements

Webhooks

EndpointMéthodeDescription
/v1/webhooks/{provider}POSTEndpoint webhook (configuré dans dashboard)

Utilitaires

EndpointMéthodeDescription
/v1/payments/providersGETListe des providers disponibles
/v1/payments/recommendGETRecommander un provider par téléphone
/v1/providers/enabledGETProviders activés par pays