Skip to main content

Base URL

Toutes les requêtes doivent être adressées à :

Authentification

Toutes les routes marchand nécessitent votre clé API secrète, transmise dans le header Authorization au format Bearer :
Utilisez une clé sk_test_... en environnement de test, sk_live_... en production. Retrouvez vos clés API dans votre tableau de bord, section Développeur.
Votre clé secrète donne accès complet à votre compte marchand (encaissement, retraits, solde). Ne l’exposez jamais côté client (navigateur, application mobile) — utilisez-la uniquement depuis votre backend.

Format des réponses

Toutes les réponses de l’API partagent la même enveloppe, qu’il s’agisse d’un succès ou d’une erreur.
Le champ error prend deux formes selon le type d’erreur :
  • Erreur métier ({"message": "...", "code": "..."}) — un code d’erreur stable que vous pouvez tester dans votre code, ex. insufficient_balance, merchant_suspended.
  • Erreur de validation ({"champ": ["message"], "autre_champ": ["message"]}) — une entrée par champ invalide du corps de la requête.

Codes d’erreur HTTP

Idempotence

Le header Idempotency-Key est optionnel : c’est vous qui décidez, requête par requête, si AlphaPay doit dédupliquer.
Sans le header — chaque appel est traité comme une intention nouvelle. Deux requêtes identiques créent deux opérations distinctes. Avec le header — une valeur unique que vous générez par intention logique d’opération (un UUID, par exemple) :
Optionnel ne veut pas dire facultatif en pratique. Sur les endpoints qui déplacent de l’argentPOST /payments/softpay/initialize/, POST /payouts/initialize/, POST /settlements/, POST /wallet-transfers/, POST /payments/{id}/retry/ — un retry réseau sans clé crée un second débit réel. Envoyez-la systématiquement sur ces routes.
Générez une nouvelle Idempotency-Key à chaque nouvelle intention de paiement, mais réutilisez la même clé pour chaque retry réseau de cette même tentative. Un timeout ou une coupure réseau n’est jamais la preuve que la requête a échoué : elle a pu aboutir côté serveur.

Limite de débit

Les appels authentifiés (clé API ou dashboard) sont limités à 300 requêtes par minute par compte par défaut. Un dépassement renvoie 429 Too Many Requests. Espacez vos appels ou mettez en cache les réponses peu volatiles (ex. liste des pays/réseaux supportés).

Ressources

Paiements

Encaissez via checkout hébergé ou softpay

Liens de paiement

Créez des liens de paiement réutilisables

Retraits

Payez un bénéficiaire en mobile money

Wallet

Consultez vos soldes et les taux de change

Webhooks

Recevez vos événements en temps réel

Créer un compte

Inscription, KYC, première clé API