Webhooks
What are webhooks?
Webhooks let tapurl.io notify your server in real time whenever a click or conversion happens. Your server receives a POST request with a JSON payload.
Use webhooks to feed click data into your CRM, analytics platform, or custom dashboards without polling our API.
Setup
- Open your project and click «Webhook» in the top right
- Enter the HTTPS URL of your endpoint
- Click Save — a signing secret is generated automatically
- Click «Send test webhook» to verify your endpoint is reachable
Events
| Event | When sent |
|---|---|
click | Every real click (bots excluded). Sent immediately after the redirect. |
conversion | When a postback is received from your affiliate network. |
test | Sent manually when you click «Send test webhook». |
Payload format
All events are JSON. The event field tells you which type it is.
Click event — full payload
Conversion event — includes original click SubIDs
Signature verification
Every request includes an HMAC-SHA256 signature in the X-Tapurl-Signature header. Use your signing secret (shown on the webhook settings page) to verify the request came from tapurl.io.
Always verify the signature before processing the payload:
Python
Node.js
PHP
Retry logic
If your endpoint returns a non-2xx status or times out, tapurl.io retries with exponential backoff:
| Attempt | Delay |
|---|---|
| 1 | Immediately → 30 seconds later |
| 2 | 2 minutes later |
| 3 | 10 minutes later |
| 4 | 1 hour later |
| 5 | 6 hours later → marked as failed |
After 5 failed attempts the delivery is marked as failed. You can see the history on the Webhook settings page.