Reference · Tools
Stripe Trigger
Starts workflow when a Stripe event occurs (payments, subscriptions, invoices, etc.)
The Stripe Trigger fires on the Stripe webhook events you configure — charge.succeeded, invoice.paid, subscription changes and the rest. A typical build is provisioning access the moment a payment succeeds and revoking it when a subscription lapses.
- Node type
- Webhook trigger
- Parameters
- 2
- Outputs
- Output
- Credentials
- Stripe API
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 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.succeededobject— alwayseventapi_version— the API version Stripe used to render the payloadcreated— the event creation time as a Unix timestamplivemode—truefor live-mode events,falsein test modepending_webhooks— how many webhook deliveries Stripe still has queued for this eventrequest— the API request that caused the event, ornulldata— the event data; the affected resource is atdata.object_trigger— alwaysstripe_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:
{
"type": "stripe_trigger",
"parameters": {
"events": ["charge.succeeded"],
"apiVersion": ""
}
}
Watch the subscription lifecycle:
{
"type": "stripe_trigger",
"parameters": {
"events": [
"customer.subscription.created",
"customer.subscription.updated",
"customer.subscription.deleted"
],
"apiVersion": ""
}
}
Handle invoice payment failures on a pinned API version:
{
"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 }}:
{
"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.
Frequently asked questions
Do I have to register the webhook?
Yes. The webhook URL is generated automatically, but you register it in your Stripe dashboard against the events you want delivered.
How do I verify payloads are genuinely from Stripe?
Provide a signing secret, which enables signature verification. Without it the trigger relies on the secrecy of the URL alone.
Which events should I subscribe to?
Only those you handle. Subscribing to everything means the workflow wakes for events it ignores, which wastes runs and muddies the logs.
Which credential does it need?
A Stripe API credential, the same one the Stripe action node uses.
Build with the Stripe Trigger node
Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Stripe API credentials first.
Open BusyBotLast updated . Spotted something wrong? Tell us.