CONNECT APP
Build with Stripe
Commerce
- API key
MCP
Give your agent Stripe tools
Every Stripe action is exposed as an MCP tool on Pipedream's remote server. Point a client at it with your end user's ID and Connect resolves that user's Stripe account for each tool call — you store no tokens.
// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "stripe",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// e.g. run Cancel A Payment Intent:
const result = await mcp.callTool({
name: "stripe-cancel-payment-intent",
arguments: {
id: "Payment Intent ID",
cancellationReason: "Cancellation Reason",
},
})# access_token: mint a short-lived token with the Connect SDK — see the MCP guide
headers = {
"Authorization": f"Bearer {access_token}",
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", # any stable ID for this user in your system
"x-pd-app-slug": "stripe",
}
async with streamablehttp_client("https://remote.mcp.pipedream.net/v3", headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
tools = await session.list_tools()
# e.g. run Cancel A Payment Intent:
result = await session.call_tool("stripe-cancel-payment-intent", {
"id": "Payment Intent ID",
"cancellationReason": "Cancellation Reason",
})API PROXY
Call the Stripe API directly
For an endpoint with no pre-built tool, the Connect proxy forwards your request to the Stripe API with the connected user's credentials attached. You store no tokens and write no refresh logic.
const resp = await pd.proxy.get({
externalUserId: "{external_user_id}", // any stable ID for this user in your system
accountId: "apn_xxxxxxx",
url: "https://api.stripe.com/v1/accounts",
})
// Any allowed Stripe endpoint works here. Pipedream attaches the
// connected account's credentials to the outgoing request.# The path segment is the target URL, URL-safe base64 encoded:
# https://api.stripe.com/v1/accounts
curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly9hcGkuc3RyaXBlLmNvbS92MS9hY2NvdW50cw?external_user_id={external_user_id}&account_id=apn_xxxxxxx" \
-H "Authorization: Bearer {access_token}" \
-H "x-pd-environment: production"SDK
Run Stripe actions from your backend
Connect a user's Stripe account once, then run Cancel A Payment Intent on their behalf from your own code — TypeScript, Python, or plain HTTP.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "stripe-cancel-payment-intent",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
stripe: { authProvisionId: "apn_xxxxxxx" },
id: "Payment Intent ID",
cancellationReason: "Cancellation Reason",
},
})from pipedream import Pipedream
pd = Pipedream(
client_id="{oauth_client_id}",
client_secret="{oauth_client_secret}",
project_id="{project_id}",
project_environment="production",
)
result = pd.actions.run(
id="stripe-cancel-payment-intent",
external_user_id="{external_user_id}", # any stable ID for this user in your system
configured_props={
"stripe": {"authProvisionId": "apn_xxxxxxx"},
"id": "Payment Intent ID",
"cancellationReason": "Cancellation Reason",
},
)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "stripe-cancel-payment-intent",
"configured_props": {
"stripe": { "authProvisionId": "apn_xxxxxxx" },
"id": "Payment Intent ID",
"cancellationReason": "Cancellation Reason"
}
}'TOOLS
Stripe actions
On-demand operations your product or agent can configure and run on behalf of a connected user.
-
Cancel A Payment Intent
actionCancel a PaymentIntent. See the documentation.Writev0.1.5 -
Cancel Or Reverse A Payout
actionCancel a pending payout or reverse a paid payout. See the documentation here and hereWritev0.1.5 -
Cancel Subscription
actionCancel a subscription. See the documentationWritev0.0.4 -
Capture a Payment Intent
actionCapture the funds of an existing uncaptured payment intent. See the documentation.Writev0.1.5 -
Confirm A Payment Intent
actionConfirm that your customer intends to pay with current or provided payment method. See the documentation.Writev0.1.5 -
Create a Customer
actionCreate a customer. See the documentation.Writev0.1.5 -
Create a Payment Intent
actionCreate a payment intent. See the documentation.Writev0.1.5 -
Create a Payout
actionCreate a payout. See the documentation.Writev0.1.5 -
Create A Refund
actionCreate a refund. See the documentation.Writev0.1.5 -
Create a Usage Record
actionWith metered billing, you charge your customers based on their consumption of your service during the billing cycle, instead of explicitly setting quantities. Use this action to create a usage record for metered billing. See the docs for more informationWritev0.1.1 -
Create Billing Meter
actionCreates a billing meter. See the documentation.Writev0.0.4 -
Create Invoice
actionCreate an invoice. See the documentation.Writev0.1.5 -
Create Invoice Line Item
actionAdd a line item to an invoice. See the documentation.Writev0.1.5 -
Create Price
actionCreates a new price for an existing product. The price can be recurring or one-time. See the documentationWritev0.0.6 -
Create Product
actionCreates a new product object in Stripe. See the documentation.Writev0.0.6 -
Create Subscription
actionCreate a subscription. See the documentation.Writev0.1.7 -
Delete a Customer
actionDelete a customer. See the documentation.Writev0.1.5 -
Delete Invoice Line Item
actionDelete a line item from an invoice. See the documentation.Writev0.1.5 -
Delete Or Void Invoice
actionDelete a draft invoice, or void a non-draft or subscription invoice. See the documentation.Writev0.1.5 -
Finalize Draft Invoice
actionFinalize a draft invoice. See the documentation.Writev0.1.5 -
List Balance History
actionList all balance transactions. By default returns an array of transaction objects (auto-paginated up toLimit). SetReturn Pagination Infoto true to instead receive{ data, has_more, next_starting_after }for a single Stripe page (max 100 per call) — passnext_starting_afterasStarting Afteron the next call to iterate. See the documentation.Read-onlyv0.2.1 -
List Customers
actionFind or list customers. By default returns an array of customer objects (auto-paginated up toLimit). SetReturn Pagination Infoto true to instead receive{ data, has_more, next_starting_after }for a single Stripe page (max 100 per call) — passnext_starting_afterasStarting Afteron the next call to iterate. See the documentation.Read-onlyv0.2.1 -
List Invoices
actionFind or list invoices. By default returns an array of invoice objects (auto-paginated up toLimit). SetReturn Pagination Infoto true to instead receive{ data, has_more, next_starting_after }for a single Stripe page (max 100 per call) — passnext_starting_afterasStarting Afteron the next call to iterate. See the documentation.Read-onlyv0.2.1 -
List Payment Intents
actionRetrieves a list of payment intents that were previously created. By default returns an array of payment intent objects (auto-paginated up toLimit). SetReturn Pagination Infoto true to instead receive{ data, has_more, next_starting_after }for a single Stripe page (max 100 per call) — passnext_starting_afterasStarting Afteron the next call to iterate. See the documentation.Read-onlyv0.2.1 -
List Payouts
actionFind or list payouts. By default returns an array of payout objects (auto-paginated up toLimit). SetReturn Pagination Infoto true to instead receive{ data, has_more, next_starting_after }for a single Stripe page (max 100 per call) — passnext_starting_afterasStarting Afteron the next call to iterate. See the documentation.Read-onlyv0.2.1 -
List Refunds
actionFind or list refunds. By default returns an array of refund objects (auto-paginated up toLimit). SetReturn Pagination Infoto true to instead receive{ data, has_more, next_starting_after }for a single Stripe page (max 100 per call) — passnext_starting_afterasStarting Afteron the next call to iterate. See the documentation.Read-onlyv0.2.1 -
Retrieve a Checkout Session
actionA Checkout Session represents your customer's session as they pay for one-time purchases or subscriptions through Stripe Checkout. See the documentation.Read-onlyv0.1.5 -
Retrieve a Customer
actionRetrieves the details of an existing customer. See the documentation.Read-onlyv0.1.5 -
Retrieve a Payment Intent
actionRetrieves the details of a payment intent that was previously created. See the documentation.Read-onlyv0.1.5 -
Retrieve a Payout
actionRetrieves the details of an existing payout. See the documentation.Read-onlyv0.1.5 -
Retrieve a Price
actionRetrieves the details of an existing product price. See the documentation.Read-onlyv0.1.5 -
Retrieve a Refund
actionRetrieves the details of an existing refund. See the documentation.Read-onlyv0.1.5 -
Retrieve an Invoice
actionRetrieves the details of an existing invoice. See the documentation.Read-onlyv0.1.5 -
Retrieve Checkout Session Line Items
actionGiven a checkout session ID, retrieve the line items. See the documentation.Read-onlyv0.1.5 -
Retrieve Invoice Line Item
actionRetrieve a single line item on an invoice. See the documentation.Read-onlyv0.1.5 -
Retrieve Product
actionRetrieve a product by ID. See the documentation.Read-onlyv0.1.5 -
Retrieve the Current Balance
actionRetrieves the current account balance, based on the authentication that was used to make the request. See the documentation.Read-onlyv0.1.5 -
Search Customers
actionSearch customers by various attributes like email domain, created date, etc. See the documentation.Read-onlyv0.0.5 -
Search Subscriptions
actionSearch for subscriptions. See the documentationRead-onlyv0.0.4 -
Send Invoice
actionManually send an invoice to your customer out of the normal schedule for payment (note that no emails are actually sent in test mode). See the documentation.Writev0.1.6 -
Update a Customer
actionUpdate a customer. See the documentation.Writev0.1.5 -
Update a Payment Intent
actionUpdate a payment intent. See the documentation.Writev0.1.5 -
Update a Payout
actionUpdate the metadata on a payout. See the documentation.Writev0.1.5 -
Update a Refund
actionUpdate the metadata on a refund. See the documentation.Writev0.1.5 -
Update Invoice
actionUpdate an invoice. See the documentation.Writev0.1.5 -
Update Invoice Line Item
actionUpdate an invoice line item. See the documentation.Writev0.1.5 -
Void Invoice
actionVoid an invoice. See the documentation.Writev0.1.5 -
Write Off Invoice
actionMark an invoice as uncollectible. See the documentation.Writev0.1.5
-
New Custom Webhook Events
triggerEmit new event on each webhook eventInstantv0.1.5 -
Canceled Subscription
triggerEmit new event for each new canceled subscriptionInstantv0.1.5 -
New Abandoned Cart
triggerEmit new event when a customer abandons their cart.Instantv0.1.5 -
New Customer
triggerEmit new event for each new customerInstantv0.1.5 -
New Dispute
triggerEmit new event for each new disputeInstantv0.1.5 -
New Failed Invoice Payment
triggerEmit new event for each new failed invoice paymentInstantv0.1.5 -
New Failed Payment
triggerEmit new event for each new failed paymentInstantv0.1.5 -
New Invoice
triggerEmit new event for each new invoiceInstantv0.1.5 -
New Payment
triggerEmit new event for each new paymentInstantv0.1.6 -
New Subscription
triggerEmit new event for each new subscriptionInstantv0.1.5 -
Subscription Updated
triggerEmit new event on a new subscription is updatedInstantv0.1.5
MULTI-APP
Use Stripe with other popular apps
Most products don't stop at one integration. Pair Stripe with the other apps your users rely on, and ship use cases that span both.
- App slug
- stripe
- Authentication
- API key
- Categories
- Commerce
- Actions
- 48
- Triggers
- 11
- API proxy
- Available