प्रोडक्ट

साइन किए वेबहुक

HMAC हस्ताक्षर वाली डिलीवरी घटनाएँ।

HMAC-SHA256
// Headers: Postline-Timestamp, Postline-Event-Id, Postline-Signature
signed   = timestamp + "\0" + event_id + "\0" + raw_body
expected = "v1=" + hex(HMAC-SHA256(webhook_secret, signed))
constant_time_compare(expected, Postline-Signature)

// 2xx acknowledges the event. Otherwise up to 6 attempts:
// now, +1m, +5m, +30m, +2h, +8h (15 s timeout each)

इवेंट

हर 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

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

  • हस्ताक्षर की गणना ठीक-ठीक 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 या डैशबोर्ड से दोबारा भेजा जा सकता है।