campaigns
POST /v1/webhooks/campaign-events
Ingest a signed delivery event from the e-mail provider.
Doğrulama
Bu nöqtə açıqdır. O, heç bir etimadnamə və təşkilat tələb etmir — bu, öz marketinq saytımızın və süni intellekt cavab mühərriklərimizin oxuduğu hissədir.
Bu endpoint heç bir təşkilat ID-si tələb etmir. Sizin açarınız artıq aid olduğu təşkilatı müəyyən edir və cavab həmin təşkilat üçün məhdudlaşdırılır.
Sınaqdan keçir
Bucaqlı mötərizələrdə olan hór şeyi öz qiymətlərinizlə, açar yertutucusunu isə idarə panelinizdən bir açarla əvəz edin.
curl -X POST https://api.zinndigital.com/v1/webhooks/campaign-eventsSistemə daxil olmusunuz? İdarə panelinizdəki API konsolu real təşkilatınızın identifikatorunu və öz açarınızı avtomatik doldurur, sorğunu canlı API-yə qarşı icra edir ki, siz faktiki cavabı görə biləsiniz. Bu son nöqtəni API konsolunda açın
Təfərrüatlar
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.
Cavab
| Ad | Tip | Tələb olunur | Nədir |
|---|---|---|---|
status | string<handled, ignored, duplicate> | Bəli | handled — acted on. ignored — a valid event of a type Zinn® does not consume. duplicate — already processed; Stripe may stop redelivering. |
Bu son nöqtənin qaytara biləcəyi xətalar
400 · 503