Events
| Event | When |
|---|---|
PAYMENT_COMPLETED | Payment was paid |
PAYMENT_REFUSED | Declined by the issuer/processor |
PAYMENT_REFUNDED | A paid payment was refunded |
PAYMENT_CANCELED | Authorization reversed/canceled |
PAYMENT_FAILED | Technical or unknown terminal failure |
PAYMENT_EXPIRED | Expired without completion |
Payload
APOST with Content-Type: application/json:
Verifying the signature
Each request carries anX-Signature: sha256=<hex> header — an HMAC-SHA256 of the raw
request body using that endpoint’s secret. Always verify it before trusting the payload:
Delivery & retries
- Each (endpoint, event) is delivered independently; a
2xxmarks it delivered. - Non-
2xxor network errors are retried with exponential backoff (up to 8 attempts), then marked failed. - Retries resend identical bytes, so the signature stays valid. Deduplicate on
payment_id+eventif you process at-least-once.