Webhooks
Waysdrop sends webhooks for key order and delivery lifecycle events. Webhooks are delivered asynchronously and retried on failure.Delivery & signature
Webhook payloads are POSTed to the webhook URL configured for the API key.Environments
Webhooks are scoped to the environment of the API key:- Live:
https://api.waysdrop.com - Staging:
https://staging-api.waysdrop.com
Payload
Headers
Content-Type: application/jsonUser-Agent: Waysdrop-Webhook/1.0X-Webhook-Log-Id: <logId>x-waysdrop-signature: <hex signature>
X-Webhook-Log-Id as an idempotency key. The same event may be retried and delivered more than once; you should safely ignore duplicates by storing processed log IDs.
Signature
x-waysdrop-signature is computed as:
- Algorithm:
sha256 - Secret: your API key value (the same string you send in
api-key) - Input:
JSON.stringify({ event, data })
Your webhook response
Waysdrop treats any successful2xx response as “delivered”. Your endpoint should respond quickly (Waysdrop times out at 5 seconds).
Recommended response
Retries and delivery guarantees
Webhooks are delivered asynchronously and retried until one of these happens:- delivered successfully
- exhausted retry attempts (max: 10)
- Retries on network errors/timeouts.
- Retries on
408and429. - Retries on all
5xx. - Does not retry for other
4xxresponses.
nextRetryAtuses exponential backoff:2^attemptsseconds.- A repeat job runs roughly every 60 seconds and attempts retries once
nextRetryAtis due.
Webhook events
All timestamps are serialized as ISO strings.p2p.delivery.created
p2p.delivery.cancelled
delivery.request.accepted
delivery.request.declined
delivery.awaiting.collection
delivery.collected
delivery.in.transit
delivery.delivered
delivery.reassignment.created
Emitted when a courier-to-system reassignment is created for one or more deliveries (grouped byapiKeyId).
delivery.reassignment.requested
Emitted when the system creates a reassignment request response for a candidate courier (grouped byapiKeyId).
delivery.reassignment.collected
Emitted after reassignment handover proof is validated (grouped byapiKeyId).