Skip to main content
Os webhooks de URA acompanham o ciclo de vida de cada ligação, do início ao encerramento. Todos usam o envelope do webhook de conta: o conteúdo fica em data, com channel: "voice" e timestamp no nível raiz. Os campos não aplicáveis a um evento vêm como null.

Eventos do ciclo de vida

Campos de data

callId
string
required
Identificador da ligação (o bulkId retornado no disparo). Permite correlacionar todos os eventos da mesma ligação/lote.
bulkCallId
string | null
required
Identificador da chamada individual dentro do lote, ou null.
to
string | null
required
Número de destino em formato E.164, ou null.
answered
boolean | null
required
true quando a ligação foi atendida. Em call.answered é sempre true. Em call.ended pode ser true, false ou null. Nos demais eventos, null.
talkSeconds
number | null
required
Tempo de conversação em segundos. Presente em call.ended (pode ser null); null nos demais eventos.
digits
string | null
required
Tecla pressionada em call.dtmf — um único caractere: "0""9", "*" ou "#". null nos demais eventos.
cause
number | null
required
Código numérico de encerramento (Q.850 + códigos próprios). Presente em call.ended (pode ser null); null nos demais eventos. Veja a tabela de cause.
causeDescription
string | null
required
Descrição em pt-BR correspondente ao cause, ou null. Para um código sem descrição mapeada, retorna Causa <n>.
timestamp
string
required
Momento do evento em ISO 8601 (UTC).

Exemplos por evento

Os demais campos vêm como null.
answered é sempre true.
digits traz uma tecla. Cada tecla pressionada gera um webhook separado.
Traz talkSeconds, cause e causeDescription.

Tabela de cause

O campo cause segue os códigos Q.850 acrescidos de dois códigos próprios (150 e 151). O causeDescription traz a descrição correspondente em pt-BR.
Para um cause sem descrição mapeada na tabela, o causeDescription retorna o texto genérico Causa <n>.