Webhooks
Zenovay utilise les webhooks en interne pour le traitement des paiements et la gestion des abonnements. Cette page explique comment fonctionnent les webhooks dans Zenovay et comment créer des intégrations en utilisant l'API externe.
Comment Zenovay utilise les webhooks
Zenovay traite les webhooks entrants provenant des fournisseurs de paiement et des services de surveillance. Ce sont des webhooks système internes qui gèrent la facturation des abonnements et les contrôles de santé.
Sources de webhooks entrants
| Source | Objectif |
|---|---|
| Stripe | Gestion des abonnements, traitement des paiements, finalisation des paiements |
| Surveillance de la disponibilité | Déclencheurs de contrôle de santé provenant des services de surveillance externes |
Ces webhooks sont traités en interne par l'API Zenovay. Pour les webhooks sortants et les clés d'API d'équipe, allez à Settings → Security → API keys.

Création d'intégrations
Vous pouvez créer des intégrations en utilisant l'API externe pour extraire les données d'analyse dans vos propres systèmes.
Interrogation avec l'API externe
Utilisez l'API externe pour récupérer périodiquement les données d'analyse :
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();
// Process the data
if (data.totalVisitors > threshold) {
await sendNotification(data);
}
}
// Poll every 5 minutes
setInterval(checkAnalytics, 5 * 60 * 1000);Nombre de visiteurs en direct
Le point de terminaison en direct public ne nécessite pas de clé API et peut être interrogé plus fréquemment :
async function getLiveVisitors(trackingCode) {
const response = await fetch(
`https://api.zenovay.com/live/${trackingCode}`
);
return await response.json();
}Exemple de notification Slack
Créez un rapport d'analyse programmé qui publie sur 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: `Daily Report: ${data.totalVisitors} visitors, ${data.totalPageViews} page views`
})
});
}Limites de débit pour les intégrations
Lors de la création d'intégrations d'interrogation, respectez les limites de débit de l'API externe :
| Plan | Requêtes/Minute | Limite mensuelle |
|---|---|---|
| Pro | 30 | 10 000 |
| Scale | 60 | 100 000 |
| Enterprise | 120 | 1 000 000 |
L'accès à l'API externe nécessite un plan payant. Les comptes gratuits ne peuvent pas générer de clés API ni utiliser l'API externe.
Bonnes pratiques
- Mettez en cache les réponses de l'API localement pour réduire la fréquence des requêtes
- Utilisez des intervalles d'interrogation appropriés (5 minutes minimum recommandé)
- Surveillez l'en-tête
X-RateLimit-Remainingpour éviter de dépasser les limites - Implémentez un backoff exponentiel si vous recevez des réponses 429