SMS OTP

Envie um código por SMS. Verifique-o pelo destinatário.

A verificação por SMS envia um código de uso único para um número de telefone e confirma que a pessoa que o digita de volta é quem detém a linha. Bird gera o código, envia-o, aplica limites por destinatário e verifica-o pelo destinatário — não há nenhum id para armazenar nem nenhum endpoint de reenvio para configurar.

Cursor
verify.ts
200 · pending
import { BirdClient } from "@messagebird/sdk";

const bird = new BirdClient({
  apiKey: process.env.BIRD_API_KEY!,
});

// Send the code, then check it by recipient.
await bird.verify.verifications.create({
  to: { phone_number: "+15551234567" },
}).safe();

const { data, error } = await bird.verify.verifications.check({
  to:   { phone_number: "+15551234567" },
  code: userInput,
}).safe();
if (error) throw error;
Verification flow

Your account

Confirm it’s you.

Enter the code sent to

+1 ••• ••• 4567

Example verification code

482691
Code verified
Send a code. Confirm the recipient.

A confiança diária de equipas que criam software de classe mundial

Leia mais histórias de clientes

SMS OTP é uma chamada para enviar e outra para verificar.

SMS é um canal da família telefónica na Bird Verify API: publique uma verificação com um número de telefone e nós enviamos o código através de um remetente partilhado gerido pela Bird, Bird Verify por predefinição ou Authifly se preferir; verifique-o pelo mesmo número. Reenviar o pedido de criação é o reenvio (create-or-retry), e todos os códigos da sessão permanecem válidos até serem verificados, expirarem ou esgotarem as tentativas.

O que obtém numa verificação por SMS.

Integrado, em cada envio.

  1. 01

    Endereçado por número de telefone.

    Passe um único número de telefone E.164. Nós normalizamo-lo e enviamos por SMS no remetente resolvido para o respetivo país.

  2. 02

    Códigos gerados no servidor e com hash.

    A 6-digit code by default (4–8 configurable), generated with a cryptographic random source and stored only as an HMAC. You never see the plaintext.

  3. 03

    O reenvio é a mesma chamada.

    Reenvie o pedido de criação após o período de espera de 60 segundos: mesma sessão, novo código, ambos ainda válidos. Sem endpoint de reenvio separado.

  4. 04

    Limites por destinatário incluídos.

    Um limite de envio por destinatário controla o volume de envio e gastos descontrolados, com um 429 com Retry-After.

  5. 05

    Alcance que se expande por país.

    SMS é enviado atualmente através de um remetente partilhado gerido pela Bird, Bird Verify ou Authifly, exibindo um sender ID com marca onde o país o permitir e um short code ou número local onde for necessário, com remetentes dedicados e registados a expandir o alcance à medida que ficam disponíveis.

O fluxo completo, duas chamadas.

Criar-ou-retentar envia o código para o número de telefone; verificar confirma-o por esse número. Não há nenhum id para encadear entre os dois: o destinatário é a chave.

sms-otp.ts
200
await bird.verify.verifications.create({
  to: { phone_number: "+15551234567" },
}).safe();

const { data, error } = await bird.verify.verifications.check({
  to:   { phone_number: "+15551234567" },
  code: userInput,
}).safe();
if (error) throw error;

// data.success is true or false; data.reason elaborates ("incorrect_code", "expired", "attempts_exhausted")

A API de verificação sem nada para armazenar.

SMS é um canal do Bird Verify: email e WhatsApp já estão incluídos, e voz está a ser lançado — tudo nos mesmos dois endpoints.

Seus dados

Todos os campos de contato são obrigatórios.

Para que nossa equipe entre em contato sobre sua demonstração.

Produtos de interesse

Opcional

Entraremos em contato para agendar sua demonstração.
Política de privacidade

Comece com um canal.
Adicione os outros quando estiver pronto.

Uma chave API de teste é sua imediatamente. A produção é desbloqueada quando você adiciona um método de pagamento e verifica um remetente.

Usa Claude Code, Cursor ou Codex? Copie um prompt de configuração e o seu agente instala o Bird CLI e as skills por si. Escolha o seu:

Cursor