Total Mensajes
Histórico
1
Mensajes registrados en SQLite
Enviados (Outbound)
Salientes
0
Entregados: 1 | Leídos: 0
Recibidos (Inbound)
Clientes
1
Respuestas y mensajes vía Webhook
Fallidos
Errores
0
Rechazados por Meta o número inválido
Estado de Conexión con Meta Cloud API
-
Meta App ID:
3118937301628788 -
WABA ID (Business Account):
435476511275629 - Phone Number ID: No configurado
- Token de Acceso: Falta configurar
-
Webhook Verificado:
https://wa.startfact.com.pe/webhook
Seguridad y Autenticación Interna
Cualquiera de tus plataformas (StartFact, ERP, etc.) debe enviar esta clave en la cabecera HTTP para autorizar los envíos.
Probador en Vivo (API Playground)
Para Perú: 51 seguido de los 9 dígitos del celular.
'en_US' para hello_world, 'es' o 'es_PE' para personalizadas
💡 Nota: Meta provee la plantilla oficial
hello_world (en idioma en_US) activa de fábrica para probar envíos sin necesidad de crear plantillas previas.
Resultado de la Petición
Esperando prueba...// Aquí se mostrará la respuesta de la API de WhatsApp en tiempo real...
| ID | Dirección | Destino / Origen | Tipo | Contenido / Resumen | Estado | Fecha | Acción |
|---|---|---|---|---|---|---|---|
| #1 | ⬇️ Entrante | 51987654321 | text | Hola, confirmo mi pedido #1042 | delivered | 09-13 17:54 |
1. Configuración de Webhook en Meta Developers
Para recibir mensajes de clientes y confirmaciones de entrega (doble check azul), debes configurar este Webhook en tu aplicación de Meta:
ngrok http 80. Al subir a tu VPS Ubuntu con SSL (Let's Encrypt), será https://tu-dominio.com/waapi/webhook.
Campos que debes suscribir en Meta:
messages
message_deliveries
message_reads
2. Reenvío a tus Plataformas (StartFact, CRM)
Cuando un cliente responda a WhatsApp o se confirme una entrega, este microservicio reenviará el evento por HTTP POST a las URLs que agregues aquí.
Suscripciones Activas:
No hay plataformas registradas aún. Agrega una arriba.
Cómo consumir este Microservicio desde tus Plataformas
Ejemplo para enviar factura PDF o mensaje de texto desde StartFact o PHP
<?php
// Función reutilizable para enviar comprobantes o mensajes de WhatsApp
function sendWhatsAppInvoice($phone, $customerName, $invoiceNumber, $pdfUrl) {
$apiUrl = 'https://wa.startfact.com.pe/api/send/media';
$apiKey = 'wa_secret_key_change_me_12345';
$payload = [
'to' => $phone, // Ej: "51987654321"
'type' => 'document',
'url' => $pdfUrl, // URL pública del PDF generado en StartFact
'filename' => "Factura_{$invoiceNumber}.pdf",
'caption' => "Estimado(a) {$customerName}, adjuntamos su comprobante de pago electrónico {$invoiceNumber}.",
'platform' => 'startfact'
];
$ch = curl_init($apiUrl);
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode($payload),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'X-API-KEY: ' . $apiKey
],
CURLOPT_TIMEOUT => 15
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return json_decode($response, true);
}
// Ejemplo de uso:
// $res = sendWhatsAppInvoice('51987654321', 'Juan Perez', 'F001-000456', 'https://mi-erp.com/pdf/F001-456.pdf');
// if ($res['success']) { echo "Enviado con WAMID: " . $res['data']['message_id']; }
Ejemplo en JavaScript (Frontend Fetch o Node.js)
async function sendWhatsAppMessage(phone, message) {
const response = await fetch('https://wa.startfact.com.pe/api/send/text', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-KEY': 'wa_secret_key_change_me_12345'
},
body: JSON.stringify({
to: phone,
message: message,
platform: 'frontend_crm'
})
});
const result = await response.json();
console.log('Resultado envío:', result);
return result;
}
// sendWhatsAppMessage('51987654321', 'Hola desde JavaScript');
Ejemplo en Python (requests)
import requests
def send_whatsapp(to_phone, message):
url = "https://wa.startfact.com.pe/api/send/text"
headers = {
"Content-Type": "application/json",
"X-API-KEY": "wa_secret_key_change_me_12345"
}
payload = {
"to": to_phone,
"message": message,
"platform": "python_service"
}
res = requests.post(url, json=payload, headers=headers)
return res.json()
# print(send_whatsapp("51987654321", "Hola desde Python"))
Petición cURL desde la consola de comandos
curl -X POST "https://wa.startfact.com.pe/api/send/text" \
-H "Content-Type: application/json" \
-H "X-API-KEY: wa_secret_key_change_me_12345" \
-d '{"to": "51987654321", "message": "Hola mundo desde cURL"}'
Configuración de Credenciales de Meta WhatsApp
Guía de Despliegue en VPS Ubuntu
Linux / Nginx / ApacheEste microservicio está desarrollado de forma agnóstica para funcionar tanto en Windows (WAMP) como en tu VPS Ubuntu.
Paso 1: Clonar o subir los archivos a tu VPS
# Ubicación sugerida en tu VPS Ubuntu:
sudo mkdir -p /var/www/waapi
# Copiar los archivos hacia /var/www/waapi
Paso 2: Permisos de la carpeta de datos y base de datos SQLite
# Asignar permisos al usuario de servidor web (www-data):
sudo chown -R www-data:www-data /var/www/waapi
sudo chmod -R 775 /var/www/waapi/data
Paso 3: Asegurar extensiones de PHP en Ubuntu
# Instalar extensiones necesarias en Ubuntu (PHP 8.2 / 8.3):
sudo apt update
sudo apt install -y php-curl php-sqlite3 php-mbstring
sudo systemctl restart php8.3-fpm # o php8.2-fpm según corresponda
Paso 4: Configuración del Virtual Host (Nginx o Apache)
En la raíz del proyecto se incluye el archivo de configuración waapi.nginx.conf listo para usar si utilizas Nginx con PHP-FPM, o .htaccess si utilizas Apache.