Webhook bildirimleri
Webhook, HTTPS alıcınıza gönderilen isteğe bağlı imzalı bildirimdir. Durum sorguları kullanılmaya devam eder; API kullanmak için webhook kurmak zorunlu değildir.
API hesabım
Alıcıyı API hesabınızdan etkinleştirin. Genel HTTPS/443 zorunludur; yönlendirme, sorgu parametresi ve URL içi kimlik bilgisi desteklenmez. Adres, etkinlik veya imza değişirse eski bekleyen olaylar iptal edilir. Geçmiş işlemler topluca bildirilmez.
Yalnız desteklenen yeni API işlemleri izlenir; her HTTP yanıtı veya web sitesi siparişi bildirilmez. Bildirimler güvenli kimlik ve durum bilgisi içerir; API anahtarı veya proxy şifresi içermez. timestamp yerel UTC gözlemidir; dakikalık işçi nedeniyle gecikme olabilir.
Olay türleri
| Tür | Durum |
|---|---|
webhook.test | test |
order.accepted | accepted |
order.delivered | delivered |
order.action_required | action_required |
order.canceled | canceled |
renewal.completed | completed |
extra_login.operation.completed | completed |
extra_login.operation.rejected | rejected |
extra_login.operation.action_required | action_required |
proxy_ip.operation.completed | completed |
proxy_ip.operation.rejected | rejected |
proxy_ip.operation.action_required | action_required |
proxy_ip.authorization.revoked | revoked |
residential_list.operation.completed | completed |
residential_list.operation.rejected | rejected |
residential_list.operation.action_required | action_required |
auto_renewal.configuration.completed | completed |
{
"id": "evt_0123456789abcdef0123456789abcdef",
"type": "order.delivered",
"timestamp": "2026-10-26T12:00:00+00:00",
"api_version": "1",
"data": {
"account_id": 12345,
"order_id": 12345,
"number": "1000012345",
"product": "proxy",
"state": "delivered",
"quantity": 1,
"mode": null,
"gb": null,
"reason_code": null,
"provider_live_check": false
}
}İmza doğrulama
Ayrı webhook anahtarıyla webhook-id, webhook-timestamp ve webhook-signature başlıklarını doğrulayın. whsec_ önekini çıkarıp anahtarı Base64 çözün; aşağıdaki ham gövde yapısını HMAC-SHA256 ile imzalayıp sabit süreli karşılaştırın. Zaman için 300 saniye tolerans uygulayın.
signed_content = webhook_id + "." + webhook_timestamp + "." + raw_body
webhook_signature = "v1," + Base64(HMAC_SHA256(decoded_secret, signed_content))Gönderim ve tekrar denemeler
Olay ID’sini tekilleştirerek işleyin. Bildirim tekrarlanabilir ve sırasız gelebilir. Kabul edince 2xx dönün. En fazla 7 denemede 1 dk, 5 dk, 30 dk, 2 sa, 6 sa ve 24 sa gecikmeleri kullanılır. Tekrarlanan yalnız bildirimdir, asıl işlem değildir.
HTTP 2xx gönderimi doğrular. HTTP 408/429/5xx ve geçici ağ hataları tekrar denenebilir. Diğer 4xx ve yönlendirmeler kalıcı hatadır. Tekrar gönderimde olay ID’si ve gövde aynı kalır, imza zamanı yenilenir.