Resumen & Estado General

Microservicio central para integración de WhatsApp con tus plataformas

API Base: https://wa.startfact.com.pe
Panel Meta
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...

Historial de Mensajes (Entrantes y Salientes)

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:

⚠️ Importante: Meta requiere HTTPS público. En local usa 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

Copia este ID desde la sección WhatsApp > Primeros pasos en tu panel de Meta.
Para pruebas puedes usar el token temporal del panel. Para producción en tu VPS, genera un token permanente en Configuración del negocio > Usuarios del sistema.

Guía de Despliegue en VPS Ubuntu

Linux / Nginx / Apache

Este 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.