Momenteel neem ik geen nieuwe klanten aan +31 6 301 963 14 dennis@gouwers.nl
WordPress

WooCommerce betaling mislukt? Zo vind je de oorzaak

Dennis BoekhoutBijgewerkt op 11 min leestijd

In dit artikel

Blijft een WooCommerce-bestelling op 'Wachtend op betaling' staan of staat er 'Mislukt', kijk dan eerst in je Mollie-dashboard of de klant echt heeft betaald. Heeft hij betaald, dan is bijna altijd de webhook de oorzaak: de melding van Mollie aan je webshop komt niet aan, door een firewall, onderhoudsmodus, een doorverwijzing of een update. Heeft hij niet betaald, dan heeft de klant afgehaakt of is de betaling verlopen. Dat is normaal, en WooCommerce ruimt zo'n bestelling meestal vanzelf op.

WooCommerce betaling mislukt? Begin bij de bestelstatus

"De betaling is mislukt" kan drie dingen betekenen. De klant heeft niet betaald. De klant heeft wel betaald, maar je webshop weet het niet. Of de betaling is echt geweigerd. Elk van die drie heeft een andere oorzaak, en de bestelstatus in WooCommerce vertelt je waar je moet zoeken.

Status in WooCommerce Wat het betekent Wat je doet
Wachtend op betaling Bestelling aangemaakt, nog geen betaling gezien In Mollie kijken of er toch betaald is
In de wacht Wacht op een betaling die langer duurt, zoals een overboeking Wachten, of in Mollie controleren
In behandeling Betaald, klaar om te versturen Niets, zo hoort het
Mislukt Betaling geweigerd of mislukt De notities bij de bestelling lezen
Geannuleerd Door de klant, door jou of automatisch door WooCommerce Nagaan of het automatisch gebeurde

De namen kunnen per versie en vertaling iets verschillen. 'In afwachting van betaling' en 'Pending payment' zijn dezelfde status als 'Wachtend op betaling'.

Eén losse onbetaalde bestelling is normaal: klanten breken af of hebben te weinig saldo. Een probleem heb je als betaalde bestellingen niet doorkomen, of als het bij meerdere klanten achter elkaar gebeurt. Loop dan de oorzaken hieronder op volgorde na.

Stap 1: kijk in Mollie wat er echt is gebeurd

Begin niet in de instellingen, maar bij één concrete bestelling.

  1. Open de bestelling via WooCommerce > Bestellingen en lees de notities in de rechterkolom. De Mollie-plugin schrijft daar wat er met de betaling gebeurde, vaak met een betalings-ID dat begint met tr_.
  2. Zoek de betaling op in je Mollie-dashboard, op betalings-ID, bestelnummer of bedrag.
  3. Vergelijk de status in Mollie met die in WooCommerce.
Mollie zegt WooCommerce zegt Waarschijnlijke oorzaak
Betaald Wachtend op betaling of Geannuleerd De melding van Mollie komt niet aan: de webhook
Open, verlopen of geannuleerd Wachtend op betaling of Geannuleerd De klant heeft niet afgerekend
Mislukt Mislukt De bank of kaartuitgever weigerde de betaling
Geen betaling te vinden Wachtend op betaling of foutmelding Het ging mis vóór de betaling: plugin, update of instellingen

Bij de eerste rij lees je verder in de volgende paragraaf. Is er geen betaling aangemaakt en zien klanten een kritieke fout bij het afrekenen, kijk dan in WordPress werkt niet meer.

Betaald bij Mollie, maar niet in WooCommerce: de webhook

Hoe de Mollie-webhook werkt

Verandert de status van een betaling, dan stuurt Mollie een kort bericht naar je webshop: de webhook. Daar staat alleen het betalings-ID in. Je webshop vraagt Mollie daarna zelf om de status en zet de bestelling op betaald.

Volgens de documentatie van Mollie moet je site binnen 15 seconden antwoorden dat het bericht is ontvangen. Lukt dat niet, dan probeert Mollie het opnieuw, in totaal tien keer, tot ongeveer 26 uur na de statuswijziging. Daarna stopt het. Je kunt een gemiste webhook niet zelf opnieuw laten versturen; alleen de support van Mollie kan dat.

Komt de webhook niet aan, dan blijft de bestelling op Wachtend op betaling staan, ook al staat het geld al bij Mollie. Na een uur kan WooCommerce hem zelfs annuleren, zie verderop.

Wat de webhook tegenhoudt

Dit zijn de bekendste oorzaken:

  • Een firewall of botbescherming. Een beveiligingsplugin, de firewall van je host of een strenge instelling bij Cloudflare blokkeert verzoeken die niet van een browser komen. De webhook komt van een server, niet van een browser. Mollie raadt af om vaste IP-adressen toe te staan, omdat die veranderen. Maak liever een uitzondering voor het pad waarop de webhook binnenkomt.
  • Onderhoudsmodus of een binnenkort-onlinepagina. De Mollie-plugin zegt in de eigen FAQ dat je het endpoint 'wc-api' moet vrijgeven als je onderhoudsmodus gebruikt. Anders kan Mollie de status niet doorgeven.
  • Een wachtwoord op de site. Een testomgeving achter een wachtwoord of op je eigen computer is voor Mollie onbereikbaar.
  • Een doorverwijzing. Mollie volgt alleen doorverwijzingen met code 307 of 308. Bij een gewone 301 of 302 valt het bericht weg. Dat gebeurt vaak na een overstap naar https of naar een adres met of zonder www, als het websiteadres onder Instellingen > Algemeen niet meer klopt met het adres waar je site echt draait.
  • Een afgeschermde REST API. Recente versies van de Mollie-plugin handelen de webhook af via de REST API van WordPress. Een plugin die de REST API dichtzet voor bezoekers die niet zijn ingelogd, kan de melding dus tegenhouden.
  • Een trage of overbelaste server. Duurt het antwoord langer dan 15 seconden, dan telt de poging als mislukt. Op een drukke dag, zoals Black Friday, komt dit sneller boven.

Zo controleer je het

  1. Lees het logbestand. Ga naar WooCommerce > Status > Logs en open het log van Mollie. Zoek op het bestelnummer. Zie je geen binnenkomende melding na de betaling, dan bereikt de webhook je site niet. Kijk in hetzelfde scherm ook in het log met fatale fouten.
  2. Gebruik de webhooktest. Sinds versie 8.1.3 heeft de Mollie-plugin een test die controleert of de webhook je webshop bereikt.
  3. Kijk in je Mollie-dashboard. Volgens de FAQ van de plugin meldt Mollie daar mislukte webhookpogingen.
  4. Los de oorzaak op en doe een testbestelling. Springt de status nu binnen een minuut naar In behandeling, dan is het opgelost. Bestellingen die al vastzitten, zet je met de hand recht.

Caching en cron: als je webshop te druk of te slim is

Caching. Een cache bewaart een kopie van je pagina's, zodat ze sneller laden. Voor de winkelmand, de checkout, Mijn account en de bedankpagina wil je dat niet. Cacheplugins slaan die pagina's meestal over, maar een cacheregel bij je host of CDN niet altijd. Dan zien klanten een oude winkelmand of een bedankpagina die zegt dat de betaling mislukte, terwijl hij gelukt is. Controleer de uitzonderingen in je cacheplugin en bij je host.

Cron. WooCommerce en veel plugins werken met geplande taken. Denk aan het opruimen van onbetaalde bestellingen en een deel van de verwerking op de achtergrond. WordPress voert die taken uit via WP-Cron, en dat start alleen als iemand je site bezoekt. Op een rustige nacht, of op een site die bijna volledig uit de cache komt, lopen die taken dus achter. Nog erger: staat WP-Cron uitgeschakeld zonder dat er een echte taak op de server is ingesteld, dan draait er niets.

Kijk onder WooCommerce > Status > Geplande acties. Zie je veel acties die al uren of dagen hadden moeten draaien, of veel mislukte acties, dan heb je een cronprobleem. De oplossing is een echte cronjob bij je host die WordPress elke paar minuten aanroept. Vraag je hostingpartij om die in te stellen. Dat is vijf minuten werk.

Mislukt na een update van Mollie, WooCommerce of WordPress

Begon het probleem op een bepaalde dag? Kijk dan wat er die dag is bijgewerkt. De changelog van de Mollie-plugin laat zien hoe vaak het rond betalingen schuurt. In 2026 alleen al losten updates onder meer op dat Klarna-betalingen op 'geautoriseerd' bleven hangen (8.1.3), dat kaartbetalingen in een checkout met meerdere stappen op Wachtend op betaling bleven staan (8.1.4) en dat een webhook een bestelling dubbel als betaald verwerkte (8.1.10).

Updates lossen dus problemen op, maar kunnen ook iets nieuws breken. Dat geldt net zo goed voor WooCommerce, je thema of een nieuwe PHP-versie bij je host.

Zo pak je het aan:

  1. Leg de datum naast je updates. Wanneer kwam de eerste vastgelopen bestelling binnen, en wat is er rond die dag bijgewerkt?
  2. Zoek op het supportforum van de plugin op wordpress.org naar meldingen sinds dezelfde versie.
  3. Werk bij of zet terug. Is er een nieuwere versie met een oplossing, installeer die. Zo niet, installeer de vorige versie via Geavanceerde weergave op de pluginpagina, of zet je back-up terug.
  4. Test na elke update met een echte bestelling.

Hoe je updates zo inplant dat je webshop er niet onder lijdt, lees je in WordPress updaten zonder crash.

Bestelling automatisch geannuleerd of echt mislukt

WooCommerce annuleert onbetaalde bestellingen zelf

Onder WooCommerce > Instellingen > Producten > Voorraad staat de instelling Voorraad behouden (minuten). Staat voorraadbeheer aan, dan houdt WooCommerce de voorraad voor een onbetaalde bestelling standaard 60 minuten vast. Daarna annuleert het de bestelling en komt de voorraad weer vrij.

Voor iDEAL is dat prima. Voor een overboeking is het te kort, want die duurt vaak een paar werkdagen. De Mollie-plugin zet bestellingen met een overboeking of automatische incasso daarom standaard op In de wacht. Dan valt zo'n bestelling buiten de timer. Is die beginstatus bij jou ooit aangepast, zet hem dan terug in de instellingen van die betaalmethode (Bank Transfer).

Let ook op de combinatie met de webhook. Komt de melding van een betaalde iDEAL-betaling te laat, dan kan WooCommerce de bestelling al geannuleerd hebben. Je hebt dan een betaalde, geannuleerde bestelling. De oorzaak zit dan niet in de timer, maar in de webhook.

De betaling is echt mislukt

Staat de betaling ook in Mollie op mislukt, verlopen of geannuleerd, dan ligt het meestal niet aan je webshop. De klant heeft het venster gesloten, de bank weigerde of de kaartcontrole lukte niet. In de bestelling staat een link naar de betaalpagina voor de klant, die je hem kunt sturen om het opnieuw te proberen.

Komt het bij veel klanten voor, kijk dan naar deze punten:

  • Testmodus. Staat de Mollie-plugin nog op testmodus of op een testsleutel, dan komen er geen echte betalingen binnen.
  • Betaalmethode niet actief. Een betaalmethode die in je Mollie-dashboard niet is geactiveerd of nog wacht op controle, werkt niet in je checkout.
  • iDEAL wordt Wero. Mollie toont iDEAL inmiddels als iDEAL | Wero. Wat die overgang voor je webshop betekent, lees je in iDEAL wordt Wero.

Twijfel je nog of Mollie de beste keuze is voor je webshop, dan zet Mollie of Stripe de kosten per betaling naast elkaar.

Een vastgelopen bestelling rechtzetten

Heeft de klant aantoonbaar betaald en hangt de bestelling, dan zet je hem met de hand recht. Doe het in deze volgorde:

  1. Controleer in Mollie dat de betaling op betaald staat, met het juiste bedrag en bestelnummer.
  2. Zet de bestelling op In behandeling en sla hem op. WooCommerce stuurt de klant dan de gewone bevestigingsmail en verlaagt de voorraad, net als bij een normale betaalde bestelling.
  3. Voeg een notitie toe met het betalings-ID uit Mollie en dat je de status met de hand hebt aangepast. Over drie maanden weet je anders niet meer waarom.
  4. Controleer de voorraad als de bestelling eerst geannuleerd was, want toen is de voorraad vrijgegeven.
  5. Controleer je koppelingen. Komt de bestelling door naar je verzending en boekhouding? Hoe die koppelingen werken, lees je in WooCommerce koppelen aan MyParcel en e-Boekhouden.

Krijgt de klant geen bevestigingsmail, terwijl de status wel klopt? Dan zit het probleem in het mailen van je site, niet in de betaling. Dat los je op zoals bij een contactformulier dat niet werkt.

Gaat het om veel bestellingen, los dan eerst de oorzaak op en vraag de support van Mollie om hulp, met je partner-ID en een paar bestelnummers. Vraag een klant nooit om opnieuw te betalen voordat je in Mollie hebt gekeken.

Checklist voor Black Friday

Black Friday valt dit jaar op 27 november. Juist bij drukte komen webhook-, cache- en cronproblemen boven: meer bestellingen tegelijk, een zwaarder belaste server en vaak een strengere firewall. Loop deze lijst ruim van tevoren na:

  • Doe een echte testbestelling met elke betaalmethode die je aanbiedt, met een klein bedrag. Springt de status binnen een minuut naar In behandeling?
  • Bekijk de logs van Mollie van de afgelopen weken op fouten.
  • Controleer je firewall en Cloudflare-instellingen. Zet geen extra strenge modus aan zonder daarna opnieuw te testen.
  • Zorg voor een echte cronjob bij je host.
  • Controleer of winkelmand, checkout en bedankpagina buiten de cache blijven.
  • Controleer of Voorraad behouden past bij je betaalmethoden.
  • Vraag je host of je pakket de piek aankan.
  • Maak een back-up en weet hoe je hem terugzet.
  • Installeer in de week voor Black Friday alleen beveiligingsupdates.
  • Spreek af wie in Black Week elke dag de betalingen in Mollie naast de bestellingen in WooCommerce legt.

Hoe je de rest van je actie voorbereidt, van e-mailreeks tot advertenties, staat in Black Friday campagne: zo bereid je je voor in 6 weken.

Conclusie: eerst Mollie, dan je webshop

Is een WooCommerce-betaling mislukt, kijk dan eerst in Mollie wat er echt gebeurde. Betaald bij Mollie maar niet in WooCommerce betekent bijna altijd een webhook die niet aankomt: door een firewall, onderhoudsmodus, een doorverwijzing, een afgeschermde REST API of een trage server. Daarna komen caching, cron, een update die iets brak en de timer die onbetaalde bestellingen annuleert. Een echte testbestelling na elke wijziging voorkomt dat je het pas van een klant hoort.

Ligt je hele site plat in plaats van alleen de betalingen, lees dan WordPress werkt niet meer. Wil je weten wat onderhoud van je webshop bij mij kost? Download dan de prijslijst.

Veelgestelde vragen

Wat betekent 'Wachtend op betaling' in WooCommerce?

De bestelling is aangemaakt, maar WooCommerce heeft nog geen betaling gezien. Dat gebeurt als een klant naar de betaalpagina gaat en daar afhaakt, maar ook als hij wel betaalde en de melding van je betaalprovider niet aankomt. In de Engelse versie heet de status 'Pending payment', in sommige vertalingen 'In afwachting van betaling'. Controleer in je Mollie-dashboard of de betaling op betaald staat. Zo weet je binnen een minuut of je een technisch probleem hebt of een klant die niet heeft afgerekend.

Waarom wordt een WooCommerce-bestelling automatisch geannuleerd?

Meestal door de instelling Voorraad behouden onder WooCommerce, Instellingen, Producten, Voorraad. Staat voorraadbeheer aan, dan houdt WooCommerce de voorraad voor een onbetaalde bestelling standaard 60 minuten vast en annuleert daarna de bestelling. Voor iDEAL is dat prima, voor een overboeking niet, want die duurt vaak een paar dagen. Daarom zet de Mollie-plugin bestellingen met een overboeking standaard op In de wacht, zodat de timer ze niet annuleert. Is dat bij jou ooit veranderd, pas de beginstatus dan aan in de instellingen van die betaalmethode.

Mijn klant heeft betaald, maar de bestelling staat op geannuleerd. Wat nu?

Controleer eerst in Mollie dat de betaling echt binnen is, met het juiste bedrag en bestelnummer. Zet de bestelling dan in WooCommerce op In behandeling en zet in een notitie het betalings-ID uit Mollie erbij. Kijk daarna of je voorraad nog klopt, want die is bij het annuleren vrijgegeven. Laat het je klant weten als het lang duurde. Zoek daarna de oorzaak, want waarschijnlijk is de melding van Mollie te laat of helemaal niet aangekomen.

Hoe test ik of de Mollie-webhook werkt?

De eenvoudigste test is een echte bestelling met een klein bedrag. Reken af met iDEAL en kijk of de status binnen een minuut op In behandeling springt. Gebeurt dat niet, kijk dan onder WooCommerce, Status, Logs in het logbestand van Mollie. Sinds versie 8.1.3 heeft de Mollie-plugin ook een eigen webhooktest. Test altijd op je live webshop of op een testomgeving die via internet bereikbaar is, want Mollie kan een site op je eigen computer of achter een wachtwoord niet bereiken.

Benieuwd hoe ik dit in de praktijk aanpak?

Het pitchdeck laat de hele werkwijze zien.

Geschreven door Dennis Boekhout

Marketing freelancer uit 's-Hertogenbosch. Volg op LinkedIn (opent in een nieuw tabblad)