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
amountstring, requisMontant demandé sous forme numérique, ex : "5000.00". Doit respecter le minimum de la devise choisie (voir tableau ci-dessous)
currencystring, requis3 lettres majuscules, une des 8 devises supportées (voir tableau ci-dessous). Normalisée automatiquement en majuscules
payerPhonestring, requisNuméro du payeur : chiffres uniquement, code pays inclus, sans le signe "+". Entre 8 et 15 chiffres. Ex : 22890123456
callbackUrlstring, requisURL HTTPS qui recevra les webhooks. Refusée si elle pointe vers une adresse locale ou privée (localhost, 127.0.0.1, plages internes)
businessNamestring, requisNom affiché au payeur dans la notification qu'il reçoit
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
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
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
API_KEY_MISSING401
Aucune clé API fournie dans les headers
INVALID_API_KEY401
Clé API invalide, révoquée, ou compte introuvable
CURRENCY_NOT_SUPPORTED400
La devise fournie n'est pas dans la liste supportée
AMOUNT_BELOW_MINIMUM400
Le montant est inférieur au minimum autorisé pour cette devise
URL_INVALID400
callbackUrl invalide, non HTTPS, ou pointant vers une adresse interne/privée
PAYER_NOT_ELIGIBLE400
Le numéro fourni n'est lié à aucun compte CaurisPay actif, ou son portefeuille est introuvable
CANNOT_PAY_YOURSELF400
Le numéro du payeur correspond à votre propre compte
INSUFFICIENT_BALANCE409
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.