Give Pay Documentation
Webhooks

Event Types

All webhook events and their payload schemas

Event catalog

GivePay emits 12 event types across three categories. Subscribe to specific events on each endpoint, or use the wildcard "*" to receive everything.

Event typeWhen it fires
payment.succeededA one-off or recurring charge completed successfully
payment.failedA payment was declined or otherwise failed
payment.refundedA payment was fully refunded
payment.partially_refundedA payment was partially refunded
refund.createdA refund was initiated and is awaiting processing
refund.succeededA refund completed successfully
refund.failedA refund could not be processed
subscription.createdA new subscription was created (first invoice paid)
subscription.updatedSubscription details changed
subscription.canceledA subscription was canceled
subscription.payment_succeededA recurring invoice was paid
subscription.payment_failedA recurring invoice payment failed

Every event uses the same outer envelope:

{
  "id": "evt_550e8400-e29b-41d4-a716-446655440000",
  "type": "<event_type>",
  "environment": "LIVE",
  "source": "Stripe",
  "api_version": "2026-05-11",
  "created_at": "2026-05-11T12:34:56Z",
  "data": { /* event-specific payload, fully shown below */ }
}

Every event payload below is shown in full — no abbreviations, no "see above" references.


Payment events


Refund events

These fire alongside payment.refunded / payment.partially_refunded to give you the lifecycle of an individual refund.


Subscription events


Field references

The shapes are identical across every event. The tables below describe each composite object's fields.

Envelope

Prop

Type

payment_session

Prop

Type

payment_session.line_items[]

Prop

Type

payment_transaction

Prop

Type

refund

Prop

Type

subscription

Prop

Type

organisation

Prop

Type

payer

Prop

Type

error

Prop

Type