Developer Platform
Webhooks
Real-time na pagpapadala ng event sa iyong HTTPS endpoint.
Pangkalahatang-ideya
Irehistro ang isang pampublikong HTTPS endpoint sa Dashboard → Developer → Webhooks. Mag-POST ang s.id ng naka-sign na JSON payload sa iyong URL kapag nangyari ang naka-subscribe na event. Ang mga nabigong delivery (hindi 2xx o timeout) ay muling susubukan nang hanggang 3 beses, na may pagkaantala na 0 segundo, 5 segundo, at 30 segundo.
Mga Available na Event
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 scannedIstraktura ng Payload
Ang bawat webhook POST ay naglalaman ng JSON body na may pangalan ng event, ang kaugnay na resource, at isang UTC timestamp.
{
"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"
}Pag-verify ng mga Signature
Kasama sa bawat delivery ang header na X-SID-Signature: sha256=<hex>. Kalkulahin ang HMAC-SHA256 ng raw request body gamit ang iyong webhook secret at ihambing gamit ang timing-safe equality.
Palaging i-verify ang signature bago iproseso ang event. Huwag kailanman magtiwala sa payload nang hindi na-verify ang 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))
}Setup
- 1Pumunta sa Dashboard → Developer → Webhooks at i-click ang Add Webhook.
- 2Ilagay ang iyong HTTPS endpoint URL at piliin ang mga event na gusto mong i-subscribe.
- 3Kopyahin ang webhook secret — isang beses lamang itong ipinakikita.
- 4Sa iyong server, i-verify ang X-SID-Signature header bago mag-proseso.
- 5Mag-return ng HTTP 2xx sa loob ng 10 segundo. Ang mga nabigong delivery ay muling susubukan nang hanggang 3 beses; pagkatapos ng 5 magkakasunod na nabigong delivery, awtomatikong madi-disable ang webhook.