<!-- BusyBot node reference — https://busybot.net/tools/stripe-trigger/ -->

> Node: Stripe Trigger (`stripe_trigger`) · Webhook trigger · v1
> Category: Finance · Credentials: Stripe API (`stripeApi`)
> Updated: 2026-08-16

# Stripe Trigger

> Trigger workflow on Stripe payment events

## Overview

Webhook trigger that listens for Stripe events. Stripe sends POST requests to this webhook when configured events occur in your Stripe account. Supports 136+ event types covering charges, customers, invoices, subscriptions, payouts, payment intents, and more. Includes HMAC-SHA256 signature verification using the Stripe signing secret to ensure webhook authenticity. Use this trigger to automate workflows based on payment events, subscription lifecycle changes, invoice updates, and other Stripe activity.

**Category:** Finance  
**Tool Name:** `stripe_trigger`  
**Version:** 1

**Appearance:** Icon: `si-stripe` | Color: `#635bff`

## Node Type

**Trigger** — webhook (receives incoming HTTP callbacks)

## Input / Output

| Direction | Port(s) |
|-----------|--------|
| Input | None (trigger node) |
| Output | `Output` |

## Credentials

This tool requires **Stripe API** credentials.
See the [Credentials Guide](https://busybot.net/credentials/stripe-api/) for setup instructions.

### Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Events | `multiOptions` | Yes | `[]` | The Stripe events to listen for. Select * for all events. |
| | | | | Options: `*` (any event — wildcard), `account.updated`, `account.application.authorized`, `account.application.deauthorized`, `account.external_account.created`, `account.external_account.deleted`, `account.external_account.updated`, `application_fee.created`, `application_fee.refunded`, `application_fee.refund.updated`, `balance.available`, `capability.updated`, `charge.captured`, `charge.expired`, `charge.failed`, `charge.pending`, `charge.refunded`, `charge.succeeded`, `charge.updated`, `charge.dispute.closed`, `charge.dispute.created`, `charge.dispute.funds_reinstated`, `charge.dispute.funds_withdrawn`, `charge.dispute.updated`, `charge.refund.updated`, `checkout.session.completed`, `coupon.created`, `coupon.deleted`, `coupon.updated`, `credit_note.created`, `credit_note.updated`, `credit_note.voided`, `customer.created`, `customer.deleted`, `customer.updated`, `customer.discount.created`, `customer.discount.deleted`, `customer.discount.updated`, `customer.source.created`, `customer.source.deleted`, `customer.source.expiring`, `customer.source.updated`, `customer.subscription.created`, `customer.subscription.deleted`, `customer.subscription.trial_will_end`, `customer.subscription.updated`, `customer.tax_id.created`, `customer.tax_id.deleted`, `customer.tax_id.updated`, `file.created`, `invoice.created`, `invoice.deleted`, `invoice.finalized`, `invoice.marked_uncollectible`, `invoice.paid`, `invoice.payment_action_required`, `invoice.payment_failed`, `invoice_payment.paid`, `invoice.payment_succeeded`, `invoice.sent`, `invoice.upcoming`, `invoice.updated`, `invoice.voided`, `invoiceitem.created`, `invoiceitem.deleted`, `invoiceitem.updated`, `issuing_authorization.created`, `issuing_authorization.request`, `issuing_authorization.updated`, `issuing_card.created`, `issuing_card.updated`, `issuing_cardholder.created`, `issuing_cardholder.updated`, `issuing_dispute.created`, `issuing_dispute.updated`, `issuing_settlement.created`, `issuing_settlement.updated`, `issuing_transaction.created`, `issuing_transaction.updated`, `order.created`, `order.payment_failed`, `order.payment_succeeded`, `order.updated`, `order_return.created`, `payment_intent.amount_capturable_updated`, `payment_intent.canceled`, `payment_intent.created`, `payment_intent.payment_failed`, `payment_intent.succeeded`, `payment_intent.requires_action`, `payment_method.attached`, `payment_method.card_automatically_updated`, `payment_method.detached`, `payment_method.updated`, `payout.canceled`, `payout.created`, `payout.failed`, `payout.paid`, `payout.updated`, `person.created`, `person.deleted`, `person.updated`, `plan.created`, `plan.deleted`, `plan.updated`, `product.created`, `product.deleted`, `product.updated`, `radar.early_fraud_warning.created`, `radar.early_fraud_warning.updated`, `recipient.created`, `recipient.deleted`, `recipient.updated`, `reporting.report_run.failed`, `reporting.report_run.succeeded`, `reporting.report_type.updated`, `review.closed`, `review.opened`, `setup_intent.canceled`, `setup_intent.created`, `setup_intent.setup_failed`, `setup_intent.succeeded`, `sigma.scheduled_query_run.created`, `sku.created`, `sku.deleted`, `sku.updated`, `source.canceled`, `source.chargeable`, `source.failed`, `source.mandate_notification`, `source.refund_attributes_required`, `source.transaction.created`, `source.transaction.updated`, `subscription_schedule.aborted`, `subscription_schedule.canceled`, `subscription_schedule.completed`, `subscription_schedule.created`, `subscription_schedule.expiring`, `subscription_schedule.released`, `subscription_schedule.updated`, `tax_rate.created`, `tax_rate.updated`, `topup.canceled`, `topup.created`, `topup.failed`, `topup.reversed`, `topup.succeeded`, `transfer.created`, `transfer.failed`, `transfer.paid`, `transfer.reversed`, `transfer.updated` |
| API Version | `string` | No | — | The Stripe API version to use for webhook event payloads. Controls the format and structure of incoming events. If empty, Stripe uses the default API version set in your account. |

## Output Data

Each accepted Stripe event produces one output item carrying the Stripe event envelope:

- `id` — the Stripe event ID (`evt_…`)
- `type` — the Stripe event type, e.g. `charge.succeeded`
- `object` — always `event`
- `api_version` — the API version Stripe used to render the payload
- `created` — the event creation time as a Unix timestamp
- `livemode` — `true` for live-mode events, `false` in test mode
- `pending_webhooks` — how many webhook deliveries Stripe still has queued for this event
- `request` — the API request that caused the event, or `null`
- `data` — the event data; the affected resource is at `data.object`
- `_trigger` — always `stripe_webhook`
- `_timestamp` — ISO 8601 timestamp of when the event was received
- `_webhookEvent` — the matched event type

Events whose type is not in your **Events** selection are acknowledged to Stripe but do not start the workflow.

Reference the payload downstream by expression, e.g. `{{ $json.data.object.amount }}`.

## Usage Examples

- Start workflow when a payment succeeds
- Trigger on new customer creation in Stripe
- React to subscription cancellations
- Process invoice payment failures automatically
- Handle Stripe checkout session completions

## Example Configuration

Start a workflow whenever a charge succeeds:

```json
{
  "type": "stripe_trigger",
  "parameters": {
    "events": ["charge.succeeded"],
    "apiVersion": ""
  }
}
```

Watch the subscription lifecycle:

```json
{
  "type": "stripe_trigger",
  "parameters": {
    "events": [
      "customer.subscription.created",
      "customer.subscription.updated",
      "customer.subscription.deleted"
    ],
    "apiVersion": ""
  }
}
```

Handle invoice payment failures on a pinned API version:

```json
{
  "type": "stripe_trigger",
  "parameters": {
    "events": ["invoice.payment_failed", "invoice.paid"],
    "apiVersion": "2024-12-18.acacia"
  }
}
```

Receive every Stripe event and branch downstream on `{{ $json.type }}`:

```json
{
  "type": "stripe_trigger",
  "parameters": {
    "events": ["*"],
    "apiVersion": ""
  }
}
```

### Trigger Behavior

- **Activation:** When the workflow is activated, a webhook endpoint is registered with the service.
- **Deactivation:** The webhook is automatically unregistered when the workflow is deactivated.
- **Payload:** The incoming webhook payload is parsed and output as workflow items.
- **Verification:** Supports signature verification where applicable.

## Tips

Listens for Stripe webhook events. Configure which events to listen for (e.g. charge.succeeded, invoice.paid). The webhook URL is automatically generated -- register it in your Stripe dashboard. Optionally provide a signing secret for signature verification.