Webhook’lar, sunucunuza HTTP POST isteği göndererek ödeme, iade, mutabakat gibi olayları gerçek zamanlı bildirir. Polling yerine event-driven çalışmanın yoludur.Documentation Index
Fetch the complete documentation index at: https://docs.payven.com.tr/llms.txt
Use this file to discover all available pages before exploring further.
Bu sayfa genel webhook prensiplerini açıklar. Sanal POS özelinde olay listesi ve örnek payload’lar için: Sanal POS Webhook Olayları.
Neden webhook?
| Polling (sorgulama) | Webhook |
|---|---|
Sürekli GET istekleriyle durum sorgulanır | Olay gerçekleşince Payven sizin endpoint’inize bildirir |
| Gecikme: sorgulama aralığı kadar | Gecikme: saniyenin altı |
| Rate limit kotanızı tüketir | Limitten muaf |
| Sunucu kaynağını boşa kullanır | Sadece olay olduğunda çalışır |
Akış
Endpoint kuralları
Webhook endpoint’iniz aşağıdaki kurallara uymalıdır:HTTPS zorunlu — HTTP URL’leri reddedilir.
Public erişilebilir — özel ağ veya VPN arkasında olamaz.
5 saniye içinde HTTP 2xx döner — uzun süren işler için iş kuyruğa atılmalıdır.
Idempotent çalışır — aynı olay birden fazla kez gelebilir.
İmzayı doğrular — sahte istekleri reddeder.
Genel istek formatı
| Header | Açıklama |
|---|---|
X-Payven-Event | Olay tipi (örn. payment.succeeded) |
X-Payven-Delivery | Teslim kimliği — debug için kullanılır |
X-Payven-Signature | HMAC-SHA256 imza |
X-Payven-Timestamp | İmzalanan Unix zaman damgası |
İmza doğrulama (kısa)
İstek gövdesi ile timestamp’isubscription.secret ile HMAC-SHA256 hashlenir. Detay ve kod örnekleri: İmza Doğrulama.
Yeniden deneme
İlk denemede2xx dönmezse Payven otomatik olarak yeniden dener:
| Deneme | Bekleme süresi |
|---|---|
| 1 | Hemen |
| 2 | 1 dakika |
| 3 | 5 dakika |
| 4 | 30 dakika |
| 5 | 2 saat |
| 6 | 24 saat |
Abone olmak
Webhook abonelikleri her ürün için ayrı tanımlanır. Sanal POS örneği:secret değerini saklayın — imza doğrulamasında kullanacaksınız.
Test ve debug
Konsol → Webhook Teslim Kayıtları ekranından her teslim denemesinin:- HTTP yanıt kodunu,
- Yanıt gövdesini,
- Süresini,
- Yeniden deneme sayısını,
- Tam request/response payload’unu