Registers an endpoint to receive delivery events.
const url = 'https://courierapi.itdlogisoft.co.uk/v1/webhooks';const options = { method: 'POST', headers: {Authorization: 'Basic <credentials>', 'Content-Type': 'application/json'}, body: '{"url":"example","events":["example"]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://courierapi.itdlogisoft.co.uk/v1/webhooks \ --header 'Authorization: Basic <credentials>' \ --header 'Content-Type: application/json' \ --data '{ "url": "example", "events": [ "example" ] }'Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”Register an endpoint to be told about your deliveries.
The endpoint must be https. These payloads say where a courier is going and who they are collecting from, and an http:// URL is one anybody on the path can read.
object
Where to post. Must be a full, absolute https URL.
Optional. The events you want, such as job.delivered. Omitted or empty means all of them,
which is what most integrations want.
Example generated
{ "url": "example", "events": [ "example" ]}Responses
Section titled “Responses”Created
A registered endpoint.
string? WebhookResponse.SigningSecret is present only in the response that created or rotated it, and is never readable again. Store it: it is the only thing that proves a request to your endpoint came from us.
object
Example generated
{ "id": "example", "url": "example", "status": "example", "events": [ "example" ], "created_at": "2026-04-15T12:00:00Z", "last_succeeded_at": "2026-04-15T12:00:00Z", "last_failed_at": "2026-04-15T12:00:00Z", "consecutive_failures": 1, "suspension_reason": "example", "signing_secret": "example"}Unprocessable Entity
The shape of every refusal from this API.
string ApiError.Code is stable and machine-readable; string ApiError.Message is for a human reading a log and may change without notice. Integrators are told to branch on the code.
object
Example generated
{ "code": "example", "message": "example"}