POST/v1/webhooks/{webhook_id}/deliveries/{delivery_id}/redeliver
Kirim ulang peristiwa
redeliver_webhook
Mengirim pengiriman lagi dengan X-KB-Event-Id dan webhook-id yang sama, sehingga penerima yang sudah menerima peristiwa tersebut membuang pengulangannya. Pengiriman yang sudah selesai (success, exhausted, cancelled) diulang sebagai pengiriman baru di akhir urutan pengiriman webhook (redelivery_of merujuk ke pengiriman asli) dan langsung dikirim jika tidak ada pengiriman tertunda di depannya. Pengiriman tertunda yang berada di urutan pertama langsung dikirim sebagai upaya manual yang tidak menggeser jadwal percobaan ulangnya. Pada webhook yang dijeda, pengiriman menunggu sampai webhook dilanjutkan. Responsnya adalah pengiriman setelah upaya tersebut (pengiriman baru untuk pengiriman yang sudah selesai).
Autentikasi
Kirim kunci API di header Authorization: Authorization: Bearer <kunci>.
Parameter path
webhook_idintegerwajibdelivery_idintegerwajib
Parameter header
Idempotency-KeystringKunci untuk percobaan ulang penulisan yang aman: 1 hingga 255 karakter ASCII yang dapat dicetak; disarankan satu UUID v4 per operasi logis. Percobaan ulang dengan kunci yang sama dalam 24 jam tidak menjalankan operasi lagi: yang dikembalikan adalah respons tersimpan (status, header, dan isi) dengan header
Idempotency-Replayed: true. Kunci yang sama dengan metode, path,Content-Type, atau isi yang berbeda mengembalikan409 api.idempotency_mismatch; selama permintaan pertama masih berjalan,409 api.idempotency_in_progressdenganRetry-After: 1. Setelah respons 5xx atau 429, kunci dilepaskan, dan percobaan ulang menjalankan operasi lagi. Kunci berlaku dalam lingkup organisasi dan pemanggil (kunci API, pengguna, atau kunci sumber kustom).length ≥ 1, length ≤ 255
Respons
200Pengiriman setelah upaya tersebut
Header respons
RateLimit-PolicyBatas yang berlaku, dalam format draf IETF
draft-ietf-httpapi-ratelimit-headers: item yang dipisahkan koma"<name>";q=<quota>;w=<window in seconds>.keyadalah laju permintaan kunci API (kuotanya adalah lonjakan, jendela waktunya adalah waktu untuk mengisinya kembali sepenuhnya; untuk sesi nilainyauser, tanpa kredensialip);minute,day, danmonthadalah kuota organisasi untuk menit, hari, dan bulan kalender dalam UTC.RateLimitSisa setiap batas di
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitBatas dari entri paling ketat di
RateLimit-Policy(entri dengan sisa permintaan paling sedikit).X-RateLimit-RemainingSisa permintaan dalam batas paling ketat.
X-RateLimit-ResetDetik hingga batas paling ketat direset.
Idempotency-Replayedtrueberarti respons ini dikirim ulang dari respons tersimpan untukIdempotency-Keyini: operasi tidak dijalankan lagi.
application/json
expandedWebhookDeliveryExpandedidintegerwajibwebhook_idintegerwajibevent_idstringwajibID peristiwa (
evt_…), juga dikirim di headerX-KB-Event-Iddan di isi pengiriman.event_created_atstring (date-time)wajibattemptintegerwajibJumlah upaya yang dilakukan.
response_codeinteger | nullduration_msinteger | nullnext_retry_atstring (date-time) | nullerrorstring | nulldelivered_atstring (date-time) | nullcreated_atstring (date-time)wajibupdated_atstring (date-time)wajibsequenceinteger | nullNomor dalam urutan pengiriman webhook (
X-KB-Sequence);nulluntuk pengiriman uji.testbooleanwajibPengiriman uji (
POST /v1/webhooks/{webhook_id}/test).redelivery_ofinteger | nullPengiriman asli, jika pengiriman ini adalah pengiriman ulang.
error_codestring | nullKode netral kegagalan terakhir:
timeout,connection_failed,tls_error,private_address,unresolvable,redirect,http_error,request_failed,endpoint_disabled,event_expired; pengiriman yang dibatalkan (cancelled) juga dapat memilikievent_not_permitted(peristiwa berada di luar hak webhook pada saat upaya, karena hak itu dipersempit setelah peristiwa disebarkan ke webhook) atauevent_unavailable(isi pengiriman uji sudah tidak tersedia).
401Kredensial tidak dikirim (baik cookie sesi maupun kunci API), atau kunci tidak ditemukan.
Header respons
RateLimit-PolicyBatas yang berlaku, dalam format draf IETF
draft-ietf-httpapi-ratelimit-headers: item yang dipisahkan koma"<name>";q=<quota>;w=<window in seconds>.keyadalah laju permintaan kunci API (kuotanya adalah lonjakan, jendela waktunya adalah waktu untuk mengisinya kembali sepenuhnya; untuk sesi nilainyauser, tanpa kredensialip);minute,day, danmonthadalah kuota organisasi untuk menit, hari, dan bulan kalender dalam UTC.RateLimitSisa setiap batas di
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitBatas dari entri paling ketat di
RateLimit-Policy(entri dengan sisa permintaan paling sedikit).X-RateLimit-RemainingSisa permintaan dalam batas paling ketat.
X-RateLimit-ResetDetik hingga batas paling ketat direset.
application/json
403Tindakan tidak diizinkan: peran tidak memadai, tidak ada akses ke koleksi atau kartu, permintaan berjalan dalam mode “View as”, atau organisasi ditangguhkan atau dihapus (`detail` adalah objek dengan `code: org_suspended | org_deleted`).
Header respons
RateLimit-PolicyBatas yang berlaku, dalam format draf IETF
draft-ietf-httpapi-ratelimit-headers: item yang dipisahkan koma"<name>";q=<quota>;w=<window in seconds>.keyadalah laju permintaan kunci API (kuotanya adalah lonjakan, jendela waktunya adalah waktu untuk mengisinya kembali sepenuhnya; untuk sesi nilainyauser, tanpa kredensialip);minute,day, danmonthadalah kuota organisasi untuk menit, hari, dan bulan kalender dalam UTC.RateLimitSisa setiap batas di
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitBatas dari entri paling ketat di
RateLimit-Policy(entri dengan sisa permintaan paling sedikit).X-RateLimit-RemainingSisa permintaan dalam batas paling ketat.
X-RateLimit-ResetDetik hingga batas paling ketat direset.
application/json
404Objek tidak ada atau tidak tersedia bagi Anda. API tidak mengonfirmasi keberadaan objek yang dibatasi.
Header respons
RateLimit-PolicyBatas yang berlaku, dalam format draf IETF
draft-ietf-httpapi-ratelimit-headers: item yang dipisahkan koma"<name>";q=<quota>;w=<window in seconds>.keyadalah laju permintaan kunci API (kuotanya adalah lonjakan, jendela waktunya adalah waktu untuk mengisinya kembali sepenuhnya; untuk sesi nilainyauser, tanpa kredensialip);minute,day, danmonthadalah kuota organisasi untuk menit, hari, dan bulan kalender dalam UTC.RateLimitSisa setiap batas di
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitBatas dari entri paling ketat di
RateLimit-Policy(entri dengan sisa permintaan paling sedikit).X-RateLimit-RemainingSisa permintaan dalam batas paling ketat.
X-RateLimit-ResetDetik hingga batas paling ketat direset.
application/json
409Status objek tidak memungkinkan tindakan ini, misalnya duplikat, pengindeksan yang sedang berlangsung, atau job yang sudah diproses.
Header respons
RateLimit-PolicyBatas yang berlaku, dalam format draf IETF
draft-ietf-httpapi-ratelimit-headers: item yang dipisahkan koma"<name>";q=<quota>;w=<window in seconds>.keyadalah laju permintaan kunci API (kuotanya adalah lonjakan, jendela waktunya adalah waktu untuk mengisinya kembali sepenuhnya; untuk sesi nilainyauser, tanpa kredensialip);minute,day, danmonthadalah kuota organisasi untuk menit, hari, dan bulan kalender dalam UTC.RateLimitSisa setiap batas di
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitBatas dari entri paling ketat di
RateLimit-Policy(entri dengan sisa permintaan paling sedikit).X-RateLimit-RemainingSisa permintaan dalam batas paling ketat.
X-RateLimit-ResetDetik hingga batas paling ketat direset.
application/json
429Terlalu banyak permintaan (`api.rate_limited`), kuota organisasi untuk menit, hari, atau bulan sudah habis (`api.quota_exceeded`; `error.details` berisi `quota`, `limit`, dan `reset_at`), batas organisasi tercapai, atau layanan jawaban sedang sibuk (`answers.engine_busy`). Tunggu selama waktu di header `Retry-After`.
Header respons
Retry-AfterJumlah detik yang perlu ditunggu sebelum Anda mencoba ulang permintaan.
RateLimit-PolicyBatas yang berlaku, dalam format draf IETF
draft-ietf-httpapi-ratelimit-headers: item yang dipisahkan koma"<name>";q=<quota>;w=<window in seconds>.keyadalah laju permintaan kunci API (kuotanya adalah lonjakan, jendela waktunya adalah waktu untuk mengisinya kembali sepenuhnya; untuk sesi nilainyauser, tanpa kredensialip);minute,day, danmonthadalah kuota organisasi untuk menit, hari, dan bulan kalender dalam UTC.RateLimitSisa setiap batas di
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitBatas dari entri paling ketat di
RateLimit-Policy(entri dengan sisa permintaan paling sedikit).X-RateLimit-RemainingSisa permintaan dalam batas paling ketat.
X-RateLimit-ResetDetik hingga batas paling ketat direset.
application/json
Kode error
Kode yang dapat dikembalikan endpoint ini di error.code, selain kode umum yang berlaku untuk setiap permintaan.
Percobaan ulang yang aman
Kirim header Idempotency-Key (misalnya UUID) bersama setiap POST dan PATCH. Percobaan ulang dengan kunci yang sama dalam 24 jam mengembalikan respons yang tersimpan alih-alih menjalankan permintaan lagi.
Batas laju
Respons berisi header RateLimit dan RateLimit-Policy serta header lama X-RateLimit-Limit, X-RateLimit-Remaining, dan X-RateLimit-Reset. Respons 429 berisi Retry-After dalam detik: tunggu, lalu coba lagi.