Receive outbound payment status webhook

RezolvePay sends outbound webhooks to your configured merchant endpoint when a payment reaches a terminal state.

FieldTypeRequiredDescription
X-RezolvePay-SignaturestringYesHMAC SHA256 signature of timestamp + "." + raw_payload_bytes using your webhook secret.
X-RezolvePay-TimestampstringYesISO 8601 UTC timestamp used for signature generation.
X-RezolvePay-Event-IdstringYesUnique event identifier. Use this for idempotent processing.

Event types:

EventWhen sent
payment.succeededSent when payment status transitions to confirmed.
payment.failedSent when payment status transitions to rejected because the shopper's payment was declined.
payment.canceledSent 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).

Payload

The body payments/outbound_webhooks.py POSTs to the merchant's webhook URL.

payment.succeeded carries SUCCEEDED (payment confirmed), payment.failed carries FAILED
(declined), payment.canceled carries CANCELED (cancelled or expired, RP-350).

data
object
required
string
required

Unique per event; the same value as X-RezolvePay-Event-Id.

string
enum
required
Allowed:
string
required

ISO-8601 UTC; the same value as X-RezolvePay-Timestamp.

Headers
string
required
string
required
string
required
Responses

LoadingLoading…