Tutoriel8 min de lecture

Comment intégrer MonCash sur un site web en 2026 (tutoriel étape par étape)

Tutoriel pas à pas pour accepter des paiements MonCash sur votre site web, avec des exemples concrets en JavaScript, PHP et Python.

Vous voulez que vos clients paient avec MonCash sur votre site web ? Ce tutoriel vous guide à travers chaque étape, du compte marchand au premier paiement encaissé. Comptez environ 30 minutes pour une intégration fonctionnelle.

Étape 1 — Créer votre compte MonCashConnect

  1. 1.Rendez-vous sur moncashconnect.com et cliquez sur « Commencer »
  2. 2.Créez votre compte avec votre email professionnel
  3. 3.Vérifiez votre email et complétez votre profil marchand
  4. 4.Dans le Dashboard → Developer, créez un projet et copiez votre clé sk_proj_…

Étape 2 — Créer un paiement depuis votre backend

La règle d'or : n'appelez jamais l'API directement depuis votre frontend. Votre clé secrète doit rester côté serveur. Voici comment créer une session de paiement depuis votre backend :

javascript
// Node.js / Express — route POST /create-payment
app.post("/create-payment", async (req, res) => {
  const { amount, orderId } = req.body;

  const r = await fetch("https://hvlmeoqyxaguzcujpmit.supabase.co/functions/v1/pay-create", {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${process.env.MONCASH_SECRET_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      amount,
      orderId,
      description: "Commande #" + orderId,
      returnUrl: process.env.SITE_URL + "/success",
      cancelUrl: process.env.SITE_URL + "/cancel",
    }),
  });

  const data = await r.json();
  res.json({ paymentUrl: data.paymentUrl });
});
php
<?php
// PHP — créer une session de paiement
function createMoncashPayment($amount, $orderId) {
    $data = json_encode([
        'amount'      => $amount,
        'orderId'     => $orderId,
        'description' => 'Commande #' . $orderId,
        'returnUrl'   => 'https://votresite.com/success',
        'cancelUrl'   => 'https://votresite.com/cancel',
    ]);

    $ch = curl_init('https://hvlmeoqyxaguzcujpmit.supabase.co/functions/v1/pay-create');
    curl_setopt_array($ch, [
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => $data,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTPHEADER     => [
            'Authorization: Bearer ' . $_ENV['MONCASH_SECRET_KEY'],
            'Content-Type: application/json',
        ],
    ]);

    $response = json_decode(curl_exec($ch), true);
    curl_close($ch);
    return $response['paymentUrl'];
}

Étape 3 — Rediriger l'utilisateur vers MonCash

Une fois que votre backend retourne le paymentUrl, redirigez simplement l'utilisateur vers cette URL. MonCash affiche son interface de paiement. L'utilisateur entre son code PIN et confirme. Vous n'avez rien d'autre à faire côté frontend.

javascript
// Frontend — déclencher le paiement
async function payer(montant, idCommande) {
  const response = await fetch("/create-payment", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({ amount: montant, orderId: idCommande }),
  });
  const { paymentUrl } = await response.json();
  window.location.href = paymentUrl; // Redirection vers MonCash
}

Étape 4 — Traiter le webhook de confirmation

C'est l'étape la plus critique. Quand MonCash confirme le paiement, votre webhook reçoit une notification. C'est ici que vous devez créditer votre client, mettre à jour votre base de données et envoyer la confirmation de commande.

javascript
// Node.js — recevoir et vérifier le webhook
app.post("/webhook/moncash", express.raw({ type: "application/json" }), (req, res) => {
  const signature = req.headers["x-moncashconnect-signature"];
  const isValid = verifyWebhook(req.body, signature, process.env.WEBHOOK_SECRET);

  if (!isValid) return res.status(401).send("Signature invalide");

  const event = JSON.parse(req.body);

  if (event.type === "payment.completed") {
    const { orderId, amount, transactionId } = event.data;
    // Marquer la commande comme payée dans votre DB
    await db.orders.update({ id: orderId }, { status: "paid", transactionId });
    // Envoyer email de confirmation
    await sendConfirmationEmail(orderId);
  }

  res.sendStatus(200); // Important : répondre 200 pour accuser réception
});

Checklist avant la mise en production

  • Remplacer les clés sk_test_… par des clés sk_proj_… de production
  • Tester le webhook avec ngrok ou un tunnel similaire en local
  • Vérifier que returnUrl et cancelUrl sont bien configurées
  • S'assurer que les orderId sont uniques et idempotents
  • Activer les alertes email pour les webhooks échoués dans votre dashboard

MonCashConnect fournit des logs webhook en temps réel dans votre dashboard. Obtenez vos clés API et testez votre première intégration MonCash en sandbox dès maintenant.

Obtenir mes clés API MonCash →

Questions fréquentes

Prêt à intégrer MonCash ?

Créez votre compte gratuitement et obtenez vos clés API en 2 minutes.

Lire aussi