Create a transfer destination
A destination is somewhere a Transfer node can send a call: a phone number,
the people who are available for calls in the dashboard, or your own app
(app: offers arrive as signed transfer.offer webhooks; the response
carries the signing secret once, in signingSecret). Emergency,
special-service and premium-rate numbers are refused.
Authentication
Pass a JWT access token or an API key (prefixed with tif_live_) as a Bearer token.
Request
Kind-specific settings. For app: { "url": "https://..." }, the HTTPS endpoint that
receives signed transfer.offer webhooks; the signing secret is returned once, in the
create response. For available_humans: { "userIds": null } (everyone
available) or { "userIds": ["<user id>", ...] }, plus optional "tags": ["sales", ...]
to ring only members with any of those tags (team accounts); members are rung only
within their available hours. For phone: { "number": "+E164", "callerId": "did" | "caller", "fromNumberId"?: "<id of one of your phone numbers>" }. fromNumberId picks the number
that places the call; when omitted, the number the original call came in on is used.
Destination kind: phone, available_humans (the people who are
available for calls in the dashboard), or app (your own server)
Display name, unique per account (1–100 characters).
Disabled destinations are skipped when a transfer rings. Default true.
Response
Destination kind: phone, available_humans (the people who are
available for calls in the dashboard), or app (your own server)
App destinations, after a rotation: until this time webhooks are also signed
with the previous secret (a second v1= in Talkif-Signature)
App destinations: the secret that signs the webhooks. Returned only when the destination is created or its secret rotated; store it, it is not shown again
App destinations: the last characters of the signing secret, to tell secrets apart