Skip to content

Remote creates opportunities globally by connecting employers with top talent and empowering individuals to achieve financial and personal freedom through a comprehensive suite of HR solutions. Remote's Python SDK generated by Konfig (https://konfigthis.com/).

License

Notifications You must be signed in to change notification settings

konfig-sdks/remote-python-sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Visit Remote

Remote

Talent is everywhere. Opportunity is not. Remote's mission is to create opportunity everywhere, empowering employers to find and hire the best talent, and enabling individuals to build financial and personal freedom.

Remote is a Global HR Platform that helps companies hire, manage, and pay their entire team — and more effectively compete in the modern global economy through our comprehensive set of core solutions including, HRIS, payroll, international employment, contractor management, and more.

Whether you're just starting your global journey, or looking to optimize your existing operations, sign up or book a demo - and see how Remote makes global HR simple.

Table of Contents

Requirements

Python >=3.7

Installation

Getting Started

from pprint import pprint
from remote_python_sdk import Remote, ApiException

remote = Remote(

    client_id = 'YOUR_CLIENT_ID',
    client_secret = 'YOUR_CLIENT_SECRET',,

    client_id = 'YOUR_CLIENT_ID',
    client_secret = 'YOUR_CLIENT_SECRET',
)

try:
    # List Benefits Country Summary
    list_summary_response = remote.benefits_country_summary.list_summary()
    print(list_summary_response)
except ApiException as e:
    print("Exception when calling BenefitsCountrySummaryApi.list_summary: %s\n" % e)
    pprint(e.body)
    if e.status == 422:
    if e.status == 404:
        pprint(e.body["message"])
    pprint(e.headers)
    pprint(e.status)
    pprint(e.reason)
    pprint(e.round_trip_time)

Async

async support is available by prepending a to any method.

import asyncio
from pprint import pprint
from remote_python_sdk import Remote, ApiException

remote = Remote(

    client_id = 'YOUR_CLIENT_ID',
    client_secret = 'YOUR_CLIENT_SECRET',,

    client_id = 'YOUR_CLIENT_ID',
    client_secret = 'YOUR_CLIENT_SECRET',
)

async def main():
    try:
        # List Benefits Country Summary
        list_summary_response = await remote.benefits_country_summary.alist_summary()
        print(list_summary_response)
    except ApiException as e:
        print("Exception when calling BenefitsCountrySummaryApi.list_summary: %s\n" % e)
        pprint(e.body)
        if e.status == 422:
        if e.status == 404:
            pprint(e.body["message"])
        pprint(e.headers)
        pprint(e.status)
        pprint(e.reason)
        pprint(e.round_trip_time)

asyncio.run(main())

Raw HTTP Response

To access raw HTTP response values, use the .raw namespace.

from pprint import pprint
from remote_python_sdk import Remote, ApiException

remote = Remote(

    client_id = 'YOUR_CLIENT_ID',
    client_secret = 'YOUR_CLIENT_SECRET',,

    client_id = 'YOUR_CLIENT_ID',
    client_secret = 'YOUR_CLIENT_SECRET',
)

try:
    # List Benefits Country Summary
    list_summary_response = remote.benefits_country_summary.raw.list_summary()
    pprint(list_summary_response.body)
    pprint(list_summary_response.body["data"])
    pprint(list_summary_response.headers)
    pprint(list_summary_response.status)
    pprint(list_summary_response.round_trip_time)
except ApiException as e:
    print("Exception when calling BenefitsCountrySummaryApi.list_summary: %s\n" % e)
    pprint(e.body)
    if e.status == 422:
    if e.status == 404:
        pprint(e.body["message"])
    pprint(e.headers)
    pprint(e.status)
    pprint(e.reason)
    pprint(e.round_trip_time)

Reference

remote.benefits_country_summary.list_summary

List benefits summary for each country with the number of enrolled employees.

🛠️ Usage

list_summary_response = remote.benefits_country_summary.list_summary()

🔄 Return

ListBenefitsCountrySummaryResponse

🌐 Endpoint

/v1/benefits/country-summary get

🔙 Back to Table of Contents


remote.billing_documents.download_pdf

Downloads a billing document PDF

🛠️ Usage

download_pdf_response = remote.billing_documents.download_pdf(
    billing_document_id="93t3j-billing-doc-id-9suej43",
)

⚙️ Parameters

billing_document_id: str

The billing document's ID

🌐 Endpoint

/v1/billing-documents/{billing_document_id}/pdf get

🔙 Back to Table of Contents


remote.billing_documents.list

List billing documents for a company

🛠️ Usage

list_response = remote.billing_documents.list(
    period="\"2023-01\"",
    page=1,
    page_size=30,
)

⚙️ Parameters

period: str

The month for the billing documents (in ISO-8601 format)

page: int

Starts fetching records after the given page

page_size: int

Change the amount of records returned per page, defaults to 20, limited to 100

🔄 Return

BillingDocumentsResponse

🌐 Endpoint

/v1/billing-documents get

🔙 Back to Table of Contents


remote.billing_documents.show_details

Shows a billing document details.

Please contact api-support@remote.com to request access to this endpoint.

🛠️ Usage

show_details_response = remote.billing_documents.show_details(
    billing_document_id="93t3j-billing-doc-id-9suej43",
)

⚙️ Parameters

billing_document_id: str

The billing document's ID

🔄 Return

BillingDocumentResponse

🌐 Endpoint

/v1/billing-documents/{billing_document_id} get

🔙 Back to Table of Contents


remote.companies.create_new_company

Creates a new company.

Creating a company with only the required request body parameters

When you call this endpoint and omit all the optional parameters in the request body, the following resources get created upon a successful response:

  • A new company with status pending.
  • A company owner for the new company with status initiated.

See the update a company endpoint for more details on how to get your company and its owner to active status.

If you'd like to create a company and its owner with active status in a single request, please provide the optional address_details parameter as well.

Accepting the Terms of Service

A required step for creating a company in Remote is to accept our Terms of Service (ToS).

Company managers need to be aware of our Terms of Service and Privacy Policy, hence it's the responsibility of our partners to advise and ensure company managers read and accept the ToS. The terms have to be accepted only once, before creating a company, and the Remote API will collect the acceptance timestamp as its confirmation.

To ensure users read the most recent version of Remote's Terms of Service, their acceptance must be done within the last fifteen minutes prior the company creation action.

To retrieve this information, partners can provide an element with any text and a description explaining that by performing that action they are accepting Remote's Term of Service. For instance, the partner can add a checkbox or a "Create Remote Account" button followed by a description saying "By creating an account, you agree to Remote's Terms of Service. Also see Remote's Privacy Policy".

🛠️ Usage

create_new_company_response = remote.companies.create_new_company(
    company_owner_email="ceo@techvision.com",
    company_owner_name="Joe Smith",
    country_code="USA",
    desired_currency="USD",
    name="Tech Vision",
    terms_of_service_accepted_at="1970-01-01T00:00:00.00Z",
    address_details={},
    bank_account_details={},
    email_domain="string_example",
    external_id="00001111",
    phone_number="+11123123456",
    registration_number="string_example",
    tax_number="123456789",
    action="get_oauth_access_tokens,send_create_password_email",
)

⚙️ Parameters

company_owner_email: str

The company owner email. This value cannot be changed once set.

company_owner_name: str

The company owner name. This value cannot be changed from the Remote API once set.

country_code: str

3-letter country code of the country the company address is located in. For a list of countries supported through the Remote API, make a call to the list countries endpoint. This endpoint will also include the 3-letter country codes you can use for this field.

desired_currency: str

Desired currency for invoicing and displaying converted salaries in Remote UI regardless of the employee's country.

name: str

The company name

terms_of_service_accepted_at: datetime

Date and time the Terms of Service were accepted. To ensure users read the most recent version of Remote's Terms of Service, their action cannot have been done more than fifteen minutes ago. The UTC offset must be included in the ISO 8601 format: YYYY-MM-DD HOURS:MINUTES:SECONDSZ

address_details: Dict[str, Union[bool, date, datetime, dict, float, int, list, str, None]]

Fields can vary depending on the country. Please, check the required fields structure using the Show form schema endpoint. Use the desired country and address_details as the form name for the placeholders. The response complies with the JSON Schema specification.

bank_account_details: Dict[str, Union[bool, date, datetime, dict, float, int, list, str, None]]

Fields can vary depending on the country. Please, check the required fields structure using the Show form schema endpoint. Use the desired country and bank_account_details as the form name for the placeholders. The response complies with the JSON Schema specification.

email_domain: str

The domain of the company. Use this field to specify the company domain name when it's different from the domain in the company owner's email.

external_id: str

Id of the company as represented in the external partner system.

phone_number: str

A phone number the company can be contacted with.

registration_number: str

The company registration number. This field or tax_number (but not both) should be submitted.

tax_number: str

The tax identifier of the company. This field or registration_number (but not both) should be submitted.

action: str

Complementary action(s) to perform when creating a company: - get_oauth_access_tokens returns the user's access and refresh tokens - send_create_password_email sends a reset password token to the company owner's email so they can log in using Remote UI (not needed if integration plans to use SSO only) If action contains send_create_password_email you can redirect the user to https://employ.remote.com/api-integration-new-password-send

⚙️ Request Body

CreateCompanyParams Create Company params

🔄 Return

CompanyCreationResponse

🌐 Endpoint

/v1/companies post

🔙 Back to Table of Contents


remote.companies.list_all

List all companies that authorized your integration to act on their behalf. In other words, these are all the companies that your integration can manage. Any company that has completed the authorization flow for your integration will be included in the response.

🛠️ Usage

list_all_response = remote.companies.list_all()

🔄 Return

CompaniesResponse

🌐 Endpoint

/v1/companies get

🔙 Back to Table of Contents


remote.companies.show_company

Given an ID, shows a company

🛠️ Usage

show_company_response = remote.companies.show_company(
    company_id="0a8s2d1-company-id-2e3f4th",
)

⚙️ Parameters

company_id: str

Company ID

🔄 Return

CompanyResponse

🌐 Endpoint

/v1/companies/{company_id} get

🔙 Back to Table of Contents


remote.companies.update_company

Given an ID and a request object with new information, updates a company.

Getting a company and its owner to active status

If you created a company using the create a company endpoint without all the required request body parameters, you can use this endpoint to provide the missing data. Once the company and its owner have all the necessary data, both their statuses will be set to active and the company onboarding will be marked as "completed".

The following constitutes a company with "all the necessary data":

  • Complete address, with valid address, postal_code, country and state parameters (Varies by country. Use the show form schema endpoint to see which address parameters are required).
  • Company tax_number or registration_number is not nil
  • Company name is not nil (already required when creating the company)
  • Company has a desired_currency in their bank account (already required when creating the company)
  • Company has accepted terms of service (already required when creating the company)

🛠️ Usage

update_company_response = remote.companies.update_company(
    company_id="0a8s2d1-company-id-2e3f4th",
    address_details={},
    bank_account_details={},
    country_code="USA",
    desired_currency="USD",
    name="Tech Vision",
    phone_number="+11123123456",
    registration_number="string_example",
    tax_number="123456789",
)

⚙️ Parameters

company_id: str

Company ID

address_details: Dict[str, Union[bool, date, datetime, dict, float, int, list, str, None]]

Fields can vary depending on the country. Please, check the required fields structure using the Show form schema endpoint. Use the desired country and address_details as the form name for the placeholders. The response complies with the JSON Schema specification.

bank_account_details: Dict[str, Union[bool, date, datetime, dict, float, int, list, str, None]]

Fields can vary depending on the country. Please, check the required fields structure using the Show form schema endpoint. Use the desired country and bank_account_details as the form name for the placeholders. The response complies with the JSON Schema specification.

country_code: str

Country of company address

desired_currency: str

Desired currency for invoicing and displaying converted salaries in Remote UI regardless of the employee's country. This field is only accepted if company is in status pending. Please contact Remote if you wish to update it.

name: str

This field is only accepted if company is in status pending. Please contact Remote if you wish to update it.

phone_number: str

A phone number the company can be contacted with.

registration_number: str

The company registration number. This field or tax_number (but not both) should be submitted. This field is only accepted if company is in status pending.

tax_number: str

The tax identifier of the company. This field or registration_number (but not both) should be submitted. This field is only accepted if company is in status pending.

⚙️ Request Body

UpdateCompanyParams Update Company params

🔄 Return

CompanyResponse

🌐 Endpoint

/v1/companies/{company_id} put

🔙 Back to Table of Contents


remote.companies.update_company_0

Given an ID and a request object with new information, updates a company.

Getting a company and its owner to active status

If you created a company using the create a company endpoint without all the required request body parameters, you can use this endpoint to provide the missing data. Once the company and its owner have all the necessary data, both their statuses will be set to active and the company onboarding will be marked as "completed".

The following constitutes a company with "all the necessary data":

  • Complete address, with valid address, postal_code, country and state parameters (Varies by country. Use the show form schema endpoint to see which address parameters are required).
  • Company tax_number or registration_number is not nil
  • Company name is not nil (already required when creating the company)
  • Company has a desired_currency in their bank account (already required when creating the company)
  • Company has accepted terms of service (already required when creating the company)

🛠️ Usage

update_company_0_response = remote.companies.update_company_0(
    company_id="0a8s2d1-company-id-2e3f4th",
    address_details={},
    bank_account_details={},
    country_code="USA",
    desired_currency="USD",
    name="Tech Vision",
    phone_number="+11123123456",
    registration_number="string_example",
    tax_number="123456789",
)

⚙️ Parameters

company_id: str

Company ID

address_details: Dict[str, Union[bool, date, datetime, dict, float, int, list, str, None]]

Fields can vary depending on the country. Please, check the required fields structure using the Show form schema endpoint. Use the desired country and address_details as the form name for the placeholders. The response complies with the JSON Schema specification.

bank_account_details: Dict[str, Union[bool, date, datetime, dict, float, int, list, str, None]]

Fields can vary depending on the country. Please, check the required fields structure using the Show form schema endpoint. Use the desired country and bank_account_details as the form name for the placeholders. The response complies with the JSON Schema specification.

country_code: str

Country of company address

desired_currency: str

Desired currency for invoicing and displaying converted salaries in Remote UI regardless of the employee's country. This field is only accepted if company is in status pending. Please contact Remote if you wish to update it.

name: str

This field is only accepted if company is in status pending. Please contact Remote if you wish to update it.

phone_number: str

A phone number the company can be contacted with.

registration_number: str

The company registration number. This field or tax_number (but not both) should be submitted. This field is only accepted if company is in status pending.

tax_number: str

The tax identifier of the company. This field or registration_number (but not both) should be submitted. This field is only accepted if company is in status pending.

⚙️ Request Body

UpdateCompanyParams Update Company params

🔄 Return

CompanyResponse

🌐 Endpoint

/v1/companies/{company_id} patch

🔙 Back to Table of Contents


remote.company_department.create_new_department

Creates a new department in the specified company. Department names may be non-unique and must be non-empty with no more than 255 characters (Unicode code points).

🛠️ Usage

create_new_department_response = remote.company_department.create_new_department(
    company_id="669f9e18-889f-4c2c-95b8-67795a3113cc",
    name="Marketing",
)

⚙️ Parameters

company_id: str

The Company ID. Required in all cases, whether the API credentials have access to multiple companies or just one.

name: str

The name of the company department. May be non-unique and limited to 255 characters, maximum.

⚙️ Request Body

CreateCompanyDepartmentParams Create Company Department request params

🔄 Return

CompanyDepartmentCreatedResponse

🌐 Endpoint

/v1/company-departments post

🔙 Back to Table of Contents


remote.company_department.list

Lists all departments for the authorized company specified in the request.

🛠️ Usage

list_response = remote.company_department.list(
    company_id="d2091b1e-b1a4-437a-91ea-2809ffbb6d59",
    paginate=False,
    page=1,
    page_size=20,
)

⚙️ Parameters

company_id: str

Company ID

paginate: bool

Paginate option. Default: true. When true, paginates response; otherwise, does not.

page: int

Starts fetching records after the given page

page_size: int

Number of items per page

🔄 Return

ListCompanyDepartmentsPaginatedResponse

🌐 Endpoint

/v1/company-departments get

🔙 Back to Table of Contents


remote.company_managers.create_invite

Create a Company Manager and sends the invitation email for signing in to the Remote Platform.

🛠️ Usage

create_invite_response = remote.company_managers.create_invite(
    email="string_example",
    name="string_example",
    role="string_example",
    company_id="string_example",
)

⚙️ Parameters

email: str

The work email of the company manager

name: str

The name of the company manager

role: str

The role assigned for the new manager. The value should be one of the following: - admin: an Admin can manage most of the resources in remote. - onboarding_manager: an Onboarding Manager can add, see and manage new hires. - people_manager: a People Manager can view employee profiles of the team members they manage and approve and decline time off and expenses for their employees.

company_id: str

The Company ID. Required if the access token can access multiple companies. Optional otherwise.

⚙️ Request Body

CompanyManagerParams Company Manager params

🔄 Return

CompanyManagerData

🌐 Endpoint

/v1/company-managers post

🔙 Back to Table of Contents


remote.company_managers.delete_user

Deletes a Company Manager user

🛠️ Usage

delete_user_response = remote.company_managers.delete_user(
    user_id="1a8s2d1-user-id-2e3f4tz",
)

⚙️ Parameters

user_id: str

User ID

🔄 Return

SuccessResponse

🌐 Endpoint

/v1/company-managers/{user_id} delete

🔙 Back to Table of Contents


remote.company_managers.list_managers

List all company managers of an integration. If filtered by the company_id param, it lists only company managers belonging to the specified company.

🛠️ Usage

list_managers_response = remote.company_managers.list_managers(
    company_id="0a8s2d1-company-id-2e3f4th",
    page=1,
    page_size=30,
)

⚙️ Parameters

company_id: str

A Company ID to filter the results (only applicable for Integration Partners).

page: int

Starts fetching records after the given page

page_size: int

Change the amount of records returned per page, defaults to 20, limited to 100

🔄 Return

CompanyManagersResponse

🌐 Endpoint

/v1/company-managers get

🔙 Back to Table of Contents


remote.company_managers.show_user

Shows a single company manager user

🛠️ Usage

show_user_response = remote.company_managers.show_user(
    user_id="1a8s2d1-user-id-2e3f4tz",
)

⚙️ Parameters

user_id: str

User ID

🔄 Return

CompanyManagerResponse

🌐 Endpoint

/v1/company-managers/{user_id} get

🔙 Back to Table of Contents


remote.contract_amendments.approve_amendment

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.

🛠️ Usage

approve_amendment_response = remote.contract_amendments.approve_amendment(
    contract_amendment_request_id="6d947344-b053-4a4f-acf0-79d296cbd082",
)

⚙️ Parameters

contract_amendment_request_id: str

Contract amendment request ID

🔄 Return

ContractAmendmentResponse

🌐 Endpoint

/v1/sandbox/contract-amendments/{contract_amendment_request_id}/approve put

🔙 Back to Table of Contents


remote.contract_amendments.check_automatability

Check if a contract amendment request is automatable. If the contract amendment request is automatable, then after submission, it will instantly amend the employee's contract and send them an updated document.

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 Contract Amendments 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 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 tool.

🛠️ Usage

check_automatability_response = remote.contract_amendments.check_automatability(
    amendment_contract_id="c15993d8-aa8a-4fbb-b395-8b7a54f57db1",
    contract_amendment={},
    employment_id="e31adae1-company-id-af5fba7dd803",
)

⚙️ Parameters

amendment_contract_id: str

The contract ID of the contract that needs to be amended.

contract_amendment: Dict[str, Union[bool, date, datetime, dict, float, int, list, str, None]]

Contract amendment informations. As its properties may vary depending on the country, you must query the Show form schema endpoint passing the country code, contract_amendment and the employment ID as request body.

employment_id: str

The employment ID that is related to the contract amendment request.

⚙️ Request Body

CreateContractAmendmentParams Contract Amendment Params

🔄 Return

ContractAmendmentAutomatableResponse

🌐 Endpoint

/v1/contract-amendments/automatable post

🔙 Back to Table of Contents


remote.contract_amendments.create_request

Creates a Contract Amendment request.

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 Contract Amendments 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 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 tool.

🛠️ Usage

create_request_response = remote.contract_amendments.create_request(
    amendment_contract_id="c15993d8-aa8a-4fbb-b395-8b7a54f57db1",
    contract_amendment={},
    employment_id="e31adae1-company-id-af5fba7dd803",
)

⚙️ Parameters

amendment_contract_id: str

The contract ID of the contract that needs to be amended.

contract_amendment: Dict[str, Union[bool, date, datetime, dict, float, int, list, str, None]]

Contract amendment informations. As its properties may vary depending on the country, you must query the Show form schema endpoint passing the country code, contract_amendment and the employment ID as request body.

employment_id: str

The employment ID that is related to the contract amendment request.

⚙️ Request Body

CreateContractAmendmentParams Contract Amendment

🔄 Return

ContractAmendmentResponse

🌐 Endpoint

/v1/contract-amendments post

🔙 Back to Table of Contents


remote.contract_amendments.get_form_schema

Returns the json schema of the contract_amendment form. This endpoint requires a company access token, as forms are dependent on certain properties of companies and their current employments.

🛠️ Usage

get_form_schema_response = remote.contract_amendments.get_form_schema(
    country_code="string_example",
    employment_id="string_example",
    form="contract_amendment",
)

⚙️ Parameters

country_code: str

Country code according to ISO 3-digit alphabetic codes.

employment_id: str

The ID of the employment concerned by the contract amendment request.

form: str

Name of the desired form

⚙️ Request Body

ContractAmendmentSchemaParams Contract Amendment Form

🔄 Return

ContractAmendmentFormResponse

🌐 Endpoint

/v1/contract-amendments/schema post

🔙 Back to Table of Contents


remote.contract_amendments.list_requests

List Contract Amendment requests.

🛠️ Usage

list_requests_response = remote.contract_amendments.list_requests()

🔄 Return

ListContractAmendmentResponse

🌐 Endpoint

/v1/contract-amendments get

🔙 Back to Table of Contents


remote.contract_amendments.show_single_request

Show a single Contract Amendment request.

🛠️ Usage

show_single_request_response = remote.contract_amendments.show_single_request(
    id="93t3j-contract_amendment_id-9suej43",
)

⚙️ Parameters

id: str

Contract amendment request ID

🔄 Return

ContractAmendmentResponse

🌐 Endpoint

/v1/contract-amendments/{id} get

🔙 Back to Table of Contents


remote.cost_calculator.create_employment_estimation

Creates a cost estimation of employments

🛠️ Usage

create_employment_estimation_response = remote.cost_calculator.create_employment_estimation(
    employer_currency_slug="663e0b79-c893-45ff-a1b2-f6dcabc098b5",
    employments=[
        {
            "employment_term": "fixed",
            "region_slug": "region_slug_example",
        }
    ],
    include_benefits=True,
    include_cost_breakdowns=True,
)

⚙️ Parameters

employer_currency_slug: str

Currency Slug

employments: List[CostCalculatorEmploymentParam]
include_benefits: bool
include_cost_breakdowns: bool

⚙️ Request Body

CostCalculatorEstimateParams Estimate params

🔄 Return

CostCalculatorEstimateResponse

🌐 Endpoint

/v1/cost-calculator/estimation post

🔙 Back to Table of Contents


remote.cost_calculator.generate_estimation_pdf

Creates a cost estimation of employments

🛠️ Usage

generate_estimation_pdf_response = remote.cost_calculator.generate_estimation_pdf(
    employer_currency_slug="663e0b79-c893-45ff-a1b2-f6dcabc098b5",
    employments=[
        {
            "employment_term": "fixed",
            "region_slug": "region_slug_example",
        }
    ],
    include_benefits=True,
    include_cost_breakdowns=True,
)

⚙️ Parameters

employer_currency_slug: str

Currency Slug

employments: List[CostCalculatorEmploymentParam]
include_benefits: bool
include_cost_breakdowns: bool

⚙️ Request Body

CostCalculatorEstimateParams Estimate params

🔄 Return

CostCalculatorEstimatePDFResponse

🌐 Endpoint

/v1/cost-calculator/estimation-pdf post

🔙 Back to Table of Contents


remote.cost_calculator.list_countries

Lists active and processing countries

🛠️ Usage

list_countries_response = remote.cost_calculator.list_countries()

🔄 Return

CostCalculatorListCountryResponse

🌐 Endpoint

/v1/cost-calculator/countries get

🔙 Back to Table of Contents


remote.cost_calculator.show_region_fields

Returns required fields JSON Schema for a given region. These are required in order to calculate the cost of employment for the region. These fields are based on employer contributions that are associated with the region or any of it's parent regions.

🛠️ Usage

show_region_fields_response = remote.cost_calculator.show_region_fields(
    slug="slug_example",
)

⚙️ Parameters

slug: str

Slug

🔄 Return

JSONSchemaResponse

🌐 Endpoint

/v1/cost-calculator/regions/{slug}/fields get

🔙 Back to Table of Contents


remote.countries.get_form_schema

Returns the json schema of a supported form. Possible form names are:

- address_details 
- administrative_details 
- bank_account_details 
- employment_basic_information 
- billing_address_details 
- contract_details 
- emergency_contact 
- employment_document_details 
- personal_details 
- pricing_plan_details 

This endpoint requires a company access token, as forms are dependent on certain properties of companies and their current employments.

🛠️ Usage

get_form_schema_response = remote.countries.get_form_schema(
    country_code="PRT",
    form="address_details",
    employment_id="663e0b79-c893-45ff-a1b2-f6dcabc098b5",
)

⚙️ Parameters

country_code: str

Country code according to ISO 3-digit alphabetic codes

form: str

Name of the desired form

employment_id: str

Required for contract_amendment form

🔄 Return

CountryFormResponse

🌐 Endpoint

/v1/countries/{country_code}/{form} get

🔙 Back to Table of Contents


remote.countries.list_alphabetically

Returns a list of all countries that are supported by Remote API alphabetically ordered. The supported list accounts for creating employment with basic information and it does not imply fully onboarding employment via JSON Schema.

🛠️ Usage

list_alphabetically_response = remote.countries.list_alphabetically()

🔄 Return

CountriesResponse

🌐 Endpoint

/v1/countries get

🔙 Back to Table of Contents


remote.countries.list_holidays_by_year

List all holidays of a country for a specific year. Optionally, it can be filtered by country subdivision.

🛠️ Usage

list_holidays_by_year_response = remote.countries.list_holidays_by_year(
    country_code="PRT",
    year="2022",
    country_subdivision_code="PT-10",
)

⚙️ Parameters

country_code: str

Country code according to ISO 3166-1 3-digit alphabetic codes

year: str

Year for the holidays

country_subdivision_code: str

Country subdivision code according to ISO 3166-2 codes

🔄 Return

HolidaysResponse

🌐 Endpoint

/v1/countries/{country_code}/holidays/{year} get

🔙 Back to Table of Contents


remote.custom_fields.list_definitions

Returns custom fields definitions

🛠️ Usage

list_definitions_response = remote.custom_fields.list_definitions(
    page=1,
    page_size=30,
)

⚙️ Parameters

page: int

Starts fetching records after the given page

page_size: int

Change the amount of records returned per page, defaults to 20, limited to 100

🔄 Return

ListEmploymentCustomFieldsResponse

🌐 Endpoint

/v1/custom-fields get

🔙 Back to Table of Contents


remote.custom_fields.show_value

Returns a custom field value for a given employment

🛠️ Usage

show_value_response = remote.custom_fields.show_value(
    custom_field_id="custom_field_id_example",
    employment_id="employment_id_example",
)

⚙️ Parameters

custom_field_id: str

Custom field ID

employment_id: str

Employment ID

🔄 Return

EmploymentCustomFieldValueResponse

🌐 Endpoint

/v1/custom-fields/{custom_field_id}/values/{employment_id} get

🔙 Back to Table of Contents


remote.employment_contracts.get_pending_changes

Get all the pending changes (waiting for aproval or signature) for the employment contract.

🛠️ Usage

get_pending_changes_response = remote.employment_contracts.get_pending_changes(
    employment_id="93t3j-employment_id-9suej43",
)

⚙️ Parameters

employment_id: str

Employment ID

🔄 Return

EmploymentContractPendingChangesResponse

🌐 Endpoint

/v1/employment-contracts/{employment_id}/pending-changes get

🔙 Back to Table of Contents


remote.employments.complete_onboarding

Completes the employee onboarding. When all tasks are completed, the employee is marked as in review status

🛠️ Usage

complete_onboarding_response = remote.employments.complete_onboarding(
    employment_id="string_example",
)

⚙️ Parameters

employment_id: str

⚙️ Request Body

CompleteOnboarding Employment slug

🔄 Return

EmploymentResponse

🌐 Endpoint

/v1/ready post

🔙 Back to Table of Contents


remote.employments.create_employment

Creates an employment. We support creating employees and contractors.

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 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 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 tool.

🛠️ Usage

create_employment_response = remote.employments.create_employment(
    country_code="string_example",
    full_name="string_example",
    job_title="string_example",
    personal_email="string_example",
    basic_information={},
    company_id="string_example",
    type="employee",
    provisional_start_date="Fri Jul 02 17:00:00 PDT 2021",
    seniority_date="2022-03-21",
)

⚙️ Parameters

country_code: str
full_name: str
job_title: str
personal_email: str
basic_information: Dict[str, Union[bool, date, datetime, dict, float, int, list, str, None]]

Employment basic information. When using this field, the same other root level fields (name, personal_email, job_title, provisional_start_date, and seniority_date) will be ignored. Its properties may vary depending on the country, you must query the Show form schema endpoint passing the country code and employment_basic_information as path parameters.

company_id: str

This optional field is deprecated.

type: str

If not provided, it will default to employee.

provisional_start_date: date

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.

seniority_date: datetime

The date the employee first started working for your company. If you don’t include a seniority date, the employee’s start date with Remote will be deemed as the start of the employee’s seniority. Example: Your employee started working for your company on Feb 1, 2022. On Aug 1, 2022, you transferred the employee to Remote and started managing them on the platform. Feb 1, 2022 would be their seniority date. Aug 1, 2022 would be their starting date.

⚙️ Request Body

EmploymentBasicParams Employment params

🔄 Return

EmploymentCreationResponse

🌐 Endpoint

/v1/employments post

🔙 Back to Table of Contents


remote.employments.get_employment_info

Shows all the information of an employment.

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 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 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 tool.

🛠️ Usage

get_employment_info_response = remote.employments.get_employment_info(
    employment_id="93t3j-employment-id-9suej43",
)

⚙️ Parameters

employment_id: str

Employment ID

🔄 Return

EmploymentResponse

🌐 Endpoint

/v1/employments/{employment_id} get

🔙 Back to Table of Contents


remote.employments.invite_start_enrollment

Invite an employment to start the self-enrollment.

Requirements for the invitation to succeed:

  • Employment needs to have the following JSON Schema forms filled: contract_details and pricing_plan_details
  • provisional_start_date must consider the minimum onbaording time of the employment's country

If there are validations errors, they are returned with a Conflict HTTP Status (409) and a descriptive message. HTTP Status OK (200) is returned in case of success.

🛠️ Usage

invite_start_enrollment_response = remote.employments.invite_start_enrollment(
    employment_id="31b8e49b-aa1c-47af-849c-3d0a53e20e0d",
)

⚙️ Parameters

employment_id: str

Employment ID

🔄 Return

SuccessResponse

🌐 Endpoint

/v1/employments/{employment_id}/invite post

🔙 Back to Table of Contents


remote.employments.list_all

Lists all employments, except for the deleted ones.

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 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 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 tool.

🛠️ Usage

list_all_response = remote.employments.list_all(
    company_id="93t3j-company-id-9suej43",
    email="anna@example.com",
    status="active",
    page=1,
    page_size=30,
)

⚙️ Parameters

company_id: str

Company ID

email: str

Filters the results by employments whose login email matches the value

status: str

Filters the results by employments whose status matches the value

page: int

Starts fetching records after the given page

page_size: int

Change the amount of records returned per page, defaults to 20, limited to 100

🔄 Return

ListEmploymentsResponse

🌐 Endpoint

/v1/employments get

🔙 Back to Table of Contents


remote.employments.update_data

Updates an employment.

For created employments: You can change all basic params and onboarding tasks or perform a per onboarding task update. You can also update basic_information.

For active employments: You can update the manager (manager_id field), emergency_contact_details and address_details.

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 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 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 tool.

Automatically inviting an employee

When you submit the contract_details and pricing_plan_details, Remote should have all the required data to automatically send an invite to the employee. You can tell if an automatic invite has been sent by looking at the employment_lifecycle_stage field value. If its value is employee_self_enrollment, it means the employee has received an email to join the Remote platform at their personal_email.

After an automatic invite is sent to an employee, you will not be able to update employment data through the Remote API. After onboarding, only a limited set of employment data will be available for updates, such as emergency_contact_details. If you want to provide additional information for an employment, please make sure to do so before the employee is invited. We block updates to some employment data because employees need to agree to amendments in certain cases, such as when there are changes to their contract_details. Currently, these amendments can only be done through the Remote UI.

Please contact Remote if you need to update contractors via API since it's currently not supported.

🛠️ Usage

update_data_response = remote.employments.update_data(
    full_name="string_example",
    job_title="string_example",
    personal_email="string_example",
    employment_id="93t3j-employment-id-9suej43",
    address_details={},
    administrative_details={},
    bank_account_details={},
    billing_address_details={},
    company_id="string_example",
    contract_details={},
    country={
        "alpha_2_code": "PT",
        "code": "PRT",
        "name": "Portugal",
    },
    emergency_contact_details={},
    manager_id="string_example",
    personal_details={},
    pricing_plan_details={
        "frequency": "annually",
    },
    provisional_start_date="Fri Jul 02 17:00:00 PDT 2021",
    seniority_date="2022-03-21",
    basic_information={},
    department_id="string_example",
)

⚙️ Parameters

full_name: str
job_title: str
personal_email: str
employment_id: str

Employment ID

address_details: Dict[str, Union[bool, date, datetime, dict, float, int, list, str, None]]

Home address information. As its properties may vary depending on the country, you must query the Show form schema endpoint passing the country code and address_details as path parameters.

administrative_details: Dict[str, Union[bool, date, datetime, dict, float, int, list, str, None]]

Administrative information. As its properties may vary depending on the country, you must query the Show form schema endpoint passing the country code and administrative_details as path parameters.

bank_account_details: Dict[str, Union[bool, date, datetime, dict, float, int, list, str, None]]

Bank account information. As its properties may vary depending on the country, you must query the Show form schema endpoint passing the country code and bank_account_details as path parameters.

billing_address_details: Dict[str, Union[bool, date, datetime, dict, float, int, list, str, None]]

Billing address information. As its properties may vary depending on the country, you must query the Show form schema endpoint passing the country code and billing_address_details as path parameters.

company_id: str
contract_details: Dict[str, Union[bool, date, datetime, dict, float, int, list, str, None]]

Contract information. As its properties may vary depending on the country, you must query the Show form schema endpoint passing the country code and contract_details as path parameters.

country: Country
emergency_contact_details: Dict[str, Union[bool, date, datetime, dict, float, int, list, str, None]]

Emergency contact information. As its properties may vary depending on the country, you must query the Show form schema endpoint passing the country code and emergency_contact_details as path parameters.

manager_id: str

The user id of the manager, who should have an admin, owner or people_manager role. You can find these users by querying the Company Managers endpoint. Update of this field is only available for active employments.

personal_details: Dict[str, Union[bool, date, datetime, dict, float, int, list, str, None]]

Personal details information. As its properties may vary depending on the country, you must query the Show form schema endpoint passing the country code and personal_details as path parameters.

pricing_plan_details: PricingPlanDetails
provisional_start_date: date

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.

seniority_date: datetime

The date the employee first started working for your company. If you don’t include a seniority date, the employee’s start date with Remote will be deemed as the start of the employee’s seniority. Example: Your employee started working for your company on Feb 1, 2022. On Aug 1, 2022, you transferred the employee to Remote and started managing them on the platform. Feb 1, 2022 would be their seniority date. Aug 1, 2022 would be their starting date.

basic_information: Dict[str, Union[bool, date, datetime, dict, float, int, list, str, None]]

Employment basic information. As its properties may vary depending on the country, you must query the Show form schema endpoint passing the country code and employment_basic_information as path parameters.

department_id: str

The department of the employment. The department must belong to the same company as the employment.

⚙️ Request Body

EmploymentFullParams Employment params

🔄 Return

EmploymentResponse

🌐 Endpoint

/v1/employments/{employment_id} patch

🔙 Back to Table of Contents


remote.employments.update_details

Updates an employment.

For created employments: You can change all basic params and onboarding tasks or perform a per onboarding task update. You can also update basic_information.

For active employments: You can update the manager (manager_id field), emergency_contact_details and address_details.

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 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 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 tool.

Automatically inviting an employee

When you submit the contract_details and pricing_plan_details, Remote should have all the required data to automatically send an invite to the employee. You can tell if an automatic invite has been sent by looking at the employment_lifecycle_stage field value. If its value is employee_self_enrollment, it means the employee has received an email to join the Remote platform at their personal_email.

After an automatic invite is sent to an employee, you will not be able to update employment data through the Remote API. After onboarding, only a limited set of employment data will be available for updates, such as emergency_contact_details. If you want to provide additional information for an employment, please make sure to do so before the employee is invited. We block updates to some employment data because employees need to agree to amendments in certain cases, such as when there are changes to their contract_details. Currently, these amendments can only be done through the Remote UI.

Please contact Remote if you need to update contractors via API since it's currently not supported.

🛠️ Usage

update_details_response = remote.employments.update_details(
    full_name="string_example",
    job_title="string_example",
    personal_email="string_example",
    employment_id="93t3j-employment-id-9suej43",
    address_details={},
    administrative_details={},
    bank_account_details={},
    billing_address_details={},
    company_id="string_example",
    contract_details={},
    country={
        "alpha_2_code": "PT",
        "code": "PRT",
        "name": "Portugal",
    },
    emergency_contact_details={},
    manager_id="string_example",
    personal_details={},
    pricing_plan_details={
        "frequency": "annually",
    },
    provisional_start_date="Fri Jul 02 17:00:00 PDT 2021",
    seniority_date="2022-03-21",
    basic_information={},
    department_id="string_example",
)

⚙️ Parameters

full_name: str
job_title: str
personal_email: str
employment_id: str

Employment ID

address_details: Dict[str, Union[bool, date, datetime, dict, float, int, list, str, None]]

Home address information. As its properties may vary depending on the country, you must query the Show form schema endpoint passing the country code and address_details as path parameters.

administrative_details: Dict[str, Union[bool, date, datetime, dict, float, int, list, str, None]]

Administrative information. As its properties may vary depending on the country, you must query the Show form schema endpoint passing the country code and administrative_details as path parameters.

bank_account_details: Dict[str, Union[bool, date, datetime, dict, float, int, list, str, None]]

Bank account information. As its properties may vary depending on the country, you must query the Show form schema endpoint passing the country code and bank_account_details as path parameters.

billing_address_details: Dict[str, Union[bool, date, datetime, dict, float, int, list, str, None]]

Billing address information. As its properties may vary depending on the country, you must query the Show form schema endpoint passing the country code and billing_address_details as path parameters.

company_id: str
contract_details: Dict[str, Union[bool, date, datetime, dict, float, int, list, str, None]]

Contract information. As its properties may vary depending on the country, you must query the Show form schema endpoint passing the country code and contract_details as path parameters.

country: Country
emergency_contact_details: Dict[str, Union[bool, date, datetime, dict, float, int, list, str, None]]

Emergency contact information. As its properties may vary depending on the country, you must query the Show form schema endpoint passing the country code and emergency_contact_details as path parameters.

manager_id: str

The user id of the manager, who should have an admin, owner or people_manager role. You can find these users by querying the Company Managers endpoint. Update of this field is only available for active employments.

personal_details: Dict[str, Union[bool, date, datetime, dict, float, int, list, str, None]]

Personal details information. As its properties may vary depending on the country, you must query the Show form schema endpoint passing the country code and personal_details as path parameters.

pricing_plan_details: PricingPlanDetails
provisional_start_date: date

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.

seniority_date: datetime

The date the employee first started working for your company. If you don’t include a seniority date, the employee’s start date with Remote will be deemed as the start of the employee’s seniority. Example: Your employee started working for your company on Feb 1, 2022. On Aug 1, 2022, you transferred the employee to Remote and started managing them on the platform. Feb 1, 2022 would be their seniority date. Aug 1, 2022 would be their starting date.

basic_information: Dict[str, Union[bool, date, datetime, dict, float, int, list, str, None]]

Employment basic information. As its properties may vary depending on the country, you must query the Show form schema endpoint passing the country code and employment_basic_information as path parameters.

department_id: str

The department of the employment. The department must belong to the same company as the employment.

⚙️ Request Body

EmploymentFullParams Employment params

🔄 Return

EmploymentResponse

🌐 Endpoint

/v1/employments/{employment_id} put

🔙 Back to Table of Contents


remote.expenses.create_approved_expense

Creates an approved expense

🛠️ Usage

create_approved_expense_response = remote.expenses.create_approved_expense(
    title="new keyboard",
    amount=8000,
    currency="EUR",
    employment_id="d4ebc714-4950-47a9-a464-28e1f1ab2a90",
    expense_date="2020-12-11",
    category="home_office",
    receipt={
        "content": "[B@3e3f1dc1",
        "name": "receipt.pdf",
    },
    receipts=[
        {
            "content": "[B@3e3f1dc1",
            "name": "receipt.pdf",
        }
    ],
    reviewed_at="1970-01-01",
    reviewer_id="14c14128-f5f4-475a-8ec0-6329b4832a61",
    tax_amount=0,
    timezone="Etc/UTC",
)

⚙️ Parameters

title: str
amount: int
currency: str

The three-letter code for the expense currency.
Examples: \\\"USD\\\", \\\"EUR\\\", \\\"CAD\\\"

employment_id: str

The ID for the employment to which this expense relates.

expense_date: str

Date of the purchase, which must be in the past

category: str

Categories allowed for an expense

receipt: Base64File
receipts: List[Base64File]
reviewed_at: date

The date and time that the expense was reviewed in ISO8601 format. If not provided, it defaults to the current datetime.

reviewer_id: str

If the person reviewing the expense is a user in Remote, you can provide its user id for this field. If a value is not provided, defaults to the user that generated the API token.

tax_amount: int
timezone: str

TZ identifier

⚙️ Request Body

ParamsToCreateExpense Expenses

🔄 Return

ExpenseResponse

🌐 Endpoint

/v1/expenses post

🔙 Back to Table of Contents


remote.expenses.download_receipt

Downloads an expense receipt.

Deprecated since late February 2024 in favour of Download a receipt by id endpoint.

🛠️ Usage

download_receipt_response = remote.expenses.download_receipt(
    expense_id="3ab2e491-ad1c-47af-849c-3d0a53e20e0d",
)

⚙️ Parameters

expense_id: str

The expense ID

🌐 Endpoint

/v1/expenses/{expense_id}/receipt get

🔙 Back to Table of Contents


remote.expenses.download_receipt_by_id

Download a receipt by id.

🛠️ Usage

download_receipt_by_id_response = remote.expenses.download_receipt_by_id(
    expense_id="3ab2e491-ad1c-47af-849c-3d0a53e20e0d",
    receipt_id="6ab2e49o-ad1c-47af-849c-3d0a53e21e0e",
)

⚙️ Parameters

expense_id: str

The expense ID

receipt_id: str

The receipt ID

🌐 Endpoint

/v1/expenses/{expense_id}/receipts/{receipt_id} get

🔙 Back to Table of Contents


remote.expenses.list_records

Lists all expenses records

🛠️ Usage

list_records_response = remote.expenses.list_records(
    page=1,
    page_size=30,
)

⚙️ Parameters

page: int

Starts fetching records after the given page

page_size: int

Change the amount of records returned per page, defaults to 20, limited to 100

🔄 Return

ListExpenseResponse

🌐 Endpoint

/v1/expenses get

🔙 Back to Table of Contents


remote.expenses.show_record

Shows a single expense record

🛠️ Usage

show_record_response = remote.expenses.show_record(
    id="id_example",
)

⚙️ Parameters

id: str

Expense ID

🔄 Return

ExpenseResponse

🌐 Endpoint

/v1/expenses/{id} get

🔙 Back to Table of Contents


remote.expenses.update_expense

Updates an expense

🛠️ Usage

update_expense_response = remote.expenses.update_expense(
    id="id_example",
    status="declined",
    reason="Expense not refundable",
)

⚙️ Parameters

id: str

Expense ID

status: str
reason: str

Reason for declination.

⚙️ Request Body

UpdateExpenseParams Expenses

🔄 Return

ExpenseResponse

🌐 Endpoint

/v1/expenses/{id} put

🔙 Back to Table of Contents


remote.expenses.update_record

Updates an expense

🛠️ Usage

update_record_response = remote.expenses.update_record(
    id="id_example",
    status="declined",
    reason="Expense not refundable",
)

⚙️ Parameters

id: str

Expense ID

status: str
reason: str

Reason for declination.

⚙️ Request Body

UpdateExpenseParams Expenses

🔄 Return

ExpenseResponse

🌐 Endpoint

/v1/expenses/{id} patch

🔙 Back to Table of Contents


remote.files.download_file

Downloads a file.

Please contact api-support@remote.com to request access to this endpoint.

🛠️ Usage

download_file_response = remote.files.download_file(
    id="93t3j-file-id-9suej43",
)

⚙️ Parameters

id: str

File ID

🌐 Endpoint

/v1/files/{id} get

🔙 Back to Table of Contents


remote.files.upload_employment_file

Uploads a file associated with a specified employment.

Please contact api-support@remote.com to request access to this endpoint.

🛠️ Usage

upload_employment_file_response = remote.files.upload_employment_file(
    employment_id="string_example",
    file=open('/path/to/file', 'rb'),
    type="string_example",
)

⚙️ Parameters

employment_id: str
file: IO
type: str

⚙️ Request Body

FileParams The file to be uploaded

🔄 Return

FileResponse

🌐 Endpoint

/v1/documents post

🔙 Back to Table of Contents


remote.identity.get_token_info

Shows information about the entities that can be controlled by the current auth token.

🛠️ Usage

get_token_info_response = remote.identity.get_token_info()

🔄 Return

IdentityCurrentResponse

🌐 Endpoint

/v1/identity/current get

🔙 Back to Table of Contents


remote.incentives.create_incentive

Creates an Incentive.

Incentives use the currency of the employment specified provided in the employment_id field.

🛠️ Usage

create_incentive_response = remote.incentives.create_incentive(
    amount=50000,
    amount_tax_type="net",
    effective_date="Sun Dec 19 16:00:00 PST 2021",
    employment_id="string_example",
    type="acting_up_allowance",
    note="Bonus for moving start date to an earlier date",
)

⚙️ Parameters

amount: int

The amount (in the currency of the employment) to be given to the employee. This field accepts fractional amounts as well. However to avoid precision issues and errors that can arise from storing fractional amounts, the Remote API only accepts currencies and their fractional amounts as integers. This means you should append fractional amounts to the end of the amount you're passing in with this field. For example, if the incentive you're offering is EUR 500.25, you would specify 50025 as the amount for this field.

amount_tax_type: AmountTaxType
effective_date: date

The date at which the incentive should take effect. Note that the incentive is not paid out on the effective date, but during the next payroll cycle. The effective date determines which payroll cycle the incentive will be paid out in. The effective date needs to be today or a future date. Note for recurring incentives: since the months don't have the same amount of days, if day of month of effective_date is one of [28, 29, 30, 31] it will be transformed to the last day of each month, avoiding the possibility of skipping a month in the recurrence.

employment_id: str
type: str
note: Optional[str]

⚙️ Request Body

CreateOneTimeIncentiveParams Incentive

🔄 Return

IncentiveResponse

🌐 Endpoint

/v1/incentives post

🔙 Back to Table of Contents


remote.incentives.list_all

Lists all Incentives of a company

🛠️ Usage

list_all_response = remote.incentives.list_all(
    employment_id="93t3j-employment-id-9suej43",
    status="paid",
    recurring_incentive_id="2f900aaf-4952-4ec4-ac7c-2b917a2b4da9",
    page=1,
    page_size=30,
)

⚙️ Parameters

employment_id: str

Filter by Employment ID

status: str

Filter by Incentive status

recurring_incentive_id: str

Filter by Recurring Incentive id

page: int

Starts fetching records after the given page

page_size: int

Change the amount of records returned per page, defaults to 20, limited to 100

🔄 Return

ListIncentivesResponse

🌐 Endpoint

/v1/incentives get

🔙 Back to Table of Contents


remote.incentives.remove_incentive

Delete an incentive.

one_time incentives that have the following status CANNOT be deleted:

  • processing
  • paid

🛠️ Usage

remove_incentive_response = remote.incentives.remove_incentive(
    id="id_example",
)

⚙️ Parameters

id: str

Incentive ID

🔄 Return

SuccessResponse

🌐 Endpoint

/v1/incentives/{id} delete

🔙 Back to Table of Contents


remote.incentives.show_details

Show an Incentive's details

🛠️ Usage

show_details_response = remote.incentives.show_details(
    id="id_example",
)

⚙️ Parameters

id: str

Incentive ID

🔄 Return

IncentiveResponse

🌐 Endpoint

/v1/incentives/{id} get

🔙 Back to Table of Contents


remote.incentives.update_incentive

Updates an Incentive.

Incentives use the currency of the employment specified provided in the employment_id field.

The API doesn't support updating paid incentives.

🛠️ Usage

update_incentive_response = remote.incentives.update_incentive(
    id="id_example",
    amount=50000,
    amount_tax_type="net",
    effective_date="Sun Dec 19 16:00:00 PST 2021",
    note="Bonus for moving start date to an earlier date",
    type="string_example",
)

⚙️ Parameters

id: str

Incentive ID

amount: int

The amount (in the currency of the employment) to be given to the employee. This field accepts fractional amounts as well. However to avoid precision issues and errors that can arise from storing fractional amounts, the Remote API only accepts currencies and their fractional amounts as integers. This means you should append fractional amounts to the end of the amount you're passing in with this field. For example, if the incentive you're offering is EUR 500.25, you would specify 50025 as the amount for this field.

amount_tax_type: AmountTaxType
effective_date: date

The date at which the incentive should take effect. Note that the incentive is not paid out on the effective date, but during the next payroll cycle. The effective date determines which payroll cycle the incentive will be paid out in. The effective date needs to be today or a future date. Note for recurring incentives: since the months don't have the same amount of days, if day of month of effective_date is one of [28, 29, 30, 31] it will be transformed to the last day of each month, avoiding the possibility of skipping a month in the recurrence.

note: Optional[str]
type: str

A valid type according to the payment frequency

⚙️ Request Body

UpdateIncentiveParams Incentive

🔄 Return

IncentiveResponse

🌐 Endpoint

/v1/incentives/{id} put

🔙 Back to Table of Contents


remote.incentives.update_incentive_0

Updates an Incentive.

Incentives use the currency of the employment specified provided in the employment_id field.

The API doesn't support updating paid incentives.

🛠️ Usage

update_incentive_0_response = remote.incentives.update_incentive_0(
    id="id_example",
    amount=50000,
    amount_tax_type="net",
    effective_date="Sun Dec 19 16:00:00 PST 2021",
    note="Bonus for moving start date to an earlier date",
    type="string_example",
)

⚙️ Parameters

id: str

Incentive ID

amount: int

The amount (in the currency of the employment) to be given to the employee. This field accepts fractional amounts as well. However to avoid precision issues and errors that can arise from storing fractional amounts, the Remote API only accepts currencies and their fractional amounts as integers. This means you should append fractional amounts to the end of the amount you're passing in with this field. For example, if the incentive you're offering is EUR 500.25, you would specify 50025 as the amount for this field.

amount_tax_type: AmountTaxType
effective_date: date

The date at which the incentive should take effect. Note that the incentive is not paid out on the effective date, but during the next payroll cycle. The effective date determines which payroll cycle the incentive will be paid out in. The effective date needs to be today or a future date. Note for recurring incentives: since the months don't have the same amount of days, if day of month of effective_date is one of [28, 29, 30, 31] it will be transformed to the last day of each month, avoiding the possibility of skipping a month in the recurrence.

note: Optional[str]
type: str

A valid type according to the payment frequency

⚙️ Request Body

UpdateIncentiveParams Incentive

🔄 Return

IncentiveResponse

🌐 Endpoint

/v1/incentives/{id} patch

🔙 Back to Table of Contents


remote.o_auth2.exchange_token

Endpoint to exchange tokens in the Authorization Code, Client Credentials and Refresh Token flows

🛠️ Usage

exchange_token_response = remote.o_auth2.exchange_token(
    code="eyJhbG...xb6H0",
    grant_type="refresh_token",
    client_id="<client_id>",
    refresh_token="b480036a-d229-49ef-a606-7e8fba58a5eb",
)

⚙️ Parameters

code: str

The authorization code generated in Authorization Code flow

grant_type: str

The Authorization flow

client_id: str

The client id generated during registration

refresh_token: str

The refresh token generated in the Authorization Code flow

⚙️ Request Body

OAuth2TokenParams OAuth2Token

🔄 Return

OAuth2Tokens

🌐 Endpoint

/auth/oauth2/token post

🔙 Back to Table of Contents


remote.offboarding.create_request

Creates an Offboarding request.

🛠️ Usage

create_request_response = remote.offboarding.create_request(
    employment_id="5e55386e-4f4f-4def-92f4-bdc19a5ce77d",
    termination_details={
        "additional_comments": "additional comments regarding the termination reason",
        "confidential": False,
        "proposed_termination_date": "Tue Dec 19 16:00:00 PST 2023",
        "reason_description": "termination reason",
        "risk_assessment_reasons": [
            "caring_responsibilities"
        ],
        "termination_reason": "workforce_reduction",
        "will_challenge_termination": True,
        "will_challenge_termination_description": "additional details for the offboarding risk assessment",
    },
    type="termination",
)

⚙️ Parameters

employment_id: str
termination_details: TerminationDetailsParams
type: str

The type of the offboarding request. For now, only termination is allowed.

⚙️ Request Body

CreateOffboardingParams Incentive

🔄 Return

OffboardingResponse

🌐 Endpoint

/v1/offboardings post

🔙 Back to Table of Contents


remote.offboarding.list_requests

Lists Offboarding requests.

🛠️ Usage

list_requests_response = remote.offboarding.list_requests(
    employment_id="93t3j-employment-id-9suej43",
    type="paid",
    include_confidential="true",
    page=1,
    page_size=30,
)

⚙️ Parameters

employment_id: str

Filter by Employment ID

type: str

Filter by offboarding type

include_confidential: str

By default, the results do not include confidential termination requests. Send include_confidential=true to include confidential requests in the response.

page: int

Starts fetching records after the given page

page_size: int

Change the amount of records returned per page, defaults to 20, limited to 100

🔄 Return

ListOffboardingResponse

🌐 Endpoint

/v1/offboardings get

🔙 Back to Table of Contents


remote.offboarding.show_request

Shows an Offboarding request.

🛠️ Usage

show_request_response = remote.offboarding.show_request(
    id="id_example",
)

⚙️ Parameters

id: str

Offboarding request ID

🔄 Return

OffboardingResponse

🌐 Endpoint

/v1/offboardings/{id} get

🔙 Back to Table of Contents


remote.payslips.download_pdf

Given a Payslip ID, downloads a payslip. It is important to note that each country has a different payslip format and they are not authored by Remote.

🛠️ Usage

download_pdf_response = remote.payslips.download_pdf(
    payslip_id="93t3j-payslip-id-9suej43",
)

⚙️ Parameters

payslip_id: str

Payslip ID

🌐 Endpoint

/v1/payslips/{payslip_id}/pdf get

🔙 Back to Table of Contents


remote.payslips.list_all

Lists all payslips belonging to a company. Can also filter for a single employment belonging to that company.

🛠️ Usage

list_all_response = remote.payslips.list_all(
    employment_id="93t3j-employment-id-9suej43",
    start_date="\"2022-12-15\"",
    end_date="\"2023-12-15\"",
    expected_payout_start_date="\"2022-12-15\"",
    expected_payout_end_date="\"2023-12-15\"",
    page=1,
    page_size=30,
)

⚙️ Parameters

employment_id: str

Employment ID

start_date: str

Filters by payslips issued_at field, after or on the same day than the given date

end_date: str

Filters by payslips issued_at field, before or or the same day than the given date

expected_payout_start_date: str

Filters by payslips expected_payout_date field, after or on the same day than the given date

expected_payout_end_date: str

Filters by payslips expected_payout_date field, before or or the same day than the given date

page: int

Starts fetching records after the given page

page_size: int

Change the amount of records returned per page, defaults to 20, limited to 100

🔄 Return

ListPayslipsResponse

🌐 Endpoint

/v1/payslips get

🔙 Back to Table of Contents


remote.payslips.show_payslip

Given an ID, shows a payslip.

Please contact api-support@remote.com to request access to this endpoint.

🛠️ Usage

show_payslip_response = remote.payslips.show_payslip(
    id="93t3j-payslip-id-9suej43",
)

⚙️ Parameters

id: str

Payslip ID

🔄 Return

PayslipResponse

🌐 Endpoint

/v1/payslips/{id} get

🔙 Back to Table of Contents


remote.recurring_incentives.create_monthly_incentive

Create a Recurring Incentive, that is, a monthly paid incentive.

Incentives use the currency of the employment specified provided in the employment_id field.

🛠️ Usage

create_monthly_incentive_response = remote.recurring_incentives.create_monthly_incentive(
    amount=50000,
    amount_tax_type="net",
    effective_date="Sun Dec 19 16:00:00 PST 2021",
    employment_id="string_example",
    type="acting_up_allowance",
    note="Bonus for moving start date to an earlier date",
    duration_in_months="string_example",
)

⚙️ Parameters

amount: int

The amount (in the currency of the employment) to be given to the employee. This field accepts fractional amounts as well. However to avoid precision issues and errors that can arise from storing fractional amounts, the Remote API only accepts currencies and their fractional amounts as integers. This means you should append fractional amounts to the end of the amount you're passing in with this field. For example, if the incentive you're offering is EUR 500.25, you would specify 50025 as the amount for this field.

amount_tax_type: AmountTaxType
effective_date: date

The date at which the incentive should take effect. Note that the incentive is not paid out on the effective date, but during the next payroll cycle. The effective date determines which payroll cycle the incentive will be paid out in. The effective date needs to be today or a future date. Note for recurring incentives: since the months don't have the same amount of days, if day of month of effective_date is one of [28, 29, 30, 31] it will be transformed to the last day of each month, avoiding the possibility of skipping a month in the recurrence.

employment_id: str
type: str
note: Optional[str]
duration_in_months: int

How many times the payment will repeat. At the moment we only fully support monthly frequency. This field is only necessary if the recurring incentive has an end date.

⚙️ Request Body

CreateRecurringIncentiveParams RecurringIncentive

🔄 Return

RecurringIncentiveResponse

🌐 Endpoint

/v1/incentives/recurring post

🔙 Back to Table of Contents


remote.recurring_incentives.delete_scheduled

Delete a Recurring Incentive, that is, a monthly paid incentive.

Internally, Remote schedules upcoming incentives. As such, when you attempt to delete a recurring incentive, Remote will ONLY delete scheduled incentives with the pending status.

Incentives payments that are already scheduled and cannot be deleted will be included in the response, in case you need to reference them.

🛠️ Usage

delete_scheduled_response = remote.recurring_incentives.delete_scheduled(
    id="id_example",
)

⚙️ Parameters

id: str

Recurring Incentive ID

🔄 Return

DeleteRecurringIncentiveResponse

🌐 Endpoint

/v1/incentives/recurring/{id} delete

🔙 Back to Table of Contents


remote.recurring_incentives.list_incentives

List all Recurring Incentives of a company.

🛠️ Usage

list_incentives_response = remote.recurring_incentives.list_incentives(
    status="active",
    type="meal_allowance",
    note="meal",
    page=1,
    page_size=30,
)

⚙️ Parameters

status: str

Filter by recurring incentive status: active or deactive.

type: str

Filter by recurring incentive type.

note: str

Filter by recurring incentives that contain the value in their notes.

page: int

Starts fetching records after the given page

page_size: int

Change the amount of records returned per page, defaults to 20, limited to 100

🔄 Return

ListRecurringIncentivesResponse

🌐 Endpoint

/v1/incentives/recurring get

🔙 Back to Table of Contents


remote.resignation.download_letter

Downloads a resignation letter from an employment request.

🛠️ Usage

download_letter_response = remote.resignation.download_letter(
    employment_request_id="3ab2e491-ad1c-47af-849c-3d0a53e20e0d",
)

⚙️ Parameters

employment_request_id: str

The employment request ID

🌐 Endpoint

/v1/resignations/{employment_request_id}/resignation-letter get

🔙 Back to Table of Contents


remote.sandbox.create_employment_without_validations

Creates an employment without provisional_start_date validation.

This endpoint is only available in Sandbox and allows creating employments which provisional_start_date is in the past. This is especially helpful for:

  • Testing the Timeoff Balance endpoints
  • Testing the Offboarding endpoints
  • Testing features around probation periods

This endpoint will respond with a 404 outside of the Sandbox environment.

For creating an employment's parameters outside of testing purposes, use this Employment create endpoint

🛠️ Usage

create_employment_without_validations_response = remote.sandbox.create_employment_without_validations(
    country_code="string_example",
    full_name="string_example",
    job_title="string_example",
    personal_email="string_example",
    basic_information={},
    company_id="string_example",
    type="employee",
    provisional_start_date="Fri Jul 02 17:00:00 PDT 2021",
    seniority_date="2022-03-21",
)

⚙️ Parameters

country_code: str
full_name: str
job_title: str
personal_email: str
basic_information: Dict[str, Union[bool, date, datetime, dict, float, int, list, str, None]]

Employment basic information. When using this field, the same other root level fields (name, personal_email, job_title, provisional_start_date, and seniority_date) will be ignored. Its properties may vary depending on the country, you must query the Show form schema endpoint passing the country code and employment_basic_information as path parameters.

company_id: str

This optional field is deprecated.

type: str

If not provided, it will default to employee.

provisional_start_date: date

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.

seniority_date: datetime

The date the employee first started working for your company. If you don’t include a seniority date, the employee’s start date with Remote will be deemed as the start of the employee’s seniority. Example: Your employee started working for your company on Feb 1, 2022. On Aug 1, 2022, you transferred the employee to Remote and started managing them on the platform. Feb 1, 2022 would be their seniority date. Aug 1, 2022 would be their starting date.

⚙️ Request Body

EmploymentBasicParams Employment params

🔄 Return

EmploymentCreationResponse

🌐 Endpoint

/v1/sandbox/employments post

🔙 Back to Table of Contents


remote.sandbox.employment_update

Updates an employment. Use this endpoint to modify employment states for testing in the Sandbox environment. 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.

🛠️ Usage

employment_update_response = remote.sandbox.employment_update(
    employment_id="e3ee69d7-1293-4664-92fc-02625dae5247",
    status="active",
)

⚙️ Parameters

employment_id: str

Employment ID

⚙️ Request Body

EmploymentUpdateParams Employment params

🔄 Return

EmploymentResponse

🌐 Endpoint

/v1/sandbox/employments/{employment_id} put

🔙 Back to Table of Contents


remote.sandbox.trigger_webhook_callback

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.

🛠️ Usage

trigger_webhook_callback_response = remote.sandbox.trigger_webhook_callback(
    employment_id="e966a8b8-1076-11ee-a5f2-9b3997a968f6",
    event_type="employment.onboarding_task.completed",
)

⚙️ Parameters

employment_id: str
event_type: str

⚙️ Request Body

WebhookTriggerParams Webhook Trigger Params

🔄 Return

SuccessResponse

🌐 Endpoint

/v1/sandbox/webhook-callbacks/trigger post

🔙 Back to Table of Contents


remote.sandbox.update_employment_state

Updates an employment. Use this endpoint to modify employment states for testing in the Sandbox environment. 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.

🛠️ Usage

update_employment_state_response = remote.sandbox.update_employment_state(
    employment_id="e3ee69d7-1293-4664-92fc-02625dae5247",
    status="active",
)

⚙️ Parameters

employment_id: str

Employment ID

⚙️ Request Body

EmploymentUpdateParams Employment params

🔄 Return

EmploymentResponse

🌐 Endpoint

/v1/sandbox/employments/{employment_id} patch

🔙 Back to Table of Contents


remote.time_off.get_record

Shows a single Time Off record

🛠️ Usage

get_record_response = remote.time_off.get_record(
    id="93t3j-timeoff-id-9suej43",
)

⚙️ Parameters

id: str

Timeoff ID

🔄 Return

TimeoffResponse

🌐 Endpoint

/v1/timeoff/{id} get

🔙 Back to Table of Contents


remote.time_off.list_records

Lists all Time Off records.

🛠️ Usage

list_records_response = remote.time_off.list_records(
    employment_id="31b8e49b-aa1c-47af-849c-3d0a53e20e0d",
    timeoff_type="sick_leave",
    status="approved",
    order="asc",
    sort_by="timeoff_type",
    page=1,
    page_size=20,
)

⚙️ Parameters

employment_id: str

Only show time off for a specific employment

timeoff_type: TimeoffType

Filter time off by its type

Filter time off by its status

order: str

Sort order

sort_by: str

Field to sort by

page: int

Starts fetching records after the given page

page_size: int

Number of items per page

🔄 Return

ListTimeoffResponse

🌐 Endpoint

/v1/timeoff get

🔙 Back to Table of Contents


remote.time_off.list_types

Lists all time off types that can be used for the timeoff_type parameter

🛠️ Usage

list_types_response = remote.time_off.list_types()

🔄 Return

ListTimeoffTypesResponse

🌐 Endpoint

/v1/timeoff/types get

🔙 Back to Table of Contents


remote.time_off.record_create

Creates a Time Off record

🛠️ Usage

record_create_response = remote.time_off.record_create(
    approved_at="2021-07-15T18:18:17Z",
    approver_id="51546f60-dd71-4223-9312-4efede68a497",
    status="approved",
    document={
        "content": "content_example",
        "name": "name_example",
    },
    employment_id="string_example",
    end_date="string_example",
    notes="string_example",
    start_date="string_example",
    timeoff_days=[
        {
            "day": "2021-07-01",
        }
    ],
    timeoff_type="sick_leave",
    timezone="Etc/UTC",
)

⚙️ Parameters

approved_at: datetime

UTC date time in [ISO 8601][] format. [ISO 8601]: https://en.wikipedia.org/wiki/ISO_8601

approver_id: NullableApproverId
status: str
employment_id: str
end_date: str
notes: str
start_date: str
timeoff_days: List[TimeoffDaysParams]
timeoff_type: TimeoffType
timezone: str

TZ identifier

⚙️ Request Body

CreateApprovedTimeoffParams Timeoff

🔄 Return

TimeoffResponse

🌐 Endpoint

/v1/timeoff post

🔙 Back to Table of Contents


remote.time_off.update_record

Updates a Time Off record. This endpoint can also be used for cancelling a time off.

🛠️ Usage

update_record_response = remote.time_off.update_record(
    cancel_reason="string_example",
    edit_reason="string_example",
    id="93t3j-timeoff-id-9suej43",
    approved_at="2021-07-15T18:18:17Z",
    approver_id="51546f60-dd71-4223-9312-4efede68a497",
    document={
        "content": "content_example",
        "name": "name_example",
    },
    end_date="2021-07-01",
    notes="string_example",
    start_date="2021-07-01",
    status="approved",
    timeoff_days=[
        {
            "day": "2021-07-01",
        }
    ],
    timeoff_type="sick_leave",
    timezone="Etc/UTC",
)

⚙️ Parameters

cancel_reason: str

The reason for cancelling a time off. Required when updating to status cancelled.

edit_reason: str

The reason for the update. Required when updating the time off data but not changing the status.

id: str

Timeoff ID

approved_at: datetime

UTC date time in [ISO 8601][] format. [ISO 8601]: https://en.wikipedia.org/wiki/ISO_8601

approver_id: NullableApproverId
end_date: date

UTC date in ISO 8601 format

notes: str
start_date: date

UTC date in ISO 8601 format

status: str
timeoff_days: List[TimeoffDaysParams]
timeoff_type: TimeoffType
timezone: str

TZ identifier

⚙️ Request Body

UpdateApprovedTimeoffParams UpdateTimeoff

🔄 Return

TimeoffResponse

🌐 Endpoint

/v1/timeoff/{id} put

🔙 Back to Table of Contents


remote.time_off.update_record_0

Updates a Time Off record. This endpoint can also be used for cancelling a time off.

🛠️ Usage

update_record_0_response = remote.time_off.update_record_0(
    cancel_reason="string_example",
    edit_reason="string_example",
    id="93t3j-timeoff-id-9suej43",
    approved_at="2021-07-15T18:18:17Z",
    approver_id="51546f60-dd71-4223-9312-4efede68a497",
    document={
        "content": "content_example",
        "name": "name_example",
    },
    end_date="2021-07-01",
    notes="string_example",
    start_date="2021-07-01",
    status="approved",
    timeoff_days=[
        {
            "day": "2021-07-01",
        }
    ],
    timeoff_type="sick_leave",
    timezone="Etc/UTC",
)

⚙️ Parameters

cancel_reason: str

The reason for cancelling a time off. Required when updating to status cancelled.

edit_reason: str

The reason for the update. Required when updating the time off data but not changing the status.

id: str

Timeoff ID

approved_at: datetime

UTC date time in [ISO 8601][] format. [ISO 8601]: https://en.wikipedia.org/wiki/ISO_8601

approver_id: NullableApproverId
end_date: date

UTC date in ISO 8601 format

notes: str
start_date: date

UTC date in ISO 8601 format

status: str
timeoff_days: List[TimeoffDaysParams]
timeoff_type: TimeoffType
timezone: str

TZ identifier

⚙️ Request Body

UpdateApprovedTimeoffParams UpdateTimeoff

🔄 Return

TimeoffResponse

🌐 Endpoint

/v1/timeoff/{id} patch

🔙 Back to Table of Contents


remote.time_off_balances.show_balance

Shows the time off balance for the given employment_id.

Please note, this endpoint is only supported for employments in certain countries. For countries where it's not supported, this endpoint will respond with a 404 Not Found.

🛠️ Usage

show_balance_response = remote.time_off_balances.show_balance(
    employment_id="03675381-50c9-492d-b8ed-e84e99046091",
)

⚙️ Parameters

employment_id: str

Employment ID for which to show the time off balance

🔄 Return

TimeoffBalanceResponse

🌐 Endpoint

/v1/timeoff-balances/{employment_id} get

🔙 Back to Table of Contents


remote.webhook_callbacks.delete_callback

Delete a callback previously registered for webhooks

🛠️ Usage

delete_callback_response = remote.webhook_callbacks.delete_callback(
    id="id_example",
)

⚙️ Parameters

id: str

Webhook Callback ID

🔄 Return

SuccessResponse

🌐 Endpoint

/v1/webhook-callbacks/{id} delete

🔙 Back to Table of Contents


remote.webhook_callbacks.register_callback

Register a callback to be used for webhooks

🛠️ Usage

register_callback_response = remote.webhook_callbacks.register_callback(
    url="https://example.com/callback",
    subscribed_events=[
        "string_example"
    ],
)

⚙️ Parameters

url: str

⚙️ Request Body

CreateWebhookCallbackParams WebhookCallback

🔄 Return

WebhookCallbackResponse

🌐 Endpoint

/v1/webhook-callbacks post

🔙 Back to Table of Contents


Author

This Python package is automatically generated by Konfig

About

Remote creates opportunities globally by connecting employers with top talent and empowering individuals to achieve financial and personal freedom through a comprehensive suite of HR solutions. Remote's Python SDK generated by Konfig (https://konfigthis.com/).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages