Référence endpoints v1
Documentation de référence complète pour l'API REST de la ChinqIT Verify.
Authentification
Tous les endpoints de l'API nécessitent une authentification à l'aide d'une clé API fournie par ChinqIT Verify.
En-tête d'Authentification
Incluez votre clé API dans l'en-tête de la requête :
X-API-Key: votre-clé-api-iciObtenir une Clé API
Les clés API sont fournies par ChinqIT Verify. Contactez votre administrateur de service pour obtenir votre clé API.
Réponses d'Erreur
401 Non Autorisé - Clé API manquante :
{
"success": false,
"message": "API key is required"
}403 Interdit - Clé API invalide :
{
"success": false,
"message": "Invalid API key"
}URL de Base
Toutes les requêtes API doivent être adressées à :
- Production :
https://sms.chinqit.com
:::caution Déprécié
Tous les endpoints de cette page sont dépréciés mais restent fonctionnels. Les réponses incluent l'en-tête Deprecation: true et un objet deprecation dans le JSON. Pour l'API actuelle, consultez la Référence API.
:::
Format de Numéro de Téléphone (Mauritanie)
Tous les endpoints acceptent les numéros de téléphone mauritaniens dans les formats suivants :
- Format canonique :
+222XXXXXXXX(ex.+22238089336) - Avec code pays :
222XXXXXXXX(ex.22238089336) - automatiquement normalisé en+222XXXXXXXX - Format local :
XXXXXXXX(ex.38089336) - automatiquement normalisé en+222XXXXXXXX
Règles :
- Le numéro local à 8 chiffres (
XXXXXXXX) doit commencer par2,3ou4 - L'API normalise automatiquement tous les formats acceptés en
+222XXXXXXXXavant de stocker ou d'envoyer - Les numéros de téléphone sont stockés et utilisés au format normalisé (
+222XXXXXXXX) pour garantir la cohérence - Les formats invalides (longueur incorrecte, préfixe incorrect, contient des espaces/tirets) retourneront une erreur
400 Bad Request
Exemples :
- ✅
+22238089336→ normalisé en+22238089336 - ✅
22238089336→ normalisé en+22238089336 - ✅
38089336→ normalisé en+22238089336 - ❌
12345678→ Erreur : doit commencer par 2, 3 ou 4 - ❌
+222 27 63 56 42→ Erreur : espaces non autorisés - ❌
+1234567890→ Erreur : pas un numéro mauritanien valide
Opérations de Messages (v1 – Déprécié)
Envoyer un Message
POST /messages/send (Déprécié – utiliser POST /api/v2/notify)
Envoyer un message SMS à un numéro de téléphone.
En-têtes de Requête :
X-API-Key: votre-clé-api
Content-Type: application/jsonCorps de la Requête :
{
"message": "Bonjour, ceci est un message de test",
"phoneNumber": "+22238089336"
}Paramètres :
message(obligatoire) : Contenu du message SMSphoneNumber(obligatoire) : Numéro de téléphone du destinataire (format Mauritanie). Voir Format de Numéro de Téléphone ci-dessus pour plus de détails.
Réponse :
{
"success": true,
"messageId": "550e8400-e29b-41d4-a716-446655440000",
"queued": true
}Notes Importantes :
- Les messages sont mis en file d'attente et traités de manière asynchrone
- L'API retourne immédiatement après la mise en file d'attente (non bloquant)
- Utilisez le
messageIdpour suivre votre message
Opérations OTP (v1 – Déprécié)
Envoyer un OTP
POST /otp/send (Déprécié – utiliser POST /api/v2/code)
Envoyer un code de mot de passe à usage unique (OTP) par SMS ou WhatsApp.
Corps de la Requête :
{
"phoneNumber": "+22238089336",
"hash": "ABC123XYZ45",
"language": "en",
"channel": "sms"
}Paramètres :
phoneNumber(obligatoire) : Numéro de téléphone auquel envoyer l'OTP (format Mauritanie).hash(optionnel) : Hash SMS Retriever de 11 caractères (canal SMS uniquement). Lorsqu'il est fourni, le hash sera ajouté au message OTP sur une nouvelle ligne. Voir Guide SMS Retriever.language(optionnel) : Langue du message OTP. Options :fr(par défaut),en,archannel(optionnel) : Canal de communication. Options :sms(par défaut),whatsapp
Réponse :
{
"success": true,
"messageId": "550e8400-e29b-41d4-a716-446655440000",
"expiresIn": 600
}Détails de l'OTP :
- Code numérique à 6 chiffres
- Valide pendant 10 minutes (600 secondes)
- Maximum 3 tentatives de vérification
- Peut être envoyé par SMS ou WhatsApp
Vérifier un OTP
POST /otp/verify (Déprécié – utiliser POST /api/v2/check)
Vérifier un code OTP qui a été envoyé à un numéro de téléphone.
Corps de la Requête :
{
"phoneNumber": "+22238089336",
"otp": "123456",
"channel": "sms"
}Paramètres :
phoneNumber(obligatoire) : Numéro de téléphone auquel l'OTP a été envoyéotp(obligatoire) : Code OTP à 6 chiffres à vérifierchannel(optionnel) : Canal de communication utilisé. Options :sms(par défaut),whatsapp
Réponse (Succès) :
{
"success": true,
"message": "OTP verified successfully",
"verified": true
}Réponse (Invalide) :
{
"success": false,
"message": "Invalid OTP",
"retriesLeft": 2
}Opérations de statut (v1 – Déprécié)
Obtenir le statut d'un message
GET /message/:messageId/status (Déprécié – utiliser GET /api/v2/notify/)
Récupère le statut de livraison d'un message appartenant à votre clé API.
Réponse : Même objet data que GET /api/v2/notify/.
Mettre à jour le statut d'un message
POST /update-message-status (Déprécié – pas de remplacement v2)
:::warning Ne pas utiliser pour de nouvelles intégrations Il n'existe pas d'équivalent v2. Le statut de livraison est mis à jour automatiquement par ChinqIT Verify. Cet endpoint est conservé uniquement pour les clients existants. :::
Corps de la requête :
{
"messageId": "550e8400-e29b-41d4-a716-446655440000",
"sent": true
}Réponse :
{
"success": true,
"message": "Message status updated successfully",
"data": {
"messageId": "550e8400-e29b-41d4-a716-446655440000",
"sent": true,
"updatedAt": "2024-01-15T10:30:00.000Z"
}
}Format de réponse de dépréciation
Tous les endpoints legacy renvoient :
- En-tête :
Deprecation: true - Champ JSON :
deprecationavecmessageetuseInstead
Exemple (POST /messages/send) :
{
"success": true,
"messageId": "550e8400-e29b-41d4-a716-446655440000",
"queued": true,
"deprecation": {
"message": "This endpoint is deprecated. Use POST /api/v2/notify instead.",
"useInstead": "POST /api/v2/notify"
}
}Réponses d'Erreur
Tous les endpoints retournent les erreurs dans un format cohérent :
{
"success": false,
"message": "Description de l'erreur",
"errors": []
}Codes de Statut HTTP
- 200 OK : Requête réussie
- 400 Bad Request : Données de requête invalides ou erreur de validation
- 401 Unauthorized : Clé API manquante
- 403 Forbidden : Clé API invalide
- 404 Not Found : Ressource non trouvée
- 429 Too Many Requests : Limite de débit dépassée
- 500 Internal Server Error : Erreur du serveur
- 502 Bad Gateway : Erreur du fournisseur (pour le canal WhatsApp)
Limitation de Débit
Envoi d'OTP
Par numéro de téléphone par clé API :
- 3 requêtes par minute
- 10 requêtes par heure
- 20 requêtes par jour
En cas de dépassement, l'API renvoie le code HTTP 429 avec un champ retryAfter le cas échéant.
Bonnes Pratiques
Sécurité de la Clé API
- Ne jamais valider les clés API dans le contrôle de version
- Utiliser des variables d'environnement ou une gestion sécurisée des secrets
- Faire pivoter les clés périodiquement
- Utiliser HTTPS pour toutes les requêtes API
Gestion des Erreurs
- Toujours vérifier le champ
successdans les réponses - Gérer tous les codes de statut HTTP de manière appropriée
- Implémenter une logique de nouvelle tentative pour les erreurs transitoires (429, 500, 502)
- Journaliser les erreurs pour le débogage
Envoi de Messages
- Stocker le
messageIdà des fins de suivi - Gérer les erreurs avec élégance
- Implémenter une gestion appropriée des délais d'attente
Bonnes Pratiques OTP
- Toujours vérifier les OTP côté serveur
- Ne pas exposer les codes OTP dans les journaux
- Gérer les limites de débit avec élégance
- Utiliser le canal approprié (SMS ou WhatsApp) en fonction des préférences de l'utilisateur
Ressources Supplémentaires
- Référence API – API actuelle (à utiliser pour les nouvelles intégrations)
- Guide d'Utilisation de l'API – exemples de code (v1 déprécié)
- Guide de Dépannage – problèmes courants et solutions
Besoin d'aide ? Consultez le Guide de Dépannage pour les problèmes courants !