Remote Partner Configuration API
The Partner Configuration API from Remote — 7 operation(s) for partner configuration.
The Partner Configuration API from Remote — 7 operation(s) for partner configuration.
openapi: 3.0.0
info:
title: Remote Address Details Partner Configuration API
version: 0.1.0
servers:
- url: https://gateway.remote.com/
variables: {}
- url: https://gateway.remote-sandbox.com/
variables: {}
security:
- OAuth2: []
tags:
- name: Partner Configuration
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:
- Partner Configuration
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:
- Partner Configuration
/v1/sso-configuration/details:
get:
callbacks: {}
deprecated: false
description: 'Shows the SSO Configuration details for the company.
## Scopes
| Category | Read only Scope | Write only Scope (read access implicit) |
|---|---|---|
| Manage company resources (`company_admin`) | - | Manage SSO (`sso_configuration:write`) |
'
operationId: get_v1_sso-configuration_details
parameters: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SSOConfigurationDetailsResponse'
description: Success
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestResponse'
description: Bad Request
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedResponse'
description: Unauthorized
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundResponse'
description: Not Found
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsResponse'
description: Unprocessable Entity
security:
- CustomerAPIToken:
- https://gateway.remote.com/company.manage
- sso_configuration:write
- company_admin
- all:write
OAuth2AuthorizationCode:
- https://gateway.remote.com/company.manage
- sso_configuration:write
- company_admin
- all:write
summary: Show the SSO Configuration Details
tags:
- Partner Configuration
/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:
- Partner Configuration
/v1/sso-configuration:
get:
callbacks: {}
deprecated: false
description: 'Shows the current SSO Configuration for the company.
## Scopes
| Category | Read only Scope | Write only Scope (read access implicit) |
|---|---|---|
| Manage company resources (`company_admin`) | View SSO configuration (`sso_configuration:read`) | Manage SSO (`sso_configuration:write`) |
'
operationId: get_v1_sso-configuration
parameters: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SSOConfigurationResponse'
description: Success
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestResponse'
description: Bad Request
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedResponse'
description: Unauthorized
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundResponse'
description: Not Found
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsResponse'
description: Unprocessable Entity
security:
- CustomerAPIToken:
- https://gateway.remote.com/company.manage
- sso_configuration:read
- sso_configuration:write
- company_admin
- all:write
- all:read
OAuth2AuthorizationCode:
- https://gateway.remote.com/company.manage
- sso_configuration:read
- sso_configuration:write
- company_admin
- all:write
- all:read
summary: Show the current SSO Configuration
tags:
- Partner Configuration
post:
callbacks: {}
deprecated: false
description: 'Creates the SSO Configuration for the company.
## Scopes
| Category | Read only Scope | Write only Scope (read access implicit) |
|---|---|---|
| Manage company resources (`company_admin`) | - | Manage SSO (`sso_configuration:write`) |
'
operationId: post_v1_sso-configuration
parameters: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateSSOConfigurationParams'
description: CreateSSOConfiguration
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/CreateSSOConfigurationResponse'
description: Created
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestResponse'
description: Bad Request
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedResponse'
description: Unauthorized
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundResponse'
description: Not Found
'409':
content:
application/json:
schema:
$ref: '#/components/schemas/ConflictResponse'
description: Conflict
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableEntityResponse'
description: Unprocessable Entity
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsResponse'
description: Unprocessable Entity
security:
- CustomerAPIToken:
- https://gateway.remote.com/company.manage
- sso_configuration:write
- company_admin
- all:write
OAuth2AuthorizationCode:
- https://gateway.remote.com/company.manage
- sso_configuration:write
- company_admin
- all:write
summary: Create the SSO Configuration
tags:
- Partner Configuration
/v1/magic-link:
post:
callbacks: {}
deprecated: false
description: 'Generates a magic link for a passwordless authentication.
To create a magic link for a company admin, you need to provide the `user_id` parameter.
To create a magic link for an employee, you need to provide the `employment_id` parameter.
## Scopes
| Category | Read only Scope | Write only Scope (read access implicit) |
|---|---|---|
| Manage company resources (`company_admin`) | - | Create magic links (`magic_link:write`) |
'
operationId: post_v1_magic-link
parameters:
- description: 'Requires a Company-scoped access token obtained through the Authorization Code flow or the Refresh Token flow.
The refresh token needs to have been obtained through the Authorization Code flow.
'
example: Bearer <COMPANY-SCOPED ACCESS TOKEN>
in: header
name: Authorization
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/MagicLinkParams'
description: Magic links generator body
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/MagicLinkResponse'
description: Success
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableEntityResponse'
description: Unprocessable Entity
security:
- OAuth2AuthorizationCode:
- https://gateway.remote.com/company.manage
- magic_link:write
- company_admin
- all:write
summary: Magic links generator
tags:
- Partner Configuration
/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:
- Partner Configuration
/v1/companies/{company_id}/create-token:
post:
callbacks: {}
deprecated: false
description: Creates new tokens for a given company
operationId: post_v1_companies_company_id_create-token
parameters:
- description: The ID of the company
example: ec5366b1-a1bc-434c-bdec-7604c5ba6af6
in: path
name: company_id
required: true
schema:
type: string
- description: The scope of the token
example: document:read timeoff:write
in: query
name: scope
required: false
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CompanyTokenResponse'
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: []
summary: Create a new token for a company
tags:
- Partner Configuration
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
MagicLinkResponse:
additionalProperties: false
example:
data:
url: https://example.com/magic-link
properties:
data:
additionalProperties: false
properties:
url:
type: string
required:
- url
type: object
required:
- data
title: MagicLinkResponse
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
CompanyTokenResponse:
additionalProperties: false
description: OAuth2 tokens returned after a company authorizes access. Use the access token in the Authorization header for subsequent API calls. Use the refresh token to obtain a new access token when the current one expires.
example:
access_token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.cThIIoDvwdueQB468K5xDc5633seEFoqwxjF_xSJyQQ
expires_in: 3600
refresh_token: 16ab2c69-fd3c-4112-855d-2052baa10d20
properties:
access_token:
description: 'The OAuth2 access token (JWT). Include this in the `Authorization: Bearer <token>` header for API requests.'
type: string
expires_in:
description: The number of seconds until the access token expires.
type: integer
refresh_token:
description: The refresh token used to obtain a new access token when the current one expires.
type: string
required:
- access_token
- expires_in
- refresh_token
title: CompanyTokenResponse
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
CreateSSOConfigurationResponse:
example:
data:
audience_uri: urn:auth:remote-sso:89c4fbb2-some-id-8e4b-280f8795bbd8
certificate: c29tZSBjZXJ0aWZpY2F0ZSBleGFtcGxl...
domain: example.com
identity_provider_url: example.provider.com
sso_url: https://remote-sso.com/login/callback?connection=89c4fbb2-some-id-8e4b-280f8795bbd8
properties:
data:
$ref: '#/components/schemas/CreateSSOConfigurationResult'
required:
- data
title: CreateSSOConfigurationResponse
type: object
ConflictResponse:
description: Returned when the request conflicts with the current state of a resource (HTTP 409). For example, trying to create a resource that already exists or performing an action that requires the resource to be in a different state.
example:
message: Company needs to be in status active to manage employments
properties:
message:
description: A human-readable message describing the conflict and the expected state.
type: string
title: ConflictResponse
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
SSOConfiguration:
description: A complete SSO configuration for a company, including both Remote-generated values (sso_url, audience_uri) and company-provided values (domain, identity_provider_url).
example:
audience_uri: urn:auth:remote-sso:89c4fbb2-some-id-8e4b-280f8795bbd8
domain: yourcompanydomain1.com,yourcompanydomain2.com
identity_provider_url: https://someproviderurl.com/
sso_url: https://remote-sso.com/login/callback?connection=89c4fbb2-some-id-8e4b-280f8795bbd8
properties:
audience_uri:
description: The audience URI (Entity ID) for SAML assertions.
type: string
domain:
description: The email domain(s) that should be routed through SSO. Multiple domains can be comma-separated (e.g., "company.com,company.co.uk").
type: string
identity_provider_url:
description: The URL of the company's SAML identity provider (IdP) login endpoint.
type: string
sso_url:
description: The SSO login callback URL (Assertion Consumer Service URL).
type: string
required:
- sso_url
- audience_uri
- domain
- identity_provider_url
title: SSOConfiguration
type: object
CreateSSOConfigurationParams:
additionalProperties: false
description: Parameters for setting up SAML SSO for a company. Requires the email domain, identity provider URL, and the IdP's SAML signing certificate.
example:
certificate: c29tZSBjZXJ0aWZpY2F0ZSBleGFtcGxl...
domain: example.com
identity_provider_url: example.provider.com
properties:
certificate:
description: The SAML signing certificate from your identity provider, base64-encoded.
format: binary
type: string
domain:
description: The email domain(s) to route through SSO (e.g., "example.com").
type: string
identity_provider_url:
description: The URL of the SAML identity provider login endpoint.
type: string
required:
- domain
- identity_provider_url
- certificate
title: CreateSSOConfigurationParams
type: object
SSOConfigurationResponse:
description: SSO Configuration response
example:
data:
audience_uri: urn:auth:remote-sso:89c4fbb2-some-id-8e4b-280f8795bbd8
domain: yourcompanydomain1.com,yourcompanydomain2.com
identity_provider_url: https://someproviderurl.com/
sso_url: https://remote-sso.com/login/callback?connection=89c4fbb2-some-id-8e4b-280f8795bbd8
properties:
data:
$ref: '#/components/schemas/SSOConfiguration'
title: SSOConfigurationResponse
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
BadRequestResponse:
description: Returned when the request is malformed or contains invalid parameters. The message may be a simple string or a structured object with a code and detailed message.
example:
message: invalid {resource}
oneOf:
- properties:
message:
description: A human-readable error message describing what was wrong with the request.
type: string
required:
- message
type: object
- properties:
message:
properties:
code:
type: string
message:
type: string
required:
- code
- message
type: object
type: object
title: BadRequestResponse
type: object
CreateSSOConfigurationResult:
example:
audience_uri: urn:auth:remote-sso:89c4fbb2-some-id-8e4b-280f8795bbd8
certificate: c29tZSBjZXJ0aWZpY2F0ZSBleGFtcGxl...
domain: example.
# --- truncated at 32 KB (56 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/remote/refs/heads/main/openapi/remote-partner-configuration-api-openapi.yml