Events
Pick the events you need per endpoint under Developers → Webhooks.
Create an endpoint
In Developers → Webhooks, add:- URL — your HTTPS endpoint (e.g.
https://api.example.com/webhooks/payoes) - Events — which events to receive
- Signing secret — generated on creation (
whsec_...)
Payload
Payoes sends aPOST with a JSON body:
Headers
Verify the signature
Payoes signs{timestamp}.{raw_body} with your webhook secret. The digest appears in Payoes-Signature as v1=<hex>.
Reject timestamps more than five minutes old.
Node.js
Next.js App Router
Python (Flask)
Test events
Click Send test event on a webhook in the dashboard. Payoes delivers awebhook.test payload with sample payment data (metadata.payoes_test = "true"). It shows up in delivery logs the same way as live events.
Retries
If your endpoint returns a non-2xx status or times out, Payoes retries up to five times:
A failed delivery stays pending until the next attempt. After the fifth failure it moves to failed. You can also hit Retry in the dashboard delivery log.
Return
2xx as soon as you’ve accepted the event. Queue any slow work — Payoes will retry if your handler is slow or errors.
Delivery logs
On the webhook detail page you can inspect each delivery:- Delivery ID (
Payoes-Delivery-ID) - Event, status, and HTTP response code
- Attempt count and next retry time
- Request payload, response body, and last error
