Eight Stripe triggers start a run the moment Stripe reports an event:
| Trigger | What it says | Stripe event |
|---|---|---|
| Payment succeeded | When a payment succeeds | payment_intent.succeeded |
| Payment failed | When a customer's payment fails | payment_intent.payment_failed |
| Checkout completed | When a customer finishes Stripe Checkout | checkout.session.completed |
| Invoice paid | When an invoice is paid | invoice.paid |
| Subscription created | When a customer starts a subscription | customer.subscription.created |
| Subscription cancelled | When a subscription ends | customer.subscription.deleted |
| Charge refunded | When a charge is refunded, in full or part | charge.refunded |
| New customer | When a customer is created in Stripe | customer.created |
They are instant triggers, and Bizomate sets them up in Stripe when you publish — see How instant triggers work. You paste nothing.
Who can do this
Workspace Admins and Editors, on every plan. Viewers see the trigger and its status but cannot change it.
Before you start
A Stripe connection — see Connect Stripe. A restricted key needs Webhook Endpoints — Write.
Steps
Open the workflow in the designer and open the trigger picker — Browse all triggers on an empty workflow, or select the trigger and Change how it starts.
Under Stripe, select the trigger — for example Payment succeeded. It reads Stripe · instant.
In Connection, choose your Stripe connection. The panel says Publishing sets this up in Stripe, and every publish sets it up again. It stays while the workflow is published — switched off, what arrives is ignored — and is taken away when the workflow is deleted or starts another way.
Add the steps, then Publish.
Publishing makes a webhook endpoint in your Stripe account, described Bizomate, for the trigger's one event, in the connection's mode — test or live. The panel reads Waiting for the first event.
Make the event happen — for example, with a test key, pay a test payment link with one of Stripe's test cards.
Within seconds the panel reads Listening — instant — Last event 10:45 · Payment succeeded · ₹ 1,499.00.
On Output, select Use the last event, then Test run.
What the trigger gives
Each event is one item:
| Field | What it is |
|---|---|
event |
The Stripe event — payment_intent.succeeded. |
id |
The id of what the event is about — the payment intent (pi_…), checkout session (cs_…), invoice (in_…), subscription (sub_…), charge (ch_…) or customer (cus_…). |
status |
Its status, as Stripe gives it. |
amount, amountMain, amountText |
The amount, where there is one: a payment's amount, a checkout's total, an invoice's amount paid, a charge's amount refunded. 149900, 1499, ₹ 1,499.00. Subscriptions and customers have none. |
currency |
inr, as Stripe writes it. |
customer |
The customer's id — cus_…. |
email |
The customer's email, where the event has one. |
metadata |
The names and values kept with it — for example those a Create a checkout session step set. |
createdAt |
When it was made, in UTC. |
To refund a successful payment, add Create a refund with Payment set to {{ trigger.id }}.
What happens next
- Each event starts one run of the live version, in Production, named after it — Payment succeeded · ₹ 1,499.00, or New customer · accounts@northwind.example.
- Every event is checked. Stripe signs each event with the endpoint's signing secret, which Bizomate keeps from when it made the endpoint. An event whose signature does not match, or is more than five minutes old, is answered 401 and starts nothing.
- Every publish makes the endpoint again. Bizomate deletes the one it made before, and makes a new one with a new signing secret.
- Changing to another kind of trigger and publishing, or deleting the workflow, deletes the endpoint from Stripe.
Good to know
- One workflow, one endpoint. Each workflow with a Stripe trigger has its own endpoint in Stripe. Stripe limits how many endpoints an account can have.
- Switching off does not delete the endpoint. Events still arrive and show as the last event, but start no runs.
- Leave the endpoint alone in Stripe. If someone deletes or disables it there, publish again to make a new one.
- Test and live are separate. An endpoint made with a test key hears only test events.
If something goes wrong
| What you see | Why | What to do |
|---|---|---|
| Not listening — Stripe would not take Bizomate's address: Stripe refused: … Fix it, then publish again. | Stripe would not make the endpoint, in its own words — most often a restricted key without Webhook Endpoints, or a rolled key. | Give the key the permission, or Reconnect, then publish again. |
| Not listening — … No connection is chosen for this step. … | Connection is empty. | Choose one, then publish. |
| Waiting for the first event stays | The event happened in the other mode, or the endpoint was deleted in Stripe. | Make the event with the connection's mode, or publish again. |
| Nothing has arrived yet — make one happen in Stripe, then try again. on Output | No event has arrived. | Make one, wait for Listening — instant, then Use the last event. |