Webhooks

Ödeme tamamlandığında sunucuna gerçek zamanlı bildirim al. Endpoint'leri panelde Developers → Webhooks bölümünden ekle.

Olaylar

payment.succeeded   Bir ödeme başarıyla tamamlandı
                    (tek seferlik VEYA abonelik tahsilatı — her dönem tekrar tetiklenir)

Gövde (payload)

Endpoint'ine POST ile JSON gönderilir. Abonelik tahsilatlarında subscription alanı dolu, tek seferlik ödemelerde null gelir:

{
  "type": "payment.succeeded",
  "data": {
    "id": "clx...",
    "amount": 1990,
    "currency": "usd",
    "net": 1890,
    "customer_email": "ornek@email.com",
    "payment_link": "clx...",
    "subscription": null,
    "reference": "1234"
  }
}

İmza doğrulama

Her istek bir X-MM-Signaturebaşlığı taşır: gövdenin endpoint'ine ait gizli anahtarla (whsec_…) hesaplanmış HMAC-SHA256 imzası. İsteği işlemeden önce imzayı doğrula:

import crypto from "node:crypto"

const expected = crypto
  .createHmac("sha256", endpointSecret)
  .update(rawBody)
  .digest("hex")

if (expected !== req.headers["x-mm-signature"]) {
  return res.status(400).end()
}
Endpoint'in 2xx dönmelidir. Gizli anahtarı webhook eklerken bir kez gösterilir; güvenli sakla.