Your Stripe account, in two nodes on one connected credential. The action runs 44 operations — customers, payments and refunds, subscriptions and invoices, products and prices, Payment Links and Checkout — and can also be an AI toolkit. The trigger fires a flow when a payment succeeds or fails, a refund or a dispute happens, a subscription or an invoice changes, or a Checkout completes.
Setup
Connect Stripe under Settings → Credentials, or straight from the node: name the credential, pick Test mode or Live mode, and install the HostWebhook app on your Stripe account. Nothing is picked for you — live and test are separate credentials, and each one only sees its own mode's data. Build and test with a test-mode credential; nothing it does moves real money.
The app asks Stripe for exactly what the nodes use: read and write on customers, payments, charges and refunds, subscriptions, invoices, products and prices, Payment Links and Checkout Sessions; read on disputes, payment methods and the balance; and events, for the trigger. Uninstalling the app in Stripe stops both nodes; reconnecting the credential reinstalls it.
ℹAmounts are in the currency's smallest unit, as in Stripe's API: 1999 is 19.99 USD, 500 is 500 JPY. The node shows what the number means under the field, and rejects 19.99 instead of charging 19 cents.
Operations
Customers
Value
In the dropdown
What it does
createCustomer
Create customer
Creates a customer with an email, a name and whatever else you know about them.
getCustomer
Get customer
One customer by ID: email, name, balance, default payment method and metadata.
updateCustomer
Update customer
Changes the fields you fill in; empty fields stay as they are.
deleteCustomer
Delete customer
Deletes the customer for good and cancels their active subscriptions. It can't be undone.
listCustomers
List customers
Customers, newest first — all of them, or the ones with an exact email. Iterable over customers.
Payments & refunds
Value
In the dropdown
What it does
createPaymentIntent
Create payment
Creates a PaymentIntent for an amount. Confirm it here with a saved payment method to charge right away, or confirm it later from your checkout.
getPaymentIntent
Get payment
One PaymentIntent by ID: amount, status, customer and the latest charge.
capturePaymentIntent
Capture payment
Captures a payment that was only authorized (manual capture). Moves money.
cancelPaymentIntent
Cancel payment
Cancels a payment that hasn't been charged yet (or releases an authorization).
listPaymentIntents
List payments
PaymentIntents, newest first — all, or one customer's. Iterable over paymentIntents.
getCharge
Get charge
One charge by ID: amount, status, card brand and last 4, receipt URL, refunded amount.
listCharges
List charges
Charges, newest first — all, one customer's, or one payment's. Iterable over charges.
createRefund
Refund payment
Refunds a payment, whole or in part. Moves money back to the customer; it can't be undone.
getRefund
Get refund
One refund by ID: amount, status and the payment it belongs to.
listRefunds
List refunds
Refunds, newest first — all, or one payment's. Iterable over refunds.
getBalance
Get balance
What's available and what's still pending in the account, per currency.
Subscriptions
Value
In the dropdown
What it does
createSubscription
Create subscription
Subscribes a customer to a recurring price. Stripe charges the default payment method, or emails an invoice.
getSubscription
Get subscription
One subscription by ID: status, price, current period and whether it cancels at the end.
updateSubscription
Update subscription
Changes the price or quantity, or schedules the cancellation for the end of the period. Empty fields stay as they are.
cancelSubscription
Cancel subscription
Cancels a subscription now, or at the end of the period the customer already paid for.
listSubscriptions
List subscriptions
Subscriptions, newest first — filtered by customer, price or status. Iterable over subscriptions.
Invoices
Value
In the dropdown
What it does
createInvoice
Create invoice
Creates a draft invoice for a customer. Add items to it, then finalize and send it.
addInvoiceItem
Add invoice item
Adds a line to a draft invoice — a price from your catalog, or an amount with a description. Without an invoice, it waits for the customer's next one.
finalizeInvoice
Finalize invoice
Turns a draft into an open invoice with its number. After this it can be sent or paid, not edited.
sendInvoice
Send invoice
Emails an open invoice to the customer with a link to pay it.
payInvoice
Pay invoice
Charges an open invoice now with the customer's payment method — or marks it as paid outside Stripe. Moves money.
voidInvoice
Void invoice
Voids an open invoice: it stays on record but can no longer be paid. It can't be undone.
getInvoice
Get invoice
One invoice by ID: number, status, amounts, lines, and the links to pay it and to its PDF.
listInvoices
List invoices
Invoices, newest first — filtered by customer, subscription or status. Iterable over invoices.
Products & prices
Value
In the dropdown
What it does
createProduct
Create product
Adds a product to your catalog. Give it a price with Create price.
getProduct
Get product
One product by ID: name, description, whether it's active, and its default price.
updateProduct
Update product
Changes the name, the description or the metadata. Empty fields stay as they are.
archiveProduct
Archive product
Hides a product so it can't be bought anymore. Existing subscriptions keep working; it can be reactivated in Stripe.
listProducts
List products
Products in your catalog, newest first. Iterable over products.
createPrice
Create price
Adds a price to a product — one-time, or recurring every day, week, month or year.
getPrice
Get price
One price by ID: amount, currency, how often it bills and its product.
listPrices
List prices
Prices, newest first — all, or one product's. Iterable over prices.
Payment Links
Value
In the dropdown
What it does
createPaymentLink
Create payment link
A shareable link to a Stripe-hosted page that sells a price. The link comes back in the output.
getPaymentLink
Get payment link
One Payment Link by ID: its URL and whether it's still active.
deactivatePaymentLink
Deactivate payment link
Turns a Payment Link off: whoever opens it can't pay anymore. It can be turned back on in Stripe.
Checkout
Value
In the dropdown
What it does
createCheckoutSession
Create checkout session
A Stripe-hosted checkout page for a price, valid for 24 hours. Send the customer to the URL that comes back.
getCheckoutSession
Get checkout session
One Checkout Session by ID: status, payment status, customer, amount and its line items.
expireCheckoutSession
Expire checkout session
Closes an open Checkout Session so nobody can pay with it anymore.
listCheckoutSessions
List checkout sessions
Checkout Sessions, newest first — all, one customer's, or by status. Iterable over checkoutSessions.
IDs go as Stripe writes them (cus_…, pi_…, in_…) or from the payload ({{payload.object.customer}}). Price is picked from the account's active prices, with a price ID or a template as the alternative. The output keeps Stripe's own field names, so its API reference applies as it is; lists come back as { customers: [...], count, hasMore } and the next node runs once per item.
⚠What moves money runs for real. Refunding, capturing or canceling a payment, paying or voiding an invoice, canceling a subscription, deleting a customer, archiving a product, deactivating a Payment Link and expiring a Checkout Session can't be undone — and Run Test does them too. Every write carries an idempotency key built from the node and the event, so a retry of the same event doesn't charge or refund twice.
Changing a subscription's price
Update subscription with a new price or quantity changes the subscription's own line, so the customer keeps paying for one thing. It only works on single-item subscriptions; with more than one line the node stops and says so instead of adding another.
AI toolkit mode
Once the credential is picked, the node asks for a Mode. AI toolkit turns it into 44 tools that an AI Node — or an MCP client, through one of your MCP servers — calls by name: a billing assistant that looks up a customer's payments and invoices, sends a Payment Link or opens a Checkout.
Blocked tools. The eleven that move money or can't be undone start blocked. Unblock only what the agent really needs, under Block these tool calls.
Characters per call sent to the model. 20,000 by default, anything from 1,000 to 200,000.
What goes back to the model
The same response as the operation. Lists return 20 unless the model asks for more, up to 100 — the model decides; a limit set in Single operation doesn't count in toolkit mode. Items that don't fit the characters limit are left out whole, with a notes field saying how many. Arguments are used as written: a {{payload.x}} the model writes is not resolved against the flow.
Testing a tool
⚠Only a tool call picks the tool. In AI toolkit mode, only an AI Node, an MCP client or a voice agent chooses which tool the node runs. Run Test, a flow or a webhook run the operation saved on the node: an operation in their payload that names another tool is refused.
✦To try a tool, call it from an AI Node or from an MCP client. Its arguments look like this:
⚠A node in toolkit mode is not part of the pipeline. Events arriving through connections made before you switched are refused — the node only runs the tool it is asked for.
The trigger
Pick Stripe as the service on a Trigger node and a Stripe credential. Installing the HostWebhook app already sends the account's events to HostWebhook, so activating changes nothing in Stripe and never expires: the trigger simply starts picking the events you chose, for that account and that mode. To listen to live and test, add one trigger per credential.
What fires it
Event Trigger takes one or more; pick at least one. Changing them while the trigger is active counts from the next event, with nothing to apply.
Payments
type
When
Payment succeeded
payment_intent.succeeded
A payment was completed and the money is captured.
Payment failed
payment_intent.payment_failed
A payment attempt failed — declined card, failed authentication…
Payment canceled
payment_intent.canceled
A payment was canceled before it completed.
Payment needs the customer
payment_intent.requires_action
The customer has to do something, like 3D Secure, to finish paying.
Payment authorized, waiting for capture
payment_intent.amount_capturable_updated
A payment with manual capture was authorized and can be captured now.
Charges and refunds
type
When
Charge succeeded
charge.succeeded
A charge went through.
Charge failed
charge.failed
A charge attempt failed.
Charge captured
charge.captured
An authorized charge was captured.
Charge refunded
charge.refunded
A charge was refunded, fully or in part.
Refund created
refund.created
A refund was created.
Refund updated
refund.updated
A refund changed — its status or its metadata.
Refund failed
refund.failed
A refund could not be sent to the customer.
Disputes
type
When
Dispute opened
charge.dispute.created
A customer disputed a charge with their bank.
Dispute updated
charge.dispute.updated
A dispute changed — new evidence, a new status.
Dispute closed
charge.dispute.closed
A dispute was won, lost or accepted.
Checkout
type
When
Checkout completed
checkout.session.completed
A customer finished a Checkout Session or a Payment Link.
Checkout expired
checkout.session.expired
A Checkout Session expired without being completed.
Delayed payment succeeded
checkout.session.async_payment_succeeded
A Checkout payment that settles later (bank debit, transfer) went through.
Delayed payment failed
checkout.session.async_payment_failed
A Checkout payment that settles later (bank debit, transfer) failed.
Customers
type
When
Customer created
customer.created
A new customer was created.
Customer updated
customer.updated
A customer changed — email, name, address, metadata…
Customer deleted
customer.deleted
A customer was deleted.
Subscriptions
type
When
Subscription created
customer.subscription.created
A customer subscribed.
Subscription updated
customer.subscription.updated
A subscription changed — plan, quantity, status, renewal…
Subscription ended
customer.subscription.deleted
A subscription was canceled and has ended.
Trial ends in 3 days
customer.subscription.trial_will_end
A trial ends in three days.
Subscription paused
customer.subscription.paused
A subscription was paused.
Subscription resumed
customer.subscription.resumed
A paused subscription was resumed.
Invoices
type
When
Invoice created
invoice.created
A new invoice was created, as a draft.
Invoice finalized
invoice.finalized
A draft invoice was finalized and can be paid.
Invoice sent
invoice.sent
An invoice was emailed to the customer.
Invoice paid
invoice.paid
An invoice was paid, or marked as paid.
Invoice payment failed
invoice.payment_failed
An attempt to pay an invoice failed.
Invoice needs the customer
invoice.payment_action_required
Paying the invoice needs the customer to authenticate.
Invoice coming up
invoice.upcoming
A subscription invoice will be created soon (days before renewal).
Invoice voided
invoice.voided
An invoice was voided.
Invoice uncollectible
invoice.marked_uncollectible
An invoice was marked as uncollectible.
Products
type
When
Product created
product.created
A product was created.
Product updated
product.updated
A product changed — name, description, archived…
Product deleted
product.deleted
A product was deleted.
Prices
type
When
Price created
price.created
A price was created.
Price updated
price.updated
A price changed — nickname, archived…
Price deleted
price.deleted
A price was deleted.
Payment Links
type
When
Payment Link created
payment_link.created
A Payment Link was created.
Payment Link updated
payment_link.updated
A Payment Link changed — activated, deactivated…
What the trigger sends downstream
The Stripe event, one level flatter, with the object exactly as Stripe sends it — same field names, amounts in the smallest unit. On *.updated events, previousAttributes holds what changed:
ℹEach event runs once. Stripe resends an event it couldn't deliver; HostWebhook recognises its id and doesn't run the flow again. Events arrive signed, and HostWebhook checks the signature before anything runs.
Trying it out
The trigger's Test push shows what each event you picked will look like — examples with the exact shape this trigger dispatches, so you can write {{payload.object.amount}} in the nodes below it from the start. To see a real one with a test-mode credential, make a test payment in Stripe (card 4242 4242 4242 4242) or run stripe trigger payment_intent.succeeded with the Stripe CLI on that account.
Gotchas
Live and test don't mix. A test-mode credential can't see live customers or prices, and the other way round — IDs from one mode don't exist in the other.
Confirming a payment needs a saved payment method. With Confirm now, the node charges pm_… right away, without the customer present; without it, the payment waits for your checkout to confirm it.
A 429 is retried once, after the wait Stripe asks for (up to 10 s), with the same idempotency key.
Declined cards come back as the node's error with Stripe's reason, like (insufficient_funds), so the flow can branch on failure.
Uninstalling the app stops the trigger. It turns off and says why; reconnect the credential and activate it again.