# Event reference

Every event Southbill can send, with the payload shape.

# Event reference

These are the exact event types Southbill delivers to Merchant API webhook endpoints. Use `"*"` to subscribe to all of them. Test endpoints only receive `livemode: false` events; live endpoints only receive live events.

## Checkout
- `checkout.session.completed`
- `checkout.session.async_payment_pending`
- `checkout.session.async_payment_failed`
- `checkout.session.canceled`
- `checkout.session.refunded`
- `checkout.session.expired`

## Payments
- `payment_intent.succeeded`
- `payment_intent.payment_failed`
- `payment_intent.requires_action`
- `payment_intent.canceled`

A declined sandbox card produces a failed payment with `failure_code` and `failure_message`, plus `payment_intent.payment_failed`. The Checkout Session remains retryable with another card.

## Invoices
- `invoice.created`
- `invoice.sent`
- `invoice.paid`
- `invoice.partially_paid`
- `invoice.payment_succeeded`
- `invoice.payment_failed`
- `invoice.voided`
- `invoice.installment.paid`
- `invoice.installment.due`
- `invoice.installment.overdue`

## Store
- `order.paid`
- `order.updated`
- `order.refunded`

## Customers
- `customer.created`
- `customer.updated`
- `customer.deleted`

## Subscriptions
- `subscription.created` — emitted immediately, including while first-payment confirmation is incomplete.
- `subscription.updated`
- `subscription.canceled`
- `customer.subscription.deleted`

## Payload

Every event has `id`, `object: "event"`, `type`, `created`, `livemode` and a resource snapshot under `data.object`. Deduplicate deliveries by `event.id`. Events not listed above are not available in the Merchant API endpoint picker. Payouts remain dashboard-managed and are not part of this Merchant API webhook catalog.
