Skip to main content
Kyren Pay sends webhook notifications for the following event types.

Event Types

The current order integration does not emit an order.closed webhook. Query GET /v1/orders/{orderId} to reconcile unpaid terminal states such as FAILED, CLOSED, or REVOKED; see Orders.

Event Object Structure

All webhook events share the same top-level structure:

order.paid

Sent when a customer successfully completes a payment.
This is the most important event. Use it to fulfill orders — for example, adding credits to a user’s account.

order.refunded

Sent when a refund has been applied to an order. Use this event to update entitlement, balance, or reconciliation records in your system. See Order refunds for the dashboard refund request flow and refund status definitions.

Dispute Events (When Available)

If dispute processing is supported and enabled for your account, you may also receive these notifications. Availability depends on the provider and operational configuration; confirm it with Kyren support. See Disputes. Both use the same event envelope. Their data contains the following case snapshot; nullable values may be unavailable: These are operational case notifications. A change to status alone does not prove a balance movement; use the financial fields and dashboard records for reconciliation. Financial amounts are scoped to the individual case, even when shared_order_projection is true.

Handling Events

Here’s how to handle webhook events in your endpoint:
The handlers must durably complete their work before acknowledging the event. For longer processing, use the durable queue pattern and return 2xx only after persistence succeeds.