Skip to main content

Créer une Phone Validation manuelle

Endpoint

POST https://api.verifik.co/v2/phone-validations/manual

Crée une Phone Validation autonome et envoie un OTP par SMS ou WhatsApp. Aucun project ni projectFlow n'est requis. C'est le même endpoint utilisé par Smart Tools → WhatsApp / SMS Messages.

Après un envoi réussi, continuez avec Valider une Phone Validation.

Facturation

Les crédits sont vérifiés avant l'envoi du message, selon les tarifs SMS/WhatsApp par pays. Vous n'êtes facturé que lorsque l'OTP est effectivement délivré (sent: true).

Headers

NameValue
Content-Typeapplication/json
AuthorizationBearer {YOUR_ACCESS_TOKEN}

Body parameters

ParameterTypeRequiredDescription
phonestringYesNuméro national uniquement (les espaces sont supprimés). N'incluez pas l'indicatif ici.
countryCodestringYesIndicatif commençant par + (ex. +57). Envoyez-le toujours ; affichez-le à l'utilisateur avec le téléphone (ex. +57 3001234567).
phoneGatewaystringYessms ou whatsapp.
titlestringNoNom de l'entreprise / de l'expéditeur dans le modèle (1–15 caractères). Par défaut, le nom de votre client. Utilisé par WhatsApp flow2 et le texte SMS.
languagestringNoLangue du modèle (en, es, …). Sélectionne flow2_en / flow2_es lorsque whatsappTemplate est flow2.
whatsappTemplatestringNoWhatsApp uniquement. authentication (défaut) ou flow2. Ignoré pour SMS.
forcebooleanNoLorsque true, contourne le délai de renvoi d'environ 2 minutes pour le même téléphone + passerelle. À utiliser pour une action explicite « Renvoyer ».
ipAddressstringNoIP client optionnelle pour l'audit.

Modèles WhatsApp

whatsappTemplateMeta templateNotes
authentication (default)authenticationOTP dans le corps + paramètre d'URL du bouton.
flow2flow2_es / flow2_enEn-tête/corps de marque (title comme section) + code + action ; la langue choisit la variante.
{
"phone": "3001234567",
"countryCode": "+57",
"phoneGateway": "whatsapp",
"title": "Company ABC",
"language": "es",
"whatsappTemplate": "flow2"
}

Exemples de requête

curl -X POST "https://api.verifik.co/v2/phone-validations/manual" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"phone": "3001234567",
"countryCode": "+57",
"phoneGateway": "whatsapp",
"title": "Company ABC",
"language": "en"
}'

Réponse de succès

{
"data": {
"_id": "66f0a1b2c3d4e5f678901234",
"client": "66f0a1b2c3d4e5f678900000",
"source": "manual",
"type": "validation",
"status": "sent",
"countryCode": "+57",
"phone": "3001234567",
"phoneGateway": "whatsapp",
"phoneData": {
"title": "Company ABC"
},
"language": "en",
"expiresAt": "2026-07-29T22:50:00.000Z",
"sent": true,
"new": true
},
"signature": "...",
"id": "a1b2c"
}

Durée de vie de l'OTP et renvoi

RègleDéfautNotes
TTL de l'OTP10 minutesRenvoyé comme data.expiresAt lors d'un envoi réussi. Après ce délai, la vérification renvoie 412 phoneValidation_has_expired.
Délai de renvoi~2 minutesUn second envoi pour le même client + téléphone + phoneGateway dans ~2 minutes renvoie 409 otp_recently_sent (aucun nouveau message).
Forcer le renvoi"force": trueContourne le délai de 2 minutes pour envoyer immédiatement un nouveau code (ex. « Renvoyer » dans l'UI). Chaque envoi/renvoi réussi réinitialise expiresAt à +10 minutes.
Conseils UI

Affichez la destination comme countryCode + phone national (ex. +57 3001234567). Basez un compte à rebours d'expiration sur expiresAt, et activez « Renvoyer » après le délai de 2 minutes (ou toujours avec force: true).

Erreurs courantes

StatusMessage / codeWhen
403insufficient_creditsLe solde prépayé est inférieur au tarif pays pour SMS/WhatsApp. Rien n'est envoyé.
409otp_recently_sentDélai : un OTP a déjà été envoyé pour ce téléphone + passerelle dans ~2 minutes (et force n'était pas true).
409otp_not_sentL'envoi côté fournisseur a échoué (message non accepté). Distinct du délai de renvoi.
409MissingParameterChamps de corps requis manquants ou countryCode pas au format +digits.
403ForbiddenFonctionnalité de communication SMS/WhatsApp non disponible sur le compte.

Étape suivante

Vérifiez le code avec PUT /v2/phone-validations.