Stripe ACTION
Create a Usage Record
With 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 information
- Action
- Writes data
- API key
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's Stripe account once, then configure and run Create a Usage Record from your backend or agent.
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-create-usage-record",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
stripe: { authProvisionId: "apn_xxxxxxx" },
customer: "Customer ID",
price: "Price ID",
},
})
console.log(result)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-create-usage-record",
"configured_props": {
"stripe": { "authProvisionId": "apn_xxxxxxx" },
"customer": "Customer ID",
"price": "Price ID"
}
}'// 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()
// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
name: "stripe-create-usage-record",
arguments: {
customer: "Customer ID",
price: "Price ID",
},
})SCHEMA
Inputs
Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.
| Property | Type | Description |
|---|---|---|
customer Customer ID | string | Example: cus_Jz4ErxGo9t1agg Optional Dynamic |
price Price ID | string | Example: price_0HuVAoGHO3mdGsgAi0l1fEtm Optional Dynamic |
subscription Subscription ID | string | Example: sub_K0CC9GlXAWpBQg Required Dynamic |
id Subscription Item ID | string | Example: si_K0CCMs2vNHPxV2 Required Dynamic |
timestamp Timestamp | integer | The timestamp for the usage event. This timestamp must be within the current billing period of the subscription of the provided subscription item. When passing now, Stripe records usage for the current time. Default is now if a value is not provided. Optional |
quantity Quantity | integer | The usage quantity for the specified timestamp Required |
action Action | string | Add the quantity to the usage at the specified timestamp, or overwrite the usage quantity at that timestamp. If the subscription has billing thresholds, increment is the only allowed value. Optional |
REFERENCE
Tool details
Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.
- Registry key
- stripe-create-usage-record
- Version
- 0.1.1
- App
- Stripe
- Authentication
- API key
- Behavior
- May modify external data
- Source
- View on GitHub ↗