# Create a Usage Record — Stripe

> 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…

- Key: `stripe-create-usage-record`
- Type: Action (Write)
- Version: 0.1.1
- App: Stripe (`stripe`) — https://pipedream.com/apps/stripe.md
- This page (HTML): https://pipedream.com/apps/stripe/actions/create-usage-record
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/stripe/actions/create-usage-record/create-usage-record.mjs

## Description

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](https://stripe.com/docs/api/usage_records/create) for more information

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `customer` | `string` | No | Example: cus_Jz4ErxGo9t1agg Options are loaded from the connected account. |
| `price` | `string` | No | Example: price_0HuVAoGHO3mdGsgAi0l1fEtm Options are loaded from the connected account. |
| `subscription` | `string` | Yes | Example: sub_K0CC9GlXAWpBQg Options are loaded from the connected account. |
| `id` | `string` | Yes | Example: si_K0CCMs2vNHPxV2 Options are loaded from the connected account. |
| `timestamp` | `integer` | No | 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. |
| `quantity` | `integer` | Yes | The usage quantity for the specified timestamp |
| `action` | `string` | No | 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. |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
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 accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_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",
  },
})
```

**TypeScript**

```ts
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**

```bash
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"
    }
  }'
```

---

- App: https://pipedream.com/apps/stripe.md · All apps: https://pipedream.com/apps
