OTP par e-mail
Envoyer et vérifier des codes à usage unique par e-mail avec l'API v2 ChinqIT Verify
Envoyez et vérifiez des codes à usage unique de six chiffres par e-mail avec l'API v2.
Avant de commencer
- Obtenez une clé API avec l'accès e-mail activé.
- Utilisez l'URL de base
https://sms.chinqit.com/api/v2. - Envoyez
X-API-KeyouAuthorization: Beareravec chaque requête.
Envoyer un OTP par e-mail
Appelez POST /api/v2/code avec channel: "email" et l'adresse email du destinataire.
curl -X POST https://sms.chinqit.com/api/v2/code \
-H 'X-API-Key: votre-clé-api' \
-H 'Content-Type: application/json' \
-d '{
"email": "utilisateur@example.com",
"channel": "email",
"language": "fr"
}'Une réponse réussie contient l'identifiant du message, l'expiration de dix minutes et le prix appliqué à l'envoi :
{
"success": true,
"messageId": "550e8400-e29b-41d4-a716-446655440000",
"expiresIn": 600,
"cost": 0.23,
"pricePerMessage": 0.23
}Les réponses des OTP par e-mail ne contiennent pas les champs SMS comme parts, encoding ou length.
Vérifier le code
Appelez POST /api/v2/check avec la même adresse e-mail normalisée, le code à six chiffres et channel: "email".
curl -X POST https://sms.chinqit.com/api/v2/check \
-H 'X-API-Key: votre-clé-api' \
-H 'Content-Type: application/json' \
-d '{
"email": "utilisateur@example.com",
"otp": "123456",
"channel": "email"
}'{
"success": true,
"message": "OTP verified successfully",
"verified": true
}Le code expire après dix minutes et ne fonctionne qu'une fois. Un code incorrect renvoie 400 et indique le nombre de tentatives restantes. L'API autorise trois tentatives échouées avant d'invalider le code.
Expéditeur et modèle d'e-mail
ChinqIT envoie les OTP depuis l'expéditeur partagé ChinqIT Verify <otp@verify.chinqit.com>. L'e-mail affiche le nom configuré pour le client de votre clé API lorsqu'il existe. La variable d'environnement EMAIL_FROM est une dérogation réservée aux opérations et DOIT rester à la valeur par défaut en production. Les domaines d'expéditeur appartenant aux clients arrivent bientôt.
Le champ language accepte fr, en ou ar et utilise fr par défaut. ChinqIT génère l'objet, le corps, le délai d'expiration et le pied de page de sécurité dans cette langue. Les e-mails en arabe utilisent une mise en page de droite à gauche. Chaque e-mail précise que le code expire dans dix minutes et qu'il ne faut pas le partager.
Tarification
Les OTP par e-mail utilisent une tarification globale par type. Un administrateur configure un prix global pour les e-mails, appliqué à chaque envoi. L'envoi est désactivé tant que ce prix n'existe pas : sans ligne de tarification email active, les envois échouent avec 503 EMAIL_PRICING_NOT_CONFIGURED.
Configuration opérateur : la passerelle requiert EMAIL_API_KEY (Resend). EMAIL_PROVIDER doit rester resend — toute autre valeur bloque les envois, et une clé manquante journalise un avertissement [EMAIL] disabled au démarrage. La réponse renvoie le montant dans cost et pricePerMessage. La vérification ne crée pas de frais supplémentaires. Un échec d'envoi du fournisseur déclenche une tentative de remboursement.
Webhook de vérification
Abonnez-vous à otp.verified pour recevoir une notification après une vérification réussie. Les événements e-mail contiennent email dans data à la place de phoneNumber :
{
"id": "evt_01j9z...",
"type": "otp.verified",
"createdAt": "2026-06-27T10:02:00.000Z",
"data": {
"messageId": "550e8400-e29b-41d4-a716-446655440000",
"email": "utilisateur@example.com",
"verifiedAt": "2026-06-27T10:02:00.000Z"
}
}Consultez Webhooks pour l'abonnement et la vérification de signature.
Erreurs
| Statut | Cause | Action |
|---|---|---|
400 | L'e-mail, le canal ou le code est invalide, le code est incorrect ou le destinataire a dépassé le nombre de tentatives. | Envoyez un e-mail et un code à six chiffres valides. Demandez un nouveau code après trois échecs. |
401 | La requête ne contient pas de clé API valide. | Envoyez X-API-Key ou un jeton bearer. |
402 | Le compte de facturation n'a pas assez de crédit. | Ajoutez du crédit, puis réessayez l'envoi. |
403 | La clé API est invalide, inactive, non attribuée ou n'a pas accès aux e-mails. | Demandez à un administrateur d'activer l'accès e-mail pour la clé. |
404 | Le code n'existe pas ou a expiré. | Envoyez un nouvel OTP par e-mail. |
429 | Le destinataire ou la clé API a atteint une limite, ou la clé a atteint son plafond mensuel. | Attendez la fin de la limite ou demandez un plafond plus élevé. |
502 | Le fournisseur e-mail a refusé ou échoué l'envoi. | Réessayez après avoir vérifié l'état du fournisseur. |
503 | Le service e-mail n'a pas la configuration requise. | Contactez l'administrateur du service. |
Consultez la Référence API pour les schémas des endpoints et tous les champs de réponse.