DEVELOPER DOCUMENTATION
Create Webhook Endpoint
Register an HTTPS endpoint for platform lifecycle events. The HMAC signing secret is returned once, only in this response.
/api/partner/v1/webhook-endpointsRegisters a webhook endpoint to receive lifecycle events. The response includes the HMAC signing secret once — store it immediately; no later call returns it. If you lose it, delete the endpoint and create a new one.
Delivery starts with events created after the endpoint is registered — there is no backfill of earlier events. Link projects and subscribe before contracts you care about begin.
Requirements: webhooks:manage scope.
Request
Section titled “Request”urlstringbodyrequiredDelivery URL. Must be HTTPS (http is allowed for localhost only). Redirects are not followed.
eventTypesstring[]bodyrequiredAt least one of: contract.started, contract.ended, project_link.created, project_link.removed, install.revoked, milestone.funded, milestone.budget_low, milestone.budget_depleted.
Response
Section titled “Response”webhookEndpointobjectThe created endpoint: {id, url, eventTypes, status, createdAt, consecutiveFailures, disabledAt, disabledReason} — same shape as GET /webhook-endpoints/{endpointId}.
secretstringHMAC-SHA256 signing secret for verifying deliveries. Shown only in this response.
messagestringReminder that the secret will not be shown again.
Errors
Section titled “Errors”| Status | code | Meaning |
|---|---|---|
400 | BAD_REQUEST | Body not valid JSON, url missing/not HTTPS, or eventTypes empty/contains an unknown type |
401 | UNAUTHORIZED | Missing, invalid, or revoked token |
403 | FORBIDDEN | Token lacks webhooks:manage |
409 | CONFLICT | Endpoint limit reached for this install |