Update subscription (no secret)
Overview
Partially updates a subscription owned by the caller's partner — every field is optional; send only what changes. The HMAC secret cannot be changed here (use rotate-secret). delivery_kind may be switched but must not collide with the partner's other slot. Returns the updated row (no secret).
Prerequisites
- A bearer token. Callable with Partner tokens.
- The
webhookSubscriptionIdof the record you are targeting.
Base URL
| Environment | URL |
|---|---|
| Production | https://production-api.shoutaboutus.com |
| Development | https://development-api.shoutaboutus.com |
Endpoint
POST /api/v1/partner/webhooks/{webhookSubscriptionId}/update
Authentication
- Requires a bearer token in the
Authorization: Bearer <bearer-token>header. - Who can call it: Partner tokens.
findCallerSubscriptionenforcesbundle_id === 1and scopes bypartner_company_id(404 if not owned).
Rate limit
- No rate limit.
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
webhookSubscriptionId | integer | Required | Digits only. |
Request body
- Body (all
sometimes):
| Field | Type | Required | Description |
|---|---|---|---|
label | string | no | sometimes+required when present; max 255 |
webhook_url | string (url) | no | url:http,https, max 2048 |
is_active | bool | no | enable/disable |
delivery_kind | string | no | immediate | batch; unique-slot rule excludes the edited row by id — 422 on collision with the other slot |
batch_interval_hours | int|null | required if delivery_kind=batch | one of [1,2,4,6,12] |
events | array | no | null/[] = all events; on immediate effective kind, batch-kind events rejected; hipages events rejected for non-hipages partners |
events.* | string | — | Must be one of the event names from the events catalog (GET /api/v1/partner/webhooks/events). |
payload_mode | string | no | full | minimal |
{
"label": "Updated webhook label",
"webhook_url": "https://partner.example.com/hooks/sau-v2",
"is_active": true,
"payload_mode": "minimal"
}Response
200 Success · 200
200{ "data": { "data": {
"id": 3,
"partner_company_id": 5,
"label": "Updated webhook label",
"webhook_url": "https://partner.example.com/hooks/sau-v2",
"events": null,
"payload_mode": "minimal",
"delivery_kind": "immediate",
"batch_interval_hours": null,
"delivery_label": "immediate",
"last_batch_dispatched_at": null,
"is_active": true,
"hmac_secret_fingerprint": "335b947fe611b6b2",
"last_succeeded_at": null,
"last_failed_at": null,
"last_failure_reason": null,
"consecutive_failure_count": 0,
"created_at": "2026-06-16T10:25:29+00:00",
"updated_at": "2026-06-16T10:26:02+00:00"
} } }Errors
| Status | Meaning |
|---|---|
401 | The bearer token is missing, expired or invalid |
404 | Returned if not owned |
422 | Returned on collision with the other slot |
500 | Unexpected server error |
Example request
curl --request POST \
--url "https://production-api.shoutaboutus.com/api/v1/partner/webhooks/123/update" \
--header 'Authorization: Bearer {{bearerToken}}' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"label": "Updated webhook label", "webhook_url": "https://partner.example.com/hooks/sau-v2", "is_active": true, "payload_mode": "minimal"}'Updated 11 days ago
Did this page help you?
