All pages

Developer docs

Change a webhook endpoint's events

View as Markdown

Choose which events a webhook endpoint receives. The address is changed with change_webhook_endpoint_url instead, and the account owner confirms the new one. Only the account owner's API keys and connected apps can change webhooks.

PATCHhttps://uetr.ai/api/v1/webhooks/{id}
  • MCP tool: update_webhook_endpoint
  • Access: a key or connection with read and write access
  • Only the account owner's keys and connections

Parameters

NameInTypeRequiredDescription
idpathstring (uuid)YesThe webhook endpoint's id.

Request body

FieldTypeRequiredDescription
eventsarray of status_changed, final_state, checks_ended (at least 1 item, at most 3 items)Yesstatus_changed: a transfer's status changed. final_state: a transfer reached a final state, such as credited or returned. checks_ended: automatic checks on a transfer ended before a final state, including when it was archived. A delivered event's type is the name with transfer. in front, for example transfer.status_changed.

Response

FieldTypeRequiredDescription
idstring (uuid)Yes
urlstringYesThe address's host and a masked path. The full address is never shown.
destinationjson, slack, teamsYesjson: signed JSON. slack and teams: a readable message for a Slack or Microsoft Teams incoming webhook.
eventsarray of status_changed, final_state, checks_endedYes
statuspending, active, pausedYespending: waiting for the account owner to confirm it on the website; until then it receives test events only. active: receiving events. paused: deliveries stopped after sustained failures; a test event that succeeds resumes it.
paused_atstring or nullYes
created_atstringYes
created_bywebsite, apiYeswebsite: added on the website. api: added by an API key or a connected app.
api_versionstringYes

Example

curl -X PATCH "https://uetr.ai/api/v1/webhooks/3b1f8c2e-6a4d-4f5e-9c7b-2d8e1a0f4b6c" \
  -H "Authorization: Bearer $UETR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"events":["final_state"]}'

The answer:

{
  "id": "3b1f8c2e-6a4d-4f5e-9c7b-2d8e1a0f4b6c",
  "url": "hooks.slack.com/services/••••",
  "destination": "slack",
  "events": [
    "final_state"
  ],
  "status": "active",
  "paused_at": null,
  "created_at": "2026-10-14T09:35:00.000Z",
  "created_by": "api",
  "api_version": "2026-10-14"
}

Refusals

Besides the access refusals every call can meet, this call can answer: