Envoie une notification à un utilisateur CaurisPay pour lui demander un paiement. Le payeur confirme depuis son application avec son code PIN, et le montant est débité de son portefeuille vers le vôtre.
X-Api-KeyrequisVotre clé publique, obtenue depuis votre espace développeur
X-Api-SecretrequisVotre clé secrète, jamais exposée côté client
Content-Typerequisapplication/json
Paramètres
NomTypeDescription
amountstringrequisMontant demandé sous forme numérique, ex : "5000.00". Doit respecter le minimum de la devise choisie (voir tableau ci-dessous)
currencystringrequis3 lettres majuscules, une des 8 devises supportées (voir tableau ci-dessous). Normalisée automatiquement en majuscules
payerPhonestringrequisNuméro du payeur : chiffres uniquement, code pays inclus, sans le signe "+". Entre 8 et 15 chiffres. Ex : 22890123456
callbackUrlstringrequisURL HTTPS qui recevra les webhooks. Refusée si elle pointe vers une adresse locale ou privée (localhost, 127.0.0.1, plages internes)
Devises supportées
Chaque devise a un montant minimum propre, exprimé dans cette devise. En interne, CaurisPay convertit toujours le montant vers le XOF (devise pivot) avant de vérifier le solde du payeur.
DeviseMontant minimum
XOF250
EUR0.38
GHS2.25
GNF2 500
KES50
NGN187.5
USD0.45
ZAR6.25
Attention
Toute demande sous le minimum de sa devise est refusée avec le code AMOUNT_BELOW_MINIMUM.
Expiration
Une demande de paiement est valable 5 minutes à partir de sa création. Si le payeur ne confirme pas avant la date indiquée dans expiresAt, la demande passe automatiquement au statut expired et ne peut plus être payée. Un webhook payment_request.expired vous est envoyé à ce moment-là.
Réponse — 201 Created
NomTypeDescription
successbooleantrue si la demande a été créée
messagestringMessage lisible décrivant le résultat
statusstringStatut initial de la demande : notified
tokenstringIdentifiant de la demande, à utiliser pour la consulter, l'annuler, ou faire le lien avec les webhooks reçus
expiresAtstring (ISO 8601)Date et heure d'expiration automatique de la demande (5 minutes après création)
Codes d'erreur
401API_KEY_MISSING
Aucune clé API fournie dans les headers
401INVALID_API_KEY
Clé API invalide, révoquée, ou compte introuvable
400CURRENCY_NOT_SUPPORTED
La devise fournie n'est pas dans la liste supportée
400AMOUNT_BELOW_MINIMUM
Le montant est inférieur au minimum autorisé pour cette devise
400URL_INVALID
callbackUrl invalide, non HTTPS, ou pointant vers une adresse interne/privée
400PAYER_NOT_ELIGIBLE
Le numéro fourni n'est lié à aucun compte CaurisPay actif, ou son portefeuille est introuvable
400CANNOT_PAY_YOURSELF
Le numéro du payeur correspond à votre propre compte
409INSUFFICIENT_BALANCE
Le solde du payeur est insuffisant pour ce montant
Webhooks associés
Une fois la demande créée, CaurisPay notifie votre callbackUrl à chaque changement de statut :
payment_request.notifiedEnvoyé immédiatement après la création
payment_request.paidLe payeur a confirmé, le transfert est exécuté
payment_request.rejectedLe payeur a explicitement refusé
payment_request.expiredDélai de 5 minutes dépassé sans réponse
payment_request.cancelledAnnulée par vous via l'endpoint DELETE
Détail du format et de la vérification de signature dans le guide Webhooks.