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
1Een 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.
2Er is geen uitleg over wat er gebeurt als de betaling niet succesvol is afgerond.
3Als 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:

  1. Het aanmaken van de betaling op het eigen platform.
  2. Doorsturen om een betaling aan te kunnen maken bij de betaalmethode.
  3. Risico-afwegingen.
  4. Aanvullende diensten, bijvoorbeeld het sturen van herinnerings-e-mails.
InhoudToelichting
BedragNoodzakelijk
ValutaNoodzakelijk
ReferentieNoodzakelijk. Vaak een webshop order-ID
BeschrijvingDit kan worden getoond op de betaalpagina’s
E-mailadresBetaalproviders 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- & afleveradresgegevensDit is voor Achteraf betalen noodzakelijk om een risico-afweging te maken.
Webhook-URLHier stuurt de betaalprovider de statusupdates naartoe.
Redirect-URLHier stuurt de betaalprovider de betaler naartoe na de betaling.

Status betaling

Mogelijke statussen van een betaling bij een betaalprovider:

StatusOmschrijving
StartedDe betaling is gestart.
De betaler zal in dit geval nooit via de betaalprovider op de return-URL komen.
CancelledDe 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.
PendingDe status is nog onbekend, dit kan voorkomen als bijvoorbeeld de betaalmethode een storing heeft of de creditcardbetaling handmatig moet worden beoordeeld.
CompletedDe betaling is met zekerheid afgerond.
In geval van achteraf betalen is de overeenkomst afgerond.
ExpiredDe betaling is niet op tijd afgerond, maar de betaler is wel terug geleid naar de webshop.

Ophalen of ontvangen?

KenmerkBetaalprovider stuurt de statusJouw webshop vraagt om de status
Vaak gebruikt verzoektypePOSTGET
Geadresseerd naarEén vooraf ingestelde URL of URL die is meegegeven bij het aanmaken van de transactieAPI endpoint
Technische termWebhook
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 tips1. 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:

ActieOmschrijving
Betaler terug naar webshop sturenDit doet de betaalprovider naar de URL die de webshop vooraf heeft opgegeven. Dat heet vaak de Return URL.
De webshop informerenBetaalprovider stuurt de status door naar de webshop.

Webshop

De webshop voert ook twee acties uit zodra de betaling is afgerond:

ActieOmschrijvingAandachtspunt
Betaler bedankenZodra 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 bijwerkenDit 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.