Oferta de lançamento: −50 % no seu primeiro pagamento, até 30 de novembro.Ver a oferta →
webhook·toolkit
Twilio

Testar um webhook Twilio localmente

Validar um handler da Twilio (SMS ou chamada recebida) sem enviar mensagens pagas de verdade: é possível. Gere uma requisição Twilio assinada (X-Twilio-Signature, HMAC-SHA1) no formato form-urlencoded, edite os parâmetros (From, To, Body) e envie para o seu servidor local.

Gere a assinatura para ver os headers, o body e o comando cURL pronto para colar.

Verificar a assinatura no servidor

handler.js (Node)
const twilio = require('twilio');
const valid = twilio.validateRequest(
  process.env.TWILIO_AUTH_TOKEN,
  req.headers['x-twilio-signature'],
  fullUrl,            // deve corresponder à URL de destino usada acima
  req.body            // parâmetros POST
);

Para receber um webhook real da Twilio na sua máquina, aponte o número para o seu túnel Relay.

Signature coming back invalid? This page signs. The Twilio signature validator does the opposite: paste the signature Twilio actually sent and it tells you which URL variant matches — which is to say, which line of your code is lying.

Perguntas frequentes

Como testar um SMS Twilio recebido localmente?

Escolha o evento 'Incoming SMS', informe o seu Auth Token e a URL exata do seu handler (a assinatura da Twilio depende da URL), e envie. O header X-Twilio-Signature é calculado em HMAC-SHA1 sobre a URL + parâmetros ordenados, como a Twilio faz.

Por que preciso fornecer a URL de destino?

A assinatura da Twilio inclui a URL completa do webhook no cálculo HMAC. Sem a URL certa, a assinatura não será válida no servidor. Por isso o campo URL de destino é obrigatório para a Twilio.

O formato é mesmo form-urlencoded?

Sim. Diferente de Stripe ou GitHub (JSON), a Twilio envia application/x-www-form-urlencoded. O gerador produz o Content-Type certo e codifica os parâmetros corretamente.

A Twilio está incluída no plano grátis?

Não: todos os provedores do Signer, incluindo a Twilio, são gratuitos. O Pass de 7 dias (5 €) e o Pro (9 €/mês) adicionam explicações de IA, 25 URLs permanentes, 30 dias de histórico e o túnel Relay, que devolve o seu TwiML local à Twilio.

Oferta de lançamento · −50 %

Depurando uma integração de webhook esta semana?

O Pass 7 dias desbloqueia as explicações com IA e o código do handler pronto para colar, 25 URLs permanentes, 30 dias de histórico e o túnel Relay para localhost. Um único pagamento, sem assinatura.

€ 5 € 2,50 uma vez
Pagamento único · sem assinatura · reembolso em 14 dias · preço de lançamento até 30 de novembro
Testar um webhook Twilio localmente — X-Twilio-Signature válido · Webhook Toolkit