Skip to content

Atur Webhook ​

PUT /session/webhook

Atur ke mana Zate harus ngabarin pesan masuk. Tiap sesi punya webhook sendiri: isi url server kamu dan token rahasia, nanti event pesan baru, edit, hapus, dan dibaca di chat pribadi bakal di-POST ke URL itu dengan token di header x-token.

Isi event, cara verifikasi, dan aturan retry-nya dibahas lengkap di Terima Pesan (Webhook).

Detail Endpoint ​

  • Base URL: https://api-zate.azickri.com
  • Header: id, session-id, dan Content-Type: application/json
HeaderTipeWajibKeterangan
idstringYaid dari Buat Session.
session-idstringYasessionId dari Buat Session.

Request Body ​

KolomTipeWajibKeterangan
urlstringYaURL penerima, diawali http:// atau https://. Isi string kosong buat matiin webhook.
tokenstringYaToken rahasia yang dikirim di header x-token tiap request. Isi string kosong buat matiin webhook.

url dan token harus sama-sama diisi, atau sama-sama kosong. Ngisi salah satu aja bakal ditolak, soalnya request tanpa token nggak bisa diverifikasi server kamu.

Contoh Request ​

bash
curl -X PUT "https://api-zate.azickri.com/session/webhook" \
  -H "id: YOUR_ID" \
  -H "session-id: YOUR_SESSION_ID" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/webhook/zate","token":"rahasia-banget-123"}'
javascript
import axios from 'axios';

const response = await axios.put(
  'https://api-zate.azickri.com/session/webhook',
  {
    url: 'https://example.com/webhook/zate',
    token: 'rahasia-banget-123',
  },
  {
    headers: {
      'id': 'YOUR_ID',
      'session-id': 'YOUR_SESSION_ID',
    },
  },
);

console.log(response.data);
javascript
const response = await fetch('https://api-zate.azickri.com/session/webhook', {
  method: 'PUT',
  headers: {
    'id': 'YOUR_ID',
    'session-id': 'YOUR_SESSION_ID',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    url: 'https://example.com/webhook/zate',
    token: 'rahasia-banget-123',
  }),
});

const data = await response.json();
console.log(data);
json
{
  "url": "",
  "token": ""
}

Response ​

json
{
  "id": "68b3f0a2c1d4e5f6a7b8c9d0"
}
json
// Cuma salah satu yang diisi
{
  "statusCode": 400,
  "message": "url and token must be both filled, or both empty to turn the webhook off"
}

// URL nggak valid
{
  "statusCode": 400,
  "message": "url must be an http or https url"
}

// Kolom nggak dikirim sama sekali
{
  "statusCode": 400,
  "message": "url must be a string\ntoken must be a string"
}
json
{
  "statusCode": 404,
  "message": "session not found"
}
KolomTipeKeterangan
idstringID sesi.

Pengaturan yang sekarang aktif bisa dicek di kolom webhook pada Ambil Session.

Yang Perlu Diingat ​

  • Nyalain atau matiin webhook mulai dari detik itu. Pesan sebelum webhook dinyalain nggak ikut dikirim.
  • Ganti URL atau token aja nggak ngulang dari awal. Event yang belum kekirim tetap lanjut ke URL yang baru.
  • Alamat lokal boleh, misalnya http://127.0.0.1:3000/webhook kalau penerimanya ada di server yang sama. Tapi kalau lewat internet, pakai https, soalnya token ikut di setiap request.
  • Webhook cuma buat chat pribadi. Pesan di grup dan channel nggak dikirim.