Sign inGet Started

Verifieer je eerste klant

Bird Verify bevestigt dat iemand een e-mailadres of telefoonnummer beheert. Je vraagt Bird om een eenmalige verificatiecode te versturen. De persoon voert deze in je app in, en je vraagt Bird of de code klopte. Bird genereert en bezorgt de code en handhaaft de vervaltijd en pogingslimieten. Je app ontvangt of bewaart de gegenereerde code nooit.
Deze quickstart verifieert je eigen e-mailadres, wat geen configuratie vereist. Bird verstuurt e-mailcodes via de gedeelde Bird Verify-afzender, dus je hebt geen domein of saldo nodig. Na het opwaarderen van SMS gebruikt een telefoonnummer verifiëren dezelfde twee calls.

1. Maak een API-key aan

Ga in het dashboard naar Developers > API keys en maak een key aan. Keys zijn gekoppeld aan een regio en zien eruit als bk_us1_... of bk_eu1_...; de regio in het prefix vertelt je welke API-host je moet aanroepen: https://us1.platform.bird.com of https://eu1.platform.bird.com.
De API Keys-pagina in het Bird-dashboard, met keys en hun gemaskeerde prefix, scopes en laatste gebruikstijd
De volledige key wordt eenmalig getoond, bij het aanmaken. Kopieer deze naar een veilige plek en exporteer de key voor de verstuurvoorbeelden:
Codevoorbeeld
export BIRD_API_KEY="bk_us1_..."

2. Verstuur een code

Maak een verificatie aan voor het adres dat je wilt bevestigen. Het enige verplichte veld is to. Gebruik je eigen e-mailadres zodat je de code kunt lezen. Installeer de Bird SDK voor je taal door de bijbehorende SDK-quickstart te volgen.
Vervang in de SDK-tabs de voorbeeld-API-key en user@example.com voordat je de code uitvoert. De CLI gebruikt je login, en het cURL-tabblad gebruikt BIRD_API_KEY.
import { BirdClient } from "@messagebird/sdk";

const bird = new BirdClient({ apiKey: "bk_XXXXXXXXXXXXXXXXXXXXXXXX" });

const verification = await bird.verify.verifications.create({
  to: { email: "user@example.com" },
});

console.log(verification.id, verification.status);
Als je key begint met bk_eu1_, roep dan https://eu1.platform.bird.com aan.
Bird accepteert het verzoek en begint de code te versturen:
Codevoorbeeld
{
  "id": "vrf_01ky7q1fdze3695yvyz7z9nm3a",
  "status": "pending",
  "reason": null,
  "to": { "email": "user@example.com" },
  "channels": [{ "channel": "email" }],
  "last_channel": "email",
  "expires_at": "2026-07-23T14:55:58Z",
  "verified_at": null,
  "created_at": "2026-07-23T14:45:58Z",
  "updated_at": "2026-07-23T14:45:58Z"
}
Je hoeft geen verificatie-ID op te slaan: de controle in stap 3 is gekoppeld aan dezelfde ontvanger. De e-mail komt van Bird Verify <otp@verify.bird.com> met als onderwerp "Your verification code" en een zescijferige code; het bericht zelf vermeldt wanneer de code verloopt. Codelengte, levensduur, pogingslimiet en herverzendings-cooldown zijn werkruimte-instellingen, en verificatie-instellingen beschrijft de standaardwaarden en bereiken.

3. Controleer de code

Neem de code uit je inbox en verstuur deze, gekoppeld aan dezelfde ontvanger:
import { BirdClient } from "@messagebird/sdk";

const bird = new BirdClient({ apiKey: "bk_XXXXXXXXXXXXXXXXXXXXXXXX" });

const result = await bird.verify.verifications.check({
  to: { email: "user@example.com" },
  code: "123456",
});

console.log(result.success);
Een correcte code komt terug als success: true, en de ingesloten verificatie schakelt naar verified:
Codevoorbeeld
{
  "success": true,
  "reason": null,
  "attempts_remaining": null,
  "verification": {
    "id": "vrf_01ky7q1fdze3695yvyz7z9nm3a",
    "status": "verified",
    "reason": null,
    "to": { "email": "user@example.com" },
    "channels": [{ "channel": "email" }],
    "last_channel": "email",
    "expires_at": "2026-07-23T14:55:58Z",
    "verified_at": "2026-07-23T14:46:47Z",
    "created_at": "2026-07-23T14:45:58Z",
    "updated_at": "2026-07-23T14:46:47Z"
  }
}
Houd rekening met deze uitkomsten voordat je deze flow aan een registratie toevoegt:
  • Een mislukte controle retourneert HTTP 200. Het antwoord bevat success: false, een reason (incorrect_code, expired of attempts_exhausted), en een attempts_remaining-teller zolang er pogingen resteren. Verwerk dit resultaat in je applicatie. De verificatie mislukt definitief nadat alle controlepogingen zijn opgebruikt.
  • Een verificatie wordt één keer afgehandeld. Nadat deze verified bereikt (of mislukt of verloopt), retourneert een nieuwe controle een 404. Behandel het eerste definitieve antwoord als het antwoord. Als de gebruiker een nieuwe code nodig heeft, roep je het create-endpoint opnieuw aan met dezelfde ontvanger: de lopende verificatie wordt hergebruikt en er wordt een nieuwe code verstuurd zodra de herverzendings-cooldown verstreken is.
Elke verificatie die je aanmaakt verschijnt op de Verifications-pagina met status, ontvanger, kanaal en timing. De gegenereerde code wordt niet getoond.
De Verifications-pagina met verificaties en kolommen voor status, verificatie-ID, ontvanger, kanaal, kosten en aanmaaktijd

Verifieer een telefoonnummer

Om via SMS te verifiëren, vul je een telefoonnummer in to in E.164-formaat in plaats van een e-mailadres:
const verification = await bird.verify.verifications.create({
  to: { phone_number: "+15551234567" },
});
console.log(verification.id, verification.status);
De controle is identiek: vervang email door hetzelfde phone_number. Telefonische bezorging gaat van het SMS-saldo van je werkruimte af, en het bestemmingsland bepaalt de route. Bird probeert WhatsApp eerst in de meeste landen en SMS eerst in sommige. Landconfiguratie toont en configureert de beschikbare kanalen en hun volgorde per bestemming. Afzenders en branding toont wat er op elk kanaal aankomt.

Bereik de gebruiker via beide kanalen

Je hoeft niet één kanaal te kiezen. Voeg zowel een email als een phone_number toe in to, en Bird stelt een bezorgplan samen op basis van je landconfiguratie, die de beschikbare kanalen en hun volgorde per bestemming toont. Bird volgt dat plan totdat een verzending wordt geaccepteerd. Als de bezorging later volledig mislukt, verstuurt Bird een nieuwe code via het volgende kanaal. Controleer de code met hetzelfde to-object dat je gebruikte om de verificatie aan te maken. De gebruiker voert in welke code is aangekomen.

Volgende stappen