Aller au contenu
CashChap CashChap Docs

Questions fréquentes

Les réponses courtes aux questions les plus posées au support. Chaque réponse renvoie à la page détaillée.

Compte et activation

Puis-je encaisser avant la validation de mon dossier KYC ?

Pas en Live : les clés Live renvoient account_not_activated tant que le dossier n'est pas validé. Oui en mode test avec les clés Sandbox. Activation.

Mon dossier a été refusé, que faire ?

L'e-mail de refus indique la raison. Corrigez le dossier depuis Activer mon compte, en bas du menu du portail, puis cliquez sur Resoumettre le dossier. Après l'envoi.

Puis-je gérer plusieurs boutiques avec un seul compte ?

Oui : créez un service par activité, chacun avec ses clés, ses webhooks, ses terminaux et ses comptes de retrait. Services multiples.

Paiements

Quels opérateurs sont disponibles au Bénin ?

MTN Mobile Money (mtn-benin) et Moov Money (moov-benin). Moyens de paiement.

Je ne sais pas à quel opérateur appartient le numéro du client.

Envoyez "provider": "auto" : CashChap reconnaît l'opérateur d'après le numéro. Si le numéro ne correspond à aucun opérateur, ou à plusieurs, la demande est refusée (provider_required) : vérifiez le numéro ou indiquez l'opérateur. Choix automatique.

Pourquoi le client paie-t-il 1 020 F pour un prix de 1 000 F ?

Parce que les frais sont à sa charge (1,7 % soit 17 F) et que le total est arrondi au multiple de 5 F supérieur. Si vous payez les frais, il paie 1 000 F. Prenez toujours le total calculé par CashChap (amount_charged). Arrondi au 5 F.

Comment savoir si un reçu CashChap est authentique ?

Scannez le QR code du reçu ou de la facture : il ouvre une page sur cashchap.com qui affiche « Paiement authentique » pour un paiement réel, « Paiement de test » pour un paiement Sandbox (sans valeur) ou « Reçu introuvable » pour un reçu modifié ou inventé. Comparez ensuite le montant, la date et le n° de reçu. Voir Contrôler un reçu.

Le client dit avoir payé mais la transaction est failed ou pending.

Le statut reflète la réponse de l'opérateur. pending : le client n'a pas encore validé, attendez. failed ou expired : la raison est dans failure.message. Ne livrez que sur succeeded. Cycle de vie.

Pourquoi l'encaissement répond-il 202 sans dire si le paiement a réussi ?

Parce qu'à cet instant le client n'a pas encore validé sur son téléphone. La réponse confirme la création de la transaction ; le résultat vient de la lecture de la transaction ou du webhook. Lire une transaction.

Mon montant est refusé avec invalid_amount ou amount_too_many_decimals.

amount est un nombre JSON (sans guillemets), sans décimales en XOF, avec au plus les décimales de la devise choisie. Devises.

Un numéro est refusé avec phone_number_blocked.

Le numéro est bloqué par CashChap à la suite d'une fraude avérée : encaissement et retrait vers ce numéro sont refusés. Si vous pensez qu'il s'agit d'une erreur, contactez le support avec la référence de la transaction.

Je reçois 429 too_many_pending_for_phone.

Trop de demandes de paiement ont été envoyées vers ce numéro en peu de temps : CashChap protège le client. Attendez quelques minutes avant de réessayer, sans relancer en boucle. Limites de fréquence.

Comment faire payer les frais au client ?

Dans Compte › Préférences, bloc Frais d'opération, opérateur par opérateur : case décochée (« Frais supportés par le client »), le client paie les frais ; case cochée, vous les prenez à votre charge. Qui paie les frais.

Intégration

Dois-je passer à l'API v2 ?

Oui : la v1 est retirée depuis le 11 octobre 2026 (toute adresse /v1 répond 410). La v2 garde la même logique de paiement avec une seule clé par appel, des réponses régulières et des messages en français. Guide de migration.

Le bouton du SDK ne fait rien au clic.

Ouvrez la console du navigateur : le SDK y écrit l'option manquante ou invalide (clé, montant, devise, adresse de retour). Erreurs d'intégration.

Puis-je utiliser la clé secrète dans mon application mobile ?

Non. La clé secrète donne accès aux retraits et aux données complètes des clients : elle reste sur votre serveur. L'application appelle votre serveur, qui appelle CashChap ; pour un terminal de paiement, utilisez une clé de terminal. Authentification.

J'ai envoyé deux fois la même demande après une coupure réseau.

Si les deux portaient la même Idempotency-Key, une seule transaction existe : la seconde réponse est la copie de la première (Idempotent-Replayed: true). Envoyez aussi une reference unique par commande : un second paiement de la même commande est refusé (duplicate_reference). Idempotence.

Je ne vois plus ma clé secrète dans le portail.

Elle est masquée : cliquez sur Afficher et saisissez votre propre mot de passe (cinq essais par quart d'heure). Elle s'affiche une fois et chaque affichage est inscrit au journal d'activité. Clés API.

Je ne reçois pas mes webhooks.

Vérifiez que le webhook est actif dans le bon environnement (Live ou Sandbox), que l'adresse est en HTTPS avec un certificat valide, sans redirection, et répond 2xx en moins de dix secondes. L'historique des livraisons de Développeurs › Webhooks donne le statut, la tentative, le code HTTP de votre réponse et la dernière erreur, avec un bouton Relancer. Livraison et relances.

Je reçois deux fois le même webhook.

C'est attendu : si votre serveur a répondu trop tard ou hors 2xx, CashChap relance le même envoi. Dédoublonnez avec l'en-tête X-CashChap-Delivery. Bonnes pratiques.

Comment tester un refus ou une attente sans vrai téléphone ?

En mode Sandbox, le numéro choisit le scénario : 2290166000000 réussit, 2290166000012 simule un solde insuffisant, 2290166000001 une attente de 45 secondes. Scénarios.

Je reçois phone_international_required.

Le numéro a été envoyé au format national. Ajoutez l'indicatif du pays, sans « + » : 2290166000000 au lieu de 0166000000 pour le Bénin. Numéros de téléphone.

Où trouver la description complète de l'API pour mon outil ?

Dans la spécification OpenAPI 3.1 (https://cashchap.com/docs/openapi/v2.yaml), à importer dans Postman, Insomnia ou un générateur de client.

Fonds et retraits

Quand mes fonds sont-ils disponibles ?

En général dès la réussite du paiement. CashChap peut différer la mise à disposition ou la soumettre à validation pour un compte ou un service, et geler les fonds d'un paiement en vérification. Chaque encaissement indique available. Mise à disposition des fonds.

Mon paiement est réussi mais le solde disponible n'a pas bougé.

Ouvrez le détail du paiement dans Paiements : il indique si les fonds sont en cours de mise à disposition (avec la date prévue) ou en vérification. Le paiement reste réussi et rien n'est remboursé. Si la situation dure, écrivez au support avec la référence de la transaction. Vérifications.

Pourquoi mon retrait vers un numéro est-il refusé ?

Le numéro doit être un compte autorisé actif du service, le montant entre 10 000 XOF et 5 000 000 XOF et inférieur au disponible. Retraits Mobile Money.

Mon retrait reste « en cours de vérification ».

Le contrôle antifraude l'a retenu : le montant est réservé mais rien n'est envoyé tant que CashChap n'a pas décidé. Validé, il part ; refusé, le montant revient sur votre solde. Vous êtes prévenu par e-mail. Retrait en vérification.

Combien de temps prend un virement bancaire ?

Il est traité manuellement par l'équipe CashChap aux heures ouvrées, après contrôle ; vous êtes prévenu par e-mail et par le webhook withdrawal.success. Vous pouvez l'annuler tant qu'il n'est pas pris en charge. Virements.

Comment rembourser un client ?

Remboursement total du prix (hors frais), dans les 30 jours, débité de votre solde et validé par CashChap. Depuis le détail du paiement, bouton Rembourser. Remboursements.

Besoin d'aide ?

Consultez d'abord Développeurs › Journaux API dans votre portail (méthode, chemin, code HTTP, request_id, requête et réponse), puis écrivez au support depuis cashchap.com/question en indiquant le service, l'environnement, l'identifiant de la transaction, le request_id et le code d'erreur.