Webhooks

Process asynchronous payment updates from backend webhook delivery events.

Event Payload

payment.success

{
  "eventType": "payment.success",
  "payload": {
    "paymentId": "pay_123",
    "merchantOrderId": "ord_123",
    "status": "SUCCESS",
    "amount": 1499.00,
    "providerTrackingId": "trk_987"
  },
  "createdAt": "2026-03-01T10: 00: 00.000Z"
}

Handling Strategy

Recommended Handler Flow

1. Verify source authenticity/signature
2. Deduplicate by event/payment identifier
3. Persist event journal
4. Trigger business side-effects once
5. Return 2xx quickly