Webhooks
Recevez les événements d'activation, location et portefeuille en callbacks HTTPS signés HMAC.
Pourquoi les webhooks
Le polling est gaspilleur : le polling sub-seconde est limité, le polling pluri-secondes ajoute de la latence. Les webhooks vous poussent les événements à l'instant.
Enregistrer
Account → Webhooks → New endpoint : URL HTTPS, types d'événement, stratégie de réessai (exponential / linear / none). Le secret de signature est affiché une fois.
Événements
activation.sms_received— SMS entrant apparié à une activationactivation.expired— fenêtre fermée sans codeactivation.finished— activation confirméerent.sms_received— SMS entrant sur une locationwallet.credited/wallet.debited— mouvement d'argentsupport.message.received— réponse d'agent dans un fil de support
Payload
{
"event": "activation.sms_received",
"delivery_id": "b7e2c1a0-9f3d-4c5e-8a1b-2d3e4f5a6b7c",
"created_at": "2026-05-26T14:30:14Z",
"data": { "order_id": "9a1f2c3d-4e5b-6a7c-8d9e-0f1a2b3c4d5e", "phone": "+380635551822", "code": "123456", "service": "telegram" }
}
Vérifier la signature
En-tête : X-Eveses-Signature: sha256=<hmac> (timestamp in X-Eveses-Timestamp). HMAC-SHA256 sur <ts>.<raw-body> avec votre secret.
$ts = $_SERVER['HTTP_X_EVESES_TIMESTAMP'] ?? '';
$sig = $_SERVER['HTTP_X_EVESES_SIGNATURE'] ?? '';
$expected = 'sha256=' . hash_hmac('sha256', $ts . '.' . file_get_contents('php://input'), $secret);
if (!hash_equals($expected, $sig) || abs(time() - (int) $ts) > 300) { http_response_code(401); exit; }
Refusez toute requête de plus de 5 minutes (fenêtre de replay).
Réessais
Les livraisons échouées (non-2xx ou pas de réponse en 10s) sont réessayées selon la stratégie. Exponential : 30s, 2min, 10min, 1h, 6h, puis dead. Replay manuel depuis le tableau de bord.