---
title: "Create a pricing plan for a company"
method: POST
path: "/v1/companies/{company_id}/pricing-plans"
tags: ["Pricing Plans"]
---

# Create a pricing plan for a company

`POST /v1/companies/{company_id}/pricing-plans`

## Request

- Base URL: `https://gateway.remote.com`
- URL: `https://gateway.remote.com/v1/companies/{company_id}/pricing-plans`
- Auth: one of:
  - OAuth 2
    - Client credentials
    - Token URL: `/auth/oauth2/token` scopes: `https://gateway.remote.com/company.manage`
  - OAuth 2
    - Client credentials
    - Token URL: `/auth/oauth2/token` scopes: `pricing_plan:write`
  - OAuth 2
    - Client credentials
    - Token URL: `/auth/oauth2/token` scopes: `all:write`

Create a pricing plan for a company, in order to do that we have 2 ways:

1. Create a pricing plan from a partner template
2. Create a pricing plan from a product price

The pricing plan is always created in the company's desired currency.

## Authentication

This endpoint requires the following token type:

- **Client credentials access token** (`OAuth2ClientCredentials`) — obtained through the Client Credentials flow or the Refresh Token flow. See [Authentication for partners](https://developer.remote.com/docs/authentication-for-partners).

## Scopes

Any one of the scopes in a token type's row is enough. `all:write` works too.

| Token type | Category | Read only Scope | Write only Scope (read access implicit) |
|---|---|---|---|
| Client credentials access token | Manage companies (`company_management`) | - | Manage pricing plans (`pricing_plan:write`) |

## Path parameters

- `company_id` string, uuid, required: A unique identifier in UUID v4 format.

## Request body

- union: Parameters for creating a pricing plan
  - object: Parameters for creating a pricing plan without a partner template
    - `amount` integer, required: The amount in cents
    - `currency_code` string, required: The currency code
    - `product_price_id` string, uuid, required: The product price ID
  - object: Parameters for creating a pricing plan with a partner template
    - `pricing_plan_partner_template_id` string, uuid, required: The pricing plan partner template ID
    - `start_date` string, date: The start date of the pricing plan

## Response `200`

Success

- CreatePricingPlanResponse: Response for creating a pricing plan
  - `data` object, required
    - `pricing_plan` PricingPlan, required: A pricing plan assigned to a company, defining the product, billing frequency, and cost.
      - `base_price` Price, required: A monetary amount with its currency, used for pricing plan costs.
        - `amount` integer, required: Amount in cents
        - `currency` CurrencyDefinition, required: Currency object without a UUID identifier
          - `code` string, required
          - `name` string, required
          - `symbol` string, required
      - `end_date` string, date, nullable, required: End date of the pricing plan this will be nil if the pricing plan is unlimited otherwise it will be the last day of the month
      - `id` string, required: The unique identifier (UUID) of the pricing plan.
      - `price` Price, required: A monetary amount with its currency, used for pricing plan costs.
        - `amount` integer, required: Amount in cents
        - `currency` CurrencyDefinition, required: Currency object without a UUID identifier
          - `code` string, required
          - `name` string, required
          - `symbol` string, required
      - `product` Product, required: A Remote product offering (e.g., EOR, Contractor Management) with its tier and billing frequency.
        - `description` string: A description of the product.
        - `features` string[]: Features included in this product tier.
        - `frequency` string, required: The billing frequency (e.g., "monthly", "annually").
        - `identifier` string: A unique machine-readable identifier for this product.
        - `name` string, required: The full product name (e.g., "EOR Monthly").
        - `short_name` string: A short display name for the product (e.g., "EOR").
        - `tier` string, required: The product tier (e.g., "standard", "premium").
      - `start_date` string, date, required: Start date of the pricing plan this will always be the first of the month, for example 2025-01-01 will be used if the user provided 2025-01-02
      - `type` string, required: The pricing plan type (e.g., "termed" for fixed-term, "evergreen" for ongoing).

## Other responses

- `401`: Unauthorized
- `404`: Not Found
- `422`: Unprocessable Entity

---

[API](https://skmtc.dev/remote-com/apis/partner-configuration.md) - [All operations](https://skmtc.dev/remote-com/apis/partner-configuration/llms.txt) - [OpenAPI document](https://skmtc.dev/remote-com/apis/partner-configuration/revisions/85c8e4880e38?raw)
