Webhook — Restroid size yazar
Bu sayfa Restroid Cloud’un sizin HTTPS adresinize attığı POST’lardır. Satış kapanınca Restroid sizi aramaz; o işin tersi için satış sayfasına bakın.
Ne zaman çalışır
- Ortak status = active, webhook açık ve HTTPS URL kayıtlı olmalı.
- Olay, süper adminin o ortağa işaretlediği webhookEvents listesinde olmalı.
- Restoran bu ortağa bağlı olmalı.
- Süper admin panelinden integration.ping test bildirimi atılabilir (webhook kapalı olsa da ping gider).
Olaylar
| Olay | Ne zaman gider |
|---|---|
| integration.ping | Süper admin «test bildirimi» bastığında. |
| product.updated | Restroid’de ürün kartı değişince. Liste ve alanlar bu olayda gelmez; GET /products çekin (id, plu, priceAmount…). |
| stock.changed | Stok hareketi yazılınca (panel veya sizin sale-created sonrası dahil). |
| cash.shift_closed | Cloud POS gün kapanınca; sizin Z POST’unuzda data.source = z.created; sizin cash-shift-closed POST’unuzda data.source = partner.shift. X raporu bu olayı üretmez. |
| personnel.updated | Personel kaydı değişince. |
| accounting.posted | Muhasebe yazılınca: sale-created, cash-in / cash-out, expense-created dahil. |
Ürün listesini ve her alanın anlamını: Ürün listesi ve ayarlar. Satışınızı kabul ettikten sonra Restroid stok veya muhasebe yazdıysa stock.changed / accounting.posted gelebilir. Bu, fişin kopyası değildir;data.source alanı sale.created, data.externalId sizin fiş numaranız olur. Z kabulünden sonra cash.shift_closed gelebilir (source: z.created veya vardiyada source: partner.shift). Z’yi siz Restroid’e yazarsınız: Z raporu ve kasa.
Sizin uç noktanıza gelen istek
Restroid sizin kayıtlı URL’nize POST atar. 12 saniye içinde 2xx dönün.
| Başlık | Anlamı |
|---|---|
| Content-Type | application/json |
| X-Restroid-Event | Olay adı, örn. stock.changed |
| X-Restroid-Delivery | İletim UUID. Aynı id tekrar gelirse yok sayın. |
| X-Restroid-Timestamp | Unix saniye |
| X-Restroid-Signature | sha256=… (HMAC, timestamp.rawBody) |
{
"id": "iletim-uuid",
"event": "stock.changed",
"createdAt": "2026-08-28T11:05:02.000Z",
"data": {
"restaurantId": "3f2a1c0e-1111-4222-a333-444455556666",
"source": "sale.created",
"externalId": "FIS-20260828-00412"
}
}İmza nasıl doğrulanır: Yetkilendirme. Ham gövdeyi imzadan önce parse etmeyin. Zaman damgası 5 dakikadan eskiyse reddedin. İş uzunsa 202 dönüp arka planda işleyin. Adres değişince süper admine yeni URL’yi verin; yalnız HTTPS kabul edilir.
