Bonjour … 👋
Voici l'activité de vos vérifications OTP.
14 derniers jours
Vérifications
Les 50 derniers événements OTP sur vos clés.
| Date | Canal | Destinataire | Événement | Demande |
|---|---|---|---|---|
| Chargement… | ||||
Clés API & intégration
La clé complète n'est affichée qu'une fois, à sa création.
| Nom | Clé | Créée le | |
|---|---|---|---|
| Chargement… | |||
Intégration dans votre application
Deux appels suffisent — la clé sert d'en-tête X-API-Key. Guide complet : docs → Intégration A→Z.
curl -X POST https://votre-domaine.fr/v1/otp/request \ -H "X-API-Key: pvk_…" -H "Content-Type: application/json" \ -d '{"phone":"+33612345678","channel":"telegram","fallback_channels":["whatsapp"]}' curl -X POST https://votre-domaine.fr/v1/otp/verify \ -H "X-API-Key: pvk_…" -H "Content-Type: application/json" \ -d '{"request_id":"…","code":"123456"}'
const API = "https://votre-domaine.fr", KEY = process.env.OTP_KEY;
async function requestOtp(phone) {
const r = await fetch(`${API}/v1/otp/request`, {
method: "POST",
headers: { "X-API-Key": KEY, "Content-Type": "application/json" },
body: JSON.stringify({ phone, channel: "telegram",
fallback_channels: ["whatsapp"] }),
});
const d = await r.json();
if (!r.ok) throw new Error(JSON.stringify(d)); // voir d.channel_errors
return d.request_id; // stockez côté serveur
}
async function verifyOtp(request_id, code) {
const r = await fetch(`${API}/v1/otp/verify`, {
method: "POST",
headers: { "X-API-Key": KEY, "Content-Type": "application/json" },
body: JSON.stringify({ request_id, code }),
});
return (await r.json()).status === "verified";
}
import httpx, os
API, KEY = "https://votre-domaine.fr", os.environ["OTP_KEY"]
H = {"X-API-Key": KEY}
def request_otp(phone: str) -> str:
r = httpx.post(f"{API}/v1/otp/request", headers=H, json={
"phone": phone, "channel": "telegram",
"fallback_channels": ["whatsapp"],
}, timeout=15)
r.raise_for_status()
return r.json()["request_id"]
def verify_otp(request_id: str, code: str) -> bool:
r = httpx.post(f"{API}/v1/otp/verify", headers=H, json={
"request_id": request_id, "code": code,
}, timeout=15)
return r.json().get("status") == "verified"
Numéro émetteur
Le numéro / bot qui ENVOIE vos OTP. Les numéros saisis dans la console sont les destinataires.
WhatsApp …
Scannez le QR avec le numéro WhatsApp qui enverra les codes (Appareils connectés → Connecter un appareil). Vous pouvez changer de numéro à tout moment.
Telegram …
Créez un bot via @BotFather (/newbot) puis collez son token ci-dessous. Vos destinataires devront démarrer CE bot et partager leur contact.
Telegram universel …
Envoyez à n'importe quel numéro sans action du destinataire via un compte Telegram connecté (expérimental — utilisez un compte dédié, risque de bannissement).
Requiert TG_API_ID/TG_API_HASH (my.telegram.org/apps) dans .env + docker compose --profile tg-user up -d.
Console OTP
Testez l'API en direct avec votre clé.
Plans & abonnement
Choisissez la formule adaptée à votre volume.
Gratuit
- 1 application, 2 clés API
- 1 canal actif (Telegram)
- 500 codes OTP / mois
- Quotas anti-abus intégrés
Pro
- Applications et clés illimitées
- Tous les canaux + repli automatique
- 50 000 codes OTP / mois
- Quotas configurables par clé
- Support prioritaire
Entreprise
- Déploiement dédié / on-premise
- SLA et audit de sécurité
- Adaptateurs sur mesure (SMS, email)
- SSO / SAML
- Accompagnement RGPD
Mon entreprise
Informations affichées sur votre espace.