WhatsApp Business API Oficial
La conexión entre su organización y la API oficial de WhatsApp de Meta. Especialmente para desarrolladores independientes, áreas de TI y PYMEs que buscan automatizar notificaciones, envíos de comprobantes e interacciones inteligentes sin lidiar con los complejos y rigurosos trámites de verificación directa de META pero cumpliendo con sus normas. Desde todos los sistemas operativos (windows, linux) todas las plataformas (32, 64 bits) y Todos los lenguajes (Modernos: python, net, java. Legacy: Basic,FoxPro,Cobol,Delphi,Clarion y otros.)
Simplificación
Evitamos que deba tramitar su propia cuenta comercial verificada en Meta. Utilice nuestro número verificado oficial de MisDatos de inmediato.
Ahorro
Reducimos los tiempos de desarrollo de semanas a un par de horas. Sin costos de instalación complejos y con tarifas mensuales de precio plano.
Fiabilidad
Middleware respaldado por un backend robusto en Google App Engine. Más de una década operando servicios de interconexión con éxito.
Soporte
Soporte técnico directo pago por hora sin límites desde la misma plataforma web para ayudarle a resolver cualquier integración compleja.
Comunidad
Acceda a foros y repositorios de código donde otros desarrolladores y administradores de sistemas comparten soluciones y scripts listos para usar.
Privacidad
Todo el servicio opera en servidores administrados de forma exclusiva por MisDatos (alojados de manera dedicada en Google Cloud, AWS y otros proveedores, no compartidos). Sus datos de usuarios y mensajes están totalmente protegidos por la política de privacidad declarada en www.misdatos.com.ar/privacidad.
Modelo Operativo y Reglas de Interfaz
El servicio oficial de WhatsApp de MisDatos opera mediante reglas de middleware que garantizan un uso seguro, eficiente y homologado por las políticas de Meta. Comprender estos conceptos es vital para una integración fluida:
Modelo de Publicación Previa
La API requiere que cualquier documento digital o enlace (facturas, recibos, turnos, etc.) sea subido y registrado de forma previa mediante el método mdwhatsappenlacev01. De esta manera, el chatbot lo tiene indexado de manera que cuando el usuario interactúe, la respuesta sea instantánea.
Lista Blanca y Alta Automática
El control de acceso se basa en una lista blanca de números/identificadores autorizados administrados mediante el método mdwhatsappdestinov01. Con el fin de respetar estrictamente la privacidad del usuario en caso de que este haya optado por la nueva característica de Meta para proteger su información de contacto, la API está diseñada y orientada a operar mediante el campo codigo (que sí es un identificador propio del sistema de base de datos del desarrollador) en lugar de depender directamente del número de teléfono. No obstante, mediante el parámetro accionalta en la configuración de la API, se puede activar el registro automatizado de nuevos usuarios tan pronto inicien el chat.
Identificación por Código Interno
Para simplificar el acoplamiento con sistemas de gestión ERP preexistentes, la API asocia unívocamente el número/identificador de teléfono con un código interno propio de su organización (por ejemplo: DNI, número de cliente o legajo), evitando almacenar bases de datos complejas en la nube de MisDatos. Esta vinculación por código interno permite al desarrollador respetar la privacidad del usuario en el caso de que este opte por las características avanzadas de privacidad de Meta, dado que el sistema basará su lógica principal en el campo "codigo" propio de la empresa.
Mecanismo de Primer Contacto (Opt-in)
Por políticas estrictas de privacidad de Meta, no se permite el spam. El usuario final debe realizar el primer contacto de forma voluntaria. Para facilitarlo, MisDatos genera enlaces profundos tipo https://www.misdatos.com.ar/bot/slug y códigos QR dinámicos para lanzar la app con un saludo de bienvenida.
Avisos Salientes (Notificaciones Activas)
Una vez que el usuario ha realizado el opt-in inicial, el sistema puede inyectar alertas salientes utilizando la plantilla homologada de Meta avisodatos. Este mensaje actúa como un aviso informativo para avisarle al usuario que tiene novedades disponibles, incitándolo a ingresar al chatbot para consultar el dato crudo.
Hoja de Ruta y Flujo Obligatorio de Prueba
Para asegurar que comprende la interacción y las llamadas técnicas antes de contratar planes de producción, MisDatos requiere completar un flujo secuencial obligatorio de pruebas básicas en el entorno gratuito:
Autenticación Directa
Ingrese a www.misdatos.com.ar e inicie sesión utilizando su cuenta corporativa o personal de Google/Gmail.
Suscripción al Plan Gratuito
En el panel, suscríbase de forma obligatoria al servicio de "WhatsApp API" en su modalidad base gratuita ingresando a www.misdatos.com.ar/whatsapp/0. Esto creará sus credenciales de autenticación: un usuario con prefijo md_ y una contraseña (token).
Configuración Inicial del Chatbot
Defina el Alias comercial de su organización, un saludo amigable que sirva de enganche y configure el slug (campo urlcodigo) para generar su código QR personalizado de invitación rápida.
Circuito Mínimo de Validación de PoC (Prueba de Concepto)
Debe completar estas tres llamadas consecutivas para desbloquear los módulos superiores:
- Publicar un Comprobante: Registre un comprobante ficticio (factura o recibo) llamando al método de la API correspondientemente.
- Agregar un Contacto: Agregue su propio número/identificador celular de prueba a la lista blanca asociándolo a un DNI o código interno de prueba.
- Probar la Interacción: Use el método de envío de plantilla para notificar la novedad a su teléfono, simule el ingreso de la consulta en WhatsApp y compruebe la respuesta interactiva del bot.
Almacenamiento Avanzado (Opcional - Servicio 'mdurl')
Si no cuenta con un servidor público propio para almacenar PDFs de comprobantes, active el servicio mdurl en el mismo token para subir los binarios directamente a nuestro bucket privado en Google Cloud Storage.
Migración y Chatbots Personalizados
Una vez completada la prueba, migre a los planes de producción de tarifa fija. Si su negocio lo requiere, solicite presupuestos a medida para el desarrollo de flujos interactivos complejos (por ejemplo: reserva automática de turnos, sistemas de preventa o pasarelas de cobro transaccionales).
Ejemplos Nativos de Consumo Práctico (SDKs Oficiales)
A continuación se presentan ejemplos completos y auto-contenidos para consumir la API de WhatsApp de MisDatos utilizando SDKs nativos en lenguajes modernos. Estos ejemplos simulan el flujo completo: registro del número/identificador de prueba en la lista blanca, publicación previa de comprobante, subida del archivo PDF y envío de la plantilla de notificación.
# -*- coding: utf-8 -*-
# Para este ejemplo descargue la clase mdapi2 del repositorio que figura en la sección descargas al final,
# y asegúrese que la url api.misdatos.com.ar esté accesible desde su equipo (debe poder verse desde el navegador).
from misdatos_sdk import mdapi2
# 1. Instanciamos el cliente API
api = mdapi2()
# 2. Asignamos las credenciales obtenidas del portal
api.usuario = "md_tu_usuario_token"
api.password = "tu_clave_token"
api.modo = 1 # 1 = Producción, 0 = Test (Localhost)
# 3. Conectamos al servicio
if not api.conectar():
print("❌ Error de conexión:", api.ultimomensajeerror)
else:
print("✅ Conectado exitosamente.")
# 4. Registrar / Actualizar número/identificador en Lista Blanca
cdestino = "54123412345678" # Teléfono internacional
ccodigo = "CLI-998" # Código de cliente interno
iddestino = api.mdwhatsappdestinov01(
cdestino=cdestino,
ccodigo=ccodigo,
cemail="juan@ejemplo.com",
nestadoproveedor="0", # 0 = Activo
cfecha="20260629",
cnombre="Juan Perez",
caccionclave="porcodigo" # Mapeado unívoco por código
)
if iddestino == "0":
print("❌ Error al registrar destino:", api.ultimomensajeerror)
else:
print(f"✅ Destino creado con ID: {iddestino}")
# 5. Crear registro de comprobante / enlace previo
idenlace = api.mdwhatsappenlacev01(
ctipo="1", # 1 = Factura, 2 = Recibo, 5 = Haberes
ccodigo=ccodigo, # Enlazado al código interno
cnombre="FC-0001",
cfecha="20260629",
cenlace="", # Vacío si subimos PDF con mdurl
cusuariosql="",
cdescripcion="Factura de Servicios",
ntotal="4500.00",
nprocesado="0",
caccionclave="porcodigo"
)
if idenlace == "0":
print("❌ Error al crear enlace:", api.ultimomensajeerror)
else:
print(f"✅ Enlace pre-registrado con ID: {idenlace}")
# 6. Subir PDF usando el servicio mdurl (Base64)
result_url = api.mdwhatsappenlaceurlv01(
nid_enlace=int(idenlace),
cruta_archivo="C:\\facturas\\factura_juan.pdf"
)
if result_url == "0":
print("❌ Error en subida de PDF:", api.ultimomensajeerror)
else:
print(f"✅ Archivo subido. URL pública: {result_url}")
# 7. Enviar plantilla de notificación homologada
id_msj = api.mdwhatssappenviarplantilla01v01(
cdestino="",
ccodigo=ccodigo,
caccion="consultarnovedades;"
)
if id_msj == "0":
print("❌ Error al enviar plantilla:", api.ultimomensajeerror)
else:
print(f"✅ Notificación enviada. ID Meta: {id_msj}")
// Para este ejemplo descargue la clase mdapi2 del repositorio que figura en la sección descargas al final,
// y asegúrese que la url api.misdatos.com.ar esté accesible desde su equipo (debe poder verse desde el navegador).
using System;
using MisDatosSDK;
class Program
{
static void Main()
{
// 1. Instanciar la SDK en C#
MdApi2 api = new MdApi2();
// 2. Asignamos las credenciales obtenidas del portal
api.Usuario = "md_tu_usuario_token";
api.Password = "tu_clave_token";
api.Modo = 1; // 1 = Producción, 0 = Test (Localhost)
// 3. Conectar
if (!api.Conectar())
{
Console.WriteLine("❌ Error: " + api.UltimoMensajeError);
return;
}
Console.WriteLine("✅ Conectado exitosamente.");
// 4. Registrar Destino en lista blanca
string cdestino = "54123412345678"; // Teléfono internacional
string ccodigo = "CLI-998"; // Código de cliente interno
string idDestino = api.MdWhatsappDestinoV01(
cdestino: cdestino,
ccodigo: ccodigo,
cemail: "juan@ejemplo.com",
nestadoproveedor: "0", // 0 = Activo
cfecha: "20260629",
cnombre: "Juan Perez",
caccionclave: "porcodigo" // Mapeado unívoco por código
);
if (idDestino == "0")
{
Console.WriteLine("❌ Error Destino: " + api.UltimoMensajeError);
return;
}
Console.WriteLine($"✅ Destino creado con ID: {idDestino}");
// 5. Crear Enlace de Comprobante / enlace previo
string idEnlace = api.MdWhatsappEnlaceV01(
ctipo: "1", // 1 = Factura, 2 = Recibo, 5 = Haberes
ccodigo: ccodigo, // Enlazado al código interno
cnombre: "FC-0001",
cfecha: "20260629",
cenlace: "", // Vacío si subimos PDF con mdurl
cusuariosql: "",
cdescripcion: "Factura de Servicios",
ntotal: "4500.00",
nprocesado: "0",
caccionclave: "porcodigo"
);
if (idEnlace == "0")
{
Console.WriteLine("❌ Error Enlace: " + api.UltimoMensajeError);
return;
}
Console.WriteLine($"✅ Enlace pre-registrado con ID: {idEnlace}");
// 6. Subir PDF usando el servicio mdurl (Base64)
string resultUrl = api.MdWhatsappEnlaceUrlV01(
nid_enlace: int.Parse(idEnlace),
cruta_archivo: @"C:\facturas\factura_juan.pdf"
);
if (resultUrl == "0")
{
Console.WriteLine("❌ Error en subida de PDF: " + api.UltimoMensajeError);
}
else
{
Console.WriteLine($"✅ Archivo subido. URL pública: {resultUrl}");
// 7. Enviar plantilla de notificación homologada
float idMsj = api.MdWhatsappEnviarPlantilla01V01(
cdestino: "",
ccodigo: ccodigo,
caccion: "consultarnovedades;"
);
if (idMsj == 0.0f)
{
Console.WriteLine("❌ Error al enviar plantilla: " + api.UltimoMensajeError);
}
else
{
Console.WriteLine($"✅ Notificación enviada. ID Meta: {idMsj}");
}
}
}
}
' Para este ejemplo descargue la clase mdapi2 del repositorio que figura en la sección descargas al final,
' y asegúrese que la url api.misdatos.com.ar esté accesible desde su equipo (debe poder verse desde el navegador).
Imports MisDatosSDK
Module Module1
Sub Main()
' 1. Instanciamos el cliente API
Dim api As New MdApi2()
' 2. Asignamos las credenciales obtenidas del portal
api.Usuario = "md_tu_usuario_token"
api.Password = "tu_clave_token"
api.Modo = 1 ' 1 = Producción, 0 = Test (Localhost)
' 3. Conectamos al servicio
If Not api.Conectar() Then
Console.WriteLine("❌ Error de conexión: " & api.UltimoMensajeError)
Else
Console.WriteLine("✅ Conectado exitosamente.")
' 4. Registrar / Actualizar número/identificador en Lista Blanca
Dim cdestino As String = "54123412345678" ' Teléfono internacional
Dim ccodigo As String = "CLI-998" ' Código de cliente interno
Dim idDestino As String = api.MdWhatsappDestinoV01(
cdestino:=cdestino,
ccodigo:=ccodigo,
cemail:="juan@ejemplo.com",
nestadoproveedor:="0", ' 0 = Activo
cfecha:="20260629",
cnombre:="Juan Perez",
caccionclave:="porcodigo" ' Mapeado unívoco por código
)
If idDestino = "0" Then
Console.WriteLine("❌ Error al registrar destino: " & api.UltimoMensajeError)
Else
Console.WriteLine("✅ Destino creado con ID: " & idDestino)
' 5. Crear registro de comprobante / enlace previo
Dim idEnlace As String = api.MdWhatsappEnlaceV01(
ctipo:="1", ' 1 = Factura, 2 = Recibo, 5 = Haberes
ccodigo:=ccodigo, ' Enlazado al código interno
cnombre:="FC-0001",
cfecha:="20260629",
cenlace:="", ' Vacío si subimos PDF con mdurl
cusuariosql:="",
cdescripcion:="Factura de Servicios",
ntotal:="4500.00",
nprocesado:="0",
caccionclave:="porcodigo"
)
If idEnlace = "0" Then
Console.WriteLine("❌ Error al crear enlace: " & api.UltimoMensajeError)
Else
Console.WriteLine("✅ Enlace pre-registrado con ID: " & idEnlace)
' 6. Subir PDF usando el servicio mdurl (Base64)
Dim resultUrl As String = api.MdWhatsappEnlaceUrlV01(
nid_enlace:=Convert.ToInt32(idEnlace),
cruta_archivo:="C:\facturas\factura_juan.pdf"
)
If resultUrl = "0" Then
Console.WriteLine("❌ Error en subida de PDF: " & api.UltimoMensajeError)
Else
Console.WriteLine("✅ Archivo subido. URL pública: " & resultUrl)
' 7. Enviar plantilla de notificación homologada
Dim idMsj As Single = api.MdWhatsappEnviarPlantilla01V01(
cdestino:="",
ccodigo:=ccodigo,
caccion:="consultarnovedades;"
)
If idMsj = 0.0F Then
Console.WriteLine("❌ Error al enviar plantilla: " & api.UltimoMensajeError)
Else
Console.WriteLine("✅ Notificación enviada. ID Meta: " & idMsj)
End If
End If
End If
End If
End If
End Sub
End Module
Consumo desde Entornos OLE / COM de 32 y 64 bits
A continuación se presentan ejemplos completos para consumir la API de WhatsApp de MisDatos desde entornos clásicos, de escritorio o sistemas de gestión mediante integración COM/OLE de 32 y 64 bits. Estos ejemplos contemplan el circuito de integración con la misma estructura de llamadas y parámetros del servicio oficial.
Para consumir la API desde lenguajes legacy se debe descargar e instalar el módulo mdpyv009.exe y, en caso de utilizar un control OCX, el instalador de WSAFIPFE. Ambos componentes se encuentran disponibles con enlaces directos en la sección Descargas al final de este manual. Una vez realizada la instalación, la API se puede consumir exactamente con los mismos métodos y campos tal como figuran en la documentación.
' Visual Basic 6 - Late Binding (COM Puro)
' Asegúrese de que el módulo mdpyv009.exe esté instalado y registrado en su sistema.
Sub Main()
Debug.Print "========================================================="
Debug.Print " INICIO DE EJEMPLO DE CONSUMO DE API (Estructura Plana) "
Debug.Print "=========================================================" & vbCrLf
' 1. Instanciamos la clase
Dim api As Object
Set api = CreateObject("misdatos.mdapi2")
' NOTA IMPORTANTE:
' Las credenciales (usuario y password) representan un token de acceso.
' Deben tramitarse previamente en la plataforma: www.misdatos.com.ar/whatsapp/0
api.usuario = "tu_usuario_token"
api.password = "tu_clave_token"
api.modo = 1 ' 1 = Producción, 0 = Test (Localhost)
' ---------------------------------------------------------
' MÉTODO 1: CONECTAR
' ---------------------------------------------------------
Debug.Print "--- 1. Conectando a la API ---"
Dim conectado As Boolean
conectado = api.conectar()
If Not conectado Then
Debug.Print "❌ Error de conexión: " & api.ultimomensajeerror
Else
Debug.Print "✅ Conectado exitosamente con las credenciales provistas."
End If
' ---------------------------------------------------------
' MÉTODO 2: REGISTRAR / ACTUALIZAR DESTINO
' ---------------------------------------------------------
Dim iddestino As String
iddestino = "0"
If conectado Then
Debug.Print vbCrLf & "--- 2. Ejecutando mdwhatsappdestinov01 ---"
' Variables autodocumentadas para el método
Dim cdestino As String
Dim ccodigo As String
Dim cemail As String
Dim cestadoproveedor As String
Dim cfecha As String
Dim cnombre As String
Dim caccionclave As String
cdestino = "54123412345678" ' Teléfono (generalmente con código de país)
ccodigo = "EMP-001" ' Identificador interno en tu sistema
cemail = "juanperez@ejemplo.com"
cestadoproveedor = "0" ' 0 = Activo
cfecha = "20260626" ' Formato AAAAMMDD
cnombre = "Juan Perez"
caccionclave = "porcodigo" ' Identifica al registro por el campo código
Dim iddestinostr As String
iddestinostr = api.mdwhatsappdestinov01( _
cdestino, _
ccodigo, _
cemail, _
cestadoproveedor, _
cfecha, _
cnombre, _
caccionclave _
)
If iddestinostr = "0" Then
Debug.Print "❌ Error en mdwhatsappdestinov01: " & api.ultimomensajeerror
Else
iddestino = iddestinostr
Debug.Print "✅ Éxito. Destino creado/actualizado con ID: " & iddestino
' Ejemplo de uso de leerPropiedad (Apto para clientes COM como VFP o VB6)
Dim nombreguardado As String
nombreguardado = api.leerPropiedad("mdwhatsappdestinov01", "diccionario.registro.diccionario.nombre", 0, 0, 0)
Debug.Print " Dato recuperado de la respuesta COM-Safe (Nombre): " & nombreguardado
End If
End If
' ---------------------------------------------------------
' MÉTODO 3: CREAR REGISTRO DE ENLACE / COMPROBANTE
' ---------------------------------------------------------
Dim idenlace As String
idenlace = "0"
If conectado Then
Debug.Print vbCrLf & "--- 3. Ejecutando mdwhatsappenlacev01 ---"
' Variables autodocumentadas
Dim ctipoenlace As String
Dim cnombrecomp As String
Dim cenlace As String
Dim cusuariosql As String
Dim cdescripcion As String
Dim ctotal As String
Dim cprocesado As String
ctipoenlace = "1" ' Ej: 1 = Factura
cnombrecomp = "FC-0001"
cfecha = "20260626" ' Formato AAAAMMDD
cenlace = "" ' Se deja en blanco intencionalmente
cusuariosql = "" ' Opcional
cdescripcion = "Factura de prueba para Juan"
ctotal = "1500.50"
cprocesado = "0"
Dim idenlacestr As String
idenlacestr = api.mdwhatsappenlacev01( _
ctipoenlace, _
ccodigo, _
cnombrecomp, _
cfecha, _
cenlace, _
cusuariosql, _
cdescripcion, _
ctotal, _
cprocesado, _
caccionclave _
)
If idenlacestr = "0" Then
Debug.Print "❌ Error en mdwhatsappenlacev01: " & api.ultimomensajeerror
Else
idenlace = idenlacestr
Debug.Print "✅ Éxito. Enlace creado/actualizado con ID: " & idenlace
End If
End If
' ---------------------------------------------------------
' MÉTODO 4: SUBIR ARCHIVO PDF AL ENLACE
' ---------------------------------------------------------
If conectado And idenlace <> "0" Then
Debug.Print vbCrLf & "--- 4. Ejecutando mdwhatsappenlaceurlv01 ---"
' NOTA: En un entorno de producción, asegúrese de que el archivo exista en la ruta indicada.
' Utilizamos el ID devuelto por el método anterior (mdwhatsappenlacev01).
Dim rutapdf As String
rutapdf = "C:\temp\factura_juan.pdf"
Dim resultadourl As String
resultadourl = api.mdwhatsappenlaceurlv01( _
CLng(idenlace), _
rutapdf _
)
If resultadourl = "0" Then
Debug.Print "❌ Error en mdwhatsappenlaceurlv01: " & api.ultimomensajeerror
Debug.Print " (Verifique que el archivo exista y que el plan permita la subida)"
Else
Debug.Print "✅ Éxito. Archivo PDF subido y asociado. URL pública: " & resultadourl
End If
End If
' ---------------------------------------------------------
' MÉTODO 5: ENVIAR PLANTILLA DE WHATSAPP
' ---------------------------------------------------------
If conectado Then
Debug.Print vbCrLf & "--- 5. Ejecutando mdwhatssappenviarplantilla01v01 ---"
' REGLAS IMPORTANTES:
' 1. 'cdestino' y 'ccodigo' son EXCLUYENTES. Si se envían ambos, el código tiene prioridad.
' Se recomienda enviar el destino en blanco si se utiliza el código.
' 2. Solo se enviará el mensaje si el destino interactuó previamente con el chatbot
' al menos una vez a través de www.misdatos.com.ar/bot (opt-in de Meta).
Dim caccionplantilla As String
caccionplantilla = "consultarnovedades;" ' Opcional. Define la acción que gatillará el botón en el bot.
Dim idplantillastr As String
idplantillastr = api.mdwhatssappenviarplantilla01v01( _
"", _
ccodigo, _
caccionplantilla _
)
If idplantillastr = "0" Then
Debug.Print "❌ Error en mdwhatssappenviarplantilla01v01: " & api.ultimomensajeerror
Else
Debug.Print "✅ Éxito. Plantilla de aviso enviada correctamente. ID de mensaje en Meta: " & idplantillastr
End If
End If
' ---------------------------------------------------------
' LIMPIEZA
' ---------------------------------------------------------
Set api = Nothing
Debug.Print vbCrLf & "Proceso finalizado."
End Sub
* Visual FoxPro 9 - Late Binding (COM Puro)
* Asegúrese de que el módulo mdpyv009.exe esté instalado y registrado en su sistema.
CLEAR
? "========================================================="
? " INICIO DE EJEMPLO DE CONSUMO DE API (Estructura Plana) "
? "========================================================="
? ""
* 1. Instanciamos la clase
LOCAL api
api = CreateObject("misdatos.mdapi2")
* NOTA IMPORTANTE:
* Las credenciales (usuario y password) representan un token de acceso.
* Deben tramitarse previamente en la plataforma: www.misdatos.com.ar/whatsapp/0
api.usuario = "tu_usuario_token"
api.password = "tu_clave_token"
api.modo = 1 && 1 = Producción, 0 = Test (Localhost)
* ---------------------------------------------------------
* MÉTODO 1: CONECTAR
* ---------------------------------------------------------
? "--- 1. Conectando a la API ---"
LOCAL conectado
conectado = api.conectar()
IF NOT conectado
? "❌ Error de conexión:", api.ultimomensajeerror
ELSE
? "✅ Conectado exitosamente con las credenciales provistas."
ENDIF
* ---------------------------------------------------------
* MÉTODO 2: REGISTRAR / ACTUALIZAR DESTINO
* ---------------------------------------------------------
LOCAL iddestino
iddestino = "0"
IF conectado
? ""
? "--- 2. Ejecutando mdwhatsappdestinov01 ---"
* Variables autodocumentadas para el método
LOCAL cdestino, ccodigo, cemail, cestadoproveedor, cfecha, cnombre, caccionclave
cdestino = "54123412345678" && Teléfono (generalmente con código de país)
ccodigo = "EMP-001" && Identificador interno en tu sistema
cemail = "juanperez@ejemplo.com"
cestadoproveedor = "0" && 0 = Activo
cfecha = "20260626" && Formato AAAAMMDD
cnombre = "Juan Perez"
caccionclave = "porcodigo" && Identifica al registro por el campo código
LOCAL iddestinostr
iddestinostr = api.mdwhatsappdestinov01(;
cdestino,;
ccodigo,;
cemail,;
cestadoproveedor,;
cfecha,;
cnombre,;
caccionclave;
)
IF iddestinostr = "0"
? "❌ Error en mdwhatsappdestinov01:", api.ultimomensajeerror
ELSE
iddestino = iddestinostr
? "✅ Éxito. Destino creado/actualizado con ID:", iddestino
* Ejemplo de uso de leerPropiedad (Apto para clientes COM como VFP o VB6)
LOCAL nombreguardado
nombreguardado = api.leerPropiedad("mdwhatsappdestinov01", "diccionario.registro.diccionario.nombre", 0, 0, 0)
? " Dato recuperado de la respuesta COM-Safe (Nombre):", nombreguardado
ENDIF
ENDIF
* ---------------------------------------------------------
* MÉTODO 3: CREAR REGISTRO DE ENLACE / COMPROBANTE
* ---------------------------------------------------------
LOCAL idenlace
idenlace = "0"
IF conectado
? ""
? "--- 3. Ejecutando mdwhatsappenlacev01 ---"
* Variables autodocumentadas
LOCAL ctipoenlace, cnombrecomp, cenlace, cusuariosql, cdescripcion, ctotal, cprocesado
ctipoenlace = "1" && Ej: 1 = Factura
cnombrecomp = "FC-0001"
cfecha = "20260626" && Formato AAAAMMDD
cenlace = "" && Se deja en blanco intencionalmente
cusuariosql = "" && Opcional
cdescripcion = "Factura de prueba para Juan"
ctotal = "1500.50"
cprocesado = "0"
LOCAL idenlacestr
idenlacestr = api.mdwhatsappenlacev01(;
ctipoenlace,;
ccodigo,;
cnombrecomp,;
cfecha,;
cenlace,;
cusuariosql,;
cdescripcion,;
ctotal,;
cprocesado,;
caccionclave;
)
IF idenlacestr = "0"
? "❌ Error en mdwhatsappenlacev01:", api.ultimomensajeerror
ELSE
idenlace = idenlacestr
? "✅ Éxito. Enlace creado/actualizado con ID:", idenlace
ENDIF
ENDIF
* ---------------------------------------------------------
* MÉTODO 4: SUBIR ARCHIVO PDF AL ENLACE
* ---------------------------------------------------------
IF conectado AND idenlace <> "0"
? ""
? "--- 4. Ejecutando mdwhatsappenlaceurlv01 ---"
* NOTA: En un entorno de producción, asegúrate de que el archivo exista en la ruta indicada.
* Utilizamos el ID devuelto por el método anterior (mdwhatsappenlacev01).
LOCAL rutapdf
rutapdf = "C:\temp\factura_juan.pdf"
LOCAL resultadourl
resultadourl = api.mdwhatsappenlaceurlv01(;
VAL(idenlace),;
rutapdf;
)
IF resultadourl = "0"
? "❌ Error en mdwhatsappenlaceurlv01:", api.ultimomensajeerror
? " (Verifique que el archivo exista y que el plan permita la subida)"
ELSE
? "✅ Éxito. Archivo PDF subido y asociado. URL pública:", resultadourl
ENDIF
ENDIF
* ---------------------------------------------------------
* MÉTODO 5: ENVIAR PLANTILLA DE WHATSAPP
* ---------------------------------------------------------
IF conectado
? ""
? "--- 5. Ejecutando mdwhatssappenviarplantilla01v01 ---"
* REGLAS IMPORTANTES:
* 1. 'cdestino' y 'ccodigo' son EXCLUYENTES. Si se envían ambos, el código tiene prioridad.
* Se recomienda enviar el destino en blanco si se utiliza el código.
* 2. Solo se enviará el mensaje si el destino interactuó previamente con el chatbot
* al menos una vez a través de www.misdatos.com.ar/bot (opt-in de Meta).
LOCAL caccionplantilla
caccionplantilla = "consultarnovedades;" && Opcional. Define la acción que gatillará el botón en el bot.
LOCAL idplantillastr
idplantillastr = api.mdwhatssappenviarplantilla01v01(;
"",;
ccodigo,;
caccionplantilla;
)
IF idplantillastr = "0"
? "❌ Error en mdwhatssappenviarplantilla01v01:", api.ultimomensajeerror
ELSE
? "✅ Éxito. Plantilla de aviso enviada correctamente. ID de mensaje en Meta:", idplantillastr
ENDIF
ENDIF
* ---------------------------------------------------------
* LIMPIEZA
* ---------------------------------------------------------
? "Proceso finalizado."
! Clarion - Control ActiveX / OCX (misdatos.misdatosx)
! Asegúrese de tener insertado el control OCX en su ventana OLE con el nombre '?Ole'
! ---------------------------------------------------------
! IMPORTANTE: REGLAS PARA EL CONTROL OCX
! 1. Inicialización obligatoria: Se debe invocar primero el método booleano 'mdapi2Iniciar()'
! para levantar los hilos del wrapper local de 32 bits (mdpyv009.exe).
! 2. Prefijo obligatorio 'mdapi2': Todas las propiedades y métodos deben llevar este prefijo.
! Ejemplos: 'usuario' pasa a ser 'mdapi2usuario', 'conectar()' pasa a ser 'mdapi2conectar()', etc.
! ---------------------------------------------------------
MESSAGE('=========================================================')
MESSAGE(' INICIO DE EJEMPLO DE CONSUMO DE API (Estructura Plana) ')
MESSAGE('=========================================================')
! 1. Inicializamos el control ActiveX
IF NOT ?Ole{'mdapi2Iniciar()'}
MESSAGE('❌ Error: El control OCX mdapi2 no pudo iniciarse. Verifique mdpyv009.exe')
RETURN
END
! 2. Asignamos las credenciales (nótese el prefijo 'mdapi2' obligatorio para el OCX)
! Las credenciales (usuario y password) representan un token de acceso.
! Deben tramitarse previamente en la plataforma: www.misdatos.com.ar/whatsapp/0
?Ole{'mdapi2usuario'} = 'tu_usuario_token'
?Ole{'mdapi2password'} = 'tu_clave_token'
?Ole{'mdapi2modo'} = 1 ! 1 = Producción, 0 = Test (Localhost)
! ---------------------------------------------------------
! MÉTODO 1: CONECTAR
! ---------------------------------------------------------
MESSAGE('--- 1. Conectando a la API ---')
LOCAL_conectado LONG
LOCAL_conectado = ?Ole{'mdapi2conectar()'}
IF NOT LOCAL_conectado
MESSAGE('❌ Error de conexión: ' & ?Ole{'mdapi2ultimomensajeerror'})
ELSE
MESSAGE('✅ Conectado exitosamente con las credenciales provistas.')
END
! ---------------------------------------------------------
! MÉTODO 2: REGISTRAR / ACTUALIZAR DESTINO
! ---------------------------------------------------------
LOCAL_iddestino STRING(50)
LOCAL_iddestino = '0'
IF LOCAL_conectado
MESSAGE('--- 2. Ejecutando mdapi2mdwhatsappdestinov01 ---')
! Variables autodocumentadas para el método
LOCAL_cdestino STRING(20)
LOCAL_ccodigo STRING(20)
LOCAL_cemail STRING(100)
LOCAL_cestadoproveedor STRING(2)
LOCAL_cfecha STRING(8)
LOCAL_cnombre STRING(100)
LOCAL_caccionclave STRING(20)
LOCAL_cdestino = '54123412345678' ! Teléfono (generalmente con código de país)
LOCAL_ccodigo = 'EMP-001' ! Identificador interno en tu sistema
LOCAL_cemail = 'juanperez@ejemplo.com'
LOCAL_cestadoproveedor = '0' ! 0 = Activo
LOCAL_cfecha = '20260626' ! Formato AAAAMMDD
LOCAL_cnombre = 'Juan Perez'
LOCAL_caccionclave = 'porcodigo' ! Identifica al registro por el campo código
LOCAL_iddestinostr STRING(50)
LOCAL_iddestinostr = ?Ole{'mdapi2mdwhatsappdestinov01(' & |
'cdestino="' & CLIP(LOCAL_cdestino) & '", ' & |
'ccodigo="' & CLIP(LOCAL_ccodigo) & '", ' & |
'cemail="' & CLIP(LOCAL_cemail) & '", ' & |
'nestadoproveedor="' & CLIP(LOCAL_cestadoproveedor) & '", ' & |
'cfecha="' & CLIP(LOCAL_cfecha) & '", ' & |
'cnombre="' & CLIP(LOCAL_cnombre) & '", ' & |
'caccionclave="' & CLIP(LOCAL_caccionclave) & '")'}
IF LOCAL_iddestinostr = '0'
MESSAGE('❌ Error en mdapi2mdwhatsappdestinov01: ' & ?Ole{'mdapi2ultimomensajeerror'})
ELSE
LOCAL_iddestino = LOCAL_iddestinostr
MESSAGE('✅ Éxito. Destino creado/actualizado con ID: ' & CLIP(LOCAL_iddestino))
! Ejemplo de uso de mdapi2leerPropiedad (Apto para clientes COM como VFP, VB6 o Clarion)
LOCAL_nombreguardado STRING(100)
LOCAL_nombreguardado = ?Ole{'mdapi2leerPropiedad("mdwhatsappdestinov01", "diccionario.registro.diccionario.nombre", 0, 0, 0)'}
MESSAGE(' Dato recuperado de la respuesta COM-Safe (Nombre): ' & CLIP(LOCAL_nombreguardado))
END
END
! ---------------------------------------------------------
! MÉTODO 3: CREAR REGISTRO DE ENLACE / COMPROBANTE
! ---------------------------------------------------------
LOCAL_idenlace STRING(50)
LOCAL_idenlace = '0'
IF LOCAL_conectado
MESSAGE('--- 3. Ejecutando mdapi2mdwhatsappenlacev01 ---')
! Variables autodocumentadas
LOCAL_ctipoenlace STRING(2)
LOCAL_cnombrecomp STRING(50)
LOCAL_cenlace STRING(255)
LOCAL_cusuariosql STRING(50)
LOCAL_cdescripcion STRING(255)
LOCAL_ctotal STRING(20)
LOCAL_cprocesado STRING(2)
LOCAL_ctipoenlace = '1' ! Ej: 1 = Factura
LOCAL_cnombrecomp = 'FC-0001'
LOCAL_cfecha = '20260626' ! Formato AAAAMMDD
LOCAL_cenlace = '' ! Se deja en blanco intencionalmente
LOCAL_cusuariosql = '' ! Opcional
LOCAL_cdescripcion = 'Factura de prueba para Juan'
LOCAL_ctotal = '1500.50'
LOCAL_cprocesado = '0'
LOCAL_idenlacestr STRING(50)
LOCAL_idenlacestr = ?Ole{'mdapi2mdwhatsappenlacev01(' & |
'ctipo="' & CLIP(LOCAL_ctipoenlace) & '", ' & |
'ccodigo="' & CLIP(LOCAL_ccodigo) & '", ' & |
'cnombre="' & CLIP(LOCAL_cnombrecomp) & '", ' & |
'cfecha="' & CLIP(LOCAL_cfecha) & '", ' & |
'cenlace="' & CLIP(LOCAL_cenlace) & '", ' & |
'cusuariosql="' & CLIP(LOCAL_cusuariosql) & '", ' & |
'cdescripcion="' & CLIP(LOCAL_cdescripcion) & '", ' & |
'ntotal="' & CLIP(LOCAL_ctotal) & '", ' & |
'nprocesado="' & CLIP(LOCAL_cprocesado) & '", ' & |
'caccionclave="' & CLIP(LOCAL_caccionclave) & '")'}
IF LOCAL_idenlacestr = '0'
MESSAGE('❌ Error en mdapi2mdwhatsappenlacev01: ' & ?Ole{'mdapi2ultimomensajeerror'})
ELSE
LOCAL_idenlace = LOCAL_idenlacestr
MESSAGE('✅ Éxito. Enlace creado/actualizado con ID: ' & CLIP(LOCAL_idenlace))
END
END
! ---------------------------------------------------------
! MÉTODO 4: SUBIR ARCHIVO PDF AL ENLACE
! ---------------------------------------------------------
IF LOCAL_conectado AND LOCAL_idenlace <> '0'
MESSAGE('--- 4. Ejecutando mdapi2mdwhatsappenlaceurlv01 ---')
! NOTA: En un entorno de producción, asegúrate de que el archivo exista en la ruta indicada.
! Utilizamos el ID devuelto por el método anterior (mdwhatsappenlacev01).
LOCAL_rutapdf STRING(255)
LOCAL_rutapdf = 'C:\temp\factura_juan.pdf'
LOCAL_resultadourl STRING(255)
LOCAL_resultadourl = ?Ole{'mdapi2mdwhatsappenlaceurlv01(' & |
'nid_enlace=' & DECLIP(LOCAL_idenlace) & ', ' & |
'cruta_archivo="' & CLIP(LOCAL_rutapdf) & '")'}
IF LOCAL_resultadourl = '0'
MESSAGE('❌ Error en mdapi2mdwhatsappenlaceurlv01: ' & ?Ole{'mdapi2ultimomensajeerror'})
MESSAGE(' (Verifique que el archivo exista y que el plan permita la subida)')
ELSE
MESSAGE('✅ Éxito. Archivo PDF subido y asociado. URL pública: ' & CLIP(LOCAL_resultadourl))
END
END
! ---------------------------------------------------------
! MÉTODO 5: ENVIAR PLANTILLA DE WHATSAPP
! ---------------------------------------------------------
IF LOCAL_conectado
MESSAGE('--- 5. Ejecutando mdapi2mdwhatssappenviarplantilla01v01 ---')
! REGLAS IMPORTANTES:
! 1. 'cdestino' y 'ccodigo' son EXCLUYENTES. Si se envían ambos, el código tiene prioridad.
! Se recomienda enviar el destino en blanco si se utiliza el código.
! 2. Solo se enviará el mensaje si el destino interactuó previamente con el chatbot
! al menos una vez a través de www.misdatos.com.ar/bot (opt-in de Meta).
LOCAL_caccionplantilla STRING(100)
LOCAL_caccionplantilla = 'consultarnovedades;' ! Opcional. Define la acción que gatillará el botón en el bot.
LOCAL_idplantillastr STRING(50)
LOCAL_idplantillastr = ?Ole{'mdapi2mdwhatssappenviarplantilla01v01(' & |
'cdestino="", ' & |
'ccodigo="' & CLIP(LOCAL_ccodigo) & '", ' & |
'caccion="' & CLIP(LOCAL_caccionplantilla) & '")'}
IF LOCAL_idplantillastr = '0'
MESSAGE('❌ Error en mdapi2mdwhatssappenviarplantilla01v01: ' & ?Ole{'mdapi2ultimomensajeerror'})
ELSE
MESSAGE('✅ Éxito. Plantilla de aviso enviada correctamente. ID de mensaje en Meta: ' & CLIP(LOCAL_idplantillastr))
END
END
MESSAGE('Proceso finalizado.')
Para cualquier lenguaje puede seguir estos 4 pasos:
1) Tomar el ejemplo de Python, tomar el archivo PromptEquivalencias.md (que figura más abajo) y pegarlos en un motor de IA.
2) Indicar a la IA a qué lenguaje quiere traducirlo (COBOL, Delphi o cualquier otro).
3) La IA generará el código en su lenguaje de preferencia.
4) Podrá además interactuar con ella para pedir mejoras o detalles del código generado.
Hoja de Cálculo con Macros (Excel)
Para realizar validaciones de red, pruebas de mensajería y entrenamiento inicial en vivo, MisDatos pone a su disposición un libro de cálculo con macros habilitadas en 32 y 64 bits llamado mdwhatsapp.xlsm (disponible para su descarga en la sección Descargas al final de este manual).
- Pruebas en un clic: Contiene botones programáticos vinculados con la SDK COM para agregar números/identificadores, publicar registros de prueba y gatillar plantillas de alerta Meta de forma visual.
- Consola de Log integrada: Permite visualizar los payloads JSON de respuesta crudos en tiempo real para entender la estructura de la respuesta.
- Código abierto VBA: El módulo VBA se encuentra abierto para que pueda copiar, modificar o portar directamente las macros de envío a sus propios sistemas basados en Microsoft Office.
Guía Paso a Paso: De Cero a tu Primer Mensaje Oficial
Para garantizar que su integración sea exitosa y comprenda a la perfección la arquitectura de publicación previa de MisDatos y las políticas de opt-in de Meta, hemos diseñado esta guía secuencial. Sígala paso a paso para realizar su Prueba de Concepto (PoC).
Alta y Suscripción al Servicio Base
Ingrese a la plataforma corporativa en www.misdatos.com.ar e inicie sesión con su cuenta de Google/Gmail. En el menú lateral izquierdo, diríjase a Usar mis servicios, busque el servicio WhatsApp y suscríbase seleccionando el plan base (Gratuito).
Generación del Token de Acceso
Dentro del panel de su servicio WhatsApp, haga clic en la opción Token de acceso. Cree un nuevo token asegurándose de cumplir dos reglas:
- El campo usuario debe comenzar obligatoriamente con el prefijo
md_(ejemplo:md_miempresa). - La contraseña debe tener un mínimo de 8 caracteres.
Vinculación del Token a WhatsApp
El token creado es genérico. Para darle permisos sobre la mensajería, ubique su nuevo token en la lista, despliegue el menú de opciones (⋮) a su derecha y seleccione Suscribir servicio. Vincúlelo al servicio WhatsApp adquirido en el Paso 1.
Suscripción a Almacenamiento (Opcional pero recomendado)
Si su sistema local (ej. Visual Basic 6 o FoxPro) no expone sus PDFs en una URL pública (HTTPS), necesitará que MisDatos aloje el archivo. Vuelva a Usar mis servicios, suscríbase al servicio mdurl, y repita el Paso 3 para vincular su token md_ a este servicio de almacenamiento.
Configuración de la IA y el Chatbot
Regrese al panel de WhatsApp y haga clic en Configuración de la IA. Complete los datos prestando atención a dos campos críticos:
- Saludo: Defina una frase de 2 a 3 palabras exactas (ej:
hola miempresa). La IA la usará como disparador exacto. - Código URL (Slug): Defina una palabra corta y sin espacios (ej:
miempresa). Esto generará su enlace de invitación rápida.
Descarga e Instalación del Middleware Local
Vaya a la sección Descargas al final de este manual. Descargue el módulo mdpyv009.exe (y el instalador de WSAFIPFE si utiliza controles OCX visuales) y regístrelo en su entorno Windows. Este componente actúa como puente seguro entre su código clásico local y la API en la nube.
Preparación del Código de Prueba (Ej. Visual Basic 6)
Copie el código de ejemplo provisto en este manual. Antes de ejecutarlo, revise este checklist:
- Credenciales: Asigne su usuario
md_y clave (Paso 2). - Parámetro de Búsqueda Seguro: En la llamada a
mdwhatsappdestinov01, deje el parámetrocaccionclave=""(en blanco). Esto fuerza al método a buscar y actualizar el contacto basándose estrictamente en su número/identificador de teléfono. Si el usuario ha decidido activar las nuevas características de privacidad de Meta para ocultar su número de teléfono real, es de suma importancia respetar su privacidad y utilizar el campocodigocomo clave de enlace, que sí es de dominio y control del desarrollador. - Identificadores: Defina un
ccodigointerno (ej:"CLI-999") y el número/identificador de destino (su propio celular real con código de país). - Documento: Especifique una ruta local válida para subir un PDF de prueba.
Primera Ejecución (Publicación de Datos sin Opt-in)
Ejecute su código. En esta etapa, el sistema registrará/actualizará al contacto asociándole su código interno (ccodigo), creará el registro del comprobante y subirá el PDF al servidor.
Nota esperada: El último método (mdwhatssappenviarplantilla01v01) devolverá un error o "0". Esto es absolutamente normal y correcto: los datos ya están subidos y listos en la nube, pero Meta bloquea el envío de la plantilla porque el usuario (usted) aún no ha iniciado una conversación con el chatbot.
Regla del Primer Contacto y Verificación de Métricas
Ahora, simule ser el cliente final. Comparta el enlace autogenerado en el Paso 5 (https://misdatos.com.ar/bot/su-slug) con su número/identificador de prueba o escanee el código QR del portal y envíe el saludo predeterminado.
- Ingrese a Métricas en el portal web de MisDatos.
- En la métrica de Contactos, notará que su teléfono figura como "Activo". (Nota: Si un usuario ingresa al bot por su cuenta antes de que usted ejecute el código, aparecerá aquí como activo pero "sin código" asociado. El código interno se inyecta o actualiza cuando usted corre su sistema, gracias a la sincronización por el número/identificador de teléfono, de modo que se respete la privacidad del usuario si este optó por la nueva característica de Meta, orientándose la API al uso del campo "código" propio del desarrollador).
Segunda Ejecución (El Envío Exitoso)
Vuelva a ejecutar exactamente el mismo código del Paso 8. Los métodos de MisDatos son idempotentes: no duplicarán contactos ni generarán errores por datos preexistentes; simplemente actualizarán lo necesario. Esta vez, como el usuario ya realizó el opt-in en el Paso 9, el método final de envío de plantilla devolverá un ID de mensaje exitoso. Al abrir su WhatsApp, verá la alerta homologada, y al interactuar con el botón, el bot le entregará el PDF publicado.
Especificación de Métodos de la SDK (mdapi2)
A continuación se detallan los 4 métodos esenciales del motor de WhatsApp de MisDatos para la interacción de datos, validación cruzada y envío programático. Todos los métodos reportan fallos persistentes asignando el texto descriptivo del error a la propiedad pública ultimomensajeerror.
codigo interno del sistema del desarrollador. Soporta actualizaciones e inserciones automatizadas.
Parámetros de Entrada
| Parámetro | Tipo | Descripción |
|---|---|---|
destino |
string | Número/identificador de teléfono internacional formateado (ej. "54123412345678"). Tratarlo siempre como string. |
codigo |
string | Código de identificación unívoca interna (DNI, legajo, o número de cliente). |
email |
string | Email de contacto del usuario final (opcional). |
estadoproveedor |
string / int | Estado actual del contacto ("0" para habilitar/activo). |
fecha |
string | Fecha de registro en formato plano "AAAAMMDD" (ej. "20260629"). |
nombre |
string | Nombre completo o comercial del contacto a visualizar en el bot. |
accionclave |
string | Método de indexación de coincidencia. Se recomienda "porcodigo" para mapeos basados en su ID interno. |
Estructura de Retorno (JSON Respuesta)
{
"status": "ok",
"resultado": "1287" // ID numérico de fila del destino insertado o actualizado, devuelto como string. "0" en caso de error.
}
Parámetros de Entrada
| Parámetro | Tipo | Descripción |
|---|---|---|
tipo |
string / int | Tipo de documento: "1" (Factura), "2" (Recibo), "5" (Descuento de Haberes). |
codigo |
string | Código identificador del cliente/destino al que pertenece el enlace. |
nombre |
string | Identificador visible del comprobante (ej. "FC-0002871"). |
fecha |
string | Fecha del comprobante en formato plano "AAAAMMDD". |
enlace |
string | URL pública HTTPS donde reside el PDF. Si desea subirlo con mdurl, deje este parámetro vacío. |
usuariosql |
string | Usuario ejecutor de SQL. Generalmente vacío para automatizaciones genéricas. |
descripcion |
string | Breve detalle o leyenda descriptiva que visualizará el usuario en su chat. |
total |
string / decimal | Importe total expresado en string plano (ej. "1500.50"). |
procesado |
string / int | Estado interno. Por defecto "0" (sin procesar). |
accionclave |
string | Utilice "porcodigo" para mapear relacionalmente la subida del registro. |
Estructura de Retorno (JSON Respuesta)
{
"status": "ok",
"resultado": "45612" // ID único numérico generado para el enlace registrado.
}
mdurl, lo aloja en el bucket público de Cloud Storage de MisDatos y asocia la URL resultante con el enlace previamente creado de forma transparente.
Parámetros de Entrada
| Parámetro | Tipo | Descripción |
|---|---|---|
id_enlace |
int | El identificador numérico de enlace devuelto previamente por mdwhatsappenlacev01. |
archivo_b64 |
string | Codificación del archivo en formato texto Base64 plano de gran tamaño (gestionado automáticamente por la SDK). |
nombre_archivo |
string | Nombre de archivo final con extensión (ej. "comprobante.pdf"). |
Estructura de Retorno (JSON Respuesta)
{
"status": "ok",
"resultado": "https://storage.googleapis.com/misdatos-bucket/whatsapp/comprobante_45612.pdf" // URL pública generada de descarga.
}
avisodatos al contacto. Realiza validaciones dinámicas de control diario contra el plan del token, consultando el historial de envíos de las últimas 24 horas.
Parámetros de Entrada
| Parámetro | Tipo | Descripción |
|---|---|---|
destino |
string | Número/identificador de WhatsApp destino. Si se envía el código interno, es preferible dejar este campo en blanco para cumplir plenamente con la privacidad del usuario si optó por la nueva característica de Meta, ya que la API está orientada a operar mediante el campo de código interno propio de su organización. |
codigo |
string | Código de cliente/usuario interno de su organización. Tiene prioridad sobre el destino. |
accion |
string | Acción de gatillo que desencadenará el botón del mensaje (ej: "consultar;", "consultardescuento;", "consultarnovedades;"). |
Estructura de Retorno (JSON Respuesta)
{
"status": "ok",
"resultado": "wamid.HBgMNTQxMjM0MTIzNDU2NzgVAgIDHQIkNTA5NDM2RUQ4N0M3MzFB" // ID de mensaje único de Meta (WA_ID) como string. "0" en caso de error.
}
Traductor IA - Equivalencias Legacy
MisDatos provee un prompt inteligente pre-diseñado para que pueda copiar cualquier lógica escrita en Python o C# de esta documentación y traducirla con precisión matemática a sintaxis de Visual FoxPro, VB6, Clarion, Delphi o COBOL. Simplemente copie el bloque inferior y péguelo en su motor de Inteligencia Artificial preferido (ej: Gemini, ChatGPT, Claude):
Copia de Manual para su Contexto de IA
¿Desea que su asistente de IA de desarrollo (como Gemini o Copilot) conozca de memoria la API de WhatsApp de MisDatos para que le escriba el software a medida? Copie este manual en formato Markdown estructurado y péguelo directamente en el contexto o prompt del chat.
Descargas y Enlaces Útiles
Acceda de forma directa a los repositorios oficiales, instaladores de middleware legacy, planillas de prueba y canales de soporte de la comunidad de MisDatos:
SDKs Nativas
Clases de integración moderna para lenguajes actuales. Código fuente libre de dependencias complejas:
- SDK Python en GitHub (incluye un ejemplo funcional)
- SDK .NET (C#) en GitHub
- SDK VB.NET en GitHub
Interfaz legacy
Instaladores obligatorios para la interconectividad COM / ActiveX en entornos clásicos de 32 y 64 bits:
- Módulo mdpyv009.exe (32 y 64 bits)
- Control OCX WSAFIPFE (Requiere mdpyv009.exe de 32 bits, incluso en Windows de 64 bits)
Libro Excel
Libro de Excel con macros para testeo rápido y ejemplos en VBA directamente portables a su ERP local:
- Repositorio Excel con Macros (Requiere módulo mdpyv009.exe de 32 o 64 bits según versión de Excel)
Comunidad
Foro de discusión activo para desarrolladores y administradores de sistemas de habla hispana:
Soporte
Atención directa, contratación de horas de soporte personalizado y consultas administrativas: