Manage payments, subscriptions, invoices and customers from any Windmill script, flow or app.
Set up in 3 steps
Copy your secret key
In the Stripe dashboard, open Developers then API keys and reveal the secret key. Use the test key while you build — it starts with sk_test_.
Add the resource in Windmill
Open Resources, add a resource of type stripe, and paste the key.
Run your first script
Fork any script below and start with a read, like Retrieve Balance or List Customers, before creating anything.
Scripts
Building blocks, if none of the projects above fit. Fork one, run it, or call it as a step inside your own flow.
Update Customer
List Invoices
List Customers
Delete Customer
List Balance History
Create Refund
Create Payout
Retrieve Invoice Item
Create Invoice Item
Create Invoice
Create Billing Meter
Cancel Subscription
Retrieve Checkout Session Line Items
Delete Webhook Endpoint
Delete Invoice Item
Retrieve Invoice
Retrieve Payment Intent
Retrieve Product
Void Invoice
Update Payment Intent
Create Subscription
List Payment Intents
List Webhook Endpoints
Search Subscriptions
Update Invoice Item
Finalize Invoice
Delete Invoice
Retrieve Customer
Create Price
List Payouts
Trigger flows from Stripe
Stripe is not only a destination. These inbound paths are supported today.
Stripe events: create the route
Add an HTTP route trigger on the script or flow that should handle events: method POST, request type Async, authentication Signature with the Stripe provider and your endpoint's signing secret (whsec_…). Windmill checks the Stripe-Signature header and rejects anything Stripe did not sign before the job starts. The event's top-level fields arrive as the script's arguments, so declare id, type and data parameters and read the object from data.object.
Stripe events: register the endpoint
Run the Create Webhook Endpoint script with the route URL and the events you want (for example customer.created, invoice.paid, checkout.session.completed, or * for all), and copy the secret from its result: Stripe only returns it once. You can also add the endpoint in the Dashboard under Developers, Webhooks. Stripe retries failed deliveries for up to three days, so make the handler safe to run twice for the same event id.
Resource type
The shape of the credential every script on this page expects.
stripe
View raw schema →| Field | Type | Required | What it is |
|---|---|---|---|
| token | string | Yes | Secret key (sk_test_… / sk_live_…) or restricted key (rk_…) from Developers > API keys in the Stripe Dashboard (https://dashboard.stripe.com/apikeys). The key decides test or live mode. |
Questions
Test mode or live mode?
The key decides. A test key only ever touches test data, so keep two resources and switch the one a flow points at.
Can I restrict what the key can do?
Yes. Stripe restricted keys grant per-resource read or write permissions, and work here in place of the secret key.
Is my key stored on the hub?
Never. It lives only in your own Windmill workspace, encrypted at rest.