Overslaan naar inhoud
Nederlands
  • Er zijn geen suggesties want het zoekveld is leeg.

Exchange settings (webhooks)

De exchange URL koppelt uw server direct aan onze betaalacties voor een veilige en automatische verwerking

In dit Verkooplocatie menu kunt u de instellingen voor de Exchange-integratie configureren. U geeft aan of u een dynamische of statische Exchange-URL wilt gebruiken, selecteert de methode van aanroepen (zoals TXT, XML, JSON), stelt een scheidingsteken in en kiest een retry-scheme voor het opnieuw proberen van mislukte aanroepen. Daarnaast bepaalt u welke statusupdates via de Exchange gecommuniceerd moeten worden, bijvoorbeeld alle statussen, alleen betaalde orders of alleen wijzigingen in orderstatussen.

Instelling Waarde
Exchange instellen
  • Ja, via de API of plugin meegeven (meest gebruikt)
  • Ja, een statische Exchange URL gebruiken
Exchange URL Url:  https://
Methode van aanroepen
  • SIGNED JSON (POST)
  • TXT (POST) - DEPRICATED
  • TXT (GET) - DEPRICATED
  • XML (POST) - DEPRICATED
  • JSON (POST) - DEPRICATED
Separator
  • , (comma)
  • | (pipe)
Retry scheme
  • 10 keer binnen 24 uur met oplopend interval
  • 1 keer (na 5 seconden)
  • 6 keer binnen 2 uur met oplopend interval
  • 8 keer, iedere exchangecall na een kwartier
  • 11 keer binnen 24 uur (gebalanceerd)
Status communicatie
  • ALL (Pendings, Orderstatussen en gedlstroom wijzigingen met details)
  • PAYMENT COMPLETE ONLY (enkel zodra order betaald is en geld is ontvangen (NEW_PPT)
  • ORDER CHANGE (Indien de orderstatussen wijzigt, geen pendings)
  • CHANGES NO PENDINGS (Order en geldstroom wijzigingen, geen pending statussen)

Signed JSON POST heeft de voorkeur

De Signed JSON heeft de voorkeur, omdat deze alle benodigde data bevat. Hierdoor is er geen aanvullende API-call nodig. De authenticiteit en integriteit van de data kunnen direct worden gevalideerd aan de hand van de meegeleverde headers. Ook IP whitelisting is hierbij niet noodzakelijk.

Lees er meer over op onze developer portal in het Exchange Signing artikel

Retry scheme Intervallen

Het Retry-scheme herhaalt een mislukte Exchange-aanroep volgens vooraf ingestelde intervallen totdat de server “TRUE” terugstuurt. Hiermee wordt bevestigd dat het verzoek succesvol is verwerkt. Door gebruik te maken van verschillende intervallen tussen de herhalingen wordt overbelasting van de server voorkomen en wordt de kans vergroot dat een tijdelijk probleem wordt opgelost voordat het verzoek opnieuw wordt geprobeerd.

Retry moment 10x / 24u (oplopend) 11x / 24u (gebalanceerd) 8x / kwartier 6x / 2u 1x / 5s
1e retry na: 1 seconde 10 seconden 15 minuten 30 seconden 5 seconden
2e retry na: 3 seconden 30 seconden 30 minuten 50 seconden -
3e retry na: 10 seconden 1 minuut 45 minuten 70 seconden -
4e retry na: 30 seconden 2 minuten 60 minuten 5 minuten -
5e retry na: 60 seconden 1 uur 75 minuten 30 minuten -
6e retry na: 5 minuten 3 uren 90 minuten 60 minuten -
7e retry na: 30 minuten 6 uren 105 minuten - -
8e retry na: 60 minuten 10 uren 120 minuten - -
9e retry na: 12 uren 14 uren - - -
10e retry na: 24 uren 19 uren - - -
11e retry na: - 24 uren - - -

Wanneer is een exchange geslaagd? 

Een Exchange-aanroep wordt als geslaagd beschouwd wanneer de server TRUE retourneert én de HTTP-statuscode 200 is. Wanneer niet aan beide voorwaarden wordt voldaan, wordt de Exchange-aanroep als mislukt beschouwd en volgt het ingestelde retry-scheme 

Het Retry-scheme herhaalt een mislukte Exchange-aanroep volgens vooraf ingestelde intervallen bij het mislukken. Hiermee wordt bevestigd dat het verzoek succesvol is verwerkt. Door gebruik te maken van verschillende intervallen tussen de herhalingen wordt overbelasting van de server voorkomen en wordt de kans vergroot dat een tijdelijk probleem wordt opgelost voordat het verzoek opnieuw wordt geprobeerd.

Status Communicatie

Met statuscommunicatie bepaalt u zelf welke transactiestatussen naar de Exchange-URL worden doorgestuurd. Zo ontvangt u alleen relevante meldingen, voorkomt u onnodige notificaties en kunt u uw workflows efficiënter aansturen.

Type Actie Code All Payment complete only Order
change
Changes no pending

Pending status

pending 20
pending 25
pending 50
pending 90
Order change  new_ppt 100
cancel -90
cancel -80
authorize 95
capture 100
refunding -72
refunded -81
denied -63
denied -64
failure -60
verify 85
chargeback -71
chargeback reversal 100
Mutatie (actie) refund:add -72
refund:delete 100
refund:received -81
refund:storno 100
incasso:add 50
incassocollected 100
incasso:deleted  
incassostorno -63

 

Mislukte Exchange Notificatie

exchange-not-mail

Als Pay. na een statuswijziging jouw Exchange URL aanroept, dan wordt er maximaal 5 seconden gewacht op een antwoord. Het kan echter voorkomen dat jouw server tijdelijk niet reageert of een storing ervaart.

Wij sturen dan als de herhalingen van de Retry scheme zijn afgerond een Mislukte Exchange Notificatie per e-mail naar alle merchant gebruikers die deze E-mail Notificatie hebben ingeschakeld in hun persoonlijke account.

Exchange-call mislukt of duurt te lang (> 5 seconden)

Wanneer een Exchange-call langer dan 5 seconden duurt, verbreken wij de verbinding en beschouwen we het verzoek als mislukt. Dit betekent echter niet automatisch dat de verwerking op jouw server ook is gestopt.

Het kan daardoor voorkomen dat jouw server een statuswijziging niet of niet correct heeft verwerkt. In bepaalde gevallen kan de orderstatus in jouw eigen backoffice hierdoor afwijken van de status in het Admin Panel van Pay.

Controleer de accesslog

Controleer eerst in de accesslog hoe lang de Exchange-call daadwerkelijk heeft geduurd. Hiermee kun je bepalen of de vertraging ontstaat in het netwerk of tijdens de verwerking op jouw server. In de meeste gevallen zit de vertraging in de verwerking zelf.

Bijvoorbeeld:

2026-08-19T10:17:32.481+02:00 INFO access exchange=payment-api method=POST path=/v1/paynl/exchange status=200 duration=7000ms remote_ip=10.20.30.40

In dit voorbeeld heeft de verwerking 7000 ms (7 seconden) geduurd en daarmee de maximale responstijd van 5 seconden overschreden.

Onderzoek het Exchange-proces

Als uit de accesslog blijkt dat de verwerking te lang duurt, onderzoek dan welke onderdelen van jouw backend hiervoor verantwoordelijk zijn. Hiervoor is voldoende logging rondom de verschillende stappen van het Exchange-proces belangrijk.

Veelvoorkomende oorzaken van trage Exchange-calls zijn:

  1. Trage databasequeries
  2. Het genereren van PDF-bestanden of e-mails
  3. Trage externe API-calls
  4. Overbelaste servers
  5. Een cold start van een service

Let op: wanneer Pay de verbinding na 5 seconden verbreekt, betekent dit niet dat het proces op jouw server automatisch wordt beëindigd. De backend kan de verwerking alsnog afronden. Houd hier rekening mee om dubbele of inconsistente verwerking te voorkomen. 

Probeer werkzaamheden die niet noodzakelijk zijn voor het verwerken van de Exchange-call waar mogelijk asynchroon uit te voeren. Geef eerst zo snel mogelijk een succesvolle response terug en voer bijvoorbeeld e-mail- of PDF-generatie daarna uit. 

Overige foutoplossingen

In de Payment state log vind je o.a de HTTP Code terug. Indien deze niet de waarde 200 heeft dan is er een fout opgetreden. Via deze Online checklist kun je achterhalen hoe je de meest voorkomende problemen kan oplossen.

Ontvang je op dit moment Exchangenotificaties en wil je deze uitschakelen? Vraag dan jouw Pay. beheerder om deze uit te schakelen in het Pay Dashboard. Dit kan via Instellingen -> Gebruikersbeheer

 Kan ik een langere Exchange-timeout aanvragen?

Ja, het is mogelijk om een langere timeout voor Exchange-calls aan te vragen. We raden dit echter niet aan.

De standaard timeout is bewust kort gehouden. Een Exchange-call is bedoeld om een statuswijziging snel te verwerken en een response terug te geven. Wanneer jouw Exchange-endpoint regelmatig de timeout overschrijdt, is het daarom beter om eerst te onderzoeken waarom de verwerking zoveel tijd kost.

Payment state log

Exchange verzoeken via Payment state log


exchange-not-summ-filt

Exchange verzoeken via Payment state log
exchange-stat-summ

De Payment state log is een tabel met daarin alle exchange calls tussen Pay. en de server van jouw (webshop) implementatie van de afgelopen 35 dagen. Het is niet mogelijk om exchange calls ouder dan 35 dagen op te vragen.

Mislukte Exchange calls opvragen

Volg de onderstaande stappen om de Exchange calls op te vragen.

  • Ga naar My.pay.nl

  • Klik op het tabblad Rapportages en vervolgens op het tabblad Payment state log.

  • Activeer het filter en kies bijvoorbeeld de Filter type Status is gelijk aan Mislukt en klik op Gegevens ophalen.

  • Het rapport laat nu alle calls met de status mislukt zien.

  • Klik op een regel in de tabel of op het Details icoon aan de rechterkant van de regel om één mislukte Externe call op te vragen

  • Klik op Nogmaals aanroepen om deze enkele call opnieuw aan te roepen.

Meerdere mislukte Exchange Calls tegelijk aanroepen

  • Ga naar My.pay.nl

  • Klik op het tabblad Rapportages en vervolgens op het tabblad Payment state log.

  • Klik rechts bovenin het overzicht (naast het vraagteken icoon) op het Configuratie icoon. Scroll naar beneden en zet het veld Resultaten per pagina op het gewenst aantal Exchange Calls (500 is het limiet)

  • Activeer het filter en kies de Filter type Status is gelijk aan Mislukt en klik op Gegevens ophalen.

  • Het rapport laat nu alle calls met de status mislukt zien. Vink alle calls aan in de tabel header

  • Klik links onderin de Payment State Log op de dropdown en kies Nogmaals aanroepen en klik op OK

  • Herhaal dit totdat alle mislukte calls zijn weggewerkt