Search all guides

Reference · Tools

Stripe trigger

Starts workflow when a Stripe event occurs (payments, subscriptions, invoices, etc.)

Webhook trigger Finance v1

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.

Works as
Webhook trigger
Tool name
stripe_trigger
Parameters
2
Outputs
Output
Credentials
Stripe API
Official docs
Stripe docs docs.stripe.com

What you can build with Stripe

  • Start workflow when a payment succeeds.
  • Trigger on new customer creation in Stripe.
  • React to subscription cancellations.
  • When process invoice payment failures automatically.
  • When handle Stripe checkout session completions.

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.

Node Type

Trigger — webhook (receives incoming HTTP callbacks)

Input / Output

DirectionPort(s)
InputNone (trigger node)
OutputOutput

Credentials

This tool requires Stripe API credentials. See the Credentials Guide for setup instructions.

Parameters

ParameterTypeRequiredDefaultDescription
EventsmultiOptionsYes[]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 VersionstringNo—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 }}.

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

This tool listens for and receives Stripe webhook events, such as successful payments or new customer creations. It is the right tool when you need to start a workflow automatically in response to specific activities within your Stripe account. It produces a trigger signal containing the full details of the detected Stripe event.

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 Stripe

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Stripe API credentials first.

Open BusyBot

Last reviewed . Spotted something wrong? Tell us.