API Reference

Webhook event catalog

Implement payment session and transaction event handlers.

Payment session events

Transaction events

Transaction events provide a separate confirmation signal alongside payment session events. Use transactionId from either stream for order reconciliation and support lookups.

Event envelope

Shape

json
{
  "id": "uuid",
  "type": "payment_session.completed",
  "createdAt": "2026-08-31T12:00:00.000Z",
  "data": { }
}

The envelope id matches X-Zippy-Webhook-Id. Merchant-facing data excludes internal gateway IDs and sensitive payer contact information.

Payload fields

Payment session data

NameTypeDescription
paymentSessionIduuidZippy payment session identifier.
statusenumSession status at event time (CREATED, AWAITING_PAYMENT, COMPLETED, EXPIRED, DECLINED, …).
merchantReferencestringYour reference from session create, if set.
amountdecimal stringLocked checkout amount.
currencystringISO currency code (USD).
transactionIduuid | nullLinked transaction when available.
transactionStatusstring | nullLinked transaction status when available.
payer.paymentIdstring | nullPublic Zippy payment ID handle.
payer.displayNamestring | nullPayer display name (first name + last initial).

Transaction data

NameTypeDescription
transactionIduuidZippy transaction identifier.
statusenumTransaction status at event time.
amountdecimal stringTransaction amount.
currencystringISO currency code (USD).
merchantReferencestringMerchant reference from the linked session.
paymentSessionIduuidParent payment session.
payerobject | nullSame payer shape as payment session events.

Reserved events

These event types appear in the catalog for forward compatibility but are not emitted in production yet. Do not depend on them until announced in the changelog.