Skip to main content

Crear una Validación de Teléfono manual

Endpoint

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

Crea una Phone Validation independiente y envía un OTP por SMS o WhatsApp. No se requiere project ni projectFlow. Es el mismo endpoint que usa Smart Tools → Mensajes de WhatsApp / SMS.

Tras un envío exitoso, continúa con Validar una Validación de Teléfono.

Facturación

Los créditos se verifican antes de enviar el mensaje, según el precio del país. Solo se cobran cuando el OTP se entrega (sent: true).

Headers

NombreValor
Content-Typeapplication/json
AuthorizationBearer {YOUR_ACCESS_TOKEN}

Parámetros del body

ParámetroTipoRequeridoDescripción
phonestringSolo número nacional (se eliminan espacios). No incluyas el código de país aquí.
countryCodestringCódigo con + (ej. +57). Envíalo siempre y muéstralo al usuario junto al teléfono (ej. +57 3001234567).
phoneGatewaystringsms o whatsapp.
titlestringNoNombre de empresa en la plantilla (1–15 caracteres). Se usa en WhatsApp flow2 y en el texto SMS.
languagestringNoIdioma de la plantilla (en, es, …). Elige flow2_en / flow2_es cuando whatsappTemplate es flow2.
whatsappTemplatestringNoSolo WhatsApp. authentication (por defecto) o flow2. Se ignora en SMS.
forcebooleanNoSi es true, omite la ventana de ~2 minutos de reenvío para el mismo teléfono + gateway. Úsalo en un botón “Reenviar”.
ipAddressstringNoIP opcional para auditoría.

Plantillas de WhatsApp

whatsappTemplatePlantilla MetaNotas
authentication (por defecto)authenticationOTP en el cuerpo + parámetro de botón URL.
flow2flow2_es / flow2_enEncabezado/cuerpo con marca (title como sección) + código + acción; el idioma elige la variante.
{
"phone": "3001234567",
"countryCode": "+57",
"phoneGateway": "whatsapp",
"title": "Company ABC",
"language": "es",
"whatsappTemplate": "flow2"
}

Ejemplos de solicitud

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": "es"
}'

Vigencia del OTP y reenvío

ReglaValor por defectoNotas
TTL del OTP10 minutosSe devuelve en data.expiresAt tras un envío exitoso. Después, la verificación responde 412 phoneValidation_has_expired.
Ventana de reenvío~2 minutosUn segundo envío para el mismo cliente + teléfono + phoneGateway en ~2 minutos responde 409 otp_recently_sent (sin mensaje nuevo).
Forzar reenvío"force": trueOmite la ventana de 2 minutos para enviar un código nuevo de inmediato (p. ej. botón “Reenviar”). Cada envío/reenvío exitoso reinicia expiresAt a +10 minutos.
Guía de UI

Muestra el destino como countryCode + phone nacional (ej. +57 3001234567). Usa expiresAt para la cuenta regresiva de expiración y habilita “Reenviar” tras la ventana de 2 minutos (o siempre con force: true).

Errores comunes

StatusMensajeCuándo
403insufficient_creditsSaldo insuficiente. No se envía el mensaje.
409otp_recently_sentCooldown: ya se envió un OTP a este teléfono + gateway en ~2 minutos (y force no es true).
409otp_not_sentFalló el envío del proveedor. Distinto del cooldown.
409MissingParameterFaltan campos o countryCode no tiene formato +dígitos.
403ForbiddenLa función de mensajería SMS/WhatsApp no está disponible en la cuenta.

Siguiente paso

Verifica el código con PUT /v2/phone-validations.