API 2FA / OTP Omnicanal (7.0)

Download OpenAPI specification:Download

INTRODUCCION

API de integración del servicio de 2FA (autenticación de dos factores) y OTP (código de un solo uso). El sistema genera un código, lo envía al usuario final y usted lo valida con una segunda llamada. El código puede viajar por una lista ORDENADA de canales: SMS, VOZ (llamada con locución), EMAIL, WHATSAPP, RCS y PUSH. Si la entrega del primer canal falla, el sistema reenvía EL MISMO código por el siguiente canal de la lista automáticamente, sin intervención del integrador.

Esta versión sustituye a la API de 2FA/OTP de la v5 (peticionotp.php / validarotp.php), que solo enviaba por SMS o VOZ.

AUTENTICACIÓN

En su cuenta de usuario encontrará el Usuario API y el API Token, ambos son necesarios para realizar las peticiones API REST a las funciones de la API. Las Peticiones, por seguridad deben realizarse en POST y con protocolo HTTPS Seguro.



Para utilizar la Autenticación Básica debe incluir una cabecera en las peticiones del tipo: Authorization: Basic Base64StringAPI donde Base64StringAPI es la codificación en Base64 de la cadena UsuarioAPI:APIToken, puede encontrar su Usuario API y API Token en su cuenta de usuario en Tus Datos -> Configurar Cuenta.



Para generar el string codificado en Base64, simplemente genere el string UsuarioApi:APIToken y codifíquelo en base64 mediante cualquier función base64encode.

A TENER EN CUENTA

Flujo normal del servicio:
1.- Su aplicación solicita el teléfono (y/o email) al usuario para validar una operación.
2.- Su aplicación llama a EnviarOTP: el sistema genera el código y lo envía.
3.- El usuario introduce el código recibido y su aplicación llama a ValidarOTP.
4.- Si el resultado es 1, la operación queda validada.

Requisitos por canal: Cada canal que incluya en la cascada debe estar disponible en su cuenta:
- SMS: siempre disponible. MENSAJE opcional (por defecto se envía uno estándar con el código); si lo indica debe contener [CODE].
- VOZ: llamada con locución Text-to-Speech que deletrea el código. Requiere un número de voz propio ACTIVO como REMITENTE (solicitado en el panel).
- EMAIL: con DOMINIO propio validado (remitente de su dominio) o sin DOMINIO (sale por el dominio transaccional por defecto del servicio). ASUNTO y MENSAJEEMAIL opcionales.
- WHATSAPP: requiere cuenta WhatsApp Business conectada, IDTELEFONO e IDPLANTILLA de una plantilla de AUTENTICACIÓN aprobada por Meta (el código rellena la variable del body y el botón de copiar código).
- RCS: requiere Agente RCS activo (IDAGENTE) y una plantilla (IDPLANTILLA) que incluya la variable (CODE).
- PUSH: aviso a los dispositivos del usuario final vinculados desde el panel (sección Avisos). El destino es el ALIAS del dispositivo (parámetro REFPUSH o el campo REF del canal).

Cascada de reintento: El estado de entrega lo notifica cada operador. Si un canal reporta fallo definitivo, el sistema reenvía el MISMO código por el siguiente canal de la lista. Cuando el código se valida (o caduca), la cascada se detiene automáticamente.


Webhook de estados (recomendado, evita el polling): Si su cuenta tiene configurada una URL de reports (Tus Datos → Configurar Cuenta), cada cambio de estado del código se envía por POST a esa URL con un JSON que incluye Tipo:"OTP", Evento (entregado | leido | reenviado | fallido), idOTP, idEnvio, App, Destinatario/Email, Canal, CanalesFallidos, Fecha, Expira y ReferenciaUsuario (nunca el código). El evento reenviado añade Motivo y el Canal nuevo. Con webhook configurado, ConsultarOTP solo responde cuando la entrega ya está resuelta (o la petición validada/caducada): la integración correcta es webhook + ValidarOTP, sin bucles de consulta.


Seguimiento en el panel: Cada petición OTP aparece en el panel como una campaña omnicanal de un destinatario, en Envío Omnicanal → Campañas, etiquetada como OTP y con su propio filtro (Solo OTP), con el detalle de canal, entregas y reintentos.


Control antifraude (opcional): Con ANTIFRAUDE=SI, antes de enviar se consulta el módulo antifraude sobre el destino (DatosTelefono si hay teléfono; DatosEmail si el destino es solo email; se cobra según el catálogo del módulo). La respuesta incluye el objeto Antifraude con el riesgo (0-100) y sus motivos; si el riesgo alcanza ANTIFRAUDEMAXRIESGO el envío se rechaza con Res -16. Útil contra el SMS-pumping y los números recién portados (secuestro de línea).


Anti-abuso: Por seguridad, un mismo destino admite un máximo de 5 peticiones de envío cada 10 minutos (Res -6 si se supera). El número de intentos de validación se limita con MAXINTENTOS (por defecto 3). Los códigos se almacenan con hash, viajan cifrados en la cola de reintentos (nunca en claro en reposo) y las respuestas nunca los devuelven.


Migración desde la API v5 (peticionotp/validarotp): La autenticación pasa de Correo/Passwd a Usuario API + API Token (Basic). El envío por defecto sigue siendo SMS y el parámetro MENSAJE con [CODE] se mantiene. Fail2Voice se sustituye por la cascada (añada el canal voz detrás del sms). Los códigos de resultado de ValidarOTP son los mismos que en la v5.


Respuesta de las peticiones: La mayoría de las funciones disponen de un parámetro denominado 'Resp'. Este parámetro define el formato de la respuesta que se devolverá. Puede ser TXT, JSON o XML. Se recomienda siempre definir este parámetro.

basicAuth

Autenticación HTTP Basic. Use su Usuario API como usuario y su API Token como contraseña (los encuentra en su panel, en Tus Datos → Configurar Cuenta). El header resultante es Authorization: Basic base64(UsuarioAPI:APIToken). La mayoría de las librerías HTTP lo construyen automáticamente (curl -u, requests auth=, basic_auth de Ruby, etc.) sin necesidad de codificar el base64 a mano.

Security Scheme Type: HTTP
HTTP Authorization Scheme: basic

Enviar OTP

/EnviarOTP

Genera un código de un solo uso y lo envía al destino por la cascada de canales indicada en CANALES (por defecto, SMS). Devuelve idOTP para validar/consultar después. Si la entrega de un canal falla, el sistema reintenta automáticamente por el siguiente canal con el MISMO código.

Authorizations:
basicAuth
query Parameters
Destinatario
string
Example: Destinatario=34600000001

Teléfono del usuario final en formato internacional sin '+' (Ej: 34600000001). Obligatorio si la cascada incluye sms, voz, whatsapp o rcs.

Email
string
Example: Email=usuario@ejemplo.com

Email del usuario final. Obligatorio si la cascada incluye el canal email.

Refpush
string
Example: Refpush=cliente-4471

Alias del dispositivo vinculado del usuario final (sección Avisos del panel). Obligatorio si la cascada incluye el canal push y el canal no trae su propio REF.

Nombre
string
Example: Nombre=Pedro Aicart

Nombre del destinatario; disponible como variable {{NOMBRE}} en las plantillas.

Canales
Array of strings
Example: Canales=[{"Tipo":"whatsapp","IdTelefono":"572863982585983","IdPlantilla":"codigo_acceso"},{"Tipo":"sms","Remitente":"MIEMPRESA","Mensaje":"Su codigo de acceso es [CODE]"}]

Array JSON ORDENADO de canales de la cascada (cada tipo una sola vez; máximo 6). Si se omite se envía por sms. Campos por elemento:
Tipo (obligatorio) - sms | voz | email | whatsapp | rcs | push
sms: Remitente (máx. 11 alfanuméricos) y Mensaje con [CODE]; ambos opcionales (hay texto por defecto).
voz: Remitente (número de voz propio activo, obligatorio), Mensaje con [CODE] (opcional; el código se deletrea automáticamente), Lenguaje (idioma del TTS, por defecto es) y DetectarContestador (0|1).
email: Dominio (propio validado; vacío = dominio por defecto del servicio), Remitente (email del dominio), Asunto y MensajeEmail con [CODE] (opcionales) o IdPlantilla.
whatsapp: IdTelefono (phone_id de Meta) e IdPlantilla (plantilla de AUTENTICACIÓN aprobada; el código rellena {{1}} y el botón copiar).
rcs: IdAgente e IdPlantilla (numéricos; la plantilla debe incluir la variable (CODE)).
push: Ref (alias del dispositivo; si falta se usa REFPUSH), Titulo, Mensaje con [CODE], Aplicacion (slug de la fuente, por defecto otp), Nivel (critico|alto|normal|bajo). Por ejemplo:


                  [
                    { "Tipo": "whatsapp", "IdTelefono": "572863982585983", "IdPlantilla": "codigo_acceso" },
                    { "Tipo": "sms", "Remitente": "MIEMPRESA", "Mensaje": "Su codigo de acceso es [CODE]" },
                    { "Tipo": "voz", "Remitente": "34910000001" }
]
Mensaje
string
Example: Mensaje=Su codigo de verificacion es [CODE]. No lo comparta con nadie.

Plantilla común para los canales sms/voz/email/push que no traigan la suya. Debe contener [CODE] (se sustituye por el código generado). Si se omite, cada canal usa su texto por defecto.

Remitente
string
Example: Remitente=MIEMPRESA

Remitente por defecto del canal sms (máx. 11 caracteres alfanuméricos).

Codigo
string
Example: Codigo=

Código propio generado por su aplicación (3 a 10 caracteres alfanuméricos). Si se omite, el sistema lo genera según LONG y TIPO (recomendado).

Long
integer
Example: Long=6

Longitud del código a generar (3 a 10).

Tipo
integer
Example: Tipo=1

Alfabeto del código:
1 - Sólo números
2 - Sólo letras mayúsculas
3 - Letras mayúsculas y números
4 - Letras mayúsculas, minúsculas y números

Maxintentos
integer
Example: Maxintentos=3

Intentos de validación fallidos antes de invalidar el código (0 = ilimitados, máximo 10).

Validez
integer
Example: Validez=600

Tiempo en segundos durante el que el código puede validarse (60 a 86400). Por ejemplo 600 para 10 minutos.

Appid
integer
Example: Appid=0

Identificador de la aplicación que hace la petición. Permite validar el mismo destino en aplicaciones distintas sin interferirse.

Variables
Array of strings
Example: Variables={"NOMBRE":"Pedro"}

Variables extra para las plantillas (objeto plano {"VAR":"valor"} o lista [{Nombre,Valor}]): {{NOMBRE}}, cabeceras multimedia de WhatsApp... La variable CODE la pone siempre el sistema.

Referenciausuario
string
Example: Referenciausuario=login-web

Referencia libre para sus listados (máx. 50 caracteres).

Validarcanales
string
Enum: "NO" "SI"
Example: Validarcanales=NO

SI = valida la configuración REAL de cada canal antes de enviar: agente y plantilla RCS (y que incluya la variable CODE), plantilla email con su HTML, cuenta WhatsApp Business con el teléfono registrado y la plantilla APROBADA en Meta, y dispositivos push vinculados con el alias. Pensado para PREPRODUCCIÓN: añade latencia y tiene límite de peticiones por minuto (Res -6). En producción use NO.

Antifraude
string
Enum: "NO" "SI"
Example: Antifraude=NO

SI = antes de enviar consulta el módulo antifraude sobre el destino (DatosTelefono con teléfono; DatosEmail si el destino es solo email). La consulta se cobra según el catálogo del módulo (una repetición reciente no se cobra). La respuesta incluye el objeto Antifraude; si el riesgo alcanza ANTIFRAUDEMAXRIESGO no se envía (Res -16). Si la consulta no puede resolverse (avería del proveedor), el código SE ENVÍA igualmente y Antifraude lo avisa.

Antifraudemaxriesgo
integer
Example: Antifraudemaxriesgo=50

Riesgo (0-100) a partir del cual el envío se rechaza con ANTIFRAUDE=SI. 0 = solo informar, nunca bloquear. 50 equivale al nivel ALTO del módulo.

Resp
string
Enum: "TXT" "JSON" "XML"
Example: Resp=JSON

Tipo de respuesta a mostrar como resultado de la llamada.
JSON - La respuesta la obtendrá en JSON
XML - La respuesta la obtendrá en XML
TXT - La respuesta la obtendrá en formato Texto

Request Body schema:

Los parámetros se envían en el cuerpo de la petición POST, como objeto JSON (Content-Type application/json, RECOMENDADO) o como formulario application/x-www-form-urlencoded. En el formato formulario, los parámetros de tipo array u objeto se envían como string JSON-codificado. Los nombres de los parámetros no distinguen mayúsculas de minúsculas. La descripción detallada de cada parámetro está en la sección de parámetros de esta operación.

Destinatario
string
Email
string
Refpush
string
Nombre
string
Canales
Array of any
Mensaje
string
Remitente
string
Codigo
string
Long
integer
Tipo
integer
Maxintentos
integer
Validez
integer
Appid
integer
Variables
Array of any
Referenciausuario
string
Validarcanales
string
Antifraude
string
Antifraudemaxriesgo
integer
Resp
string

Responses

Response Schema:
Array
Res
required
integer <int32>

Respuesta de la función solicitada
1 Código generado y enviado.
-1 Error de autenticación.
-2 No hay créditos suficientes (obtendrá Necesarios y Cred).
-3 Error en los datos de la llamada (obtendrá Error con la descripción).
-4 Canal mal configurado (obtendrá en Error el canal y el motivo; con VALIDARCANALES=SI la comprobación incluye plantillas, Meta y dispositivos push).
-6 Límite de peticiones alcanzado — del destino o de VALIDARCANALES=SI (obtendrá Espera en segundos).
-8 El destinatario no es válido (prefijo internacional no reconocido).
-12 No se ha podido enviar por ningún canal (obtendrá Error con el último motivo).
-16 Destino rechazado por el control ANTIFRAUDE=SI (obtendrá Antifraude con el riesgo y sus motivos).

Error
string

En caso de Res negativo, descripción del problema.

idOTP
integer

Identificador de la petición OTP. Úselo en ValidarOTP y ConsultarOTP.

idEnvio
integer

Identificador de la campaña omnicanal que transporta el código (visible en el panel).

Canal
string

Canal por el que ha salido el primer intento (sms|voz|email|whatsapp|rcs|push).

Expira
string

Fecha y hora hasta la que el código puede validarse.

MaxIntentos
integer

Intentos de validación admitidos (0 = ilimitados).

CreditosUsados
number

Créditos cobrados por el primer intento (solo se cobra el canal por el que realmente sale cada intento).

Antifraude
Array of arrays

Solo con ANTIFRAUDE=SI: resultado de la consulta del módulo antifraude sobre el destino (Riesgo con Puntos 0-100, Nivel y Motivos; Linea u objetos Dominio/Buzon en email; Creditos cobrados por la consulta).

Cred
number

Créditos disponibles en la cuenta tras la operación.

Request samples

Content type
{
  • "Destinatario": "34600000001",
  • "Email": "usuario@ejemplo.com",
  • "Refpush": "cliente-4471",
  • "Nombre": "Pedro Aicart",
  • "Canales": "[{\"Tipo\":\"whatsapp\",\"IdTelefono\":\"572863982585983\",\"IdPlantilla\":\"codigo_acceso\"},{\"Tipo\":\"sms\",\"Remitente\":\"MIEMPRESA\",\"Mensaje\":\"Su codigo de acceso es [CODE]\"}]",
  • "Mensaje": "Su codigo de verificacion es [CODE]. No lo comparta con nadie.",
  • "Remitente": "MIEMPRESA",
  • "Codigo": "",
  • "Long": "6",
  • "Tipo": "1",
  • "Maxintentos": "3",
  • "Validez": "600",
  • "Appid": "0",
  • "Variables": "{\"NOMBRE\":\"Pedro\"}",
  • "Referenciausuario": "login-web",
  • "Validarcanales": "NO",
  • "Antifraude": "NO",
  • "Antifraudemaxriesgo": "50",
  • "Resp": "JSON"
}

Response samples

Content type
[
  • {
    }
]

Validar OTP

/ValidarOTP

Valida el código introducido por el usuario final. La petición se localiza por IDOTP (recomendado) o por DESTINATARIO/EMAIL + APPID (la última de ese destino). Al validar, la cascada de reintentos del código se detiene automáticamente. Los códigos de resultado son los mismos que en la API v5.

Authorizations:
basicAuth
query Parameters
Idotp
integer
Example: Idotp=88231

Identificador devuelto por EnviarOTP. Si se indica, no hace falta DESTINATARIO/EMAIL.

Destinatario
string
Example: Destinatario=34600000001

Teléfono al que se envió el código, en formato internacional sin '+'.

Email
string
Example: Email=usuario@ejemplo.com

Email al que se envió el código.

Appid
integer
Example: Appid=0

Identificador de aplicación usado en EnviarOTP.

Codigo
required
string
Example: Codigo=430913

Código introducido por el usuario final (3 a 10 caracteres).

Resp
string
Enum: "TXT" "JSON" "XML"
Example: Resp=JSON

Tipo de respuesta a mostrar como resultado de la llamada.
JSON - La respuesta la obtendrá en JSON
XML - La respuesta la obtendrá en XML
TXT - La respuesta la obtendrá en formato Texto

Request Body schema:

Los parámetros se envían en el cuerpo de la petición POST, como objeto JSON (Content-Type application/json, RECOMENDADO) o como formulario application/x-www-form-urlencoded. En el formato formulario, los parámetros de tipo array u objeto se envían como string JSON-codificado. Los nombres de los parámetros no distinguen mayúsculas de minúsculas. La descripción detallada de cada parámetro está en la sección de parámetros de esta operación.

Idotp
integer
Destinatario
string
Email
string
Appid
integer
Codigo
required
string
Resp
string

Responses

Response Schema:
Array
Res
required
integer <int32>

Respuesta de la función solicitada
1 Validación CORRECTA (obtendrá FechaValidado e Intentos).
-1 Error de autenticación.
-2 No existe una petición OTP con estos datos.
-3 Error en los datos de la llamada (obtendrá Error).
-4 La validez del código ha expirado.
-5 Código ya validado (obtendrá Fecha de la validación).
-6 Número máximo de intentos fallidos superado.
-7 El código debe tener entre 3 y 10 caracteres.
-8 Código incorrecto (obtendrá IntentosRestantes si hay límite).
-9 Destinatario incorrecto.

Error
string

En caso de Res negativo, descripción del problema.

idOTP
integer

Identificador de la petición validada.

FechaValidado
string

Fecha y hora de la validación.

Intentos
integer

Intentos realizados hasta la validación.

Canal
string

Canal por el que estaba viajando el código.

Cred
number

Créditos disponibles en la cuenta.

Request samples

Content type
{
  • "Idotp": "88231",
  • "Destinatario": "34600000001",
  • "Email": "usuario@ejemplo.com",
  • "Appid": "0",
  • "Codigo": "430913",
  • "Resp": "JSON"
}

Response samples

Content type
[
  • {
    }
]

Consultar OTP

/ConsultarOTP

Devuelve el estado completo de una petición OTP: canal actual, estado de entrega (pendiente, enviado, entregado, leído, reenviado por otro canal, fallido), validación y créditos cobrados. Nunca devuelve el código.

NO es una función de polling: los cambios de estado se envían a su webhook (JSON con Tipo:"OTP"). Si su cuenta tiene webhook configurado, esta consulta devuelve -10 hasta que la entrega esté resuelta (webhook de entregado/leído/fallido emitido) o la petición validada/caducada, y hay un límite de consultas por minuto (-6). Sin webhook configurado responde siempre.

Authorizations:
basicAuth
query Parameters
Idotp
integer
Example: Idotp=88231

Identificador devuelto por EnviarOTP. Si se indica, no hace falta DESTINATARIO/EMAIL.

Destinatario
string
Example: Destinatario=34600000001

Teléfono al que se envió el código, en formato internacional sin '+'. Se consulta la ÚLTIMA petición de ese destino.

Email
string
Example: Email=usuario@ejemplo.com

Email al que se envió el código.

Appid
integer
Example: Appid=0

Identificador de aplicación usado en EnviarOTP.

Resp
string
Enum: "TXT" "JSON" "XML"
Example: Resp=JSON

Tipo de respuesta a mostrar como resultado de la llamada.
JSON - La respuesta la obtendrá en JSON
XML - La respuesta la obtendrá en XML
TXT - La respuesta la obtendrá en formato Texto

Request Body schema:

Los parámetros se envían en el cuerpo de la petición POST, como objeto JSON (Content-Type application/json, RECOMENDADO) o como formulario application/x-www-form-urlencoded. En el formato formulario, los parámetros de tipo array u objeto se envían como string JSON-codificado. Los nombres de los parámetros no distinguen mayúsculas de minúsculas. La descripción detallada de cada parámetro está en la sección de parámetros de esta operación.

Idotp
integer
Destinatario
string
Email
string
Appid
integer
Resp
string

Responses

Response Schema:
Array
Res
required
integer <int32>

Respuesta de la función solicitada
1 Petición encontrada.
-1 Error de autenticación.
-2 No existe una petición OTP con estos datos.
-3 Error en los datos de la llamada (obtendrá Error).
-6 Límite de consultas por minuto alcanzado (obtendrá Espera en segundos).
-9 Destinatario incorrecto.
-10 Su cuenta tiene webhook configurado y la entrega aún no está resuelta: espere el webhook (Tipo:OTP) en lugar de consultar en bucle.

idOTP
integer

Identificador de la petición.

App
integer

APPID de la petición.

Telefono
string

Teléfono destino (vacío si el OTP fue solo por email/push).

Email
string

Email destino (vacío si no se usó).

Fecha
string

Fecha de la petición.

Expira
string

Fecha de caducidad del código.

Expirado
integer

1 si el código ya ha caducado.

Canal
string

Canal actual del código (sms|voz|email|whatsapp|rcs|push).

EstadoEnvio
string

Estado de entrega: pendiente | enviado | entregado | leido | reenviado | fallido.

CanalesFallidos
string

Canales que ya fallaron para esta petición (CSV).

IntentosEnvio
integer

Intentos de envío realizados (uno por canal usado).

UltimoError
string

Último error de envío, si lo hubo.

Validado
integer

1 si el código ya fue validado.

FechaValidado
string

Fecha de la validación (si Validado=1).

IntentosValidacion
integer

Intentos de validación realizados.

MaxIntentos
integer

Intentos de validación admitidos (0 = ilimitados).

ReferenciaUsuario
string

Referencia libre indicada en EnviarOTP.

CreditosUsados
number

Créditos cobrados hasta ahora por esta petición.

Cred
number

Créditos disponibles en la cuenta.

Request samples

Content type
{
  • "Idotp": "88231",
  • "Destinatario": "34600000001",
  • "Email": "usuario@ejemplo.com",
  • "Appid": "0",
  • "Resp": "JSON"
}

Response samples

Content type
[
  • {
    }
]

Report de peticiones OTP

/GetReportOTP

Listado de las peticiones OTP de un periodo (máximo 31 días) con su estado de entrega y validación. Sustituye al report CSV de la v5: aquí el listado llega estructurado en la propia respuesta.

Authorizations:
basicAuth
query Parameters
Fechadesde
string
Example: Fechadesde=2026-08-01 00:00

Inicio del periodo, formato YYYY-MM-DD HH:mm (CET/CEST). Si se omite: 30 días antes de FECHAHASTA (o de hoy).

Fechahasta
string
Example: Fechahasta=2026-08-31 23:59

Fin del periodo, formato YYYY-MM-DD HH:mm (CET/CEST). Si se omite: ahora (o 31 días tras FECHADESDE).

Appid
string
Example: Appid=-1

Filtra por identificador de aplicación. -1 (por defecto) devuelve todas.

Max
integer
Example: Max=1000

Máximo de filas a devolver (1 a 5000).

Resp
string
Enum: "TXT" "JSON" "XML"
Example: Resp=JSON

Tipo de respuesta a mostrar como resultado de la llamada.
JSON - La respuesta la obtendrá en JSON
XML - La respuesta la obtendrá en XML
TXT - La respuesta la obtendrá en formato Texto

Request Body schema:

Los parámetros se envían en el cuerpo de la petición POST, como objeto JSON (Content-Type application/json, RECOMENDADO) o como formulario application/x-www-form-urlencoded. En el formato formulario, los parámetros de tipo array u objeto se envían como string JSON-codificado. Los nombres de los parámetros no distinguen mayúsculas de minúsculas. La descripción detallada de cada parámetro está en la sección de parámetros de esta operación.

Fechadesde
string
Fechahasta
string
Appid
string
Max
integer
Resp
string

Responses

Response Schema:
Array
Res
required
integer <int32>

Respuesta de la función solicitada
1 Listado devuelto.
-1 Error de autenticación.
-3 Error en los datos de la llamada (obtendrá Error).
-4 FECHAHASTA debe ser mayor que FECHADESDE y el rango máximo es de 31 días.

Num
integer

Número de peticiones devueltas.

FechaDesde
string

Inicio efectivo del periodo consultado.

FechaHasta
string

Fin efectivo del periodo consultado.

Peticiones
Array of arrays

Listado de peticiones. Cada elemento incluye: idOTP, App, Fecha, Expira, Telefono, Email, Canal, EstadoEnvio (pendiente|enviado|entregado|leido|reenviado|fallido), CanalesFallidos, IntentosEnvio, UltimoError, Validado, FechaValidado, IntentosValidacion, MaxIntentos, ReferenciaUsuario y CreditosUsados. El código nunca se incluye.

Cred
number

Créditos disponibles en la cuenta.

Request samples

Content type
{
  • "Fechadesde": "2026-08-01 00:00",
  • "Fechahasta": "2026-08-31 23:59",
  • "Appid": "-1",
  • "Max": "1000",
  • "Resp": "JSON"
}

Response samples

Content type
[
  • {
    }
]