· 4 min · TextMeFlow Team

WhatsApp-betaalbevestigingen via Mollie-webhooks — zonder extra koppeling

Mollie is de betaalprovider van de meeste Belgische en Nederlandse webshops, en stuurt voor elke statuswijziging van een betaling een webhook naar jouw server. De meeste shops laten dat signaal stoppen bij een orderstatus in de database of een interne Slack-melding. Datzelfde signaal rechtstreeks doorsturen naar WhatsApp zet een betaalbevestiging — of een duidelijke melding bij een mislukte betaling — binnen enkele seconden op het scherm van de klant, in het kanaal dat die al open heeft staan.

Waarom rechtstreeks vanuit de webhook

Je hebt geen aparte "WhatsApp voor Mollie"-app of -plugin nodig. De Mollie-webhook geeft je alleen een betalings-ID; de rest haal je met één API-call op bij Mollie zelf. Een kleine ontvanger die dat antwoord doorzet naar de messages-API van TextMeFlow kost niets extra boven je bestaande berichtenquota, en je houdt zelf de controle over tekst, triggers en welke statussen echt een bericht verdienen.

Stap 1: webhook-URL instellen bij Mollie

Bij het aanmaken van een betaling (via de Payments API of een plugin zoals WooCommerce/Mollie) geef je een webhookUrl mee. Mollie doet daarna een POST naar die URL zodra de status van de betaling verandert — niet alleen bij succes, maar bij elke wijziging (open, geslaagd, mislukt, verlopen, geannuleerd).

curl -X POST https://api.mollie.com/v2/payments \
  -H "Authorization: Bearer live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": {"currency": "EUR", "value": "49.00"},
    "description": "Bestelling #4821",
    "redirectUrl": "https://jouwshop.be/bedankt",
    "webhookUrl": "https://jouwshop.be/webhooks/mollie",
    "metadata": {"customer_phone": "+32470123456"}
  }'

Zet het telefoonnummer van de klant in metadata op het moment dat je de betaling aanmaakt. Mollie's webhook-payload bevat zelf geen telefoonnummer — als je het niet hier meegeeft, heb je bij de bevestiging niets om naar te versturen.

Stap 2: de webhook ontvangen en de status opvragen

Mollie's webhook-body bevat alleen een id — geen bedrag, geen status, geen klantgegevens. Dat is geen tekortkoming maar net de bedoeling: je haalt de betaling altijd zelf opnieuw op bij Mollie, zodat je nooit afgaat op iets dat in de POST-call zelf zou kunnen zijn gemanipuleerd.

app.post('/webhooks/mollie', express.urlencoded({ extended: false }), async (req, res) => {
  const paymentId = req.body.id;
  res.status(200).send('ok'); // bevestig meteen, verwerk daarna

  const payment = await mollieClient.payments.get(paymentId);
  const phone = payment.metadata?.customer_phone;
  if (!phone) return;

  if (payment.status === 'paid') {
    await sendPaymentConfirmation(phone, payment);
  } else if (payment.status === 'failed' || payment.status === 'expired') {
    await sendPaymentFailed(phone, payment);
  }
});

Bevestig de webhook-call altijd meteen met een 200, en doe de eigenlijke verwerking — de call naar Mollie, de WhatsApp-send — daarna. Mollie geeft je maar een paar seconden en retried anders agressief, wat zonder deduplicatie tot dubbele berichten leidt.

Stap 3: de WhatsApp-bevestiging versturen

curl -X POST https://api.textmeflow.eu/v1/messages \
  -H "Authorization: Bearer $TEXTMEFLOW_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+32470123456",
    "text": "Hoi Sarah, we ontvingen je betaling van 49,00 EUR voor bestelling #4821. Bedankt voor je aankoop!"
  }'

Bij een mislukte of verlopen betaling houd je de toon best praktisch in plaats van alarmerend: "je betaling is niet gelukt, klik hier om opnieuw te betalen" werkt beter dan een bericht dat als waarschuwing overkomt. Moet er een factuur of betaalbevestiging als PDF bij? Dezelfde endpoint accepteert bijlagen tot 100 MB, dus die kan in dezelfde call meegaan.

Stap 4: blijf binnen de anti-spamregels

Een betaalbevestiging is transactioneel — één gepersonaliseerd bericht, getriggerd door de eigen actie van die klant — en valt dus buiten de broadcast-achtige triggers van TextMeFlow's anti-spam risicoscore. Twee dingen blijven wel belangrijk, specifiek voor een Mollie-koppeling:

  1. Dedupliceer op betalings-ID. Mollie kan dezelfde webhook meerdere keren afleveren (bij een trage respons, een tijdelijke netwerkfout). Hou een korte cache bij van verwerkte id's, zodat je nooit twee keer dezelfde bevestiging stuurt.
  2. Respecteer STOP. Een klant die zich eerder afmeldde voor WhatsApp blijft afgemeld, ook als die nu een betaling doet — TextMeFlow weigert berichten naar afgemelde nummers, los van de trigger.

Meer dan alleen de bevestiging

Dit patroon beperkt zich niet tot de eerste betaling. Dezelfde webhook-statussen laten zich ook gebruiken voor een herinnering bij een mislukte eerste betaling van een abonnement, of een bedankbericht bij een terugbetaling. Omdat je rechtstreeks van Mollie naar de messages-API gaat, zonder tussenlaag van een derde partij, blijft je klantendata binnen de systemen die je al gebruikt — en binnen TextMeFlow's eigen EU-hosting in Parijs.

Start gratis met TextMeFlow — 50 berichten per maand, levenslang geldig, genoeg om deze koppeling te testen voor je overstapt op een betaald plan.

Zelf WhatsApp-berichten versturen via API?

Gratis voor altijd tot 50 berichten/maand. QR scannen en binnen 5 minuten verstuur je je eerste bericht.

Gratis voor altijd