Handle purchase callbacks
Walley Checkout will send a GET request with TLS to the notification URI that was provided in the initialize Checkout step for the following events:
1. Completed Purchase.
A purchase has been successfully completed by the end customer.
When you acquire checkout information
the state of the Checkout has transferred to PurchaseCompleted
and the invoice status is one of the values described in data.purchase.result
below.
2. Invoice Status update.
An invoice has been approved or rejected by Walley's anti-fraud system (if that feature is configured on your account), or the Invoice required the end customer to digitally sign a credit agreement and this has been completed by the end customer. When you acquire checkout information the invoice status has transferred to one of the values described in data.purchase.result
below. Please note that if the invoice was Cancelled
before the notification callback arrived, the invoice is considered Cancelled
regardless what the value of data.purchase.result
is.
3. Pay Link is cancelled.
If using the checkout as a Pay Link and a checkoutAbortedRedirectPageUri
is provided at Initialize Checkout, a notification callback will be sent if the cancel button is called. The customer will be redirected to the redirect page and a notification will be triggered.
Idempotency and retries​
Please note the Checkout will attempt to notify the provided notification URI multiple times with increasing backoff time until a HTTP status code 200 is received in the response. Our retry mechanism is built in a way that we guarantee at-least-once-delivery and the notification URI endpoint must therefore support being called multiple times without side effects.
The notification callback is sent instantly and if the endpoint did not answer with a 200 OK
status a retry will be made after:
- 5 seconds
- 10 seconds
- 3 minutes
- 1 hour
- 4 hours
- 8 hours
- 16 hours
- 24 hours
If the notification endpoint did not answer with a 200 OK
status after the last retry (after about 80 hours), we will handle this manually and contact you before retrying again.