Verificação de OTP por SMS
Verificação de OTP por SMS
Envie e verifique códigos de acesso únicos por SMS durante uma conversa com um agente usando o Twilio Verify.

Visão geral
Este guia mostra como integrar o Twilio Verify ao seu agente da ElevenLabs para que você possa enviar um OTP ao número de telefone de quem liga e verificar o código informado durante uma conversa de voz ao vivo.
Você aprenderá a:
- Criar um serviço do Twilio Verify e codificar suas credenciais em Base64 para autenticação.
- Configurar duas ferramentas de webhook (
send_SMS_verificationecheck_SMS_verification) no painel, com a CLI do Agents ou usando a API da ElevenLabs. - Autenticar as duas chamadas de webhook usando um cabeçalho
Authorizationcom um valor secreto. - Ativar a ferramenta do sistema
skip_turnpara que o agente aguarde quando quem liga ainda não tiver recebido o código.
Pré-requisitos
- Uma conta Twilio com o Twilio Verify ativado. Se o Verify não estiver disponível no Twilio Console, solicite acesso pelo suporte da Twilio ou pela equipe da sua conta Twilio.
- Se a sua conta Twilio estiver no modo de teste, o número de telefone de destino deverá ser um identificador de chamadas verificado na Twilio.
Crie um serviço Authenticate (Verify)
Na barra lateral esquerda, selecione Add + e crie um serviço Authenticate (Verify).
Copie o Verify Service SID
Abra a página Settings do serviço e copie o Verify Service SID. Ele começa com VA e é diferente do seu Account SID.
Erro comum: use o Verify Service SID (VA...) do serviço Authenticate (Verify) nos URLs das ferramentas abaixo. Não coloque seu Account SID (AC...) no caminho. A API Verify espera o SID do serviço no URL; usar o Account SID gera erros 4xx de parâmetro inválido.
Você pode usar o Twilio API Explorer no console para testar solicitações antes de vinculá-las ao seu agente.
Codifique as credenciais e configure as ferramentas de webhook
Codifique suas credenciais Twilio para autenticação Basic
O Twilio Verify usa autenticação HTTP Basic, com seu Account SID como nome de usuário e o Auth Token como senha. Encontre ambos em Account Info na página inicial do Twilio Console.
No seu shell, codifique ACCOUNT_SID:AUTH_TOKEN em Base64 (separados por dois-pontos, sem espaços):
Copie o resultado. O valor completo do cabeçalho Authorization é a palavra Basic, um único espaço e essa string Base64. Armazene-o como um segredo de ferramenta nas próximas etapas.
Configure as ferramentas send_SMS_verification e check_SMS_verification
send_SMS_verification chama o Twilio Verify para enviar um OTP por SMS. check_SMS_verification envia os dígitos informados pelo chamador. Ambas exigem o mesmo Verify Service SID e o mesmo segredo Authorization.
Adicionar pelo painel
Adicionar pela CLI
Adicionar pela API
send_SMS_verification

Na seção Agent das configurações do seu agente, selecione Add Tool e escolha Webhook.
Substitua YOUR_VERIFY_SERVICE_SID pelo SID VA... da primeira etapa.
Cabeçalho de autenticação: em Headers, adicione Authorization como tipo Secret e cole o valor completo (Basic mais Base64). Consulte Ferramentas de webhook.
Parâmetros do corpo: defina Content type como URL-encoded (application/x-www-form-urlencoded). Adicione parâmetros com LLM Prompt como tipo de valor:
check_SMS_verification
Adicione uma segunda ferramenta de webhook:
Use o mesmo Verify Service SID e o mesmo segredo Authorization usados em send_SMS_verification.
Parâmetros do corpo: URL-encoded. Adicione To (E.164) e Code (dígitos do OTP) com LLM Prompt.
Se você configurar Channel como um campo preenchido pelo LLM no painel, adicione instruções ao seu prompt de sistema para que o modelo sempre passe sms. Os exemplos de CLI e API acima fixam sms com constant_value / constantValue, para que o modelo não escolha o canal.
Ative a ferramenta de sistema skip_turn
Os chamadores geralmente precisam de um momento para receber o SMS antes de poderem informar o código. Sem skip_turn, o agente pode falar durante a pausa ou repetir instruções.
Adicionar pelo painel
Adicionar pela CLI
Adicionar pela API
Em Tools, selecione Add Tool, escolha System tool e ative Skip turn. Nenhuma configuração adicional é necessária.
Adicione orientações ao prompt de sistema para que o modelo saiba quando chamá-la, por exemplo:
Consulte Skip turn para ver os detalhes.
Solução de problemas
Twilio 60200 — Parâmetro inválido (HTTP 400)
O Twilio pode retornar um corpo como este quando a URL ou o corpo da solicitação não corresponde ao que a API Verify espera:
O que verificar: O caminho deve usar o SID do serviço Verify (VA...) nas configurações do serviço Authenticate (Verify). Inserir o SID da conta (AC...) em .../Services/{Sid}/... é uma causa comum do 60200. Consulte a documentação do Twilio sobre o 60200 para outros casos de parâmetro inválido.
Twilio 20003 — Erro de autenticação — Nenhuma credencial fornecida (HTTP 401)
Quando o cabeçalho Authorization está ausente, malformado ou não é enviado, o Twilio pode responder com:
O que verificar: A ferramenta deve enviar um cabeçalho Authorization cujo valor seja a string completa Basic <base64> (incluindo a palavra Basic e um único espaço antes da saída em Base64). A entrada em Base64 deve ser exatamente ACCOUNT_SID:AUTH_TOKEN, sem espaços extras ou quebras de linha. Confirme que o segredo está anexado a esse cabeçalho em ambas as ferramentas de webhook. Consulte 20003.
Outros problemas
- Número rejeitado no modo de teste: No Console do Twilio, abra Números de telefone verificados e confirme que o número de destino está listado antes de testar.
- O agente fala por cima de quem liga: Confirme que Skip turn está ativado e que o prompt do sistema instrui o modelo a usar
skip_turnquando a pessoa precisar de tempo.