Webhooks
Zenovay utiliza webhooks internamente para el procesamiento de pagos y la gestión de suscripciones. Esta página explica cómo funcionan los webhooks en Zenovay y cómo crear integraciones usando la API externa.
Cómo Zenovay utiliza webhooks
Zenovay procesa webhooks entrantes desde proveedores de pagos y servicios de monitoreo. Estos son webhooks del sistema interno que manejan la facturación de suscripciones y comprobaciones de salud.
Fuentes de webhooks entrantes
| Origen | Propósito |
|---|---|
| Stripe | Gestión de suscripciones, procesamiento de pagos, finalización de compra |
| Monitoreo de disponibilidad | Desencadenadores de comprobación de salud desde servicios de monitoreo externos |
Estos webhooks son manejados internamente por la API de Zenovay. Para webhooks salientes y claves API de equipo, ve a Settings → Security → API keys.

Crear integraciones
Puedes crear integraciones usando la API externa para extraer datos de análisis en tus propios sistemas.
Sondeo con la API externa
Utiliza la API externa para obtener periódicamente datos de análisis:
const API_KEY = process.env.ZENOVAY_API_KEY;
const WEBSITE_ID = process.env.ZENOVAY_WEBSITE_ID;
async function checkAnalytics() {
const response = await fetch(
`https://api.zenovay.com/api/external/v1/analytics/${WEBSITE_ID}?timeRange=24h`,
{
headers: { 'X-API-Key': API_KEY }
}
);
const data = await response.json();
// Procesar los datos
if (data.totalVisitors > threshold) {
await sendNotification(data);
}
}
// Sondear cada 5 minutos
setInterval(checkAnalytics, 5 * 60 * 1000);Conteo de visitantes en vivo
El punto de conexión público en vivo no requiere una clave API y se puede sondear con mayor frecuencia:
async function getLiveVisitors(trackingCode) {
const response = await fetch(
`https://api.zenovay.com/live/${trackingCode}`
);
return await response.json();
}Ejemplo de notificación en Slack
Crea un informe de análisis programado que se publica en Slack:
async function sendDailyReport() {
const response = await fetch(
`https://api.zenovay.com/api/external/v1/analytics/${WEBSITE_ID}?timeRange=24h`,
{
headers: { 'X-API-Key': API_KEY }
}
);
const data = await response.json();
await fetch(SLACK_WEBHOOK_URL, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
text: `Informe diario: ${data.totalVisitors} visitantes, ${data.totalPageViews} vistas de página`
})
});
}Límites de velocidad para integraciones
Al crear integraciones de sondeo, respeta los límites de velocidad de la API externa:
| Plan | Solicitudes/minuto | Límite mensual |
|---|---|---|
| Pro | 30 | 10,000 |
| Scale | 60 | 100,000 |
| Enterprise | 120 | 1,000,000 |
El acceso a la API externa requiere un plan de pago. Las cuentas gratuitas no pueden generar claves API ni usar la API externa.
Mejores prácticas
- Almacena en caché las respuestas de la API localmente para reducir la frecuencia de solicitudes
- Utiliza intervalos de sondeo apropiados (se recomienda un mínimo de 5 minutos)
- Monitorea el encabezado
X-RateLimit-Remainingpara evitar alcanzar los límites - Implementa retroceso exponencial si recibes respuestas 429