Maatwerk
Overzicht betaalproces
Foutieve informatiestroom diagram
sequenceDiagram
participant webshop as Webshop
participant betaalprovider as Betaalprovider
participant betaalmethode as Betaalmethode
Note over webshop: Betaler drukt op Afrekenen in checkout
webshop->>betaalprovider: Maakt een betaling aan.
betaalprovider->>webshop: Stuurt een betaal-URL terug
webshop->>betaalmethode: Stuurt de betaler naar die URL
Note over betaalmethode: Betaler rondt de betaling af
betaalmethode->>betaalprovider: Betaler gaat terug naar de betaalprovider
betaalprovider->>webshop: Betaler wordt naar de redirect-URL gestuurd
Note over webshop: De order wordt ingepakt
Bovenstaand diagram is alleen bedoeld om uit te leggen waarom dit proces niet klopt.
| Aandachtspunt | |
|---|---|
| 1 | Een betaler kan na het afronden van de betaling het scherm sluiten. Dan komt de betaler nooit terug bij de webshop en zal deze de order nooit inpakken. |
| 2 | Er is geen uitleg over wat er gebeurt als de betaling niet succesvol is afgerond. |
| 3 | Als de betaler een hacker is en erachter komt dat je op deze manier werkt, dan zal hij de URL de volgende keer aanpassen waardoor het lijkt alsof er is betaald terwijl dat niet klopt. |
Correcte informatiestroom diagram
sequenceDiagram
participant webshop as Webshop
participant betaalprovider as Betaalprovider
Note over webshop: Betaler kiest een betaalmethode in de checkout
webshop->>betaalprovider: Maakt betaling aan
betaalprovider->>webshop: Geeft een URL waar de betaler heen kan worden gestuurd
webshop->>betaalprovider: Stuurt de betaler naar de URL
Note over betaalprovider: Betaler rondt betaling af
betaalprovider->>webshop: Betaalprovider informeert webshop over status betaling
betaalprovider->>webshop: Betaler wordt terug naar de webshop gestuurd
Note over webshop: De webshop kan de status eventueel ophalen als hij nog onbekend is.
Bovenstaand diagram is bedoeld om de informatiestroom uit te leggen en is geen compleet beeld.
De betaler gaat in de praktijk bij sommige betaalmethoden — zoals iDEAL — nog naar de betaalmethode toe.
Correcte iDEAL betaling uitleg informatieproces
sequenceDiagram
participant betaler as Betaler
participant webshop as Webshop
participant betaalprovider as Betaalprovider
participant acquirer as Acquirer
participant ideal as iDEAL
participant issuer as Issuer
betaler->>webshop: Betaler drukt op afrekenen<br />in de checkout
webshop->>betaalprovider: De webshop maakt een<br />betaling aan bij de betaalprovider
betaalprovider->>webshop: De betaalprovider geeft<br />een URL terug aan de webshop
webshop->>betaalprovider: De webshop redirect<br />de betaler naar de betaalprovider
betaalprovider->>acquirer: De betaalprovider vraagt een URL
acquirer->>ideal: Acquirer vraagt een URL
ideal->>acquirer: iDEAL geeft een URL
acquirer->>betaalprovider: Acquirer geeft een URL
betaalprovider->>acquirer: Betaalprovider stuurt<br />betaler naar acquirer
acquirer->>ideal: Acquirer stuurt betaler door naar iDEAL
Note over ideal: Betaler kan hier de betaling<br />afronden of doorgaan naar eigen issuer
ideal->>issuer: Betaler kiest voor afrekenen<br />bij eigen issuer
issuer-->>ideal: stuurt de status door
issuer->>ideal: stuurt de betaler terug<br />na afronden betaling
ideal-->>acquirer: stuurt de status door
ideal->>acquirer: stuurt de betaler terug<br />na afronden betaling
acquirer-->>betaalprovider: stuurt de status door
acquirer->>betaalprovider: stuurt de betaler terug<br />na afronden betaling
betaalprovider-->>webshop: stuurt de status door
betaalprovider->>webshop: stuurt de betaler terug<br />na afronden betaling
webshop->>betaler: Stuurt de betaler naar de<br />bedankpagina van de webshop
Bovenstaand diagram is bedoeld om de informatiestroom uit te leggen en is geen compleet beeld.
Inhoud payload
Per betaalprovider verschilt welke informatie je mee moet/mag sturen bij het aanmaken van een betaling. Betaalproviders gebruiken deze informatie voor:
- Het aanmaken van de betaling op het eigen platform.
- Doorsturen om een betaling aan te kunnen maken bij de betaalmethode.
- Risico-afwegingen.
- Aanvullende diensten, bijvoorbeeld het sturen van herinnerings-e-mails.
| Inhoud | Toelichting |
|---|---|
| Bedrag | Noodzakelijk |
| Valuta | Noodzakelijk |
| Referentie | Noodzakelijk. Vaak een webshop order-ID |
| Beschrijving | Dit kan worden getoond op de betaalpagina’s |
| E-mailadres | Betaalproviders gebruiken deze soms voor een herinnerings-e-mail aan de betaler als het betaalproces niet wordt afgerond. Wij adviseren meestal om deze e-mail vanuit de webshop te versturen. De reden hiervoor is dat een betaling al een verlopen status kan hebben en de betaler later alsnog betaalt. Als je de betaler eerst op de webshop laat terugkomen en nog een keer laat betalen, zal dit beter werken. |
| NAW- & afleveradresgegevens | Dit is voor Achteraf betalen noodzakelijk om een risico-afweging te maken. |
| Webhook-URL | Hier stuurt de betaalprovider de statusupdates naartoe. |
| Redirect-URL | Hier stuurt de betaalprovider de betaler naartoe na de betaling. |
Status betaling
Mogelijke statussen van een betaling bij een betaalprovider:
| Status | Omschrijving |
|---|---|
| Started | De betaling is gestart. De betaler zal in dit geval nooit via de betaalprovider op de return-URL komen. |
| Cancelled | De betaling is niet afgerond, meestal doordat de betaler de betaling heeft afgebroken. De betaler zal in dit geval nooit via de betaalprovider op de return-URL komen. |
| Pending | De status is nog onbekend, dit kan voorkomen als bijvoorbeeld de betaalmethode een storing heeft of de creditcardbetaling handmatig moet worden beoordeeld. |
| Completed | De betaling is met zekerheid afgerond. In geval van achteraf betalen is de overeenkomst afgerond. |
| Expired | De betaling is niet op tijd afgerond, maar de betaler is wel terug geleid naar de webshop. |
Ophalen of ontvangen?
| Kenmerk | Betaalprovider stuurt de status | Jouw webshop vraagt om de status |
|---|---|---|
| Vaak gebruikt verzoektype | POST | GET |
| Geadresseerd naar | Eén vooraf ingestelde URL of URL die is meegegeven bij het aanmaken van de transactie | API endpoint |
| Technische term | Webhook Postback | Retrieving a payment Polling |
| Wanneer gebruik je hem? | Zeer geschikt om webshops orders de juiste status te geven. Want ook de situatie waarbij de betaler na het afronden van de betaling het scherm direct heeft gesloten, gaat hierdoor goed. | Zeer geschikt voor terugkomende consumenten (eventueel als backup voor als de webhook niet eerder ontvangen is). Als je een OrderID van je eigen webshop meegeeft in de redirect-URL, weet je direct over welke betaling het gaat en kun je die gaan ophalen bij de betaalprovider. |
| Praktische tips | 1. Zorg dat je webshop OrderID erin staat zodat je ze makkelijk kunt verwerken. Dit kan alleen als je hem per betaling meegeeft. 2. Veel betaalproviders blijven webhooks sturen totdat je bevestigt dat hij is verwerkt. 3. Gebruik webhook.site om webhooks te testen. 4. Bij sommige betaalproviders kun je via de portal hem handmatig nog een keer triggeren. | 1. Minder geschikt om te gebruiken in andere systemen zoals ERP-systemen vanwege de load bij de betaalprovider (vooral bij meerdere keren per betaling, betaalprovider brengt mogelijk kosten in rekening). 2. Minder geschikt om de status binnen de webshop zelf aan te passen omdat vaak de betaler betrokken is. |
Taken van betrokken partijen
Betaler
De betaler heeft één taak: de betaling uitvoeren.
Een betaler mag geen invloed hebben op de status van de betaling binnen de webshopomgeving.
Als een betaler na een iDEAL-betaling snel de browser sluit, moet binnen de webshop de bestelling op betaald komen te staan en worden verzonden.
Betaalprovider
De betaalprovider heeft twee taken:
| Actie | Omschrijving |
|---|---|
| Betaler terug naar webshop sturen | Dit doet de betaalprovider naar de URL die de webshop vooraf heeft opgegeven. Dat heet vaak de Return URL. |
| De webshop informeren | Betaalprovider stuurt de status door naar de webshop. |
Webshop
De webshop voert ook twee acties uit zodra de betaling is afgerond:
| Actie | Omschrijving | Aandachtspunt |
|---|---|---|
| Betaler bedanken | Zodra een betaler terugkomt in de webshop via de return-URL, ziet de betaler altijd een bedankt voor uw bestelling-bericht. Daarnaast krijgt de betaler op deze pagina ook de status van de betaling te zien, op basis van de informatie vanuit de betaalprovider. Eventueel kun je daarnaast ook de status opvragen voor situaties waarbij de status vanuit de betaalprovider uitblijft. | |
| Status in de webshopomgeving bijwerken | Dit gaat op basis van de informatie vanuit de betaalprovider. Eventueel kun je daarnaast ook de status eenmalig opvragen voor situaties waarbij de status vanuit de betaalprovider uitblijft. | 1. Zorg dat firewalls zoals Cloudflare de webhook/postback-URL doorlaten. 2. Zorg dat de server voldoende capaciteit heeft om de informatie te verwerken. |