Encaissez avec un lien partageable, ou connectez moneriz à votre application depuis votre serveur.
Copiez le guide Markdown dans ChatGPT, Claude, Cursor ou votre assistant : clés, API, webhooks, iframe et retours vers votre SaaS. Aucune clé secrète n’est incluse.
Dans « Intégration », choisissez une page hébergée ou une iframe, autorisez vos domaines et configurez vos retours. Votre serveur crée une session par commande avec POST /v1/checkout-sessions, une clé secrète et une Idempotency-Key conservée. Envoyez le montant, le titre, une référence unique et vos métadonnées de commande.
La réponse contient checkoutUrl pour rediriger vers moneriz, embedUrl pour l’iframe si un domaine est autorisé, et integrationMode. Le mode et les URL de retour du dashboard s’appliquent si votre serveur ne les précise pas. Aucune charge n’est lancée avant que le client choisisse son moyen dans le checkout.
Les webhooks reprennent votre reference et metadata.checkoutSessionId pour activer la bonne commande après vérification. Une préférence modifiée ne change pas une session existante. La route historique /v1/payments ci-dessous reste disponible pour les intégrations directes au prestataire.
Dans votre espace, ouvrez « Liens de paiement », choisissez un montant fixe ou libre en FCFA, le titre et le pays affiché par défaut. Choisissez un lien à usage unique pour une facture, ou réutilisable pour plusieurs clients. Copiez le lien ou téléchargez son QR code.
Pour un montant libre, le client saisit un entier de 100 à 5 000 000 FCFA avec les limites actuelles par défaut. Le serveur contrôle le montant et le conserve pour la tentative : un rechargement ne crée pas un nouveau paiement. Le nom, le pays et le téléphone sont obligatoires pour tous les moyens sur notre checkout ; l’email reste facultatif.
Votre client n’a pas besoin de compte moneriz : il renseigne ses coordonnées et choisit son pays et son moyen de paiement sur votre page moneriz. Bictorys traite le paiement. Le paiement confirmé apparaît dans votre historique et dans votre solde. Désactiver un lien bloque les nouveaux paiements, sans annuler ceux déjà ouverts chez le prestataire.
Ajoutez une URL de retour après paiement pour renvoyer le client vers votre SaaS ou votre site. Vous pouvez aussi la modifier avec « Configurer le retour ». La redirection intervient après confirmation du paiement ; en cas d’échec, le client peut réessayer sur moneriz. Laissez ce champ vide pour conserver la page de confirmation.
Créer un lien de paiementLa carte bancaire se valide sur la page Bictorys dans un nouvel onglet. Wave ou votre opérateur peuvent également demander une validation externe. Le client revient ensuite au module, qui suit la confirmation. Une URL de retour configurée reste accessible par un bouton, sans charger votre SaaS dans sa propre iframe.
Pour adapter la hauteur ou actualiser votre interface, l’iframe peut envoyer les événements moneriz.ready, moneriz.resize et moneriz.payment à votre domaine autorisé. Vérifiez toujours event.origin et event.source. Ces événements pilotent votre interface ; seul le webhook signé permet de valider l’accès au service.
Un lien réutilisable accepte plusieurs paiements, à montant fixe ou libre. Pour attribuer l’achat à un utilisateur précis, votre serveur doit associer chaque commande à un paiement. Le checkout intégré concerne les liens et sessions moneriz ; l’URL prestataire renvoyée par /v1/payments reste un parcours externe.
Les logos sont stockés dans Cloudflare R2. Le pays du client peut être choisi parmi les pays et territoires du sélecteur ; les moyens Mobile Money dépendent du pays et la carte de son activation chez le prestataire. Un lien réutilisable ne déclenche aucun renouvellement automatique d’abonnement.
Personnaliser mon checkoutCréez un compte, vérifiez votre email puis renseignez votre produit. Enregistrez la clé secrète dans une variable d’environnement de votre serveur. Elle n’est affichée qu’une fois et ne doit être ni publiée dans le navigateur ni transmise à un assistant IA.
Vous pouvez créer plusieurs paires de clés nommées et révoquer celles qui ne servent plus. La clé publique reste visible dans votre espace. Les préfixes izp_live_ désignent la production ; gardez les paires et les endpoints de webhook séparés pour chaque mode.
Le montant est un entier en XOF : 5000 représente 5 000 FCFA. Cet exemple ouvre le parcours hébergé du prestataire. Remplacez les URL d’exemple par celles de votre site.
curl 'https://api.moneriz.com/v1/payments' \
-H "Authorization: Bearer $MONERIZ_SECRET_KEY" \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: commande-2026-001' \
-d '{
"amount": 5000,
"currency": "XOF",
"country": "SN",
"reference": "commande-2026-001",
"successUrl": "https://exemple.sn/merci",
"cancelUrl": "https://exemple.sn/panier"
}'Une réponse 201 fournit id, status, checkoutUrl et nextAction. Redirigez le client vers checkoutUrl. Pour un moyen direct, utilisez paymentType et les champs requis par le catalogue du pays.
L’API serveur peut ouvrir un checkout prestataire sans téléphone lorsque ce parcours le permet. Le checkout moneriz des liens applique sa propre règle : un téléphone est toujours demandé, même pour la carte. Un OTP temporaire, lorsqu’il est exigé, est transmis au prestataire sans être conservé dans le navigateur.
Pour un SaaS, créez un paiement par commande avec une reference unique ou des metadata associées à votre utilisateur. Les champs successUrl et cancelUrl définissent ses pages de retour. Utilisez le webhook pour activer l’accès, même si le client ferme son navigateur avant de revenir.
La redirection du navigateur ne prouve pas le paiement. Activez votre service après réception de payment.succeeded et vérification de la signature X-Moneriz-Signature. Le format est t=<horodatage en ms>,v1=<hex> : HMAC-SHA256 du texte horodatage.corpsBrut, avec le secret de votre endpoint. Contrôlez la fraîcheur de l’horodatage, comparez la signature en temps constant et dédoublonnez avec l’identifiant de l’événement.
Dans Clés & webhook, ajoutez l’URL HTTPS de votre serveur et enregistrez le secret affiché à la création. Traitez aussi les échecs, expirations et annulations de crédit selon votre parcours.
Chaque paiement confirmé retient 5 % de commission moneriz, arrondis à l’entier inférieur en FCFA. Sur 10 000 FCFA, 9 500 FCFA rejoignent le solde en attente. Ils deviennent disponibles 72 heures après la confirmation serveur de cette vente. Un webhook dupliqué ne crédite pas le wallet une seconde fois.
Le marchand demande ensuite un retrait vers son compte de réception. Vérification d’identité, minimum, plafond et contrôles de sécurité peuvent s’appliquer. Le délai du transfert dépend du prestataire ; il ne se confond pas avec les 72 heures de disponibilité. Les opérations et soldes de test restent séparés de la production.
Informez vos clients des données collectées et de leurs usages. Ne placez pas de secrets, de documents d’identité ni de données de carte dans les références et métadonnées. Une relance WhatsApp se prépare manuellement ; le numéro collecté ne constitue pas une autorisation de prospection.
La politique de confidentialité décrit les destinataires et les droits. Consultez aussi les conditions d’utilisation. Le contrat avec le marchand doit préciser les responsabilités de chacun pour le traitement des données.
Idempotency-Key pour rejouer une même demande avec le même contenu.availability vaut unknown n’est pas confirmé disponible. Le catalogue dépend du pays et du compte.MODE_NOT_CONFIGURED signale une configuration serveur manquante.