Tenant Event Catalog
Events available to tenant-level webhook endpoints. This includes all merchant-visible events plus tenant-specific events for merchant lifecycle, compliance, operations, and platform management.
These events are visible to tenant and platform endpoints only. Merchants cannot subscribe to them.
| Event | Trigger |
|---|
merchant.created | A new merchant is created within your tenant |
merchant.status_changed | Merchant status changes (e.g., pending to live, live to suspended) |
merchant.approved | Merchant approved (pending_approval to live) |
merchant.suspended | Merchant suspended by operator |
| Event | Trigger |
|---|
kyb.submitted | KYB application submitted for review |
kyb.approved | KYB application approved |
kyb.rejected | KYB application rejected |
| Event | Trigger |
|---|
settlement.created | Settlement created |
settlement.finalized | Settlement finalized, financial statement ready |
| Event | Trigger |
|---|
balance.negative | A merchant balance has gone negative |
balance.entry_created | New ledger entry created (any type) |
Note: balance.threshold_reached (low balance alert) and balance.available (T+N transition) are also visible to merchants.
| Event | Trigger |
|---|
adjustment.created | Operator created adjustment entries |
adjustment.approved | Adjustment approved (if 4-eyes required) |
| Event | Trigger |
|---|
rolling_reserve.released | Rolling reserve hold matured and released |
| Event | Trigger |
|---|
provider_settlement.created | Operator created provider settlement record |
provider_settlement.confirmed | Provider settlement confirmed (funds arrived) |
provider_settlement.failed | Provider settlement failed |
| Event | Trigger |
|---|
partner_settlement.created | Partner settlement statement created (draft) |
partner_settlement.finalized | Partner settlement statement finalized |
| Event | Trigger |
|---|
terminal.3ds_config.updated | Terminal 3DS configuration changed |
merchant.3ds_config.updated | Merchant 3DS defaults changed |
| Event | Trigger |
|---|
fee_schedule.activated | Fee schedule activated and applied |
fee_schedule.archived | Fee schedule archived |
| Event | Trigger |
|---|
user.invited | Invitation sent to a new user |
user.activated | User completed signup via invitation |
user.updated | User non-status fields changed |
user.disabled | User disabled by admin |
user.enabled | User re-enabled by admin |
user.locked | User locked (admin action or IdP brute-force sync) |
user.deactivated | User soft-deleted |
user.invitation_expired | Invitation expired (batch job) |
user.invitation_cancelled | Invitation cancelled by admin |
| Event | Trigger |
|---|
api_key.created | New API key created |
api_key.revoked | API key revoked |
api_key.expired | API key expired (batch job) |
| Event | Trigger |
|---|
routing.rule_activated | Routing rule activated |
routing.rule_archived | Routing rule archived |
routing.config_changed | Tenant routing configuration version changed |
routing.no_route_found | Transaction blocked because no matching route was found |
| Event | Trigger |
|---|
fraud.marked | Transaction marked as fraudulent |
| Event | Trigger |
|---|
alert.triggered | Alert rule matched a condition |
alert.resolved | Alert condition resolved |
| Event | Trigger |
|---|
webhook.delivery_failed | Max retries exhausted for a webhook endpoint |
webhook.endpoint_disabled | Endpoint auto-disabled due to persistent delivery failures |
Tenant endpoints also receive all events that merchants can subscribe to. These events are visible at all three levels (merchant, tenant, platform):
| Event | Trigger |
|---|
payment.created | Payment created |
payment.processing | Payment sent to provider |
payment.succeeded | Payment completed successfully |
payment.failed | Payment declined |
payment.canceled | Payment canceled |
payment.requires_action | Shopper action required (3DS, redirect) |
payment.requires_capture | Payment authorized, awaiting capture |
payment.captured | Capture completed |
payment.refunded | Full refund completed |
payment.partially_refunded | Partial refund completed |
| Event | Trigger |
|---|
refund.created | Refund created |
refund.succeeded | Refund completed |
refund.failed | Refund declined |
| Event | Trigger |
|---|
checkout.session.created | Checkout session created |
checkout.session.completed | Checkout session completed (payment succeeded) |
checkout.session.expired | Checkout session expired |
| Event | Trigger |
|---|
dispute.created | Dispute opened |
dispute.updated | Dispute updated |
dispute.won | Dispute resolved in merchant's favor |
dispute.lost | Dispute resolved against merchant |
| Event | Trigger |
|---|
payout.created | Payout created |
payout.succeeded | Payout completed |
payout.failed | Payout declined |
| Event | Trigger |
|---|
withdrawal.created | Withdrawal request created |
withdrawal.approved | Withdrawal approved by operator |
withdrawal.rejected | Withdrawal rejected by operator |
withdrawal.canceled | Withdrawal self-canceled by entity |
withdrawal.succeeded | Withdrawal completed |
withdrawal.failed | Withdrawal execution failed at provider |
| Event | Trigger |
|---|
balance.available | Funds transitioned pending to available (T+N) |
balance.threshold_reached | Balance reached configured threshold (low balance alert) |
For the full merchant event reference with payload details, see the merchant event catalog.