Skip to content
TipPage Docs
Esc
navigateopen⌘Jpreview

Add an endpoint

Registers a delivery URL. The response contains the signing secret exactly once - store it immediately. URLs must be public https://; private/internal addresses are rejected. Max 10 endpoints. Requires webhooks:manage.

POST/webhook-endpoints
Authorization
AuthorizationBearer token (tp_live_...) · headerrequired
A TipPage API key, created in Dashboard → Settings → Developer.
Request body
requiredapplication/json
urlstring<uri>required
Public https:// URL.
descriptionstring
max length 200
eventsstring[]required
Event types to receive, or `["*"]` for everything.
Responses
201Created. `secret` is shown only here (and on rotation).
endpointWebhookEndpoint
Show properties
idstring
urlstring<uri>
descriptionstring | null
eventsstring[]
Subscribed event types, or `["*"]` for everything.
is_activeboolean
disabled_reasonstring | null
Set when the endpoint was auto-disabled after repeated failures.
consecutive_failuresinteger
Deliveries that exhausted every retry since the last success.
last_success_atstring<date-time> | null
last_failure_atstring<date-time> | null
created_atstring<date-time>
secretstring
400Invalid URL, events, or endpoint limit reached.
errorstringrequired
Human-readable message.
codestring
Machine-readable code (e.g. `missing_scope`, `not_in_queue`).
401Missing or invalid API key (`missing_api_key` / `invalid_api_key`).
errorstringrequired
Human-readable message.
codestring
Machine-readable code (e.g. `missing_scope`, `not_in_queue`).
403The key lacks the required scope (`missing_scope`).
errorstringrequired
Human-readable message.
codestring
Machine-readable code (e.g. `missing_scope`, `not_in_queue`).
required_scopestring
429Rate limit exceeded - check the `RateLimit-*` headers.
errorstring
Request
curl -X POST "https://api.tippage.com/v1/webhook-endpoints" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "url": "http://example.com",
  "description": "string",
  "events": [
    "string"
  ]
}'
Response
{
  "endpoint": {
    "id": "we_1a2b3c4d5e6f",
    "url": "http://example.com",
    "description": "string",
    "events": [
      "string"
    ],
    "is_active": true,
    "disabled_reason": "string",
    "consecutive_failures": 0,
    "last_success_at": "2019-08-24T14:15:22Z",
    "last_failure_at": "2019-08-24T14:15:22Z",
    "created_at": "2019-08-24T14:15:22Z"
  },
  "secret": "whsec_9f8e7d..."
}