Bird Verify
In previewDe verificatie-API zonder iets op te slaan.
Verstuur een eenmalige code via e-mail, SMS of WhatsApp en controleer deze op basis van ontvanger, zonder verificatie-id om tussen de twee calls te bewaren. De kanaalvolgorde, afzender en coderegels zijn configuratie per land, geen herbouw. Dezelfde auth en idempotency als elk ander Bird-kanaal, want hetzelfde team heeft ze allemaal gebouwd. Voice wordt als volgende uitgerold.
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 } = await bird.verify.verifications.check({
to: { phone_number: "+15551234567" },
code: userInput,
}).safe();Twee calls van installatie tot een geverifieerde gebruiker
Verstuur een code en controleer deze, in de taal die u al gebruikt.
Create-or-retry verstuurt de code; check bevestigt deze op basis van ontvanger. Twee calls, zonder verificatie-id om ertussen door te geven.
import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
await bird.verify.verifications.create({
to: { phone_number: "+15551234567" },
}).safe();
const { data } = await bird.verify.verifications.check({
to: { phone_number: "+15551234567" },
code: "482917",
}).safe();Tien dingen die u niet hoeft te bouwen
wanneer verificatie de API is.
Concrete primitieven, benoemd en configureerbaar. Geen vaag handgezwaai.
- 01
Aanmaken of opnieuw proberen in één call.
Post dezelfde ontvanger opnieuw en we hervatten de actieve sessie en versturen opnieuw zodra de cooldown verstreken is. Geen apart resend-endpoint, geen dubbele verificaties.
- 02
Controleer op basis van ontvanger. Sla niets op.
Dien de ontvanger en de code in; wij bepalen de sessie op basis van het configuratie-en-ontvangerpaar. Er is geen verificatie-id om te bewaren tussen verzenden en controleren.
- 03
E-mail, SMS en WhatsApp bij lancering.
De ontvanger die u meegeeft bepaalt het kanaal: een e-mailadres verifieert via e-mail, een telefoonnummer via SMS of WhatsApp. Van kanaal wisselen is een wijziging van één veld, geen nieuwe integratie. Voice wordt als volgende uitgerold, en automatische fallback tussen kanalen is onderweg.
- 04
Kanaalvolgorde per land, als configuratie.
Stel de kanaalvolgorde, de afzender en welke kanalen actief zijn in, per land, als een eersteklas configuratieresource in plaats van een supportticket.
- 05
Codes die u nooit ziet.
Gegenereerd met een cryptografische willekeurige bron, alleen opgeslagen als HMAC, vergeleken in constante tijd. De code in platte tekst raakt nooit uw stack of onze logs.
- 06
Configureerbare code, TTL, pogingen.
Standaard zes cijfers, 4–10 configureerbaar; een tijdvenster van 10 minuten; 5 pogingen; een herverzendings-cooldown van 60 seconden, ingesteld per configuratie. Codelengte kan ook per aanvraag overschreven worden.
- 07
Elke code blijft geldig tot de sessie eindigt.
Een vertraagd bericht en een opnieuw verzonden code verifiëren allebei, omdat we de eerdere code niet ongeldig maken wanneer er een nieuwe wordt verzonden.
- 08
Een verkeerde code is een 200, geen uitzondering.
Controleer antwoorden met een booleaans resultaat — is deze code geverifieerd, ja of nee — en een reden die verduidelijkt wanneer dat niet het geval was: ongeldig, verlopen, al geverifieerd of geen pogingen meer. U vertakt op een veld, nooit op een gegooide fout.
- 09
Rate limits en quota's ingebouwd.
Verzendlimieten per ontvanger, een raadlimiet per verificatie en een dagelijks quotum per workspace — elk een 429 met Retry-After — zodat brute force eerder opraakt dan u.
- 10
Hetzelfde contract als de rest van Bird.
Bearer-auth, een idempotency key, getypte vrf_-id's, één fout-envelope. De handler die u voor e-mail schreef, past al op verificatie.
Ontdek het Verify-platform
Elke mogelijkheid in detail. Eén API, één set keys.
Sla niets op tussen verzenden en controleren.
De meeste verificatie-API's geven u een id om op te slaan, op te zoeken en de code tegen te verifiëren. Bird herkent de sessie op basis van de ontvanger, dus er is geen verificatiestatus aan uw kant.
De meeste verificatie-API's
Create retourneert een id dat u opslaat, waarna u de verificatie opzoekt om de code te controleren.
const { id } = await api.verifications.create({
to: "+15551234567",
});
// persist id somewhere, then later…
await api.verifications.check({ id, code });Bird Verify
Controleer op basis van ontvanger. Er is niets om tussen de twee calls door te geven.
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();Routering per land is configuratie.
Stel de kanaalvolgorde, afzender en welke kanalen actief zijn per land in — WhatsApp-eerst in de ene markt, alleen SMS in een andere. Het is een eersteklas configuratieresource, toegepast op het plan van elke verificatie. Zie kanaalorkestratie.
await bird.verify.verifications.configurations.countries.upsert(
"vfc_login",
"BR",
{ channels: [
{ channel: "whatsapp", state: "enabled" },
{ channel: "sms", state: "enabled" },
] },
).safe();Verificatie is ook een productbeslissing: dezelfde API ondersteunt tweefactorauthenticatie en wachtwoordloze login. Eerst een nummer valideren? Combineer het met Lookup. Stille netwerkauthenticatie en TOTP-authenticator-apps staan op de roadmap.
Waarom we Verify bouwen
Omdat de code die een gebruiker binnenlaat geen eigen databasetabel nodig zou moeten hebben.
OTP is het kanaal waar een code die niet aankomt een registratie is die niet plaatsvindt. Bird draait al e-mail en SMS op schaal, dus Verify is die bezorging plus de codegeneratie, de sessie, het kanaalplan per land en de rate limits — achter twee endpoints die niets aan uw kant opslaan en antwoorden in dezelfde structuur als elk ander Bird-kanaal.
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 } = await bird.verify.verifications.check({
to: { phone_number: "+15551234567" },
code: userInput,
}).safe();Als u SMS hebt geïntegreerd, hebt u Verify geïntegreerd.
Hetzelfde auth-model, hetzelfde idempotency-contract, dezelfde fout-envelope. Het verschil is dat Verify de code genereert, het kanaal kiest en de rate limits beheert — zodat u dat niet hoeft te doen.
Verify
Eén aanroep verstuurt de code; één aanroep controleert deze per ontvanger. Wij beheren de code, de sessie en de limieten.
await bird.verify.verifications.create({
to: { phone_number: "+15551234567" },
});SMS
De directe verzending, voor wanneer u de codegeneratie en het herhaalpbeleid zelf wilt beheren.
await bird.sms.send({
from: "Bird",
to: "+15551234567",
text: `Your code is ${code}.`,
});Verify API FAQ
Hoe voeg ik verificatie toe aan mijn app?+
Via welke kanalen kan ik verifiëren?+
Moet ik een verificatie-id opslaan?+
Wat gebeurt er als iemand de verkeerde code invoert?+
Hoe worden de codes gegenereerd en opgeslagen?+
Wat kost het?+
Van wie zien mijn gebruikers de code?+
De afzender die uw gebruikers zien: Authifly
Uw eindgebruikers ontvangen hun codes van Authifly, het verificatiemerk van Bird. Via de gedeelde afzenders komt de OTP-e-mail van otp@verify.authifly.com en vermeldt de SMS Authifly in het bericht, zodat codes onder één consistente identiteit aankomen die u niet zelf hoeft te beheren. Als een ontvanger een onverwachte code krijgt, stelt authifly.com hen gerust dat Authifly legitieme eenmalige codes verstuurt namens een bedrijf. Authifly wordt beheerd door Bird B.V.
Bezoek authifly.comVerificatie op hetzelfde platform als de rest van uw berichtenverkeer.
Verify is beschikbaar als preview. Begin vandaag met bouwen, of neem contact met ons op over de kanalen, volumes en prijzen die u nodig heeft.