Full platform access · every action here is logged and cannot be erasedChanges are audit logged

Webhook log

Payment callbacks and platform events, with delivery status.

Events (last hour)
5
Delivered
4
Failing
1
Retries
3
payment.capture.failed is not being delivered

Three attempts, all HTTP 500 from our own endpoint. This is not the provider's fault - our handler is throwing. Until it is fixed, failed captures are not reaching the platform, which is why a session shows as delivered with no payment and lands in reconciliation instead.

TimeEventEndpointStatusAttempts
12:31:44payment.capture.failedhttps://api.evcharge.lk/hooks/selcom5003
Request
POST https://api.evcharge.lk/hooks/selcom
X-Signature: sha256=a3f1…  (verified ✓)

{
  "event": "payment.capture.failed",
  "reference": "MIX9001TZ",
  "amount": 20735,
  "currency": "LKR",
  "provider": "mixx",
  "session_id": "se-206",
  "occurred_at": "2026-07-15T12:31:44Z"
}
Response
HTTP 500 Internal Server Error

{
  "error": "NullReferenceException",
  "at": "PaymentCaptureHandler.onFailed",
  "detail": "session.payment_intent was null"
}

The handler assumes a payment intent exists. On a capture failure it does not - so the code that is supposed to record the failure fails itself. Every unbilled session traces back to this.

Signatures are verified before the payload is parsed. An unsigned or mis-signed callback is dropped and logged - never processed, no matter what it claims.

12:31:02payment.capturedhttps://api.evcharge.lk/hooks/selcom2001
12:10:18payment.authorisedhttps://api.evcharge.lk/hooks/selcom2001
11:58:07payment.authorisedhttps://api.evcharge.lk/hooks/crdb2002
11:02:55payment.reversedhttps://api.evcharge.lk/hooks/selcom2001

Endpoints

https://api.evcharge.lk/hooks/selcom
PayHere aggregator - eZ Cash, Mobitel, FriMi
degraded
https://api.evcharge.lk/hooks/crdb
Commercial Bank - card acquirer
ok
https://api.evcharge.lk/hooks/ocpp
OCPP gateway events
ok