darioa

Mollie foutcodes en betaalstatussen: wat betekenen ze?

Dario Albers · bijgewerkt 10 november 2026

Kort antwoord: Mollie geeft bij een mislukte API-aanroep een HTTP-statuscode terug (400 tot 504) en elke betaling heeft een status (open, pending, authorized, paid, canceled, expired of failed). Hieronder staat elke code met de betekenis uit Mollie's eigen documentatie, wat je er in de praktijk mee doet, en wat er misgaat als je webhook de betaling niet bereikt.

HTTP-foutcodes van de Mollie API

Gelukt is 200 (verzoek geslaagd), 201 (object aangemaakt) of 204 (object geannuleerd of verwijderd, zonder inhoud). Alles hieronder is een fout. De kolom “Wat je doet” is mijn praktische advies; de kolom ernaast is de documentatie van Mollie.

HTTP-foutcodes van de Mollie API
CodeMollie documenteertWat je doet
400De API kon het verzoek niet lezen, mogelijk door een syntaxfout.Controleer de JSON en de veldnamen die je verstuurt.
401Authenticatie mislukt. Controleer je API-sleutel.Gebruik de sleutel van het juiste profiel en de juiste omgeving (test of live), en zet hem alleen op de server.
403Je hebt geen toegang tot de gevraagde bron.Controleer of de sleutel of het account recht heeft op dit onderdeel.
404Het object in de URL bestaat niet.Controleer het id (bijvoorbeeld tr_…) en of je test- en livesleutel niet door elkaar haalt.
405De HTTP-methode hoort niet bij deze URL. De Allow-header noemt de methoden die wel kunnen.Gebruik een van de methoden uit de Allow-header.
409Een dubbele API-aanroep die waarschijnlijk een vergissing was (alleen in v2).Kijk of je code dezelfde aanvraag twee keer verstuurt.
410Het object is eerder verwijderd (alleen in v2).Haal het id uit je eigen administratie of maak een nieuw object aan.
415De codering van het verzoek wordt niet ondersteund of verkeerd gelezen. Mollie adviseert altijd JSON te gebruiken.Stuur JSON met een Content-Type-header voor JSON.
422Het verzoek kon niet worden verwerkt om een andere reden dan de codes hierboven. Het antwoord bevat meestal een field-eigenschap met het veld dat het probleem veroorzaakt. Is je account opgeschort, dan staat meer informatie in je Dashboard.Lees field en detail in het antwoord; kijk bij een opgeschort account in je Mollie-Dashboard.
429Je verzoek heeft een limiet bereikt (rate limit). Probeer het na een korte tijd opnieuw.Wacht even en probeer het opnieuw; stuur niet in één keer veel aanroepen.
500Er is een interne fout aan de kant van Mollie.Probeer het later opnieuw; blijft het gebeuren, neem dan contact op met Mollie.
502De dienst is tijdelijk niet beschikbaar door een storing of gepland onderhoud. Probeer het later opnieuw.Probeer het later opnieuw.
503De dienst is tijdelijk niet beschikbaar door een storing of gepland onderhoud. Probeer het later opnieuw.Probeer het later opnieuw.
504Je verzoek veroorzaakt een ongewoon lange verwerkingstijd.Probeer het later opnieuw, met een kleiner verzoek als dat kan.

Een foutantwoord is JSON met deze velden, zoals Mollie ze in de voorbeelden toont:

{
  "status": 422,
  "title": "Unprocessable Entity",
  "detail": "The amount is higher than the maximum",
  "field": "amount",
  "_links": { "documentation": { "href": "https://docs.mollie.com/errors", "type": "text/html" } }
}

status is de HTTP-code, title een korte naam, detail een leesbare uitleg en field(bij 422) het veld dat het probleem veroorzaakt. Bij 5xx-fouten zegt Mollie dat ze vanzelf zouden moeten verdwijnen: probeer het later opnieuw.

Betaalstatussen

Elke betaling heeft één van zeven statussen. Mollie noemt paid, canceled, expired en failed definitief: daarna verandert de status niet meer.

Betaalstatussen van Mollie
StatusBetekenis volgens MollieDefinitiefWebhook
openDe betaling is aangemaakt en je klant kan haar nog afronden.NeeNee
pendingEen tijdelijke status: het betaalproces is gestart maar nog niet klaar.NeeJa
authorizedBij betaalmethoden met captures: zolang er nog nieuwe captures kunnen worden aangemaakt.NeeJa
paidJe klant heeft de betaling afgerond.JaJa
canceledJe klant heeft de betaling geannuleerd.JaJa
expiredDe betaling is verlopen, bijvoorbeeld omdat je klant haar heeft laten liggen.JaJa
failedDe betaling is mislukt.JaJa

De kolom Webhook geeft aan of Mollie bij deze status je webhook aanroept, zoals de statustabel van Mollie het weergeeft.

Webhooks: waarom een betaling niet aankomt

Een webhook is de melding van Mollie aan je site dat er iets met een betaling is gebeurd. De werking staat in Mollie's documentatie:

  • Mollie stuurt een POST met één parameter, id (bijvoorbeeld tr_d0b0E3EA3v). De status zit er niet in.
  • Jouw server haalt daarna de betaling op bij de Payments API met dat id en kijkt wat de status is.
  • Antwoord met HTTP 200. Voor een onbekend id raadt Mollie ook 200 aan, zodat je niets prijsgeeft.
  • Een antwoord duurt maximaal 15 seconden; een 200 daarna telt als mislukt.
  • Geen 200? Dan probeert Mollie het opnieuw: 10 pogingen in totaal, met steeds langere tussenpozen. De tiende valt 26 uur na de statuswijziging.
  • Een redirect (301 of 302) maakt van de POST een GET en laat de inhoud vallen. Gebruik 307 of 308.

Betaalt een klant, maar zie je in je site niets gebeuren, loop dan deze lijst langs: geeft de webhook-URL 200 binnen 15 seconden, is hij van buiten bereikbaar (niet achter een inlog of een omleiding), en haal je de betaling zelf op in plaats van op de status te vertrouwen die iemand meestuurt?

iDEAL werkt niet op je webshop: wat je nu doet

  1. Open de statuspagina van Mollie. Daar meldt Mollie zelf of het platform en de betaalmethoden werken.
  2. Kijk of het verzoek een foutcode teruggeeft. Die staat in de tabel hierboven.
  3. Probeer een bestelling met een andere betaalmethode, bijvoorbeeld kaart. Lukt dat wel, dan zit het probleem bij iDEAL of de bank van de klant en niet bij je site.
  4. Lukt het bij meerdere methoden niet, neem dan contact op met Mollie via je Mollie-dashboard.

Heb je een webshop of boekingssite bij mij? Stuur me de foutmelding en het tijdstip, dan kijk ik mee. Zo ziet online betalen eruit bij een bandenservice.

Zo doet darioa.nl het zelf

Mijn eigen betaalflow werkt zoals Mollie het voorschrijft: de webhook leest de betaling terug bij Mollie en vergelijkt het bedrag met wat bij de aanvraag is vastgelegd, en de bedankpagina laat de echte status zien (in behandeling, betaald, mislukt, geannuleerd of verlopen). Bij een webshop of boekingssite die ik bouw loopt betalen via je eigen Mollie-account, zonder commissie van mij; een voorbeeld is de bandenwebshop met online betalen, waar een onbetaalde bestelling vanzelf vervalt en de banden weer te koop komen. Wat zo'n webshop kost lees je in Shopify of een eigen webshop, en de vaste prijzen staan op de prijzenpagina.

Wil je weten of je eigen site bereikbaar is en goed antwoordt? Gebruik de gratis websitecheck. Ontbreken er gegevens op je site die een webwinkel moet tonen, test je dat met de bedrijfsgegevens-checker.

Veelgestelde vragen

Stuurt Mollie de status mee in de webhook?
Nee. Mollie stuurt met een POST alleen één parameter, id, en meldt dat de status niet wordt meegestuurd. Je haalt zelf de betaling op met dat id en handelt af wat de teruggegeven status is, bijvoorbeeld versturen als de status paid is.
Hoe lang probeert Mollie een webhook opnieuw?
Mollie probeert het in totaal 10 keer, met steeds langere tussenpozen. De tiende poging valt 26 uur na de statuswijziging; daarna stopt Mollie. Een antwoord na 15 seconden telt al als mislukt.
iDEAL werkt niet op mijn webshop: wat doe ik?
Open eerst de statuspagina van Mollie (status.mollie.com), kijk of het verzoek een foutcode teruggeeft en probeer een andere betaalmethode, bijvoorbeeld kaart. Lukt dat wel, dan zit het probleem bij iDEAL of de bank. Lukt het bij meerdere methoden niet, neem dan contact op met Mollie via je Mollie-dashboard.
Welke betaalstatussen zijn definitief?
Volgens Mollie zijn paid, canceled, expired en failed definitief. open en pending zijn tijdelijk en authorized geldt zolang er nog captures kunnen worden aangemaakt.

Hulp nodig bij je website?

Stuur me een WhatsApp. Je krijgt binnen een werkdag antwoord, en een vaste prijs voordat je iets betaalt.