Bird Verify
A API de verificação sem nada para guardar.
Envie um código de uso único por email, SMS ou WhatsApp e depois verifique-o pelo destinatário, sem necessidade de guardar um id de verificação entre as duas chamadas. A ordem dos canais, o remetente e as regras do código já são resolvidos automaticamente por país. A mesma autenticação e idempotência de todos os outros canais Bird, porque a mesma equipa construiu todos. Voz será disponibilizado em breve.
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;
Your account
Confirm it’s you.
Enter the code sent to
+1 ••• ••• 4567Example verification code
A confiança diária de equipas que criam software de classe mundial
Leia mais histórias de clientesDuas chamadas desde a npm install até um utilizador verificado
Envie um código e depois verifique-o, na linguagem que já utiliza.
Create-or-retry envia o código; check confirma-o por destinatário. Duas chamadas, e nenhum id de verificação para encadear entre elas.
const verification = await bird.verify.verifications.create({
to: { phone_number: "+15551234567" },
});
console.log(verification.id, verification.status);Dez coisas que não precisa de construir
quando a verificação é a API.
Primitivas concretas, nomeadas e configuráveis. Sem ambiguidade.
- 01
Crie ou reenvie numa única chamada.
Reenvie o mesmo destinatário e retomamos a sessão ativa, reenviando quando o cooldown passar. Sem endpoint de reenvio separado, sem verificações duplicadas.
- 02
Verifique por destinatário. Não guarde nada.
Submeta o destinatário e o código; resolvemos a sessão a partir do par configuração-e-destinatário. Não há nenhum id de verificação para persistir entre envio e verificação.
- 03
Email, SMS e WhatsApp no lançamento.
The recipient you pass picks the channel: an email address verifies by email, a phone number by SMS or WhatsApp. Switching channels is a one-field change, not a new integration. Delivery failure can advance the verification to the next available channel. Voice is rolling out next.
- 04
Ordem de canais por país, já resolvida.
A ordem dos canais, o remetente e quais canais estão ativos variam por país. A base por país do Bird decide isso, pelo que uma chamada de criação já resolve para o plano correto em todo o lado.
- 05
Códigos que nunca vê.
Gerado com uma fonte criptográfica aleatória, armazenado apenas como HMAC, comparado em tempo constante. O código em texto simples nunca toca na sua stack nem nos nossos logs.
- 06
Código, TTL e tentativas configuráveis.
Six-digit default, 4–8 configurable per request; a 10-minute window; 5 attempts; a 60-second resend cooldown.
- 07
Cada código permanece válido até a sessão terminar.
Uma mensagem atrasada e um código reenviado de fresco ambos verificam, porque não invalidamos o código anterior quando um novo é enviado.
- 08
Um código errado é um 200, não uma exceção.
Valide respostas com um resultado booleano — este código verificou, sim ou não — e um motivo que detalha quando não verificou: inválido, expirado, já verificado ou sem tentativas restantes. Você faz a ramificação com base em um campo, nunca em um erro lançado.
- 09
Rate limits incluídos.
Limites de envio por destinatário e limite de tentativas por verificação — cada um um 429 com Retry-After — para que a força bruta se esgote antes de si.
- 10
O mesmo contrato que o resto do Bird.
Autenticação Bearer, chave de idempotência, ids tipados vrf_, um envelope de erro. O handler que escreveu para email já serve para verificação.
Explore a plataforma Verify
Cada funcionalidade em detalhe. Uma API, um conjunto de chaves.
SMS OTP.
Códigos únicos por SMS, com alcance global e rate limits integrados.
Email OTP.
Verifique por email na rede que já transporta o seu correio transacional.
WhatsApp OTP.
Envie códigos pelo WhatsApp como um canal configurável no mesmo plano.
OTP por voz.
Em lançamento: um código falado para telefones fixos, acessibilidade e utilizadores difíceis de alcançar.
Orquestração de canais.
Ordem de canais por país, remetentes e ativação/desativação, resolvidos automaticamente em cada envio.
Anti-abuso e segurança de código.
Códigos com hash, limites por destinatário, bloqueio por tentativas e o roadmap antifraude.
Não armazene nada entre o envio e a verificação.
A maioria das APIs de verificação devolve-lhe um id para persistir, consultar e submeter o código. O Bird resolve a sessão a partir do destinatário, por isso não há estado por verificação do seu lado.
A maioria das APIs de verificação
O create devolve um id que armazena, depois consulta a verificação para validar o código.
const { id } = await api.verifications.create({
to: "+15551234567",
});
// persist id somewhere, then later…
await api.verifications.check({ id, code });
Bird Verify
Verifique pelo destinatário. Não há nada para encadear entre as duas chamadas.
await bird.verify.verifications.create({
to: { phone_number: "+15551234567" },
}).safe();
// no id to store; check by the same recipient
await bird.verify.verifications.check({
to: { phone_number: "+15551234567" }, code,
}).safe();
O encaminhamento já conhece o país.
A ordem dos canais, os remetentes e quais canais estão ativos variam por país: WhatsApp primeiro num mercado, apenas SMS noutro. A base por país do Bird decide isso, pelo que uma chamada de criação já resolve para o plano correto. Veja orquestração de canais.
// Brazil already resolves WhatsApp, then SMS.
const { data, error } = await bird.verify.verifications.create({
to: { phone_number: "+5511998765432" },
}).safe();
if (error) throw error;
A verificação é também uma decisão de produto: a mesma API suporta autenticação de dois fatores e login sem palavra-passe. Quer validar um número primeiro? Combine com o Lookup. Autenticação silenciosa de rede e apps autenticadoras TOTP estão no roadmap.
Porque construímos o Verify
Porque o código que permite a entrada de um utilizador não deveria precisar da sua própria tabela na base de dados.
OTP é o canal onde um código que não chega é um registo que não acontece. O Bird já opera email e SMS em escala, por isso o Verify é essa entrega mais a geração de código, a sessão, o plano de canais por país e os rate limits — atrás de dois endpoints que não armazenam nada do seu lado e respondem com o mesmo formato de qualquer outro canal Bird.
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;
Se integrou SMS, já integrou o Verify.
Mesmo modelo de autenticação, mesmo contrato de idempotência, mesmo envelope de erros. A diferença é que o Verify gera o código, escolhe o canal e aplica os limites de taxa — para que você não precise fazer isso.
Verify
Uma chamada envia o código; outra verifica-o pelo destinatário. Nós gerimos o código, a sessão e os limites.
await bird.verify.verifications.create({
to: { phone_number: "+15551234567" },
});SMS
O envio direto, para quando você quer controlar a geração do código e a política de reenvio.
await bird.sms.send({
from: "Bird",
to: "+15551234567",
text: `Your code is ${code}.`,
category: "authentication",
});Escolha o remetente que os seus utilizadores veem
Os códigos são enviados sob Bird Verify por predefinição, sem necessidade de registo ou configuração de modelos. Mude um canal para Authifly e os seus utilizadores veem uma identidade de verificação neutra em vez de um fornecedor de plataforma: o e-mail OTP é enviado a partir de otp@verify.authifly.com e o SMS mostra o remetente Authifly sempre que o país de destino permitir um remetente com marca. Bird opera ambas as identidades, por isso a escolha não tem qualquer custo operacional para si — e pode configurá-la por canal e por país. No e-mail, pode ir mais longe e enviar a partir de um domínio que tenha verificado. Se um destinatário receber um código inesperado, authifly.com assegura-lhe que a Authifly envia códigos de utilização única legítimos em nome de uma empresa. Authifly é operada por Bird B.V.
Visite authifly.comEnvie sua primeira solicitação antes de escrever qualquer código.
Toda a API pública é uma coleção do Postman, convertida a partir da mesma especificação OpenAPI usada para gerar os SDKs, com um exemplo de solicitação e resposta em cada endpoint. Faça um fork para o seu próprio espaço de trabalho, defina uma chave API e envie uma solicitação real.
Coloque em prática.
Continue com a documentação, guias e exemplos sobre este tópico. Os recursos estão em inglês.
Verificação na mesma plataforma que o resto das suas mensagens.
Comece a construir hoje ou fale connosco sobre os canais, o volume e os preços de que precisa.