WhatsApp-Authentifizierungstemplates
Ein Authentifizierungstemplate übermittelt einen Einmal-Bestätigungscode. Meta gibt den Wortlaut vor, wenn Sie das Template erstellen. Beim Senden übergeben Sie den Code als Body-Parameter.
Bevor Sie senden
Entscheiden Sie, ob Sie ein von Bird verwaltetes Template nutzen oder ein eigenes Template auf Ihrem Business-Account erstellen möchten.
Für den Versand der vorgefertigten Katalogtemplates von Bird, bird_otp und bird_otp_authifly, ist keine eigene Verifizierung nötig. Diese Templates liegen auf den eigenen WhatsApp Business Accounts von Bird, und der verwaltete Versandpfad prüft den Verifizierungsstatus Ihres Unternehmens nicht.
Wenn der verbundene Business-Account not_verified meldet, verweigert Bird das Erstellen oder Duplizieren von Authentifizierungstemplates mit 412 E15043 WhatsAppTemplateBusinessNotVerified. Prüfen Sie den verbundenen Account und seinen zuletzt synchronisierten Status. Siehe WhatsApp-Business-Verifizierung für den Verifizierungsprozess und die Statusbehandlung.
Das Erstellen und Bearbeiten von Utility- und Marketing-Templates ist von dieser Sperre nicht betroffen; Sie können diese unabhängig von Ihrem Verifizierungsstatus weiterhin anlegen und bearbeiten.
Erstellen Sie Templates im Dashboard, mit der bird CLI oder über den MCP-Server. Siehe WhatsApp-Templates erstellen für den vollständigen Ablauf.
Einen Bestätigungscode senden
POST /v1/whatsapp/messages mit einem template-Objekt, das einen Katalog-Slug benennt:
const msg = await bird.whatsapp.send({
to: "+14155550100",
template: {
slug: "bird_otp",
language: "en",
components: [{ type: "body", parameters: [{ type: "text", text: "481920" }] }],
},
});
console.log(msg.id, msg.status);msg = client.whatsapp.send(
to="+14155550100",
template="bird_otp",
language="en",
components=[{"type": "body", "parameters": [{"type": "text", "text": "481920"}]}],
)
print(msg.id, msg.status)package main
import (
"context"
"fmt"
"log"
"os"
bird "github.com/messagebird/bird-sdk-go"
"github.com/messagebird/bird-sdk-go/option"
)
func main() {
client, err := bird.NewClient(option.WithAPIKey(os.Getenv("BIRD_API_KEY")))
if err != nil {
log.Fatal(err)
}
code := "481920"
components := []bird.WhatsAppMessageTemplateComponent{{
Type: "body",
Parameters: &[]bird.WhatsAppMessageTemplateComponentParameter{{Type: "text", Text: &code}},
}}
msg, err := client.Whatsapp.Send(context.Background(), bird.WhatsappSendParams{
To: "+14155550100",
Template: "bird_otp",
Language: "en",
Components: components,
})
if err != nil {
log.Fatal(err)
}
fmt.Println(msg.Id, *msg.Status)
}$components = [
(new WhatsAppMessageTemplateComponent())
->setType('body')
->setParameters([
(new WhatsAppMessageTemplateComponentParameter())->setType('text')->setText('481920'),
]),
];
$message = $bird->whatsapp->send(
to: '+14155550100',
template: 'bird_otp',
language: 'en',
components: $components,
);
echo $message->getId(), ' ', $message->getStatus();bird whatsapp send \
--components '[{"parameters":[{"text":"481920","type":"text"}],"type":"body"}]' \
--language en \
--template bird_otp \
--to +14155550100{
"name": "whatsapp_send",
"arguments": {
"template": {
"components": [
{
"parameters": [
{
"text": "481920",
"type": "text"
}
],
"type": "body"
}
],
"language": "en",
"slug": "bird_otp"
},
"to": "+14155550100"
}
}curl -X POST "https://us1.platform.bird.com/v1/whatsapp/messages" \
-H "Authorization: Bearer $BIRD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "+14155550100",
"template": {
"slug": "bird_otp",
"language": "en",
"components": [
{
"type": "body",
"parameters": [
{
"type": "text",
"text": "481920"
}
]
}
]
}
}'Vier Regeln gelten speziell für diese Kategorie:
- Lassen Sie from weg. Ein von Bird verwaltetes Template wählt seinen Absender selbst, anhand von Kategorie und Region. Das Setzen von from gibt 422 E15018 WhatsAppSenderNotAllowed zurück. Das ist das Gegenteil eines Freitextversands, der from erfordert; wichtig zu wissen, wenn Sie von den Seiten zu interaktiven Nachrichten kommen.
- to muss eine E.164-Telefonnummer sein. Ein Authentifizierungstemplate kann nicht an eine unternehmensspezifische Benutzer-ID gesendet werden; das ergibt 422 E15014 WhatsAppRecipientNotSupportedForTemplate.
- Der Body akzeptiert genau einen positionellen Parameter: den Code. Null Parameter oder ein benannter Parameter gibt 422 E15003 WhatsAppTemplateParameterMismatch zurück. Authentifizierung ist die einzige Kategorie, die Meta positionell schreibt; jede andere Kategorie benennt ihre Parameter.
- Kein Kundenservice-Fenster erforderlich. Template-Versendungen sind nicht an ein Fenster gebunden; genau deshalb gibt es Bestätigungscode-Templates: Sie müssen jemanden erreichen können, der Ihnen noch nie geschrieben hat.
Lesen Sie die verfügbaren Sprachen für bird_otp oder bird_otp_authifly aus dem Template-Katalog aus. Wenn die angeforderte Sprache nicht verfügbar ist, schlägt der Versand fehl, anstatt eine andere Sprache einzusetzen.
Die Code-kopieren-Schaltfläche
Meta schreibt den Body eines Authentifizierungstemplates selbst als Vorlage mit einem einzelnen Code-Platzhalter. Sie liefern daher Flags statt Text. Die Button-Komponente ist beim Versand optional: Wenn Sie keinen angeben, fügt Bird ihn für Sie hinzu, mit demselben Code wie im Body. Sie können ihn auch selbst angeben:
Codebeispiel
{ "type": "button", "parameters": [{ "type": "text", "text": "481920" }] }In beiden Fällen erreicht genau ein Button WhatsApp, und zwar die Code-kopieren-Schaltfläche: Antippen kopiert den Code in die Zwischenablage. Bird unterstützt nur copy_code; die beiden anderen Button-Verhaltensweisen, die Meta für Authentifizierungstemplates dokumentiert, One-Tap und Zero-Tap Autofill, sind auf Bird derzeit nicht verfügbar.
Das Erstellen eines Template-Buttons folgt derselben Struktur: ein otp-Button, und das Template akzeptiert keinen anderen Button-Typ. Sie geben add_security_recommendation (ein Boolean, der im Body angezeigt wird) und code_expiration_minutes (1 bis 90, im Footer angezeigt) an, statt Text zu schreiben.
Was Meta in einem Authentifizierungstemplate erlaubt
Meta legt die Struktur eines Authentifizierungstemplates fest und prüft dessen Inhalt: keine URLs, Medien oder Emojis irgendwo im Template und ein Limit von 15 Zeichen für den Code-Parameter. Die Kategorie ändert auch, wie WhatsApp die Nachricht zustellt: Sie wird nur an das primäre Gerät des Empfängers gesendet. Siehe Template-Richtlinien für die vorgegebene Struktur, Zeichenlimits und den Prüfungsprozess im Detail.
Kosten
Kategorie und Ziel bestimmen den Preis. Unter WhatsApp-Authentication-International-Tarife erfahren Sie, wie der Versand in ein anderes Land als Ihren primären Standort den Preis ändern kann, und unter Kosten und Abrechnung, wann ein Versand berechnet wird. Die Tarifwerte finden Sie unter WhatsApp-Preise.
Worauf Sie achten sollten
- Die vorgefertigten Templates von Bird werden in den folgenden neun Ländern nicht zugestellt. bird_otp und bird_otp_authifly senden über die eigenen WhatsApp Business Accounts von Bird, und diese Konten übermitteln keine Authentifizierungsnachrichten nach Ägypten, Indien, Indonesien, Malaysia, Nigeria, Pakistan, Saudi-Arabien, Südafrika oder in die Vereinigten Arabischen Emirate. Ein solcher Versand wird mit 422 E15063 WhatsAppDestinationRestricted abgelehnt, bevor etwas berechnet wird. Ein Template, das Sie auf Ihrem eigenen Konto erstellt haben und von Ihrer eigenen Nummer senden, erreicht diese Länder normal. Verify erreicht sie ebenfalls, indem es den Bestätigungscode selbstständig auf einen anderen Kanal verschiebt.
- Ein Versand mit eigenem Template erfordert from, und dieser muss auf demselben WhatsApp Business Account liegen wie das Template. Ein Absender auf einem anderen Konto wird mit 422 E15023 WhatsAppSenderWABAMismatch abgelehnt, bevor etwas berechnet wird.
- Nur eine Sprache, deren Version genehmigt und live ist, kann gesendet werden. Eine Sprache im Status Entwurf, Ausstehend, Abgelehnt oder Pausiert kann es nicht.
- Meta kann ein Template von sich aus umkategorisieren. Es gibt kein Opt-out, und die Preis- und Zustellregeln der Kategorie verschieben sich mit.
- Die Kategorie des Templates und die Kategorie seiner Sprache können voneinander abweichen. Siehe WhatsApp-Templates dazu, wie der Versandpfad dies auflöst.
- Ein eingelesenes Authentifizierungstemplate kann nicht dupliziert werden. Bird kann den von WhatsApp generierten Text nicht in die Einstellungen zurücklesen, aus denen ein neues Template erstellt wird; das ergibt 422 E15024 WhatsAppTemplateContentNotDuplicable. Erstellen Sie stattdessen ein neues Template mit eigener Sicherheitsempfehlung und Code-Ablaufzeit.
Nächste Schritte
- WhatsApp-Templates: Katalog durchsuchen und der gemeinsame Vertrag für den Versand per Template
- Utility-Templates: Bestellaktualisierungen, Terminerinnerungen und Kontobenachrichtigungen
- WhatsApp-Unternehmensverifizierung: wie die Verifizierung funktioniert und was sie sonst noch freischaltet
Verwandte Ressourcen
Weiter mit der Dokumentation, Anleitungen und Beispielen zu diesem Thema. Die Ressourcen sind auf Englisch.
Anleitung ansehenConnecting WhatsApp to Bird: from buying a number to a live channelDas Konzept verstehenWhat is the 24-hour customer service window on WhatsApp?Das Tool verwendenWhatsApp message builderDie Funktion erkundenWhatsApp
Übung ausprobieren und ein Implementierungs-Briefing erhalten