Platform Pembangun
Webhooks
Penghantaran acara masa nyata ke titik akhir HTTPS anda.
Gambaran Keseluruhan
Daftarkan titik akhir HTTPS awam di Dashboard → Pembangun → Webhooks. s.id akan POST muatan JSON bertanda tangan ke URL anda apabila acara yang dilanggan berlaku. Penghantaran yang gagal (bukan 2xx atau tamat masa) akan dicuba semula sehingga 3 kali, dengan lengah 0 saat, 5 saat, dan 30 saat.
Acara yang Tersedia
link.createdFired when a new link is createdlink.updatedFired when a link's URL or title is changedlink.archivedFired when a link is archivedlink.clickedFired on each redirect (per-click event)microsite.publishedFired when a microsite is publishedqr.scannedFired when a QR code is scannedStruktur Muatan
Setiap POST webhook mengandungi badan JSON dengan nama acara, sumber yang berkaitan, dan cap waktu UTC.
{
"event": "link.created",
"link": {
"id": 123,
"short": "mylink",
"short_url": "https://s.id/mylink",
"long_url": "https://example.com/long-url",
"title": "My Link",
"created": "2026-06-22T10:00:00Z"
},
"timestamp": "2026-06-22T10:00:00Z"
}Mengesahkan Tandatangan
Setiap penghantaran menyertakan pengepala X-SID-Signature: sha256=<hex>. Kira HMAC-SHA256 badan permintaan mentah menggunakan rahsia webhook anda dan bandingkan dengan kesetaraan selamat-masa.
Sentiasa sahkan tandatangan sebelum memproses acara. Jangan sesekali mempercayai muatan tanpa mengesahkan HMAC.
Node.js
const crypto = require('crypto');
function verifySignature(secret, rawBody, sigHeader) {
const expected = 'sha256=' +
crypto.createHmac('sha256', secret).update(rawBody).digest('hex');
return crypto.timingSafeEqual(
Buffer.from(sigHeader),
Buffer.from(expected),
);
}Go
func verifySignature(secret, body []byte, sig string) bool {
mac := hmac.New(sha256.New, secret)
mac.Write(body)
expected := "sha256=" + hex.EncodeToString(mac.Sum(nil))
return hmac.Equal([]byte(sig), []byte(expected))
}Persediaan
- 1Pergi ke Dashboard → Pembangun → Webhooks dan klik Tambah Webhook.
- 2Masukkan URL titik akhir HTTPS anda dan pilih acara yang ingin anda langgan.
- 3Salin rahsia webhook — ia ditunjukkan sekali sahaja.
- 4Di pelayan anda, sahkan pengepala X-SID-Signature sebelum memproses.
- 5Kembalikan HTTP 2xx dalam 10 saat. Penghantaran yang gagal dicuba semula sehingga 3 kali; selepas 5 kegagalan berturut-turut, webhook akan dilumpuhkan secara automatik.