Commet
  • Pricing
Log InTry out
Introduction

Subscription Events

subscription.createdsubscription.activatedsubscription.canceledsubscription.updatedsubscription.plan_changedsubscription.cancellation_scheduledsubscription.cancellation_revokedsubscription.plan_change_scheduledsubscription.plan_change_revokedsubscription.past_due

Trial Events

trial.startedtrial.convertedtrial.expiredtrial.will_endtrial.checkout_ready

Checkout Events

checkout.ready

Payment Events

payment.receivedpayment.failedpayment.recoveredpayment.refundedpayment.disputedpayment.dispute_resolved

Invoice Events

invoice.createdinvoice.upcominginvoice.overdueinvoice.voided

Payment Method Events

payment_method.attachedpayment_method.updated

Customer Events

customer.createdcustomer.updatedcustomer.state_changed

Credits & Balance Events

credits.grantedcredits.purchasedcredits.lowcredits.depletedcredits.expiredbalance.topped_upbalance.lowbalance.depleted

Quota & Usage Events

quota.threshold_reachedquota.exceededusage.recorded

Seat Events

seats.updatedseats.limit_reached

Add-on Events

addon.activatedaddon.deactivated

Payout Events

payout.availablepayout.createdpayout.paidpayout.failed
DocumentationKnowledge BaseBuild with AIAPI ReferenceWebhooks

payout.failed

A payout to your bank account failed.

Payload

All webhook payloads follow a consistent top-level structure with event-specific data nested within the data object.

payoutIdstring

The payout ID.

amountnumber

Gross payout amount in cents (100 = $1.00).

feenumber

Provider transfer fee in cents.

netAmountnumber

What would have reached your bank in cents.

currencystring

The payout currency. Always "usd".

statusstring

Always "failed" for this event.

destinationBankobject | null

Destination bank display metadata: bankName and last4.

failedAtstring | null

ISO 8601 datetime when the failure was recorded.

failureCodestring | null

The provider's failure code, when available.

failureMessagestring | null

A human-readable failure message, when available.

{
  "event": "payout.failed",
  "timestamp": "2026-06-14T09:00:00.000Z",
  "organizationId": "org_abc123",
  "mode": "live",
  "apiVersion": "2026-06-10",
  "data": {
    "payoutId": "8b6f2a1c-4d3e-4f5a-9b8c-7d6e5f4a3b2c",
    "amount": 20000,
    "fee": 0,
    "netAmount": 20000,
    "currency": "usd",
    "status": "failed",
    "destinationBank": {
      "bankName": "CHASE",
      "last4": "6789"
    },
    "failedAt": "2026-06-14T09:00:00.000Z",
    "failureCode": "account_closed",
    "failureMessage": "The bank account has been closed"
  }
}

When this fires

When the provider reports that a payout could not be completed — at either leg of the lifecycle, most commonly when the bank rejects the deposit (closed account, invalid details). The funds return to your available balance.

failureCode and failureMessage carry the provider's reason when available.

Use it to alert your finance contact and to fix the bank account before requesting the payout again.

How is this guide?

payout.paid

A payout landed in your bank account.