Aller au contenu

Encaisser des paiements

Les quatre façons d'encaisser un paiement, ce que chacune vous coûte en code, et la suite.

Quatre façons d'encaisser un paiement, qui ne diffèrent que par qui affiche l'écran où le client confirme. Les opérateurs que vous atteignez, les webhooks que vous recevez et les remboursements que vous pouvez émettre sont les mêmes dans les quatre.

Quatre points d'entrée

Recommandé

Checkout hébergé

Créez le paiement, redirigez vers l'authorization_url, traitez le webhook. Wajub affiche le choix de l'opérateur, la demande de confirmation et le résultat.

Dans votre page

Composants intégrés

Le même checkout, monté dans votre propre mise en page avec le jeton de session. React, Vue, Svelte, Angular ou JavaScript vanilla.

Sans code

Liens de paiement

Une URL à partager ou un QR code, sans aucune intégration. Production uniquement, et 25 liens sur le plan Pay as you go.

Contrôle total

API directe

Vous collectez le numéro et appelez POST /payments/{id} vous-même. La demande de confirmation arrive sur le téléphone, vous affichez tout le reste.

Vous hésitez ? Choisir une intégration compare les quatre sur le code, la personnalisation et les cas d'usage. Si vous préférez en voir un fonctionner avant de choisir, le Démarrage rapide mène un paiement sandbox de zéro jusqu'à un webhook vérifié.

Moyens de paiement

Le Mobile Money est la colonne vertébrale : MTN, Orange, Wave, Airtel, Moov et M-Pesa, dans une douzaine de pays. Les cartes et les virements bancaires domestiques sont disponibles là où l'opérateur les prend en charge. Les canaux sont nommés country.operator : cm.mtn est MTN Mobile Money au Cameroun et sn.wave est Wave au Sénégal.

La matrice complète des pays et des opérateurs se trouve dans Moyens de paiement et canaux, et les formats de numéro acceptés par chaque opérateur dans Formats de numéros de téléphone. Un mauvais format de numéro fait échouer le paiement avant même que le client voie une demande de confirmation : cette deuxième page mérite d'être lue une fois.

Les deux appels

Créer un paiement ne débite jamais personne. POST /payments enregistre l'intention, la garde en pending, et vous renvoie l'URL d'une page hébergée et un jeton de session utilisable dans le navigateur. Rien n'a encore atteint un opérateur.

C'est le second appel qui débite. Le Checkout hébergé, les Composants intégrés et les liens de paiement le font pour vous. Seule l'API directe vous le laisse : vous collectez vous-même le numéro de téléphone, puis vous envoyez POST /payments/{id} avec un channel et les détails du paiement.

Ressources de l'API

Les paiements partagent une seule API avec tous les autres produits. Voici les ressources qu'ils appellent ; les paramètres et les réponses complets se trouvent dans la Référence API.

EndpointMéthodesUtilisé pour
/paymentsGET POST DELETECréer, lister, récupérer et annuler un paiement
/payments/{id}POSTLe débiter sur un canal, et ses /splits pour les échéances, sur le Mobile Money en live
/payments/{id}/activatePOSTCréer un paiement préparé avec deferred: true une fois la commande passée, pour des champs de paiement affichés avant que la commande existe. Avant cela, PATCH /payments/{id} change son montant
/refundsGET POSTÉmettre un remboursement et le suivre
/customersGET POST PUT DELETEClients récurrents, plus blocage et désactivation
/disputesGET POSTPreuves, acceptation, clôture et messages
/linksGET POST PUT DELETELiens de paiement. Production uniquement

Les appels de paiement standard n'ont besoin d'aucun en-tête propre au produit. Une marketplace qui attribue le paiement à l'un de ses sous-comptes ajoute X-Sync: acc_… au même appel, comme décrit dans Sync → Ressources de l'API.

Après le paiement

BesoinOù
Connaître le résultat au moment où il arriveWebhooks
Comprendre chaque état et ses transitionsCycle de vie d'un paiement
Rembourser un paiementRemboursements
Traiter un litige ou une rétrofacturationLitiges
Reconnaître un client récurrentClients
Choisir entre webhooks et pollingWebhooks ou polling

Que pensez-vous de ce contenu ?