Configure a webhook receiver
Save a public HTTPS destination and deliberately test the saved receiver.
Before you start
- Use the correct company and an active account with permission for this workflow.
Where to go
Integrations → Webhooks
Audience
Company owners and active company administrators.
Permissions
- Use your current account role; a Help link does not grant permission.
Workflow
- Open Integrations → Webhooks as the company owner or an active company admin. Prepare a publicly routable HTTPS receiver on your server; localhost and private addresses are rejected.
- Inspect the destination, then Save. The existing PATCH /v1/vendor/<vendor-id>/callback-url accepts callbackUrl; the saved destination is shown separately from unsaved input.
- Preview the test payload: type is test_event, vendorId is the selected company, and sentAt is the event time. Save edits before testing.
- Click Send test event deliberately. POST /v1/vendor/<vendor-id>/callback-test has no destination body: the server sends to its saved receiver.
- Read the receiver HTTP status and sanitized receiver log. A 2xx response is success; delivered:true with 4xx or 5xx is receiver failure. delivered:false or no numeric status is a network or unconfirmed outcome.
- Correct the receiver or save a replacement public HTTPS URL, then explicitly retest. Empty URLs cannot disconnect the callback.
- This workflow does not provide signing secrets, custom headers, event subscriptions, automatic retries, replay, persistent delivery logs or multiple destinations. Payment-provider signatures are a separate system.
Expected outcome
Read the current saved state in the workspace after the permitted action; Help does not perform or verify the action.
Troubleshooting
- Receiver 404, 401/403, 429, 5xx or network failure
- Check the saved path, receiver authorization expectations, rate limits and public connectivity. Never put integration secrets in a callback URL or payload.
- Save returns 422
- Use a public HTTPS host that passes the server destination validation; private or non-HTTPS URLs are not supported.
Developer examples
Save the receiver destination
curl -X PATCH https://api.crewlogix.app/v1/vendor/<vendor-id>/callback-url \
-H "Authorization: Bearer <session-token>" \
-H "Content-Type: application/json" \
--data '{"callbackUrl":"https://receiver.example.com/hook"}'Send a test to the saved receiver
curl -X POST https://api.crewlogix.app/v1/vendor/<vendor-id>/callback-test \
-H "Authorization: Bearer <session-token>"