Aller au contenu principal

Référence API v1 (Dépréciée)

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-ici

Obtenir 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
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 par 2, 3 ou 4
  • L'API normalise automatiquement tous les formats acceptés en +222XXXXXXXX avant 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/json

Corps de la Requête :

{
"message": "Bonjour, ceci est un message de test",
"phoneNumber": "+22238089336"
}

Paramètres :

  • message (obligatoire) : Contenu du message SMS
  • phoneNumber (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 messageId pour 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, ar
  • channel (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érifier
  • channel (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
}

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

Les limites de débit sont automatiquement appliquées. Si elles sont dépassées, vous recevrez un code de statut 429.

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 success dans 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

Besoin d'aide ? Consultez le Guide de Dépannage pour les problèmes courants !