Remote Testing & Sandbox API
The Testing & Sandbox API from Remote — 14 operation(s) for testing & sandbox.
The Testing & Sandbox API from Remote — 14 operation(s) for testing & sandbox.
openapi: 3.0.0
info:
title: Remote Address Details Testing & Sandbox API
version: 0.1.0
servers:
- url: https://gateway.remote.com/
variables: {}
- url: https://gateway.remote-sandbox.com/
variables: {}
security:
- OAuth2: []
tags:
- name: Testing & Sandbox
paths:
/v1/sdk/telemetry-errors:
post:
callbacks: {}
deprecated: false
description: 'Receives error telemetry from the frontend SDK.
Errors are logged to observability backend for monitoring and debugging.
'
operationId: post_v1_sdk_telemetry-errors
parameters: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SDKErrorPayload'
description: SDK Error Report
required: true
responses:
'204':
content:
application/json: {}
description: No Content
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Bad Request
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitResponse'
description: Too Many Requests
security:
- ClientToken: []
- OAuth2ClientCredentials: []
summary: Report SDK errors
tags:
- Testing & Sandbox
/v1/sandbox/companies/{company_id}/bypass-eligibility-checks:
post:
callbacks: {}
description: 'Pass KYB and credit risk for a company without the intervention of a Remote admin.
This endpoint is only available in Sandbox, otherwise it will respond with a 404.
'
operationId: post_v1_sandbox_companies_company_id_bypass-eligibility-checks
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
- description: Company ID
example: 5bdc2cb9-6bda-4cf7-bc6e-0b122791e52a
in: path
name: company_id
required: true
schema:
type: string
x-resource-type: company
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponse'
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
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableEntityResponse'
description: Unprocessable Entity
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsResponse'
description: Too many requests
security:
- CustomerAPIToken: []
OAuth2AuthorizationCode: []
summary: Pass KYB
tags:
- Testing & Sandbox
/v1/sandbox/employments/{employment_id}/risk-reserve-proof-of-payments/approve:
post:
callbacks: {}
description: 'Approves a risk reserve proof of payment without the intervention of a Remote admin.
Triggers an `employment.cor_hiring.proof_of_payment_accepted` webhook event.
This endpoint is only available in Sandbox, otherwise it will respond with a 404.
'
operationId: post_v1_sandbox_employments_employment_id_risk-reserve-proof-of-payments_approve
parameters:
- description: Employment ID
example: 5b44799c-e845-4d5c-9c52-b6e5f7c3d4e1
in: path
name: employment_id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/RiskReserveProofOfPaymentResponse'
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
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableEntityResponse'
description: Unprocessable Entity
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsResponse'
description: Too many requests
security:
- CustomerAPIToken: []
OAuth2AuthorizationCode: []
summary: Approve risk reserve proof of payment
tags:
- Testing & Sandbox
/v1/test-schema:
get:
callbacks: {}
deprecated: false
description: Get a mock JSON Schema for testing purposes
operationId: get_v1_test-schema
parameters:
- description: Version of the form schema
example: 1
in: query
name: json_schema_version
required: false
schema:
default: latest
oneOf:
- description: Specific version number
minimum: 1
type: integer
- description: Use latest version
enum:
- latest
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CompanyFormResponse'
description: Success
security:
- OAuth2ClientCredentials: []
summary: Get a mock JSON Schema
tags:
- Testing & Sandbox
/v1/sandbox/benefit-renewal-requests:
post:
callbacks: {}
deprecated: false
description: 'Creates a Benefit Renewal Request for a specific Benefit Group.
This endpoint is only available in Sandbox, otherwise it will respond with a 404.
'
operationId: post_v1_sandbox_benefit-renewal-requests
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/BenefitRenewalRequests.CreateBenefitRenewalRequest'
description: Benefit Renewal Request
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/BenefitRenewalRequests.CreateBenefitRenewalRequestResponse'
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
'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: []
OAuth2AuthorizationCode: []
summary: Creates a Benefit Renewal Request
tags:
- Testing & Sandbox
/v1/sandbox/contract-amendments/{contract_amendment_request_id}/approve:
put:
callbacks: {}
description: 'Approves a contract amendment request without the intervention of a Remote admin.
Approvals done via this endpoint are effective immediately,
regardless of the effective date entered on the contract amendment creation.
This endpoint is only available in Sandbox, otherwise it will respond with a 404.
'
operationId: put_v1_sandbox_contract-amendments_contract_amendment_request_id_approve
parameters:
- description: Contract amendment request ID
example: 6d947344-b053-4a4f-acf0-79d296cbd082
in: path
name: contract_amendment_request_id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ContractAmendmentResponse'
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
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableEntityResponse'
description: Unprocessable Entity
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsResponse'
description: Too many requests
security:
- CustomerAPIToken: []
OAuth2AuthorizationCode: []
summary: Approve Contract Amendment
tags:
- Testing & Sandbox
/v1/sandbox/companies/{company_id}/legal-entities:
post:
callbacks: {}
description: 'Create a new legal entity for a company in a given country, with KYB automatically passed.
The entity is created with active status and can be set as the company''s default
using the reassign default entity endpoint.
This endpoint is only available in Sandbox, otherwise it will respond with a 404.
'
operationId: post_v1_sandbox_companies_company_id_legal-entities
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
- description: Company ID
example: 5bdc2cb9-6bda-4cf7-bc6e-0b122791e52a
in: path
name: company_id
required: true
schema:
type: string
x-resource-type: company
requestBody:
content:
application/json:
schema:
properties:
country_code:
description: ISO 3166-1 alpha-3 country code
example: DEU
type: string
required:
- country_code
type: object
description: Create legal entity params
required: false
responses:
'201':
content:
application/json:
schema:
properties:
data:
properties:
legal_entity_id:
description: Legal entity slug
type: string
name:
description: Legal entity name
type: string
status:
description: Legal entity status
type: string
type: object
type: object
description: Legal entity 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
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableEntityResponse'
description: Unprocessable Entity
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsResponse'
description: Too many requests
security:
- CustomerAPIToken: []
OAuth2AuthorizationCode: []
summary: Create a legal entity
tags:
- Testing & Sandbox
/v1/sandbox/employments:
post:
callbacks: {}
description: "Creates an employment without provisional_start_date validation.\n\nThis endpoint is only available in Sandbox and allows creating employments which\n`provisional_start_date` is in the past. This is especially helpful for:\n * Testing the Timeoff Balance endpoints\n * Testing the Offboarding endpoints\n * Testing features around probation periods\n\nThis endpoint will respond with a 404 outside of the Sandbox environment.\n\nFor creating an employment's parameters outside of testing purposes, use [this\nEmployment create endpoint](#operation/post_create_employment)\n"
operationId: post_v1_sandbox_employments
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/EmploymentCreateParams'
description: Employment params
required: false
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/EmploymentCreationResponse'
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
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableEntityResponse'
description: Unprocessable Entity
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsResponse'
description: Too many requests
security:
- CustomerAPIToken: []
OAuth2AuthorizationCode: []
summary: Create employment
tags:
- Testing & Sandbox
/v1/sandbox/companies/{company_id}/legal-entities/{legal_entity_id}/activate-global-payroll:
post:
callbacks: {}
description: "Enables the Global Payroll product on a legal entity so that GP employees can be created against it.\n\nPerforms three idempotent steps:\n * Adds the Global Payroll product to the company.\n * Flips `global_payroll_enabled` on the legal entity's settings.\n * Ensures a Global Payroll pricing plan exists for the legal entity's country.\n\nThis endpoint is only available in Sandbox, otherwise it will respond with a 404.\n"
operationId: post_v1_sandbox_companies_company_id_legal-entities_legal_entity_id_activate-global-payroll
parameters:
- description: Company ID
example: 5bdc2cb9-6bda-4cf7-bc6e-0b122791e52a
in: path
name: company_id
required: true
schema:
type: string
x-resource-type: company
- description: Legal Entity ID to activate Global Payroll on
example: 5bdc2cb9-6bda-4cf7-bc6e-0b122791e52a
in: path
name: legal_entity_id
required: true
schema:
type: string
x-resource-type: legal_entity
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponse'
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
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableEntityResponse'
description: Unprocessable Entity
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsResponse'
description: Too many requests
security:
- CustomerAPIToken: []
OAuth2AuthorizationCode: []
summary: Activate Global Payroll for a legal entity
tags:
- Testing & Sandbox
/v1/sandbox/webhook-callbacks/trigger:
post:
callbacks: {}
deprecated: false
description: 'Triggers a callback previously registered for webhooks. Use this endpoint to
emit a webhook for testing in the Sandbox environment. This endpoint will
respond with a 404 outside of the Sandbox environment.
'
operationId: post_v1_sandbox_webhook-callbacks_trigger
parameters: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookTriggerParams'
description: Webhook Trigger Params
required: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponse'
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:
- CustomerAPIToken: []
OAuth2AuthorizationCode: []
summary: Trigger a Webhook
tags:
- Testing & Sandbox
/v1/sandbox/employments/{employment_id}:
delete:
callbacks: {}
description: 'Archives an employment, setting its status to `archived`.
This endpoint is only available in Sandbox and allows partners to clean up test
employees during automated E2E testing without requiring Remote manual intervention.
This endpoint will respond with a 404 outside of the Sandbox environment.
'
operationId: delete_v1_sandbox_employments_employment_id
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
- description: Employment ID
example: e3ee69d7-1293-4664-92fc-02625dae5247
in: path
name: employment_id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponse'
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
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableEntityResponse'
description: Unprocessable Entity
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsResponse'
description: Too many requests
security:
- CustomerAPIToken: []
OAuth2AuthorizationCode: []
summary: Archive employment
tags:
- Testing & Sandbox
patch:
callbacks: {}
description: 'Updates an employment. Use this endpoint to:
- modify employment states for testing
- Backdate employment start dates
This endpoint will respond with a 404 outside of the Sandbox environment.
For updating an employment''s parameters outside of testing purposes, use [this Employment update endpoint](#operation/patch_update_employment).
'
operationId: patch_v1_sandbox_employments_employment_id (2)
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
- description: Employment ID
example: e3ee69d7-1293-4664-92fc-02625dae5247
in: path
name: employment_id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EmploymentUpdateParams'
description: Employment params
required: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/EmploymentResponse'
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
'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: Too many requests
security:
- CustomerAPIToken: []
OAuth2AuthorizationCode: []
summary: Update employment
tags:
- Testing & Sandbox
put:
callbacks: {}
description: 'Updates an employment. Use this endpoint to:
- modify employment states for testing
- Backdate employment start dates
This endpoint will respond with a 404 outside of the Sandbox environment.
For updating an employment''s parameters outside of testing purposes, use [this Employment update endpoint](#operation/patch_update_employment).
'
operationId: patch_v1_sandbox_employments_employment_id
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
- description: Employment ID
example: e3ee69d7-1293-4664-92fc-02625dae5247
in: path
name: employment_id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EmploymentUpdateParams'
description: Employment params
required: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/EmploymentResponse'
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
'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: Too many requests
security:
- CustomerAPIToken: []
OAuth2AuthorizationCode: []
summary: Update employment
tags:
- Testing & Sandbox
/v1/sandbox/companies/{company_id}/legal-entities/{legal_entity_id}/set-credit-risk-status:
post:
callbacks: {}
description: 'Sets the credit risk status of a specific legal entity to any valid credit risk status.
Use this endpoint to test hiring flows affected by credit risk, without needing Remote admin intervention.
This endpoint is only available in Sandbox, otherwise it will respond with a 404.
'
operationId: post_v1_sandbox_companies_company_id_legal-entities_legal_entity_id_set-credit-risk-status
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
- description: Company ID
example: 5bdc2cb9-6bda-4cf7-bc6e-0b122791e52a
in: path
name: company_id
required: true
schema:
type: string
x-resource-type: company
- description: Legal Entity ID
example: 5bdc2cb9-6bda-4cf7-bc6e-0b122791e52a
in: path
name: legal_entity_id
required: true
schema:
type: string
x-resource-type: legal_entity
requestBody:
content:
application/json:
schema:
properties:
credit_risk_status:
description: Credit risk status to set.
example: deposit_required
type: string
required:
- credit_risk_status
type: object
description: Credit risk status params
required: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponse'
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
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableEntityResponse'
description: Unprocessable Entity
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequestsResponse'
description: Too many requests
security:
- CustomerAPIToken: []
OAuth2AuthorizationCode: []
summary: Set company credit risk status
tags:
- Testing & Sandbox
/v1/sandbox/companies/{company_id}/default-legal-entity/{legal_entity_id}:
put:
callbacks: {}
description: 'Set a different legal entity as the company''s default entity.
The default entity is used when creating new employments without an explicit entity.
This endpoint is only available in Sandbox, otherwise it will respond with a 404.
'
operationId: put_v1
# --- truncated at 32 KB (116 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/remote/refs/heads/main/openapi/remote-testing-sandbox-api-openapi.yml