Remote Basic Information API

The Basic Information API from Remote — 2 operation(s) for basic information.

OpenAPI Specification

remote-basic-information-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Remote Address Details Basic Information API
  version: 0.1.0
servers:
- url: https://gateway.remote.com/
  variables: {}
- url: https://gateway.remote-sandbox.com/
  variables: {}
security:
- OAuth2: []
tags:
- name: Basic Information
paths:
  /v2/employments/{employment_id}/basic-information:
    get:
      callbacks: {}
      deprecated: false
      description: 'Returns the employment''s basic information.


        This endpoint requires and returns country-specific data. The exact required and returned fields will

        vary depending on which country the employment is in. To see the list of parameters for each country,

        see the **Show form schema** endpoint under the [Countries](#tag/Countries) category.


        Please note that the compliance requirements for each country are subject to change according to local

        laws. Given its continual updates, using Remote''s [json-schema-form](https://developer.remote.com/docs/how-json-schemas-work) should be considered in order to avoid

        compliance issues and to have the latest version of a country requirements.


        If you are using this endpoint to build an integration, make sure you are dynamically collecting or

        displaying the latest parameters for each country by querying the _"Show form schema"_ endpoint.


        For more information on JSON Schemas, see the **How JSON Schemas work** documentation.


        To learn how you can dynamically generate forms to display in your UI, see the documentation for

        the [json-schema-form](https://developer.remote.com/docs/how-json-schemas-work) tool.




        ## Scopes


        | Category | Read only Scope | Write only Scope (read access implicit) |

        |---|---|---|

        | Manage employments (`employments`) | View employments (`employment:read`) | Manage employments (`employment:write`) |

        '
      operationId: get_v2_employments_employment_id_basic-information
      parameters:
      - description: Employment ID
        example: 93t3j-employment-id-9suej43
        in: path
        name: employment_id
        required: true
        schema:
          type: string
      - description: Version of the employment_basic_information form schema
        example: 1
        in: query
        name: employment_basic_information_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/EmploymentDetailsOnlyResponse'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestResponse'
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenResponse'
          description: Forbidden
        '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: Unprocessable Entity
      security:
      - CustomerAPIToken:
        - https://gateway.remote.com/company.manage
        - employment:read
        - employment:write
        - employments
        - all:write
        - all:read
        OAuth2AuthorizationCode:
        - https://gateway.remote.com/company.manage
        - employment:read
        - employment:write
        - employments
        - all:write
        - all:read
      summary: Get basic information
      tags:
      - Basic Information
    put:
      callbacks: {}
      deprecated: false
      description: 'Updates employment''s basic information.


        Supported employment statuses: `created`, `job_title_review`, `created_reserve_paid`, `created_awaiting_reserve`.


        This endpoint requires and returns country-specific data. The exact required and returned fields will

        vary depending on which country the employment is in. To see the list of parameters for each country,

        see the **Show form schema** endpoint under the [Countries](#tag/Countries) category.


        Please note that the compliance requirements for each country are subject to change according to local

        laws. Given its continual updates, using Remote''s [json-schema-form](https://developer.remote.com/docs/how-json-schemas-work) should be considered in order to avoid

        compliance issues and to have the latest version of a country requirements.


        If you are using this endpoint to build an integration, make sure you are dynamically collecting or

        displaying the latest parameters for each country by querying the _"Show form schema"_ endpoint.


        For more information on JSON Schemas, see the **How JSON Schemas work** documentation.


        To learn how you can dynamically generate forms to display in your UI, see the documentation for

        the [json-schema-form](https://developer.remote.com/docs/how-json-schemas-work) tool.




        ## Scopes


        | Category | Read only Scope | Write only Scope (read access implicit) |

        |---|---|---|

        | Manage employments (`employments`) | - | Manage employments (`employment:write`) |

        '
      operationId: put_v2_employments_employment_id_basic-information
      parameters:
      - description: Employment ID
        example: 93t3j-employment-id-9suej43
        in: path
        name: employment_id
        required: true
        schema:
          type: string
      - description: Version of the employment_basic_information form schema
        example: 1
        in: query
        name: employment_basic_information_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
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmploymentBasicInformationParams'
        description: Employment basic information params
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmploymentDetailsOnlyResponse'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestResponse'
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenResponse'
          description: Forbidden
        '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
        - employment:write
        - employments
        - all:write
        OAuth2AuthorizationCode:
        - https://gateway.remote.com/company.manage
        - employment:write
        - employments
        - all:write
      summary: Update basic information
      tags:
      - Basic Information
  /v1/employments/{employment_id}/basic-information:
    put:
      callbacks: {}
      deprecated: false
      description: 'Updates employment''s basic information.


        Supported employment statuses: `created`, `job_title_review`, `created_reserve_paid`, `created_awaiting_reserve`.


        This endpoint requires and returns country-specific data. The exact required and returned fields will

        vary depending on which country the employment is in. To see the list of parameters for each country,

        see the **Show form schema** endpoint under the [Countries](#tag/Countries) category.


        Please note that the compliance requirements for each country are subject to change according to local

        laws. Given its continual updates, using Remote''s [json-schema-form](https://developer.remote.com/docs/how-json-schemas-work) should be considered in order to avoid

        compliance issues and to have the latest version of a country requirements.


        If you are using this endpoint to build an integration, make sure you are dynamically collecting or

        displaying the latest parameters for each country by querying the _"Show form schema"_ endpoint.


        For more information on JSON Schemas, see the **How JSON Schemas work** documentation.


        To learn how you can dynamically generate forms to display in your UI, see the documentation for

        the [json-schema-form](https://developer.remote.com/docs/how-json-schemas-work) tool.




        ## Scopes


        | Category | Read only Scope | Write only Scope (read access implicit) |

        |---|---|---|

        | Manage employments (`employments`) | - | Manage employments (`employment:write`) |

        '
      operationId: put_v1_employments_employment_id_basic-information
      parameters:
      - description: Employment ID
        example: 93t3j-employment-id-9suej43
        in: path
        name: employment_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmploymentBasicInformationParams'
        description: Employment basic information 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
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenResponse'
          description: Forbidden
        '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
        - employment:write
        - employments
        - all:write
        OAuth2AuthorizationCode:
        - https://gateway.remote.com/company.manage
        - employment:write
        - employments
        - all:write
      summary: Update basic information
      tags:
      - Basic Information
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
    UserStatus:
      description: 'The status of the user account associated with this employment.


        - `active`: The user account is active and the user can log in.

        - `created`: The user account has been created but not yet activated.

        - `initiated`: The user has been invited but has not completed registration.

        - `cancelled`: The user account was cancelled before activation.

        - `inactive`: The user account has been deactivated (e.g., after offboarding).

        - `deleted`: The user account has been deleted.

        '
      enum:
      - active
      - created
      - initiated
      - cancelled
      - inactive
      - deleted
      example: active
      title: UserStatus
      type: string
    ProvisionalStartDate:
      description: 'Indicates the expected start date of the employee or contractor.


        Required for employees, but optional for contractors. Date format is in ISO8601 without the time component.


        See the **Date and Time Format** documentation for more details on how the Remote API works with dates.

        '
      example: '2022-03-21'
      format: date
      title: ProvisionalStartDate
      type: string
    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
    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
    Employment:
      description: Complete information of an employment, including all onboarding task statuses, country-specific form data (address, contract, administrative, etc.), and contractor-specific settings where applicable.
      example:
        personal_details: {}
        manager_email: john.doe@company.com
        provisional_start_date: '2021-07-03'
        address_details: {}
        pricing_plan_details:
          frequency: annually
        full_name: Jane Smith
        type: employee
        employment_lifecycle_stage: employee_self_enrollment
        administrative_details: {}
        company_id: e31adae1-company-id-af5fba7dd803
        work_address_details: {}
        bill_to_legal_entity_id: 663e0b79-c893-45ff-a1b2-f6dcabc098b5
        work_email: jane.smith@company.com
        status: created
        updated_at: '2021-07-15T18:18:17Z'
        basic_information: {}
        job_title: Engineer
        id: 20a72f86-employment-id-9e4942a902ff
        manager: John Doe
        login_email: jane@smith.com
        employment_model: eor
        personal_email: jane@smith.com
        country:
          alpha_2_code: PT
          code: PRT
          contractor_products_available:
          - standard
          - plus
          - cor
          country_subdivisions:
          - code: PT-06
            name: Coimbra
            subdivision_type: District
          - code: PT-11
            name: Lisboa
            subdivision_type: District
          employment_agreement_preview_available: true
          eor_onboarding: true
          locked_benefits: after_first_hire
          name: Portugal
          region: Europe
          subregion: Southern Europe
          supported_json_schemas:
          - additional_documents
          - address_details
          - administrative_details
          - employment-basic-information
          - bank_account_details
          - contract_details
          - emergency_contact
        user_status: active
        bank_account_details: []
        files: []
        engaged_by_legal_entity_id: 663e0b79-c893-45ff-a1b2-f6dcabc098b5
        billing_address_details: {}
        onboarding_tasks:
          address_details:
            description: Primary residence.
            status: completed
          administrative_details:
            description: Information we need for tax purposes.
            status: completed
          bank_account_details:
            description: Bank account used for receiving salary payments.
            status: completed
          billing_address_details:
            description: Address associated with the employee's bank account.
            status: completed
          contract_details:
            description: Employee-specific details for their employment agreement.
            status: completed
          emergency_contact_details:
            description: Who should be called in an emergency.
            status: completed
          employment_document_details:
            description: We need some additional documents.
            status: pending
          personal_details:
            description: Personal details, such as name and date of birth.
            status: completed
          pricing_plan_details:
            description: How often Remote will bill employers for management fees.
            status: completed
        contract_details: {}
        emergency_contact_details: {}
        eligible_for_onboarding_cancellation: true
        manager_employment_id: 20a72f86-employment-id-9e4942a902ff
        created_at: '2021-11-11T18:44:39'
      properties:
        personal_details:
          description: Personal details information. Its properties may vary depending on the country.
          type: object
        short_id:
          $ref: '#/components/schemas/ShortId'
        department:
          description: Name of related department, if any. Otherwise, null.
          nullable: true
          type: string
        manager_email:
          description: The email address of the employee's manager. Null if no manager is assigned.
          nullable: true
          type: string
        provisional_start_date:
          $ref: '#/components/schemas/ProvisionalStartDate'
        address_details:
          description: Home address information. Its properties may vary depending on the country.
          type: object
        pricing_plan_details:
          $ref: '#/components/schemas/PricingPlanDetails'
        full_name:
          description: The employee's full name.
          type: string
        type:
          description: 'For the employment types `contractor`, `global_payroll_employee` and `direct_employee`, only [List employments](#operation/get_index_employment) and

            [Show employment](#operation/get_show_employment) operations are available.

            '
          enum:
          - employee
          - contractor
          - direct_employee
          - global_payroll_employee
          type: string
        contractor_settings:
          description: Contractor-specific settings. Only present for contractor employments.
          nullable: true
          properties:
            requires_work_confirmation:
              description: Whether the contractor requires work confirmation before submitting invoices.
              type: boolean
          type: object
        employment_lifecycle_stage:
          $ref: '#/components/schemas/EmploymentLifecycleStage'
        administrative_details:
          description: Administrative information. Its properties may vary depending on the country.
          type: object
        contractor_type:
          description: Type of contractor product. Only present for contractor employments. 'standard' for Contractor Standard, 'cor' for Contractor of Record, 'plus' for Contractor Plus.
          enum:
          - standard
          - cor
          - plus
          nullable: true
          type: string
        contractor_rate:
          description: Contractor compensation rate details. Only present for contractor employments when rate is configured.
          nullable: true
          properties:
            amount:
              properties:
                amount:
                  description: Rate amount as decimal
                  type: number
                currency:
                  properties:
                    code:
                      description: Currency code (e.g., USD, EUR)
                      type: string
                  type: object
              type: object
            pay_frequency:
              description: Payment frequency cadence
              enum:
              - weekly
              - bi_weekly
              - semi_monthly
              - monthly
              nullable: true
              type: string
            slug:
              description: Unique identifier for the contractor rate
              type: string
            type:
              description: Rate type indicating billing frequency
              enum:
              - hourly
              - daily
              - weekly
              - monthly
              - one_off
              type: string
          type: object
        company_id:
          description: The unique identifier (UUID) of the company this employment belongs to.
          type: string
        expiration_date:
          description: 'The planned service end date for contractor of record (COR) employments.


            For signed COR contractors, this date is stored on the contract record (not in `contract_details`).

            It is `null` for employee employments or unsigned contractor agreements.


            Date format is ISO 8601 without the time component (e.g. "2024-12-31").

            '
          format: date
          nullable: true
          type: string
        work_address_details:
          description: Work address information. Its properties may vary depending on the country.
          type: object
        bill_to_legal_entity_id:
          description: The unique identifier (UUID) of the legal entity that is billed for this employment.
          example: 663e0b79-c893-45ff-a1b2-f6dcabc098b5
          format: uuid
          nullable: true
          title: BillToLegalEntityID
          type: string
        work_email:
          description: The employee's work email address, typically provided by the employer.
          type: string
        status:
          $ref: '#/components/schemas/EmploymentStatus'
        updated_at:
          description: The timestamp when this employment record was last updated.
          format: date-time
          type: string
        basic_information:
          description: 'Employment basic information. Its properties may vary depending on the country.

            '
          type: object
        job_title:
          description: The employee's job title. May be null if not yet set.
          nullable: true
          type: string
        id:
          description: The unique identifier (UUID) of the employment.
          type: string
        probation_period_end_date:
          description: The date when the employee's probation period ends, if applicable.
          format: date
          type: string
        department_id:
          description: Unique ID of related department, if any. Otherwise, null.
          example: 663e0b79-c893-45ff-a1b2-f6dcabc098b5
          format: uuid
          nullable: true
          title: DepartmentID
          type: string
        manager:
          description: The full name of the employee's manager.
          type: string
        login_email:
          description: The email address the employee uses to log in to the Remote platform.
          type: string
        external_id:
          description: A unique reference code for the employment record in a non-Remote system. While uniqueness is recommended, it is not strictly enforced within Remote's system.
          type: string
        employment_model:
          description: 'For the employment models `peo` and `global_payroll`, only [List employments](#operation/get_index_employment) and

            [Show employment](#operation/get_show_employment) operations are available.

            '
          enum:
          - global_payroll
          - peo
          - eor
          nullable: true
          type: string
        personal_email:
          description: The employee's personal email address, used for account-related communications.
          type: string
        country:
          $ref: '#/components/schemas/NullableCountry'
        user_status:
          $ref: '#/components/schemas/UserStatus'
        seniority_date:
          $ref: '#/components/schemas/EmploymentSeniorityDate'
        bank_account_details:
          items:
            description: List of bank account information. Its properties may vary depending on the country.
            type: object
          type: array
        files:
          description: Documents associated with this employment (e.g., contracts, tax forms, identity documents).
          items:
            $ref: '#/components/schemas/File'
          type: array
        active_contract_id:
          description: The unique identifier (UUID) of the currently active contract for this employment.
          type: string
        engaged_by_legal_entity_id:
          description: The unique identifier (UUID) of the legal entity that engaged this employment.
          example: 663e0b79-c893-45ff-a1b2-f6dcabc098b5
          format: uuid
          nullable: true
          title: EngagedByLegalEntityID
          type: string
        billing_address_details:
          description: Billing address information. Its properties may vary depending on the country.
          type: object
        onboarding_tasks:
          $ref: '#/components/schemas/OnboardingTasks'
        contract_details:
          description: Contract information. Its properties may vary depending on the country.
          type: object
        emergency_contact_details:
          description: Emergency contact information. Its properties may vary depending on the country.
          type: object
        eligible_for_onboarding_cancellation:
          description: Whether this employment can still be cancelled during the onboarding process. Once the employment is active, this will be false.
          type: boolean
        manager_employment_id:
          description: The employment ID of the employee's manager on Remote, if the manager is also managed through Remote. Null otherwise.
          nullable: true
          type: string
        created_at:
          description: The timestamp when this employment record was created.
          type: string
      required:
      - address_details
      - administrative_details
      - bank_account_details
      - billing_address_details
      - company_id
      - contract_details
      - country
      - created_at
      - emergency_contact_details
      - files
      - full_name
      - id
      - type
      - employment_model
      - work_address_details
      - job_title
      - manager_email
      - manager_employment_id
      - onboarding_tasks
      - personal_details
      - personal_email
      - login_email
      - pricing_plan_details
      - status
      - employment_lifecycle_stage
      - updated_at
      - work_email
      - eligible_for_onboarding_cancellation
      title: Employment
      type: object
    ShortId:
      description: Unique short identifier for the employment, automatically generated and visible in select areas of the Remote platform. Not intended as a replacement for the employment `id` field.
      example: WN1IZT
      title: ShortId
      type: string
    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
    ForbiddenResponse:
      description: Returned when the authenticated user or token does not have permission to perform the requested action. Check that the token has the required OAuth2 scopes and that the user has the necessary role.
      example:
        message: Forbidden
      properties:
        message:
          pattern: Forbidden
          type: string
      required:
      - message
      title: ForbiddenResponse
      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
    File:
      additionalProperties: false
      description: A file associated with an employment, such as a contract, tax form, or identity document.
      example:
        id: 9880b711-file-id-ecf8f551bd78
        inserted_at: '2021-07-15T18:18:17Z'
        name: id.pdf
        sub_type: personal_id
        type: id
      properties:
        id:
          description: The unique identifier (UUID) of the file.
          type: string
        inserted_at:
          $ref: '#/components/schemas/DateTimeIso8601'
        name:
          description: The file name including extension (e.g., "id.pdf", "contract.pdf").
          type: string
        sub_type:
          description: A more specific classification of the file within its type (e.g., "personal_id" within type "id", or "ir_35" within type "contract"). Null if no sub-type applies.
          nullable: true
          type: string
        type:
          description: The broad category of the file (e.g., "id", "contract", "tax_form").
          type: string
      required:
      - id
      - inserted_at
      - name
      - type
      title: File
      type: object
    CountrySubdivision:
      description: A subdivision of a supported country on Remote
      example:
        code: PT-11
        name: Lisboa
        s

# --- truncated at 32 KB (62 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/remote/refs/heads/main/openapi/remote-basic-information-api-openapi.yml