Each retry is performed with a 1-minute interval between attempts. If all retries are exhausted, a failure notification will be sent to your registered merchant email.
Retry Rules by HTTP Status
The number of retry attempts depends on the HTTP response status returned by your endpoint.Retry Interval
Interval Between Retries
Each retry attempt is made 1 minute after the previous one. Retries stop once the maximum limit for that status code is reached.
Retry Cache TTL
Retry counts are stored in cache with a 15-minute TTL. All attempts are logged to our database for auditing.
Example: HTTP 503 Retry Flow
Here’s what happens when your endpoint consistently returns503:
1
Attempt #1
Singapay sends the webhook. Your server responds
503. System schedules a retry in 1 minute.2
Attempt #2
First retry. Still
503. Another retry scheduled in 1 minute.3
Attempt #3
Second retry. Still
503. Another retry scheduled.4
Attempt #4 (Final)
Third and final retry. Still
503. No more retries. Failure logged and notification email sent.Total maximum delivery time for a
503 scenario: approximately 4 minutes across all attempts.What Happens After All Retries Fail
If the webhook cannot be delivered after all retry attempts:- The failure is logged in the database and visible via the Callback menu on your merchant dashboard.
- A failure notification email is sent to your registered merchant email address.
Best Practices
Return 2xx
Always respond with an HTTP status between
200–299 to acknowledge receipt.Stay Available
Keep your webhook endpoint stable and publicly accessible at all times.
Avoid Redirects
Do not use redirect URLs (
301–308) as your webhook endpoint.