Remote Pricing Plans API
The Pricing Plans API from Remote — 3 operation(s) for pricing plans.
The Pricing Plans API from Remote — 3 operation(s) for pricing plans.
openapi: 3.0.0
info:
title: Remote Address Details Pricing Plans API
version: 0.1.0
servers:
- url: https://gateway.remote.com/
variables: {}
- url: https://gateway.remote-sandbox.com/
variables: {}
security:
- OAuth2: []
tags:
- name: Pricing Plans
paths:
/v1/companies/{company_id}/pricing-plans:
get:
callbacks: {}
deprecated: false
description: 'List all pricing plans for a company.
Currently the endpoint only returns the pricing plans for the EOR monthly product and the contractor products (Standard, Plus and COR).
## Scopes
| Category | Read only Scope | Write only Scope (read access implicit) |
|---|---|---|
| Manage companies (`company_management`) | View pricing plans (`pricing_plan:read`) | Manage pricing plans (`pricing_plan:write`) |
'
operationId: get_v1_companies_company_id_pricing-plans
parameters:
- description: Company ID
example: 123e4567-e89b-12d3-a456-426614174000
in: path
name: company_id
required: true
schema:
$ref: '#/components/schemas/UuidSlug'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ListCompanyPricingPlansResponse'
description: Success
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedResponse'
description: Unauthorized
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundResponse'
description: Not Found
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableEntityResponse'
description: Unprocessable Entity
security:
- OAuth2ClientCredentials:
- https://gateway.remote.com/company.manage
- pricing_plan:read
- pricing_plan:write
- company_management
- all:write
- all:read
- OAuth2AuthorizationCode:
- https://gateway.remote.com/company.manage
- pricing_plan:read
- pricing_plan:write
- company_management
- all:write
- all:read
summary: List pricing plans
tags:
- Pricing Plans
post:
callbacks: {}
deprecated: false
description: '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.
## Scopes
| Category | Read only Scope | Write only Scope (read access implicit) |
|---|---|---|
| Manage companies (`company_management`) | - | Manage pricing plans (`pricing_plan:write`) |
'
operationId: post_v1_companies_company_id_pricing-plans
parameters:
- description: Company ID
example: 123e4567-e89b-12d3-a456-426614174000
in: path
name: company_id
required: true
schema:
$ref: '#/components/schemas/UuidSlug'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreatePricingPlanParams'
description: Create Pricing Plan parameters
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CreatePricingPlanResponse'
description: Success
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedResponse'
description: Unauthorized
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundResponse'
description: Not Found
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableEntityResponse'
description: Unprocessable Entity
security:
- OAuth2ClientCredentials:
- https://gateway.remote.com/company.manage
- pricing_plan:write
- company_management
- all:write
summary: Create a pricing plan for a company
tags:
- Pricing Plans
/v1/pricing-plan-partner-templates:
get:
callbacks: {}
deprecated: false
description: 'List all pricing plan partner templates.
## Scopes
| Category | Read only Scope | Write only Scope (read access implicit) |
|---|---|---|
| Manage companies (`company_management`) | View pricing plans (`pricing_plan:read`) | Manage pricing plans (`pricing_plan:write`) |
'
operationId: get_v1_pricing-plan-partner-templates
parameters: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ListPricingPlanPartnerTemplatesResponse'
description: Success
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedResponse'
description: Unauthorized
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundResponse'
description: Not Found
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableEntityResponse'
description: Unprocessable Entity
security:
- OAuth2ClientCredentials:
- https://gateway.remote.com/company.manage
- pricing_plan:read
- pricing_plan:write
- company_management
- all:write
- all:read
summary: List pricing plan partner templates
tags:
- Pricing Plans
/v1/companies/{company_id}/product-prices:
get:
callbacks: {}
deprecated: false
description: 'list product prices in the company''s desired currency.
the endpoint currently only returns the product prices for the EOR monthly product and the contractor products (Standard, Plus and COR).
the product prices are then used to create a pricing plan for the company.
## Scopes
| Category | Read only Scope | Write only Scope (read access implicit) |
|---|---|---|
| Manage companies (`company_management`) | View pricing plans (`pricing_plan:read`) | Manage pricing plans (`pricing_plan:write`) |
'
operationId: get_v1_companies_company_id_product-prices
parameters:
- description: Company ID
example: 123e4567-e89b-12d3-a456-426614174000
in: path
name: company_id
required: true
schema:
$ref: '#/components/schemas/UuidSlug'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ListProductPricesResponse'
description: Success
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedResponse'
description: Unauthorized
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundResponse'
description: Not Found
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableEntityResponse'
description: Unprocessable Entity
security:
- OAuth2ClientCredentials:
- https://gateway.remote.com/company.manage
- pricing_plan:read
- pricing_plan:write
- company_management
- all:write
- all:read
summary: Show product prices in the company's desired currency
tags:
- Pricing Plans
components:
schemas:
ParameterError:
example:
code: invalid_param
message: Invalid parameter
param: employment_id
properties:
code:
description: An error code that describes the nature of the error.
type: string
message:
description: A developer friendly error message that gives details on what the error was and how it may be remedied.
type: string
param:
description: The parameter that lead to the error message.
type: string
required:
- code
- message
- param
title: ParameterError
type: object
PricingPlan:
additionalProperties: false
description: A pricing plan assigned to a company, defining the product, billing frequency, and cost.
example:
base_price:
amount: 29900
currency:
code: CZK
name: Czech Koruna
symbol: Kč
end_date: '2025-12-31'
id: 3b840951-099f-4bd5-90b9-032f7bfe51d9
price:
amount: 29900
currency:
code: CZK
name: Czech Koruna
symbol: Kč
product:
description: EOR Monthly
features:
- Feature 1
- Feature 2
frequency: monthly
name: EOR Monthly
short_name: EOR
tier: standard
start_date: '2025-01-01'
type: termed
properties:
base_price:
$ref: '#/components/schemas/Price'
end_date:
description: 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
format: date
nullable: true
type: string
id:
description: The unique identifier (UUID) of the pricing plan.
type: string
price:
$ref: '#/components/schemas/Price'
product:
$ref: '#/components/schemas/Product'
start_date:
description: 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
format: date
type: string
type:
description: The pricing plan type (e.g., "termed" for fixed-term, "evergreen" for ongoing).
type: string
required:
- id
- type
- start_date
- end_date
- product
- price
- base_price
title: PricingPlan
type: object
CreatePricingPlanWithPartnerTemplateParams:
additionalProperties: false
description: Parameters for creating a pricing plan with a partner template
example:
pricing_plan_partner_template_id: 37e7f0ce-055c-46a1-b60f-1ac73a083699
start_date: '2025-01-01'
properties:
pricing_plan_partner_template_id:
description: The pricing plan partner template ID
format: uuid
type: string
start_date:
description: The start date of the pricing plan
format: date
type: string
required:
- pricing_plan_partner_template_id
title: CreatePricingPlanWithPartnerTemplateParams
type: object
PricingPlanPartnerTemplate:
additionalProperties: false
description: Pricing plan partner template
example:
base_price:
amount: 29900
currency:
code: CZK
name: Czech Koruna
symbol: Kč
id: 3b840951-099f-4bd5-90b9-032f7bfe51d9
price:
amount: 29900
currency:
code: CZK
name: Czech Koruna
symbol: Kč
product:
description: EOR Monthly
features:
- Feature 1
- Feature 2
frequency: monthly
name: EOR Monthly
short_name: EOR
tier: standard
properties:
base_price:
$ref: '#/components/schemas/Price'
id:
type: string
period:
description: The period in months for the template, 0 means unlimited
type: integer
price:
$ref: '#/components/schemas/Price'
product:
$ref: '#/components/schemas/Product'
unlimited:
description: Whether the template is unlimited in time (do not expire)
type: boolean
required:
- id
- product
- price
- base_price
title: PricingPlanPartnerTemplate
type: object
ListCompanyPricingPlansResponse:
additionalProperties: false
description: Company pricing plans
example:
data:
pricing_plans:
- base_price:
amount: 29900
currency:
code: CZK
name: Czech Koruna
symbol: Kč
end_date: '2025-12-31'
id: 3b840951-099f-4bd5-90b9-032f7bfe51d9
price:
amount: 29900
currency:
code: CZK
name: Czech Koruna
symbol: Kč
product:
description: EOR Monthly
features:
- Feature 1
- Feature 2
frequency: monthly
name: EOR Monthly
short_name: EOR
tier: standard
start_date: '2025-01-01'
type: termed
properties:
data:
additionalProperties: false
properties:
pricing_plans:
items:
$ref: '#/components/schemas/PricingPlan'
type: array
required:
- pricing_plans
type: object
required:
- data
title: ListCompanyPricingPlansResponse
type: object
ProductPrice:
additionalProperties: false
example:
base_price:
amount: 29900
currency:
code: CZK
name: Czech Koruna
symbol: Kč
id: 123e4567-e89b-12d3-a456-426614174000
name: EOR Monthly Core
properties:
base_price:
$ref: '#/components/schemas/Price'
id:
description: The product price id
format: uuid
type: string
name:
description: The product price name
type: string
required:
- id
- name
- base_price
title: ProductPrice
type: object
CurrencyDefinition:
description: Currency object without a UUID identifier
example:
code: CZK
name: Czech Koruna
symbol: Kč
properties:
code:
type: string
name:
type: string
symbol:
type: string
required:
- code
- name
- symbol
title: CurrencyDefinition
type: object
UnauthorizedResponse:
description: Returned when the request does not include valid authentication credentials. Ensure you are passing a valid OAuth2 access token or API token in the Authorization header.
example:
message: Unauthorized
properties:
message:
pattern: Unauthorized
type: string
required:
- message
title: UnauthorizedResponse
type: object
UnprocessableEntityResponse:
anyOf:
- properties:
errors:
type: object
required:
- errors
type: object
- properties:
message:
oneOf:
- type: string
- $ref: '#/components/schemas/ParameterError'
- items:
$ref: '#/components/schemas/ParameterError'
title: ParameterErrors
type: array
- $ref: '#/components/schemas/ActionError'
- items:
$ref: '#/components/schemas/ActionError'
title: ActionErrors
type: array
required:
- message
type: object
example:
errors:
some_field:
- is invalid
title: UnprocessableEntityResponse
type: object
ActionError:
properties:
action:
description: The action that lead to the error message.
type: string
code:
description: An error code that describes the nature of the error.
type: string
message:
description: A developer friendly error message that gives details on what the error was and how it may be remedied.
type: string
required:
- code
- message
- action
title: ActionError
type: object
Product:
additionalProperties: false
description: A Remote product offering (e.g., EOR, Contractor Management) with its tier and billing frequency.
example:
description: EOR Monthly
features:
- Feature 1
- Feature 2
frequency: monthly
name: EOR Monthly
short_name: EOR
tier: standard
properties:
description:
description: A description of the product.
type: string
features:
description: Features included in this product tier.
items:
type: string
type: array
frequency:
description: The billing frequency (e.g., "monthly", "annually").
type: string
identifier:
description: A unique machine-readable identifier for this product.
type: string
name:
description: The full product name (e.g., "EOR Monthly").
type: string
short_name:
description: A short display name for the product (e.g., "EOR").
type: string
tier:
description: The product tier (e.g., "standard", "premium").
type: string
required:
- name
- tier
- frequency
title: Product
type: object
NotFoundResponse:
description: Returned when the requested resource does not exist or is not accessible with the current authentication credentials.
example:
message: '{resource} not found'
properties:
message:
description: A message indicating which resource was not found.
pattern: Not Found
type: string
title: NotFoundResponse
type: object
CreatePricingPlanResponse:
additionalProperties: false
description: Response for creating a pricing plan
example:
data:
pricing_plan:
base_price:
amount: 29900
currency:
code: CZK
name: Czech Koruna
symbol: Kč
end_date: '2025-12-31'
id: 3b840951-099f-4bd5-90b9-032f7bfe51d9
price:
amount: 29900
currency:
code: CZK
name: Czech Koruna
symbol: Kč
product:
description: EOR Monthly
features:
- Feature 1
- Feature 2
frequency: monthly
name: EOR Monthly
short_name: EOR
tier: standard
start_date: '2025-01-01'
type: termed
properties:
data:
additionalProperties: false
properties:
pricing_plan:
$ref: '#/components/schemas/PricingPlan'
required:
- pricing_plan
type: object
required:
- data
title: CreatePricingPlanResponse
type: object
UuidSlug:
description: Identifier of the employment being terminated.
example: 663e0b79-c893-45ff-a1b2-f6dcabc098b5
format: uuid
title: UuidSlug
type: string
ListProductPricesResponse:
additionalProperties: false
example:
data:
product_prices:
- base_price:
amount: 29900
currency:
code: CZK
name: Czech Koruna
symbol: Kč
id: 123e4567-e89b-12d3-a456-426614174000
name: EOR Monthly Core
properties:
data:
additionalProperties: false
properties:
product_prices:
items:
$ref: '#/components/schemas/ProductPrice'
type: array
required:
- product_prices
type: object
required:
- data
title: ListProductPricesResponse
type: object
CreatePricingPlanWithoutPartnerTemplateParams:
additionalProperties: false
description: Parameters for creating a pricing plan without a partner template
example:
amount: 29900
currency_code: USD
product_price_id: 37e7f0ce-055c-46a1-b60f-1ac73a083699
properties:
amount:
description: The amount in cents
type: integer
currency_code:
description: The currency code
type: string
product_price_id:
description: The product price ID
format: uuid
type: string
required:
- product_price_id
- currency_code
- amount
title: CreatePricingPlanWithoutPartnerTemplateParams
type: object
CreatePricingPlanParams:
additionalProperties: false
anyOf:
- $ref: '#/components/schemas/CreatePricingPlanWithoutPartnerTemplateParams'
- $ref: '#/components/schemas/CreatePricingPlanWithPartnerTemplateParams'
description: Parameters for creating a pricing plan
example:
amount: 29900
currency_code: USD
product_price_id: 37e7f0ce-055c-46a1-b60f-1ac73a083699
title: CreatePricingPlanParams
type: object
ListPricingPlanPartnerTemplatesResponse:
additionalProperties: false
description: List of pricing plan partner templates
example:
data:
pricing_plan_partner_templates:
- base_price:
amount: 29900
currency:
code: CZK
name: Czech Koruna
symbol: Kč
id: 3b840951-099f-4bd5-90b9-032f7bfe51d9
price:
amount: 29900
currency:
code: CZK
name: Czech Koruna
symbol: Kč
product:
description: EOR Monthly
features:
- Feature 1
- Feature 2
frequency: monthly
name: EOR Monthly
short_name: EOR
tier: standard
properties:
data:
additionalProperties: false
properties:
pricing_plan_partner_templates:
items:
$ref: '#/components/schemas/PricingPlanPartnerTemplate'
type: array
required:
- pricing_plan_partner_templates
type: object
required:
- data
title: ListPricingPlanPartnerTemplatesResponse
type: object
Price:
additionalProperties: false
description: A monetary amount with its currency, used for pricing plan costs.
example:
amount: 29900
currency:
code: CZK
name: Czech Koruna
symbol: Kč
properties:
amount:
description: Amount in cents
type: integer
currency:
$ref: '#/components/schemas/CurrencyDefinition'
required:
- currency
- amount
title: Price
type: object
securitySchemes:
BasicAuth:
description: 'Authenticate using the basic authentication for partners.
Use the CLIENT_ID as login and CLIENT_SECRET as password.
'
scheme: basic
type: http
ClientToken:
description: 'Authenticate a partner using only the the provided `client_token`.
This authentication method only allows accessing marketing endpoints.
'
scheme: bearer
type: http
CustomerAPIToken:
description: 'Authenticate using API Key generated by the customer in their Integration Settings page.
'
scheme: bearer
type: http
OAuth2:
description: 'Authenticate using OAuth 2.0 protocol.
'
flows:
authorizationCode:
authorizationUrl: /auth/oauth2/authorize
scopes:
company_department:read: company_department:read
webhook:write: webhook:write
magic_link:write: magic_link:write
offboarding:write: offboarding:write
custom_field:write: custom_field:write
address:write: address:write
expense:read: expense:read
employment:write: employment:write
identity_verification:write: identity_verification:write
timesheet:write: timesheet:write
travel_letter:write: travel_letter:write
incentive:read: incentive:read
personal_detail:read: personal_detail:read
invoices:write: invoices:write
work_authorization:write: work_authorization:write
timeoff:write: timeoff:write
company_structure:read: company_structure:read
benefit_renewal:write: benefit_renewal:write
benefit_offer:read: benefit_offer:read
employment_documents: employment_documents
onboarding:write: onboarding:write
payroll_run:read: payroll_run:read
risk_reserve:write: risk_reserve:write
invoices: invoices
resignation_letter:read: resignation_letter:read
resignation:read: resignation:read
convert_currency:read: convert_currency:read
employments: employments
probation_document:read: probation_document:read
company_admin: company_admin
payroll: payroll
help_center_article:read: help_center_article:read
timesheet:read: timesheet:read
custom_field_value:write: custom_field_value:write
company_currencies:read: company_currencies:read
payslip:read: payslip:read
pay_item:write: pay_item:write
resignation:write: resignation:write
custom_field:read: custom_field:read
payroll_calendar:read: payroll_calendar:read
contract_amendment:write: contract_amendment:write
offboarding:read: offboarding:read
timeoff:read: timeoff:read
probation_document:write: probation_document:write
country:read: country:read
webhook:read: webhook:read
company_department:write: company_department:write
company_manager:read: company_manager:read
pay_item:read: pay_item:read
contract_amendment:read: contract_amendment:read
company:read: company:read
sso_configuration:write: sso_configuration:write
benefit_offer:write: benefit_offer:write
contract_eligibility:write: contract_eligibility:write
benefit_renewal:read: benefit_renewal:read
background_check:read: background_check:read
custom_field_value:read: custom_field_value:read
expense:write: expense:write
identity_verification:read: identity_verification:read
address:read: address:read
document:write: document:write
time_and_attendance: time_and_attendance
employment_payments: employment_payments
form:read: form:read
work_authorization:read: work_authorization:read
invoices:read: invoices:read
incentive:write: incentive:write
employment:read: employment:read
contract:read: contract:read
company_manager:write: company_manager:write
travel_letter:read: travel_letter:read
document:read: document:read
sso_configuration:read: sso_configuration:read
tokenUrl: /auth/oauth2/token
clientCredentials:
scopes:
company:read: company:read
company:write: company:write
company_admin: company_admin
company_management: company_management
convert_currency:read: convert_currency:read
country:read: country:read
employment_documents: employment_documents
employment_payments: employment_payments
employments: employments
help_center_article:read: help_center_article:read
invoices: invoices
payroll: payroll
payroll_calendar:read: payroll_calendar:read
pricing_plan:read: pricing_plan:read
pricing_plan:write: pricing_plan:write
time_and_attendance: time_and_attendance
webhook:read: webhook:read
webhook:write: webhook:write
tokenUrl: /auth/oauth2/token
type: oauth2
OAuth2Assertion:
description: 'Authenticate as the employee using the `urn:ietf:params:oauth:grant-type:jwt-bearer` grant in the OAuth2 protocol.
'
flows:
clientCredentials:
scopes:
address:read: address:read
address:write: address:write
bank_account:read: bank_account:read
bank_account:write: bank_account:write
document:read: document:read
document:write: document:write
emergency_contact:read: emergency_contact:read
emergency_contact:write: emergency_contact:write
employment_documents: employment_documents
employment_payments: employment_payments
employments: employments
expense:read: expense:read
incentive:read: incentive:read
payroll: payroll
payslip:read: payslip:read
personal_detail:read: personal_detail:read
personal_detail:write: personal_detail:write
time_and_attendance: time_and_attendance
timeoff:read: timeoff:read
timeoff:write: timeoff:write
timesheet:read: timesheet:read
tokenUrl: /auth/oauth2/token
x-assertionType: urn:ietf:params:oauth:client-assertion-type:jwt-bearer
type: oauth2
OAuth2AuthorizationCode:
description: 'Authenticate as the token authorizer using `authorization_code` / `refresh_token` grants in the OAuth 2.0 protocol.
'
flows:
authorizationCode:
authorizationUrl: /auth/oauth2/authorize
refreshUrl: /auth/oauth2/token
scopes:
company_department:read: company_department:read
webhook:write: webhook:write
magic_link:write: magic_link:write
offboarding:write: offboarding:write
custom_field:write: custom_field:write
address:write: address:write
expense:read: expense:read
employment:write: employment:write
identity_verification:write: identity_verification:write
timesheet:write: timesheet:write
travel_letter:write: travel_letter:write
incentive:read: incentive:read
personal_detail:read: personal_detail:read
invoices:write: invoices:write
work_authorization:write: work_authorization:write
timeoff:write: timeoff:write
company_structure:read: company_structure:read
benefit_renewal:write: benefit_renewal:write
benefit_offer:read: benefit_offer:read
employment_documents: employment_documents
onboarding:write: onboarding:write
payroll_run:read: payroll_run:read
risk_reserve:write: risk_reserve:write
invoices: invoices
resignation_letter:read: resignation_letter:read
resignation:read: resignation:read
convert_currency:read: convert_currency:read
employments: employments
probation_document:read: probation_document:read
company_admin: company_admin
payroll: payroll
help_center_article:read: help_center_article:read
timesheet:read: timesheet:read
custom_field_value:write: custom_field_value:write
company_
# --- truncated at 32 KB (35 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/remote/refs/heads/main/openapi/remote-pricing-plans-api-openapi.yml