# Create Subscription — ProfitWell

> Create a subscription See docs here

- Key: `profitwell-create-subscription`
- Type: Action (Write)
- Version: 0.0.3
- App: ProfitWell (`profitwell`) — https://pipedream.com/apps/profitwell.md
- This page (HTML): https://pipedream.com/apps/profitwell/actions/create-subscription
- Hints: open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/profitwell/actions/create-subscription/create-subscription.ts

## Description

Create a subscription [See docs here](https://profitwellapiv2.docs.apiary.io/#/reference/manually-added-customers/creating-subscriptions/create-a-subscription)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `userId` | `string` | No | Only use if you are referencing an existing user for whom you need to create an additional subscription. |
| `userAlias` | `string` | No | For a new user, you can include your own identifier here. If creating a subscription for an existing user, this can be used instead of User ID. |
| `subscriptionAlias` | `string` | No | If included, you can use this to reference the subscription later, instead of its ID. Note that this alias must be unique across all users in your company, and cannot contain more than 36 characters. |
| `email` | `string` | Yes | The email address of the user. This will be the display text that is used on the Customers tab. |
| `planId` | `string` | Yes | The ID of the plan that the user is on. For the sake of consistency (and the ability to later segment your data), this name should be consistent across everyone who is on this plan. |
| `planInterval` | `string` | Yes | The billing cycle for this plan. |
| `planCurrency` | `string` | No | The currency in which users of this plan are charged. See the docs for the full list of accepted currency codes. |
| `status` | `string` | No | Status |
| `value` | `integer` | Yes | The amount that you bill your user, per billing period, in cents. |
| `effectiveDate` | `string` | Yes | UNIX timestamp (in seconds) of when the subscription starts. You can also provide a valid date/time string and Pipedream will automatically convert it to a UNIX timestamp. Examples: 1644933600 2022-02-15 2022-02-15T14:00Z |

## 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": "profitwell",
      },
    },
  },
)

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: "profitwell-create-subscription",
  arguments: {
    userId: "User ID",
    userAlias: "User Alias",
  },
})
```

**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: "profitwell-create-subscription",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    profitwell: { authProvisionId: "apn_xxxxxxx" },
    userId: "User ID",
    userAlias: "User Alias",
  },
})

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": "profitwell-create-subscription",
    "configured_props": {
      "profitwell": { "authProvisionId": "apn_xxxxxxx" },
      "userId": "User ID",
      "userAlias": "User Alias"
    }
  }'
```

---

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