सभी लेख
इंजीनियरिंग

Webhooks: इवेंट, हस्ताक्षर और पुनः प्रयास

Postline कौन-से इवेंट भेजता है, हर अनुरोध कैसे सत्यापित करें और endpoint बंद होने पर क्या होता है।

इवेंट

हर endpoint को इनमें से 1–20 इवेंट प्रकारों की सदस्यता दें:

  • email.accepted
  • email.queued
  • email.sent
  • email.delivered
  • email.deferred
  • email.bounced
  • email.complained
  • email.opened
  • email.clicked
  • email.received
  • email.suppressed
  • domain.verified
  • domain.failed

हस्ताक्षर इनपुट

HMAC-SHA256(secret, timestamp + "\0" + event_id + "\0" + body)

Postline-Timestamp: 1784743200
Postline-Event-Id: evt_…
Postline-Signature: v1=…

अनुरोध और payload

POST https://example.com/hooks/postline
Content-Type: application/json
Postline-Event-Id: evt_3f2a9c…
Postline-Timestamp: 1784743200
Postline-Signature: v1=5d41402abc4b2a76…

{
  "id": "evt_3f2a9c…",
  "type": "email.delivered",
  "created_at": "2026-11-05T12:00:00Z",
  "data": {
    "email_id": "msg_01J…",
    "recipient": "user@example.net",
    "provider": "gmail",
    "smtp_response": "250 2.0.0 OK"
  }
}

प्राप्तकर्ता की आवश्यकताएं

  • हस्ताक्षर की गणना ठीक-ठीक raw अनुरोध बॉडी से करें।
  • हस्ताक्षरों की तुलना constant time में करें।
  • अनुमत विंडो से बाहर के timestamp अस्वीकार करें।
  • event_id सेव करें और हर इवेंट को एक बार प्रोसेस करें।
  • यह न मानें कि इवेंट लाइफसाइकल क्रम में पहुंचते हैं।

आउटबाउंड नियंत्रण

एंडपॉइंट बनाने के लिए HTTPS आवश्यक है। Private, loopback, link-local, metadata, credential-bearing, और internal टारगेट ब्लॉक किए जाते हैं और डायल के समय फिर से resolve किए जाते हैं। रीडायरेक्ट फॉलो नहीं किए जाते। डिलीवरी बाउंडेड timeout और पुनः प्रयास प्रयासों का उपयोग करती है।

टाइमआउट और पुनः प्रयास

कोई भी 2xx प्रतिक्रिया इवेंट की पुष्टि करती है। टाइमआउट (15 s), नेटवर्क त्रुटि या अन्य कोई स्थिति विफलता है। Postline अधिकतम 6 प्रयास करता है: पहला, फिर 1 मिनट, 5 मिनट, 30 मिनट, 2 घंटे और 8 घंटे बाद। हर प्रयास डिलीवरी लॉग में दर्ज होता है और किसी भी डिलीवरी को API या डैशबोर्ड से दोबारा भेजा जा सकता है।