agency-board
POST /v1/agency/boards/{boardId}/webhooks
Add an outbound webhook.
Πισtoποίηση
Στείλτε ένα κλειδί API ως διακριτικό φορέα (bearer token). Αυτό το τελικό σημείο δεν ορίζει μια συγκεκριμένη άδεια στην προδιαγραφή, οπότε δώστε στο κλειδί σας τα ελάχιστα δυνατά δικαιώματα και ελέγξτε την απόκριση αντί να κάνετε υποθέσεις.
Αυτό το τελικό σημείο δεν δέχεται αναγνωριστικό οργανισμού. Το κλειδί σας προσδιορίζει ήδη τον οργανισμό στον οποίο ανήκει, και η απάντηση περιορίζεται σε αυτόν.
Δοκιμάστε το
Ατικatastήstε ό,τι βρίskεtai μέσα σe γώniaδeς μe τis δikές sas timές, kai to placeholder klεidioύ μe éna klεidi apó ton pinaka ελέgchou sas.
curl -X POST https://api.zinndigital.com/v1/agency/boards/{boardId}/webhooks \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ "name": <string>, "url": <string> }'Συνδεθήκατε; Η κονσόλα API στον πίνακα ελέγχου σας συμπληρώνει το πραγματικό αναγνωριστικό του οργανισμού σας και το δικό σας κλειδί, και εκτελεί το αίτημα στο ζωντανό API, ώστε να μπορείτε να δείτε την πραγματική απόκριση. Ανοίξτε αυτό το τελικό σημείο στην κονσόλα API
Λεπτομέρειες
HTTPS only. We mint the signing secret and return it **once, in this response**. There is no endpoint that can read it back, so keep it — rotate to get a new one. Deliveries are signed `X-Zinn-Signature: sha256=<hmac over "<timestamp>.<body>">` with `X-Zinn-Timestamp`, `X-Zinn-Delivery` and `X-Zinn-Event` beside them. The timestamp is bound INTO the signature so a captured request cannot be replayed for ever, and so a receiver cannot be tricked about which timestamp it was.
Παράμετροι
| Όνομα | Τύpος | Υποχρεωτικό | Τι είναι |
|---|---|---|---|
boardId (path) | Uuid | Ναι | Project board ID (UUIDv7). |
Σώμα αίτησης
| Όνομα | Τύpος | Υποχρεωτικό | Τι είναι |
|---|---|---|---|
name | string | Ναι | — |
url | string | Ναι | HTTPS only. Private and link-local addresses are refused when the socket opens, not when you save. |
events | string[] | Όχι | Empty means every event this board emits. |
status | string<enabled, disabled> | Όχι | — |
Απάντηση
| Όνομα | Τύpος | Υποχρεωτικό | Τι είναι |
|---|---|---|---|
id | Uuid | Ναι | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
board_id | Uuid | Ναι | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
name | string | Ναι | — |
url | string | Ναι | — |
events | string[] | Όχι | — |
status | BoardAutomationStatus | Ναι | `suspended` means WE paused it after repeated failure and it carries a reason the customer has not read. It is a third state rather than a reuse of `disabled`, because collapsin… |
has_secret | boolean | Ναι | Whether a signing secret is stored. The secret itself is in Vault and is returned only by create and rotate; no endpoint can read it back. |
consecutive_failures | integer | Όχι | — |
suspended_reason | string | Όχι | Why we paused this webhook, in authored copy from a closed table — never an exception from our own code. It distinguishes your endpoint refusing a delivery, your endpoint being… |
suspended_at | string | Όχι | — |
last_delivered_at | string | Όχι | — |
last_failed_at | string | Όχι | — |
created_at | string | Όχι | — |
secret | string | Ναι | Shown ONCE, here. Store it now; rotate to get a new one. |
Σφάλματα που μπορεί να επιστρέψει αυτό το τελικό σημείο
401 · 403 · 404 · 422