IBAN-verificatie (bankoverschrijving)
Zakelijke klanten (BEDRIJF-accounts met een gekoppelde organisatie) kunnen hun IBAN verifieren via een handmatige bankoverschrijving van EUR 0,01, als alternatief voor iDEAL. De machtiging wordt direct ondertekend; de IBAN-verificatie blijft daarna maximaal 30 dagen open. Als beheerder moet u af en toe handmatig ingrijpen bij niet-gematchte stortingen en heeft u inzicht in de cleanup-cyclus.
Bankoverschrijving is alleen beschikbaar voor authorisaties met een organizationId. Particuliere accounts gebruiken altijd iDEAL. De validatie gebeurt server-side in resolveVerificationPaymentMethod en retourneert een 400-fout bij een niet-zakelijke poging.
Levenscyclus van een verificatie
| Status | Betekenis |
|---|---|
| PENDING (authorization) | Machtiging is ondertekend, IBAN is nog niet geverifieerd — deadline ibanVerificationDeadlineAt staat 30 dagen in de toekomst |
| ACTIVE (authorization) + PENDING (iban) | Klant heeft ondertekend, wacht op binnenkomende overboeking |
| VERIFIED (iban) | Mollie-webhook heeft een betaling ontvangen, IBAN gematcht en ibanVerifiedAt gezet |
| EXPIRED (iban + authorization) | 30 dagen verstreken zonder storting — machtiging vervalt |
De velden staan op de Authorization-tabel:
| Kolom | Doel |
|---|---|
ibanVerificationStatus | PENDING / VERIFIED / EXPIRED |
ibanVerificationDeadlineAt | Deadline (30 dagen na ondertekening) |
ibanVerifiedAt | Tijdstip waarop de verificatie succesvol werd afgerond |
iban / accountHolder | Leeg of "Onbekend" zolang verificatie PENDING is; gevuld na VERIFIED |
Per poging wordt een AuthorizationVerificationAttempt bijgehouden met paymentMethod: "banktransfer", resolvedIban, resolvedAccountHolder en de statuscodes van Mollie.
Zicht op openstaande verificaties
Via gebruikersdetail
- Ga naar Admin > Gebruikers en open de detailpagina van de klant
- In de sectie Machtigingen ziet u de status per machtiging
- Bij bankoverschrijving verschijnt onder de machtiging een labeltje IBAN-verificatie PENDING met de deadline
Via organisatiedetail
- Ga naar Admin > Organisaties
- Open de organisatie — machtigingen met openstaande IBAN-verificatie zijn gemarkeerd
- Gebruik de filter op status om alleen PENDING-verificaties te tonen
Een snelle overzicht via Prisma Studio:
Authorization.findMany({ where: { organizationId: { not: null }, ibanVerificationStatus: "PENDING", ibanVerificationDeadlineAt: { gt: now } } }).
Handmatig matchen
Soms herkent Mollie het IBAN van de inkomende betaling niet automatisch (bijvoorbeeld omdat de klant vanaf een tussenrekening betaalt). De betaling wordt dan wel op paid gezet, maar resolvedIban op het AuthorizationVerificationAttempt blijft leeg — de machtiging schakelt in dat geval niet automatisch door naar VERIFIED.
Wanneer handmatig matchen?
- Klant bevestigt dat de storting is gedaan maar status blijft PENDING
- De Mollie-admin toont een
paidbetaling, maar geen IBAN in dedetails.consumerAccount - Er is een overboeking ontvangen van een IBAN die niet (meer) bij de klant hoort
Stappen
- Verifieer de binnenkomende betaling in het Mollie Dashboard (juist bedrag, referentie en afzender)
- Noteer het IBAN en de tenaamstelling van de afzender
- Open de gebruiker / organisatie in de admin-omgeving
- Open de machtiging en kies IBAN handmatig bevestigen (indien aanwezig) of neem contact op met development voor een scriptmatige update
- Leg de handmatige match vast in de admin notes bij de machtiging, inclusief Mollie payment-ID en de reden
Zodra u een IBAN handmatig zet, schakelt de server de ibanVerificationStatus naar VERIFIED en wordt ibanVerifiedAt gevuld. Wees zeker van de juiste bron — de handmatige invoer wordt opgenomen in de auditLog.
Cleanup-jobs en termijnen
Er zijn twee cleanup-mechanismen die door elkaar worden gebruikt:
| Scope | Termijn | Trigger | Actie |
|---|---|---|---|
| Algemene stale authorisaties (iDEAL en bankoverschrijving) | 48 uur | authorizationCleanupJob (dagelijks 05:00) — paymentFailureCount >= 1, geen actieve Mollie-betaling | Verwijder de authorisatie (cascade op EAN-codes) |
| Zakelijke IBAN-verificatievenster (bankoverschrijving) | 30 dagen | Zelfde job (cleanupStaleAuthorizations) plus expireAuthorizationIbanVerificationIfNeeded bij elk verify-bezoek | Zet status: EXPIRED, ibanVerificationStatus: EXPIRED, clear molliePaymentId |
De 48-uursregel treft alleen authorisaties zonder lopend IBAN-verificatievenster of waarvan het venster al is verstreken (organizationId: null OR ibanVerificationDeadlineAt: null OR ibanVerificationDeadlineAt < now). Zakelijke bankoverschrijvingen binnen de 30-dagen-termijn blijven dus veilig staan, ook als er een eerdere mislukte betaalpoging was.
Handmatig triggeren
Voor noodgevallen kan de cleanup ook handmatig worden uitgevoerd:
# Via seed / script
npm run auth:cleanup # of directe import van cleanupStaleAuthorizations()
De job logt via auditLog (action: AUTH_CLEANUP_AUTO) hoeveel authorisaties verwerkt, verwijderd en verlopen zijn.
Monitoring en audit
| Bron | Wat staat erin |
|---|---|
authorizationCleanupJob logregels | Dagelijkse output met processed / deleted / expired |
AuditLog (action: AUTH_CLEANUP_AUTO) | Historie per run, inclusief eerste 10 foutmeldingen |
AuthorizationVerificationAttempt | Alle pogingen (iDEAL en bankoverschrijving), met Mollie paymentStatus, resolvedIban en resolvedAccountHolder |
| Mollie Dashboard | Originele betaling met banktransfer-methode en referentiecode |
Veelvoorkomende scenario's
Klant meldt: "Ik heb betaald, maar de machtiging staat nog PENDING"
- Controleer
AuthorizationVerificationAttempt.statusvoor de bijbehorende machtiging - Als
status: "paid"maarresolvedIban: null— handmatig matchen nodig - Als status nog
"open"— wacht op Mollie-webhook (doorgaans binnen 1 werkdag na binnenkomst storting) - Controleer altijd of
ibanVerificationDeadlineAtnog in de toekomst ligt
Machtiging is per ongeluk verlopen
Als een klant aantoonbaar binnen 30 dagen heeft betaald maar door een bug of webhook-storing de machtiging toch op EXPIRED staat: rol de statuswijziging niet zelf terug via SQL. Meld dit bij development met het authorizationId en het Mollie payment-ID, zodat de toedracht kan worden gereconstrueerd en correctie plaatsvindt via een gecontroleerd script.
Storting ontvangen zonder bijbehorende authorisatie
Mollie leverde een betaling met een onbekende referentie. Dit kan gebeuren als de klant een oude referentie hergebruikt of handmatig heeft gewijzigd. In dat geval wordt het bedrag door de finance-afdeling teruggeboekt; de klant moet een nieuwe machtigingsflow doorlopen.