Ödeme Yöntemi Event'leri — payment_method.created · updated · deleted ✓ Canlı

Mağazanın ödeme yöntemi tanımları (Nakit, Kredi Kartı, Yemek Çeki…) değiştiğinde async webhook gelir. Mutabakat/raporlama eklentileri için.

← Event Kataloğu

payment_method.*payment.added. payment.added bir siparişe ödeme eklenmesidir; bu event ise ödeme yönteminin tanım değişikliğidir (yöntem kataloğu).

Ne zaman tetiklenir?

EventTetik
payment_method.createdYeni ödeme yöntemi eklendiğinde
payment_method.updatedYöntem düzenlendiğinde (güncel hâl)
payment_method.deletedYöntem silindiğinde (silinen yöntemin son hâli)

Üçü de async webhook. Şekil aynı, yalnız type farklı.

Abonelik

  • Manifest: events: ["payment_method.created", "payment_method.updated", "payment_method.deleted"] + events:subscribe.
  • payment_methods:read — ödeme yöntemi config'i (satış orders:read'ten ayrı); yoksa data boş gelir.

HTTP, imza & teslimat

POST {webhookUrl}
Content-Type: application/json
X-Restomenum-Signature: t=<unixSec>,v1=<HMAC_SHA256(webhookSecret, "<t>.<rawBody>")>
X-Restomenum-Event: payment_method.created | payment_method.updated | payment_method.deleted
X-Restomenum-Delivery: <deliveryId>
  • İmzayı ham gövde üzerinden doğrula ("<t>.<rawBody>"), ±5 dk replay — bkz. imza şeması.
  • Header'lar: X-Restomenum-Event: <type>, X-Restomenum-Delivery: <id>.
  • Idempotency: envelope id tekildir (at-least-once → dedup, 200 dön).
  • Ack: 2xx → işlendi. 5xx/timeout → retry → dead-letter.

Tam örnek payload

payment_method.created
{
  "id": "evt_<uuid>",
  "type": "payment_method.created",
  "version": "1",
  "tenantId": "<tenantId>",
  "occurredAt": 1781000000000,
  "data": {
    "id": "ab-12",
    "title": "Kredi Kartı",
    "description": "POS cihazı",
    "cash": false,
    "noreport": false
  }
}

payment_method.updated güncel yöntemi; payment_method.deleted silinen yöntemin son hâlini taşır — yalnız type farklı.

data alanları

AlanTipZorunluAçıklama
idstringYöntem id'si (sipariş ödemesindeki yöntem referansıyla eşleşir).
titlestringYöntem adı (Nakit, Kredi Kartı…).
descriptionstring | nullAçıklama.
cashbooleanNakit yöntemi mi.
noreportbooleanRapor dışı tutulan yöntem mi.

Sızıntı önlemi

users (yöntemi kullanabilen personel uid listesi = iç erişim kontrolü) ASLA dönmez.
  • İç alanlar (c/u timestamp) dönmez.
  • data yalnız payment_methods:read onaylıysa dolu; yoksa {}.
Yöntem id'si ileride ödeme akışındaki yöntem referansıyla eşlenebilir (mutabakat/raporlama). İlgili: Ödeme Yöntemleri (payment-methods/list) · payment_methods:read · /webhook alıcı.