campaigns
POST /v1/webhooks/campaign-events
Ingest a signed delivery event from the e-mail provider.
المصادقة
هذه نقطة النهاية عامة. فهي لا تتطلب أي بيانات اعتماد ولا أي مؤسسة - بل هي ما تقرؤه مواقعنا التسويقية ومحركات الإجابة بالذكاء الاصطناعي الخاصة بنا.
لا يقبل هذا الطرف أي معرف للمؤسسة. يحدد مفتاحك بالفعل المؤسسة التي ينتمي إليها، وتكون الاستجابة محصورة في نطاقها.
جربه الآن
استبدل أي شيء بين أقواس زاوية بقيمك الخاصة، والعنصر النائب للمفتاح بمفتاح من لوحة تحكمك.
curl -X POST https://api.zinndigital.com/v1/webhooks/campaign-eventsهل سجلت الدخول؟ تقوم وحدة تحكم واجهة برمجة التطبيقات في لوحة التحكم الخاصة بك بربط معرف مؤسستك الحقيقي ومفتاحك الخاص، وتنفذ الطلب مقابل واجهة برمجة التطبيقات المباشرة لتتمكن من رؤية الاستجابة الفعلية. افتح هذه النهاية الطرفية في وحدة تحكم API
التفاصيل
Unauthenticated by design — the provider holds no Zinn® credential, so the HMAC over the raw request body is the authentication, exactly as for the Stripe path above. This is what moves a campaign delivery from sent to delivered, bounced or complained, and what feeds the suppression list. Redelivery is the normal case and every transition is monotonic, so a replay is a no-op rather than a row moved backwards. An event type Zinn® does not handle is acknowledged with 200, because a 4xx would only buy a retry storm for an event nobody was going to act on. ⛔ With no configured secret this endpoint answers 503 and processes nothing. Accepting unsigned events "until it is configured" would be an unauthenticated write path into the delivery table and the suppression list — i.e. anybody on the internet could suppress a competitor's entire customer base.
الاستجابة
| الاسم | النوع | مطلوب | ما هو هذا |
|---|---|---|---|
status | string<handled, ignored, duplicate> | نعم | handled — acted on. ignored — a valid event of a type Zinn® does not consume. duplicate — already processed; Stripe may stop redelivering. |
الأخطاء التي يمكن أن تُرجعها نقطة النهاية هذه
400 · 503