Ask this contact to allow a call (Messenger)
POST/api/conversations/:conversationId/call/permission
Sends Meta's own calling_optin prompt to the conversation's contact —
the platform composes, localises and renders it, so the request carries
no body, no template and no language.
MESSENGER ONLY, and deliberately so. WhatsApp's ask is a MESSAGE the
tenant authored (an approved template with a call_permission_request
button) and is sent by
POST /api/conversations/{conversationId}/messages with
call_permission_request: true, where messages are written, billed and
recorded. Accepting it here would be a second implementation of that
send. Any other channel is refused with call_permission_wrong_channel.
The server re-checks the affordance next to the send: a permission the customer granted since the panel last looked is not spent on a second prompt, because Meta allows only two per thread per day.
Authorized via the conversation reply ability.
Request
Responses
- 200
- 401
- 403
- 404
- 422
The permission state AFTER the send — normally awaiting_reply, so the caller need not guess that the button it pressed is now a status.
Not authenticated. code: account_disabled means the member's seat was deactivated in this workspace: the session is over even though the token was not revoked (clients sign out and clean up).
Authenticated but not allowed.
Resource not found (or not visible to the current tenant).
The ask is not available here: call_permission_wrong_channel (this channel's ask is a message), call_permission_not_requestable (the permission is already live, already awaited, or Meta's daily cap is spent) or call_permission_send_failed (Meta refused the send — most often the 24-hour messaging window, which governs the prompt rather than the call).