Inicio rápido de OTP de Telegram
Envía códigos de verificación de forma nativa a través de Telegram Gateway. La plataforma valida los códigos del lado del servidor: tu backend nunca necesita almacenar ni comparar el OTP.
¿Deseas probar sin una cuenta real de Telegram? Usa el Modo Sandbox: sin mensajes enviados, sin canal verificado requerido y sin facturación.
Comprobar alcanzabilidad opcional
Antes de enviar, puedes verificar que el número de teléfono tiene Telegram instalado y puede recibir mensajes. Esto evita gastar en solicitudes que no pueden entregarse.
# 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"}'1Enviar el código OTP
Envía mediante POST tu código OTP generado junto con el número del destinatario. Novauth lo reenvía a Telegram Gateway, que lo entrega como un mensaje oficial en la aplicación de 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
}Guarda el request_id de la respuesta: lo necesitarás para comprobar el estado de verificación y para revocar el código si el usuario solicita un reenvío.
2Comprobar estado de verificación
La ventaja clave de Telegram Gateway: no necesitas almacenar ni comparar el OTP tú mismo. Pasa el código introducido por el usuario a check-verification-status y la plataforma te indicará si es válido.
Este endpoint requiere un request_id de una llamada real a POST /telegram. Los request_id de sandbox no se aceptan aquí: solo son válidos dentro del flujo de sandbox.
# 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"
}
}3Revocar una verificación (flujo de reenvío)
Si un usuario solicita un nuevo código antes de que expire el actual, revoca primero la solicitud pendiente — esto puede activar un reembolso sobre el cargo original. Luego llama a POST /telegram de nuevo con un código nuevo.
Requiere un request_id real: los ID de sandbox no son aceptados por este 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"}'Referencia de API
/telegramEnviar código OTP vía Telegram/telegram/check-send-abilityComprobar si el número es alcanzable en Telegram/telegram/check-verification-statusValidar el código enviado del lado del servidor/telegram/revoke-verificationCancelar solicitud pendiente (flujo de reenvío)/telegram/{uuid}/tdrObtener informe de entrega de Telegram/telegram/tdrListar todos los registros de Telegram (paginado)Cuerpo de la solicitud — POST /telegram
tostringrequiredTeléfono del destinatario en formato E.164codestringrequiredCódigo OTP a entregar — de 4 a 8 dígitosttlnumberoptionalExpiración en segundos (30–3600). Por defecto: el predeterminado de la plataformasender_usernamestringoptionalTu nombre de usuario de canal de Telegram verificadocallback_urlstringoptionalURL de webhook para recibir actualizaciones de estado de entrega/verificación