Démarrage rapide OTP Telegram
Envoyez des codes de vérification nativement via Telegram Gateway. La plateforme valide les codes côté serveur — votre backend n'a jamais besoin de stocker ou comparer l'OTP.
Tester sans vrai compte Telegram ? Utilisez le Mode bac à sable — aucun message envoyé, aucun canal vérifié requis et aucune facturation.
Vérifier la disponibilité optionnel
Avant l'envoi, vous pouvez vérifier que le numéro de téléphone a Telegram installé et peut recevoir des messages. Cela évite de dépenser pour des requêtes non livrables.
# Optional: check if this phone number is reachable on Telegram
curl -X POST https://api.novauth.com/api/v1/connect-hub/telegram/check-send-ability \
-H "x-api-key: YOUR_API_KEY" \
-H "x-account-id: YOUR_ACCOUNT_ID" \
-H "Content-Type: application/json" \
-d '{"to": "+14155552671"}'1Envoyer le code OTP
Envoyez en POST votre code OTP généré avec le numéro du destinataire. Novauth le transmet au Telegram Gateway, qui le livre comme un message officiel dans l'application Telegram.
curl -X POST https://api.novauth.com/api/v1/connect-hub/telegram \
-H "x-api-key: YOUR_API_KEY" \
-H "x-account-id: YOUR_ACCOUNT_ID" \
-H "Content-Type: application/json" \
-d '{
"to": "+14155552671",
"code": "482951",
"ttl": 300,
"sender_username": "your_verified_channel",
"callback_url": "https://your-server.com/telegram-webhook"
}'{
"uuid": "01JQHM3P7KXNV8W2QF5DG6TYAB", // internal Novauth ID
"request_id": "tg_req_4Kf8mNpQrS9xYz2A", // Telegram Gateway ID — save this
"to": "+14155552671",
"status": "sent",
"request_cost": 0.01,
"remaining_balance": 99.99
}Enregistrez le request_id de la réponse — vous en aurez besoin pour vérifier le statut de vérification et révoquer le code si l'utilisateur demande un renvoi.
2Vérifier le statut de vérification
L'avantage clé de Telegram Gateway : vous n'avez pas besoin de stocker ni comparer l'OTP vous-même. Transmettez le code saisi par l'utilisateur à check-verification-status et la plateforme vous indique s'il est valide.
Cet endpoint nécessite un request_id d'un vrai appel POST /telegram. Les request_id bac à sable ne sont pas acceptés ici — ils ne sont valides que dans le flux bac à sable.
# Verify user-entered code server-side
curl -X POST https://api.novauth.com/api/v1/connect-hub/telegram/check-verification-status \
-H "x-api-key: YOUR_API_KEY" \
-H "x-account-id: YOUR_ACCOUNT_ID" \
-H "Content-Type: application/json" \
-d '{
"request_id": "tg_req_4Kf8mNpQrS9xYz2A",
"code": "482951"
}'{
"request_id": "tg_req_4Kf8mNpQrS9xYz2A",
"phone_number": "+14155552671",
"request_cost": 0.01,
"delivery_status": {
"status": "delivered", // "sent" | "delivered" | "read" | "expired" | "revoked"
"updated_at": 1713369600
},
"verification_status": {
"status": "code_valid", // the submitted code matched
"updated_at": 1713369612,
"code_entered": "482951"
}
}3Révoquer une vérification (flux de renvoi)
Si un utilisateur demande un nouveau code avant l'expiration du code actuel, révoquez d'abord la requête en cours — cela peut déclencher un remboursement sur le débit initial. Appelez ensuite à nouveau POST /telegram avec un nouveau code.
Nécessite un vrai request_id — les IDs bac à sable ne sont pas acceptés par cet endpoint.
# Invalidate an outstanding verification request (e.g. user requested a resend)
curl -X POST https://api.novauth.com/api/v1/connect-hub/telegram/revoke-verification \
-H "x-api-key: YOUR_API_KEY" \
-H "x-account-id: YOUR_ACCOUNT_ID" \
-H "Content-Type: application/json" \
-d '{"request_id": "tg_req_4Kf8mNpQrS9xYz2A"}'Référence API
/telegramEnvoyer un code OTP via Telegram/telegram/check-send-abilityVérifier si le numéro est joignable sur Telegram/telegram/check-verification-statusValider le code soumis côté serveur/telegram/revoke-verificationAnnuler la requête en cours (flux de renvoi)/telegram/{uuid}/tdrObtenir le rapport de livraison Telegram/telegram/tdrLister tous les enregistrements Telegram (paginé)Corps de la requête — POST /telegram
tostringrequiredTéléphone du destinataire au format E.164codestringrequiredCode OTP à livrer — 4 à 8 chiffresttlnumberoptionalExpiration en secondes (30–3600). Défaut : valeur par défaut de la plateformesender_usernamestringoptionalNom d'utilisateur de votre canal Telegram vérifiécallback_urlstringoptionalURL webhook pour recevoir les mises à jour de statut de livraison/vérification