webhook
payment-status
RezolvePay sends outbound webhooks to your configured merchant endpoint when a payment reaches a terminal state.
| Field | Type | Required | Description |
|---|---|---|---|
| X-RezolvePay-Signature | string | Yes | HMAC SHA256 signature of timestamp + "." + raw_payload_bytes using your webhook secret. |
| X-RezolvePay-Timestamp | string | Yes | ISO 8601 UTC timestamp used for signature generation. |
| X-RezolvePay-Event-Id | string | Yes | Unique event identifier. Use this for idempotent processing. |
Event types:
| Event | When sent |
|---|---|
| payment.succeeded | Sent when payment status transitions to confirmed. |
| payment.failed | Sent when payment status transitions to rejected because the shopper's payment was declined. |
| payment.canceled | Sent when payment status transitions to rejected because the payment was cancelled at the provider (abandoned or expired checkout) rather than declined. |
Retry policy: RezolvePay retries on timeout, connection error, or non-2xx response with schedule: [0s, 60s, 300s, 900s, 3600s, 21600s].
Webhook payload status values: Outbound webhook payloads use provider-style terminal values: SUCCEEDED, FAILED and CANCELED (for payment.canceled). These are separate from the checkout status API values (pending, confirmed, rejected).

