Endpoints

Create webhook endpoints, choose the events each one receives, and manage them from the dashboard.

An endpoint is the URL on your server that receives webhooks. With Webhooks 2.0 you can have up to 10, and each one receives only the events you select for it.

Webhooks 2.0 is enabled per account. If Developers in your dashboard has no Events tab, your account is on the previous version: ask your Tonder contact to enable it.

The previous version is covered in Accounts without Webhooks 2.0.

Webhook endpoints in Developers › Webhooks

Create an endpoint

Open the Webhooks tab

In the dashboard, go to Developers › Webhooks and click Create endpoint.

Name it and set the URL

  • Name — up to 80 characters. Description is optional.
  • Endpoint URL — must start with https://. Private and internal addresses (for example 127.0.0.1) are rejected.

Choose the authentication method

Pick what your server expects on every request — see Authentication headers. Every webhook is signed as well, whatever you pick.

Select the events

Under Select the events to be notified to the endpoint, tick the events this endpoint should receive, or All events in a group. Each group shows its payload format (Short or Long); the full list is in the Events catalog.

Create and keep the signing secret

Click Create. The dashboard shows the Signing secret once: copy it to your server now, because it will not be shown again. You use it to verify signatures. Store it as a server-side secret — an environment variable or a secret manager — never in front-end code or your repository.

Send a test

In the endpoint's actions menu, choose Send test. Tonder sends an endpoint.test event, which appears in the Events log with your server's response. A 2xx means the endpoint is ready.

Create endpoint form

Authentication headers

Authentication methodWhat your endpoint receives
NoneOnly Tonder's signature headers.
BearerAuthorization: Bearer <your token>
API tokenYour token in the header you name — X-API-Key by default.
Basic authAuthorization: Basic base64(username:password)

The token, header name and credentials are values you choose; Tonder stores them and sends them on every request. Verify the signature in every case: an authentication header is an extra layer, not a replacement.

Generate a long random value for each endpoint, and don't reuse your Tonder API key or any other credential. Keep tokens out of the endpoint URL: the URL is shown in the endpoint list.

Manage endpoints

Each endpoint in Developers › Webhooks has an actions menu:

ActionWhat happens
Edit endpointChange the URL, authentication or events. The change applies from the next event; events already being retried continue.
Send testSends an endpoint.test event, whether or not the endpoint subscribes to it.
DisableThe endpoint stops receiving events until you enable it again. Its pending retries end as Failed ("Endpoint unavailable").
Rotate secretGenerates a new signing secret; the previous one keeps signing for 24 hours. See Rotate the secret.
DeleteThe endpoint stops receiving events immediately. Its past events stay visible in the Events log.

The list shows each endpoint's authentication method, subscribed events, error rate over the last 24 hours and status. Everything on this screen is also available through the Webhooks API.

Troubleshooting

  • The endpoint isn't receiving an event: check that it is Active, subscribed to that event, publicly reachable over HTTPS, and answering a 2xx within 10 seconds. Find the event in the Events log to see what your server answered.
  • The URL is rejected when you create the endpoint: it isn't https://, or it points to a private or internal address.
  • Your server rejects the requests: check that it expects the authentication method and credentials configured on the endpoint, and that it verifies the signature against the current secret.

Accounts without Webhooks 2.0

On the previous version you register one URL through the API, and that URL receives every event.

Security requirements: use a secure (HTTPS) URL, configure an authentication method (BEARER, API_TOKEN, or BASIC_AUTH) to verify requests come from Tonder, and validate the event structure and content before processing.

Register the URL

Register a new URL with the /webhooks/ endpoint. You can configure authentication to secure your endpoint:

curl -X POST https://stage.tonder.io/api/v1/webhooks/ \
  -H "Authorization: Token YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://your-site.com/webhook-handler",
    "auth_method": "BEARER",
    "credentials": {
      "token": "a-secure-bearer-token-you-generate"
    }
  }'

The response confirms the created endpoint:

{
  "id": 123,
  "url": "https://your-site.com/webhook-handler",
  "status": "active",
  "auth_method": "BEARER",
  "credentials": {
    "token": "a-secure-bearer-token-you-generate"
  }
}
FieldTypeDescription
idintegerUnique identifier for the endpoint.
urlstringThe URL you registered.
statusstringWebhook status (active, inactive).
auth_methodstringAuthentication method (BEARER, API_TOKEN, BASIC_AUTH).
credentialsobjectAssociated authentication credentials.

Save the webhook id for management operations.

Authentication methods

What your endpoint receives depends on the auth_method you configure:

auth_methodWhat you configure in credentialsWhat your endpoint receives
BEARERtokenAuthorization: Bearer <token>
API_TOKENheader and token<header>: <token> — literal, verbatim
BASIC_AUTHusername and passwordAuthorization: Basic base64(username:password)

With API_TOKEN you define both the name of the header and its value, and we send it verbatim, adding no prefix. To receive Authorization: Token abc123, configure header: "Authorization" and token: "Token abc123". A header of your own, such as X-Api-Key, also works.

{
  "url": "https://your-site.com/webhook-handler",
  "auth_method": "API_TOKEN",
  "credentials": {
    "header": "X-Api-Key",
    "token": "a-secret-you-generate"
  }
}

In all cases the secret is generated by you. We store it and resend it on every notification so your backend can validate it.

Manage the URL

OperationMethodEndpointPurpose
ListGET/webhooks/Retrieves all configured endpoints.
UpdatePUT/webhooks/{webhook_id}/Updates an endpoint's configuration.
DeleteDELETE/webhooks/{webhook_id}/Removes an endpoint (it stops receiving notifications).
curl -X GET https://stage.tonder.io/api/v1/webhooks/ \
  -H "Authorization: Token YOUR_API_KEY"
curl -X PUT https://stage.tonder.io/api/v1/webhooks/123/ \
  -H "Authorization: Token YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "url": "https://your-updated-site.com/webhook-handler" }'
curl -X DELETE https://stage.tonder.io/api/v1/webhooks/123/ \
  -H "Authorization: Token YOUR_API_KEY"

On the previous version the endpoint must answer a 2xx within 30 seconds, and each event is delivered once — see Without Webhooks 2.0.

Next steps

Was this page helpful?

On this page