Webhooks

প্রতিটি ডেলিভারি ইভেন্ট যাচাই করুন

Postline প্রতিটি webhook স্বাক্ষর করে এবং retry সীমিত করে। Consumer-দের অবশ্যই সতেজতা যাচাই করতে হবে, event ID ডিডুপ্লিকেট করতে হবে, এবং ক্রমহীন ডেলিভারি সহ্য করতে হবে।

ইভেন্ট

প্রতিটি 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 সংরক্ষণ করুন এবং প্রতিটি ইভেন্ট একবার প্রক্রিয়া করুন।
  • ইভেন্টগুলো lifecycle অনুক্রমে আসবে বলে ধরে নেবেন না।

আউটবাউন্ড নিয়ন্ত্রণ

Endpoint তৈরির জন্য HTTPS প্রয়োজন। Private, loopback, link-local, metadata, ক্রেডেনশিয়াল-বহনকারী, এবং অভ্যন্তরীণ target ব্লক করা হয় এবং dial করার সময় আবার resolve করা হয়। Redirect অনুসরণ করা হয় না। ডেলিভারিতে সীমাবদ্ধ timeout এবং retry প্রচেষ্টা ব্যবহার করা হয়।

টাইমআউট ও পুনঃচেষ্টা

যেকোনো 2xx প্রতিক্রিয়া ইভেন্ট নিশ্চিত করে। টাইমআউট (15 s), নেটওয়ার্ক ত্রুটি বা অন্য কোনো স্ট্যাটাস ব্যর্থতা। Postline সর্বোচ্চ 6 বার চেষ্টা করে: প্রথমবার, তারপর 1 মিনিট, 5 মিনিট, 30 মিনিট, 2 ঘণ্টা ও 8 ঘণ্টা পরে। প্রতিটি প্রচেষ্টা ডেলিভারি লগে থাকে এবং যেকোনো ডেলিভারি API বা ড্যাশবোর্ড থেকে আবার পাঠানো যায়।