Deel REST API

Global payroll and HR platform

developer.deel.com ↗
Version
1.25.0
OpenAPI
3.0.1
Endpoints
153
Schemas
508
81
Quality
Updated
3 days ago
Hr hr payroll hiring
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

https://api.letsdeel.com/rest/v2
https://api-staging.letsdeel.com/rest/v2

Endpoints

Clear filters

Accounting 5 endpoints

GET /invoices

Retrieve a list of paid invoices for your workforce.

operationId: Accounting_getPaidInvoices

Parameters

Name In Required Type Description
issued_from_date query optional string

to get records created after given issue date

issued_to_date query optional string

to get records created before given issued date

limit query optional number

Return a page of results with given number of records; NOTE: technically ALL query parameters are strings or array of strings

offset query optional number

Return a page of results after given index of row; NOTE: technically ALL query parameters are strings or array of strings

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

500

Operation failed.

GET /invoices
GET /invoices/deel

Retrieve a list of invoices related to Deel fees.

operationId: Accounting_getDeelInvoices

Parameters

Name In Required Type Description
limit query optional number

Return a page of results with given number of records; NOTE: technically ALL query parameters are strings or array of strings

offset query optional number

Return a page of results after given index of row; NOTE: technically ALL query parameters are strings or array of strings

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

500

Operation failed.

GET /invoices/deel
GET /invoices/{invoice_id}/download

Get link to download the invoice PDF.

operationId: Accounting_getInvoicePdfDownloadLink

Parameters

Name In Required Type Description
invoice_id path optional string

ID of an existing invoice

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

500

Operation failed.

GET /invoices/{invoice_id}/download
GET /payments

Retrieve a list of payments made to Deel.

operationId: Accounting_getPaymentReceipts

Parameters

Name In Required Type Description
date_from query optional

Filtered results will include records created on or after the provided date.

date_to query optional

Filtered results will include records created before the provided date.

currencies query optional

Currency codes of contracts to filter.

entities query optional

Filter by legal entity type; company, or individual

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

500

Operation failed.

GET /payments
GET /payments/{payment_id}/breakdown

Get a full breakdown of a payment made to Deel. Breakdown will include individual invoices and Deel fee as line items.

operationId: Accounting_getPaymentBreakdown

Parameters

Name In Required Type Description
payment_id path required string

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /payments/{payment_id}/breakdown

Adjustments 3 endpoints

GET /adjustments/categories

Get all categories for your organization.

operationId: Adjustments_getCategories

Responses

200

Successful operation.

401

Operation failed.

403

Operation failed.

404

Operation failed.

500

Operation failed.

GET /adjustments/categories
GET /adjustments/{adjustment_id}

Retrieve an adjustment.

operationId: Adjustments_getById

Parameters

Name In Required Type Description
adjustment_id path optional string

Adjustment id.

Responses

200

Successful operation.

401

Operation failed.

403

Operation failed.

404

Operation failed.

500

Operation failed.

GET /adjustments/{adjustment_id}
GET /contracts/{contract_id}/adjustments

Get all adjustments for the specific contract.

operationId: Adjustments_getAll

Parameters

Name In Required Type Description
contract_id path optional string

Deel contract id.

from query optional string

Filter adjustments by start date.

to query optional string

Filter adjustments by end date.

Responses

200

Successful operation.

401

Operation failed.

403

Operation failed.

404

Operation failed.

500

Operation failed.

GET /contracts/{contract_id}/adjustments

Contractors 1 endpoints

GET /contracts/{contract_id}/preview

Retrieve an IC and EOR contract agreement content in HTML. If no template is specified, the default or currently assigned template will be used. This endpoint does not support Global Payroll contract type.

operationId: Contractors_getContractPreview

Parameters

Name In Required Type Description
contract_id path optional string

Deel contract id.

templateId query optional string

ID of an existing contract template.

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /contracts/{contract_id}/preview

Contracts 5 endpoints

GET /contracts

Retrieve a list of contracts.

operationId: Contracts_getList

Parameters

Name In Required Type Description
after_cursor query optional string

Return next page of results after given cursor.

limit query optional number

Return a page of results with given number of records; NOTE: technically ALL query parameters are strings or array of strings

order_direction query optional

Order direction of results; ascending or descending.

types query optional

You can filter contracts by type, a contract is included in results if its type is in this list.

statuses query optional

You can filter contracts by current status, a contract is included in results if its status is in this list.

team_id query optional string

Filter contracts for given team ID; NOTE: technically ALL query parameters are strings or array of strings

external_id query optional string

Filter contracts for given external ID

countries query optional

Country codes of contracts to filter.

currencies query optional

Currency codes of contracts to filter.

search query optional string

Include a contract if by name or contractor name contains given search term.

sort_by query optional

Sort contracts by given field name.

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /contracts
GET /contracts/{contract_id}

Retrieve a single contract.

operationId: Contracts_getSingleContract

Parameters

Name In Required Type Description
contract_id path optional string

Deel contract id.

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /contracts/{contract_id}
GET /contracts/{contract_id}/alternate_emails

Returns an array of alternate email objects

operationId: Contracts_findEmailsById

Parameters

Name In Required Type Description
contract_id path optional string

Deel contract id.

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

500

Operation failed.

GET /contracts/{contract_id}/alternate_emails
GET /contracts/{contract_id}/final-payments

Calculate the final payment due to the contractor when ending the contract.

operationId: Contracts_calculateFinalPaymentAmount

Parameters

Name In Required Type Description
contract_id path optional string

Deel contract id.

end_date query optional

The day to end the contract.

calculation_type query optional string

The days to calculate.

workweek_start query optional string

The day the work week starts, 0 to 6

workweek_end query optional string

The day the work week ends, 0 to 6

Responses

200

Successful operation.

401

Operation failed.

403

Operation failed.

404

Operation failed.

500

Operation failed.

GET /contracts/{contract_id}/final-payments
GET /contract-templates

Retrieve a list of contract templates in your organization.

operationId: Contracts_getList

Responses

200

Successful operation.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /contract-templates

Eor 4 endpoints

GET /eor/validations/{country_code}

Retrieve the hiring guide data for a country. This data can be used to create Employee of Record (EOR) contract quotes.

operationId: Eor_getCountryGuide

Parameters

Name In Required Type Description
country_code path optional

Country code.

Responses

200

Successful operation.

401

Operation failed.

403

Operation failed.

404

Operation failed.

500

Operation failed.

GET /eor/validations/{country_code}
GET /eor/workers/{worker_id}/payslips

Get of payslips for an employee.

operationId: Eor_getEmployeePayslips

Parameters

Name In Required Type Description
worker_id path optional string

Unique identifier for a worker.

Responses

200

Successful operation.

401

Operation failed.

403

Operation failed.

404

Operation failed.

500

Operation failed.

GET /eor/workers/{worker_id}/payslips
GET /eor/workers/{worker_id}/payslips/{payslip_id}/download

Get download url for EOR payslip.

operationId: Eor_getPayslipDownload

Parameters

Name In Required Type Description
worker_id path optional string

Unique identifier for a worker.

payslip_id path optional string

Unique identifier for a payslip.

Responses

200

Successful operation.

401

Operation failed.

403

Operation failed.

404

Operation failed.

500

Operation failed.

GET /eor/workers/{worker_id}/payslips/{payslip_id}/download
GET /eor/{contract_id}/benefits

Retrieve EOR contract benefits

operationId: Eor_getContractBenefits

Parameters

Name In Required Type Description
contract_id path optional string

Deel contract id.

Responses

200

Successful operation.

401

Operation failed.

403

Operation failed.

404

Operation failed.

500

Operation failed.

GET /eor/{contract_id}/benefits

Globalpayroll 7 endpoints

GET /gp/legal-entities/{legal_entity_id}/reports

Get list of global payroll events by legal entities.

operationId: GlobalPayroll_listPayrollEventsByLegalEntity

Parameters

Name In Required Type Description
legal_entity_id path optional string

Id of an legal entity.

start_date query optional

Start date of payroll report.

Responses

200

Successful operation.

401

Operation failed.

403

Operation failed.

404

Operation failed.

500

Operation failed.

GET /gp/legal-entities/{legal_entity_id}/reports
GET /gp/reports/{gp_report_id}/gross_to_net

Get list of global payroll reports detailing gross-to-net calculations.

operationId: GlobalPayroll_getGrossToNetGpReport

Parameters

Name In Required Type Description
gp_report_id path optional string

Id of gp report.

Responses

200

Successful operation.

401

Operation failed.

403

Operation failed.

404

Operation failed.

500

Operation failed.

GET /gp/reports/{gp_report_id}/gross_to_net
GET /gp/reports/{gp_report_id}/gross_to_net/csv

Download global payroll reports detailing gross-to-net calculations.

operationId: GlobalPayroll_downloadGrossToNetGpReport

Parameters

Name In Required Type Description
gp_report_id path optional string

Id of gp report.

Responses

200

Successful operation.

401

Operation failed.

403

Operation failed.

404

Operation failed.

500

Operation failed.

GET /gp/reports/{gp_report_id}/gross_to_net/csv
GET /gp/workers/{worker_id}/banks

Retrieve all bank accounts for an employee.

operationId: GlobalPayroll_getBankAccounts

Parameters

Name In Required Type Description
worker_id path optional string

Unique identifier for a worker.

Responses

200

Successful operation.

401

Operation failed.

403

Operation failed.

404

Operation failed.

500

Operation failed.

GET /gp/workers/{worker_id}/banks
GET /gp/workers/{worker_id}/banks/guide

Retrieve the bank form guide for employee.

operationId: GlobalPayroll_getBankGuide

Parameters

Name In Required Type Description
worker_id path optional string

Unique identifier for a worker.

Responses

200

Successful operation.

401

Operation failed.

403

Operation failed.

404

Operation failed.

500

Operation failed.

GET /gp/workers/{worker_id}/banks/guide
GET /gp/workers/{worker_id}/payslips

Get of payslips for an employee.

operationId: GlobalPayroll_getPayslips

Parameters

Name In Required Type Description
worker_id path optional string

Unique identifier for a worker.

Responses

200

Successful operation.

401

Operation failed.

403

Operation failed.

404

Operation failed.

500

Operation failed.

GET /gp/workers/{worker_id}/payslips
GET /gp/workers/{worker_id}/payslips/{payslip_id}/download

Get download url for GP payslip.

operationId: GlobalPayroll_getPayslipDownloadUrl

Parameters

Name In Required Type Description
worker_id path optional string

Unique identifier for a worker.

payslip_id path optional string

Unique identifier for a payslip.

Responses

200

Successful operation.

401

Operation failed.

403

Operation failed.

404

Operation failed.

500

Operation failed.

GET /gp/workers/{worker_id}/payslips/{payslip_id}/download

Invoices 3 endpoints

GET /contracts/{contract_id}/invoice-adjustments

Retrieve invoice line items for a given contract id.

operationId: Invoices_getLineItemsByContract

Parameters

Name In Required Type Description
contract_id path optional string

Deel contract id.

contract_types query optional

types of contracts to filter

types query optional

types of invoice adjustments to filter

statuses query optional

statuses of invoice adjustment to filter

invoice_id query optional number

ID of an existing invoice; NOTE: technically ALL query parameters are strings or array of strings

reporter_id query optional number

ID of an existing profile; NOTE: technically ALL query parameters are strings or array of strings

date_from query optional

to get invoice adjustments submitted on or after given start date (inclusive)

date_to query optional

to get invoice adjustments submitted before given end date (excludes records submitted on this date)

limit query optional number

Return a page of results with given number of records; NOTE: technically ALL query parameters are strings or array of strings

offset query optional number

Return a page of results after given index of row; NOTE: technically ALL query parameters are strings or array of strings

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /contracts/{contract_id}/invoice-adjustments
GET /invoice-adjustments

Retrieve invoice adjustments. You can filter the list by providing additional parameters e.g. contract_id, contract_type etc.

operationId: Invoices_listInvoiceAdjustments

Parameters

Name In Required Type Description
contract_id query optional string

Id of an Deel contract.

contract_types query optional

types of contracts to filter

types query optional

types of invoice adjustments to filter

statuses query optional

statuses of invoice adjustment to filter

invoice_id query optional number

ID of an existing invoice; NOTE: technically ALL query parameters are strings or array of strings

reporter_id query optional number

ID of an existing profile; NOTE: technically ALL query parameters are strings or array of strings

date_from query optional

to get invoice adjustments submitted on or after given start date (inclusive)

date_to query optional

to get invoice adjustments submitted before given end date (excludes records submitted on this date)

limit query optional number

Return a page of results with given number of records; NOTE: technically ALL query parameters are strings or array of strings

offset query optional number

Return a page of results after given index of row; NOTE: technically ALL query parameters are strings or array of strings

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /invoice-adjustments
GET /invoice-adjustments/{invoice_adjustment_id}/attachment

Retrieve Attachment file url of specified id.

operationId: Invoices_getAttachmentFileUrl

Parameters

Name In Required Type Description
invoice_adjustment_id path optional number

ID of an existing invoice adjustment

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /invoice-adjustments/{invoice_adjustment_id}/attachment

Lookups 5 endpoints

GET /lookups/countries

Retrieve a list of countries supported by Deel.

operationId: Lookups_getCountryList

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /lookups/countries
GET /lookups/currencies

Retrieve the list of currencies used by Deel.

operationId: Lookups_getCurrenciesList

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /lookups/currencies
GET /lookups/job-titles

Retrieve a list of pre-defined job titles in Deel platform.

operationId: Lookups_getJobTitlesList

Parameters

Name In Required Type Description
limit query optional number

Return a page of results with given number of records; NOTE: technically ALL query parameters are strings or array of strings

after_cursor query optional string

Return next page of results after given cursor

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /lookups/job-titles
GET /lookups/seniorities

Retrieve a list of pre-defined seniority level for roles in Deel platform.

operationId: Lookups_getSeniorityLevels

Parameters

Name In Required Type Description
limit query optional number

Return a page of results with given number of records; NOTE: technically ALL query parameters are strings or array of strings

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /lookups/seniorities
GET /lookups/time-off-types

Retrieve a list of pre-defined time off types to register in Deel platform.

operationId: Lookups_getTimeOffTypes

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /lookups/time-off-types

Managers 1 endpoints

GET /managers

List all organization managers.

operationId: Managers_list

Parameters

Name In Required Type Description
limit query optional

Maximum number of records to return.

offset query optional

Offset/index of record for the next page of records to return.

Responses

200

Basic information of the new admin user.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

409

A matching profile already exists.

500

Operation failed.

GET /managers

Milestones 2 endpoints

GET /contracts/{contract_id}/milestones

Retrieve a list of milestones found for a contract.

operationId: Milestones_listByContract

Parameters

Name In Required Type Description
contract_id path optional string

Deel contract id.

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /contracts/{contract_id}/milestones
GET /contracts/{contract_id}/milestones/{milestone_id}

Retrieve a single milestone.

operationId: Milestones_getSingleMilestone

Parameters

Name In Required Type Description
contract_id path optional string

Deel contract id.

milestone_id path optional string

ID of milestone to return

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /contracts/{contract_id}/milestones/{milestone_id}

Offcyclepayments 2 endpoints

GET /contracts/{contract_id}/off-cycle-payments

Retrieve a list of off-cycle payments for the given contract id.

operationId: OffcyclePayments_getList

Parameters

Name In Required Type Description
contract_id path optional string

Deel contract id.

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /contracts/{contract_id}/off-cycle-payments
GET /contracts/{contract_id}/off-cycle-payments/{offcycle_payment_id}

Retrieve a single off-cycle payment.

operationId: OffcyclePayments_getSinglePayment

Parameters

Name In Required Type Description
contract_id path optional string

Deel contract id.

offcycle_payment_id path optional string

ID of off-cycle payment to return

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /contracts/{contract_id}/off-cycle-payments/{offcycle_payment_id}

Organizations 6 endpoints

GET /organizations

Retrieve the current organization details. Organization is automatically detected from the auth token.

operationId: Organizations_getDetails

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /organizations
GET /agreements

This end-point returns a list of your agreements with Deel.

operationId: Organizations_listAgreementsWithDeel

Parameters

Name In Required Type Description
contract_id query optional string

Deel contract id.

limit query optional

Maximum number of records to return.

offset query optional

Offset/index of record for the next page of records to return.

Responses

200

Successful operation.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /agreements
GET /departments

Get list of organization departments.

operationId: Organizations_getDepartmentList

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /departments
GET /legal-entities

Retrieve a list of legal entities in your account.

operationId: Organizations_getLegalEntitiesList

Parameters

Name In Required Type Description
type query optional string

Return list of global payroll legal entities if provided

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /legal-entities
GET /teams

Retrieve a list of teams in your organization.

operationId: Organizations_getTeamList

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /teams
GET /working-locations

Get organization working locations.

operationId: Organizations_getWorkingLocations

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /working-locations

Partnermanaged 10 endpoints

GET /partner-managed/employees/{employee_id}/banks/guide

Retrieve bank account form guide for an EOR employee. This data can be used to add a new bank account for an employee.

operationId: PartnerManaged_getBankGuideForEorEmployee

Parameters

Name In Required Type Description
employee_id path optional string

Unique identifier for an employee in Deel.

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /partner-managed/employees/{employee_id}/banks/guide
GET /partner-managed/employees/{employee_id}/compliance-documents

Get a list of employee compliance documents.

operationId: PartnerManaged_listEmployeeComplianceDocuments

Parameters

Name In Required Type Description
employee_id path optional string

Unique identifier for an employee in Deel.

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /partner-managed/employees/{employee_id}/compliance-documents
GET /partner-managed/employees/{employee_id}/compliance-documents/{document_id}/templates/download

Get the download link for an employee compliance document template, if it exists.

operationId: PartnerManaged_downloadComplianceDocumentTemplate

Parameters

Name In Required Type Description
employee_id path optional string

Unique identifier for an employee in Deel.

document_id path optional number

Unique identifier for a compliance document in Deel.

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /partner-managed/employees/{employee_id}/compliance-documents/{document_id}/templates/download
GET /partner-managed/employees/{employee_id}/contracts/{contract_id}/employee-agreement

Retrieve an EOR Employee Agreement content in HTML.

operationId: PartnerManaged_getEmployeeAgreementHtml

Parameters

Name In Required Type Description
employee_id path optional string

Unique identifier for an employee in Deel.

contract_id path optional string

Deel contract id.

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /partner-managed/employees/{employee_id}/contracts/{contract_id}/employee-agreement
GET /partner-managed/employees/{employee_id}/contracts/{contract_id}/employee-agreement/download

Get link to download the employee agreement PDF.

operationId: PartnerManaged_downloadEmployeeAgreementPdf

Parameters

Name In Required Type Description
employee_id path optional string

Unique identifier for an employee in Deel.

contract_id path optional string

Deel contract id.

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /partner-managed/employees/{employee_id}/contracts/{contract_id}/employee-agreement/download
GET /partner-managed/employees/{employee_id}/contracts/{contract_id}/hr-documents

List all HR verification letters and documents available.

operationId: PartnerManaged_listHrVerificationLettersAndDocuments

Parameters

Name In Required Type Description
employee_id path optional string

Unique identifier for an employee in Deel.

contract_id path optional string

Deel contract id.

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /partner-managed/employees/{employee_id}/contracts/{contract_id}/hr-documents
GET /partner-managed/employees/{employee_id}/contracts/{contract_id}/hr-documents/{document_id}/download

Retrieve URL to download HR verification letters and documents.

operationId: PartnerManaged_downloadHrVerificationLettersAndDocuments

Parameters

Name In Required Type Description
employee_id path optional string

Unique identifier for an employee in Deel.

contract_id path optional string

Deel contract id.

document_id path optional number

Unique identifier for a compliance document in Deel.

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /partner-managed/employees/{employee_id}/contracts/{contract_id}/hr-documents/{document_id}/download
GET /partner-managed/employees/{employee_id}/contracts/{contract_id}/offer-letter

Retrieve an EOR job offer letter in HTML. This endpoint does not support IC and Global Payroll contract types.

operationId: PartnerManaged_previewJobOfferLetter

Parameters

Name In Required Type Description
employee_id path optional string

Unique identifier for an employee in Deel.

contract_id path optional string

Deel contract id.

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /partner-managed/employees/{employee_id}/contracts/{contract_id}/offer-letter
GET /partner-managed/employees/{employee_id}/payslips

Get list of payslips for an EOR employee.

operationId: PartnerManaged_listPayslipsForEorEmployee

Parameters

Name In Required Type Description
employee_id path optional string

Unique identifier for an employee in Deel.

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /partner-managed/employees/{employee_id}/payslips
GET /partner-managed/employees/{employee_id}/tax-documents

Get list of tax documents for an employee.

operationId: PartnerManaged_listTaxDocumentsForEmployee

Parameters

Name In Required Type Description
employee_id path optional string

Unique identifier for an employee in Deel.

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /partner-managed/employees/{employee_id}/tax-documents

People 7 endpoints

GET /people

Retrieve a list of People in your organization.

operationId: People_getList

Parameters

Name In Required Type Description
offset query optional number

Return a page of results with given number of records.

limit query optional number

Return a page of results with given number of records.

search query optional string

Include a contract if by name or contractor name contains given search term.

sort_by query optional

Sort people by given field name.

sort_order query optional

Order direction of results; ascending or descending.

hiring_statuses[] query optional

Employee’s current hiring status.

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /people
GET /people/me
operationId: People_getCurrentProfile

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /people/me
GET /people/{worker_id}

Retrieve a single person in your organization.

operationId: People_getPerson

Parameters

Name In Required Type Description
worker_id path optional string

Unique identifier for a worker.

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /people/{worker_id}
GET /people/{worker_id}/time-offs

List of time offs by worker id. Worker id can be retreived using /people endpoint.

operationId: People_listTimeOffsByWorkerId

Parameters

Name In Required Type Description
worker_id path optional string

Unique identifier for a worker.

Responses

200

successful operation

401

Operation failed.

403

Operation failed.

404

Operation failed.

500

Operation failed.

GET /people/{worker_id}/time-offs
GET /people/{worker_id}/time-offs/entitlements

Retrieve a list of time off entitlements for a worker.

operationId: People_listTimeOffEntitlements

Parameters

Name In Required Type Description
worker_id path optional string

Unique identifier for a worker.

Responses

200

successful operation

401

Operation failed.

403

Operation failed.

404

Operation failed.

500

Operation failed.

GET /people/{worker_id}/time-offs/entitlements
GET /people/{worker_id}/time-offs/policies

Retrieve a list of time off policies for a worker.

operationId: People_listTimeOffPolicies

Parameters

Name In Required Type Description
worker_id path optional string

Unique identifier for a worker.

Responses

200

successful operation

401

Operation failed.

403

Operation failed.

404

Operation failed.

500

Operation failed.

GET /people/{worker_id}/time-offs/policies
GET /internal/people
operationId: People_getList

Parameters

Name In Required Type Description
offset query optional number

Return a page of results with given number of records.

limit query optional number

Return a page of results with given number of records.

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /internal/people

Serviceproviderconfig 1 endpoints

GET /ServiceProviderConfig
operationId: ServiceProviderConfig_getDetails

Responses

200

successful operation

GET /ServiceProviderConfig

Tasks 1 endpoints

GET /contracts/{contract_id}/tasks

Retrieve a list of tasks for a given contract.

operationId: Tasks_getContractTasks

Parameters

Name In Required Type Description
contract_id path optional string

Deel contract id.

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /contracts/{contract_id}/tasks

Timeoff 3 endpoints

GET /contracts/{contract_id}/entitlements

Retrieve a list of time off entitlements for a full-time employee.

operationId: TimeOff_listEntitlements

Parameters

Name In Required Type Description
contract_id path optional string

Deel contract id.

Responses

200

Successful operation.

401

Operation failed.

403

Operation failed.

404

Operation failed.

500

Operation failed.

GET /contracts/{contract_id}/entitlements
GET /contracts/{contract_id}/time-offs

Retrieve the list of time off requests by an employee.

operationId: TimeOff_listByContract

Parameters

Name In Required Type Description
contract_id path optional string

Deel contract id.

Responses

200

Successful operation.

401

Operation failed.

403

Operation failed.

404

Operation failed.

500

Operation failed.

GET /contracts/{contract_id}/time-offs
GET /time-offs

List of time offs for all employees in your organization.

operationId: TimeOff_getAllObsolete

Responses

200

successful operation

401

Operation failed.

403

Operation failed.

404

Operation failed.

500

Operation failed.

GET /time-offs

Timesheets 3 endpoints

GET /timesheets

Retrieve a list of timesheets in your Deel account. You can filter the list by providing additional paramters e.g. contract_id, contract_type etc.

operationId: Timesheets_getList

Parameters

Name In Required Type Description
contract_id query optional string

Id of a Deel contract.

contract_types query optional

Types of contracts to filter.

statuses query optional

Statuses of timesheets to filter.

reporter_id query optional number

ID of an existing profile; NOTE: technically ALL query parameters are strings or array of strings

date_from query optional

Filtered results will include records created on or after the provided date.

date_to query optional

Filtered results will include records created before the provided date.

limit query optional number

Return a page of results with given number of records; NOTE: technically ALL query parameters are strings or array of strings

offset query optional number

Return a page of results after given index of row

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /timesheets
GET /timesheets/{timesheet_id}

Retrieve a single timesheet entry by Id.

operationId: Timesheets_getSingleEntry

Parameters

Name In Required Type Description
timesheet_id path optional number

ID of an existing timesheet

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /timesheets/{timesheet_id}
GET /contracts/{contract_id}/timesheets

Retrieve a list of timesheets found for a contract.

operationId: Timesheets_listByContract

Parameters

Name In Required Type Description
contract_id path optional string

Deel contract id.

contract_types query optional

Types of contracts to filter.

statuses query optional

Statuses of timesheets to filter.

reporter_id query optional number

ID of an existing profile; NOTE: technically ALL query parameters are strings or array of strings

date_from query optional

Filtered results will include records created on or after the provided date.

date_to query optional

Filtered results will include records created before the provided date.

limit query optional number

Return a page of results with given number of records; NOTE: technically ALL query parameters are strings or array of strings

offset query optional number

Return a page of results after given index of row

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /contracts/{contract_id}/timesheets

User 2 endpoints

GET /Users

Retrieve a list of users in Deel HR.

operationId: User_listDeelUsers

Parameters

Name In Required Type Description
filter query optional string

Filter results by a given value. For now, only supports equal (eq) expression for “email” filter.

startIndex query optional integer

Start index. (1-based)

count query optional integer

Page size.

Responses

200

Successful operation.

400

Bad request.

401

Unauthorized.

403

Forbidden.

429

Too many requests.

500

Internal server error

GET /Users
GET /Users/{id}

Retrieve a single user by id.

operationId: User_getById

Parameters

Name In Required Type Description
id path required string

Retrieve a single user by id.

Responses

200

Successful operation.

401

Unauthorized.

403

Forbidden.

404

Not found.

429

Too many requests.

500

Internal server error,

GET /Users/{id}

Webhooks 3 endpoints

GET /webhooks

Retrieve a list of webhook subscriptions.

operationId: Webhooks_listWebhookSubscriptions

Responses

200

successful operation

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /webhooks
GET /webhooks/events/types

Retrieve a list of webhook event types.

operationId: Webhooks_listEventTypes

Responses

200

successful operation

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /webhooks/events/types
GET /webhooks/{id}

Retrieve a single webhook subscription.

operationId: WebhookController_getById

Parameters

Name In Required Type Description
id path required string

Responses

200

successful operation

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

405

Operation failed.

429

Operation failed.

500

Operation failed.

GET /webhooks/{id}

Schemas

object AddWorkerBankAccountContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/WorkerBankAccountToAdd"
    }
  },
  "x-internal": true
}
object AdditionalEORInfo
{
  "description": "Fields for country validation mandatory found at `/eor/validations/{country_code}`."
}
object AdditionalEORInfoContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/AdditionalEORInfo"
    }
  },
  "x-internal": true
}
object Address
{
  "type": "object",
  "properties": {
    "region": {
      "type": "string",
      "example": "CO",
      "description": "Region code."
    },
    "country": {
      "$ref": "#/components/schemas/CountryCode"
    },
    "locality": {
      "type": "string",
      "example": "Denver",
      "description": "Locality name."
    },
    "postalCode": {
      "type": "string",
      "example": "44000",
      "description": "Postal code."
    },
    "streetAddress": {
      "type": "string",
      "example": "Deel Street 500",
      "description": "Street and number."
    }
  }
}
object AdjustmentCategory
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "example": "c0431543f64c448e5ba4b525a50291",
      "description": "Unique identifier of an adjustment category."
    },
    "label": {
      "type": "string",
      "example": "Employee Dinner",
      "description": "The label of the adjustment category."
    },
    "unit_type": {
      "type": "string",
      "example": "currency",
      "description": "The unit type of the adjustment category."
    }
  }
}
object AdjustmentCreatedContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/PayrollAdjustment"
    }
  },
  "x-internal": true
}
string AdjustmentStatusEnum
{
  "enum": [
    "open",
    "pending_approval",
    "overwritten",
    "failed",
    "success"
  ],
  "type": "string",
  "x-internal": true,
  "description": "Adjustment status"
}
object AdjustmentToCreate
{
  "type": "object",
  "required": [
    "contract_id",
    "amount",
    "title",
    "description",
    "adjustment_category_id",
    "file",
    "vendor",
    "country"
  ],
  "properties": {
    "file": {
      "type": "string",
      "format": "binary",
      "minLength": 1,
      "description": "File of adjustment."
    },
    "title": {
      "type": "string",
      "example": "Your title here",
      "maxLength": 255,
      "minLength": 3,
      "description": "Title of adjustment."
    },
    "amount": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "number"
        }
      ],
      "example": 100.25,
      "minimum": 1,
      "minLength": 1,
      "description": "Amount of adjustment."
    },
    "vendor": {
      "type": "string",
      "example": "Vendor",
      "minLength": 3,
      "description": "Vendor of adjustment."
    },
    "country": {
      "$ref": "#/components/schemas/CountryCode",
      "example": "CA",
      "description": "Country of adjustment."
    },
    "contract_id": {
      "type": "string",
      "example": "m3jk2j",
      "minLength": 5,
      "description": "The identifier of the contract associated with the adjustment"
    },
    "description": {
      "type": "string",
      "example": "Your description here",
      "maxLength": 255,
      "minLength": 3,
      "description": "Description of adjustment."
    },
    "cycle_reference": {
      "type": "string",
      "example": "my_cycle_reference",
      "description": "Cycle reference of adjustment."
    },
    "move_next_cycle": {
      "type": "boolean",
      "example": true,
      "nullable": true,
      "description": "If an adjustments can belong to another payroll cycle."
    },
    "date_of_adjustment": {
      "$ref": "#/components/schemas/DateString",
      "example": "2023-11-02T00:00:00.000Z",
      "description": "The date of the expense associated with the adjustment."
    },
    "adjustment_category_id": {
      "type": "string",
      "example": "c9cf4c2c0165f48f494415390c3b49",
      "minLength": 25,
      "description": "Adjustment category id."
    }
  },
  "x-internal": true,
  "description": "Details of adjustment to create"
}
object AdjustmentToCreateContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/AdjustmentToCreate"
    }
  },
  "x-internal": true
}
object AdjustmentToUpdate
{
  "type": "object",
  "properties": {
    "file": {
      "type": "string",
      "format": "binary",
      "minLength": 1,
      "description": "File of adjustment."
    },
    "title": {
      "type": "string",
      "example": "Your title here",
      "maxLength": 255,
      "minLength": 3,
      "description": "Title of adjustment."
    },
    "amount": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "number"
        }
      ],
      "example": 100.25,
      "minimum": 1,
      "minLength": 1,
      "description": "Amount of adjustment."
    },
    "description": {
      "type": "string",
      "example": "Your description here",
      "maxLength": 255,
      "minLength": 3,
      "description": "Description of adjustment."
    }
  },
  "x-internal": true,
  "description": "Details of adjustment to update"
}
object AdjustmentToUpdateContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/AdjustmentToUpdate"
    }
  },
  "x-internal": true
}
object AdjustmentsCategoriesContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AdjustmentCategory"
      }
    }
  },
  "x-internal": true
}
object AdjustmentsContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PayrollAdjustment"
      }
    }
  },
  "x-internal": true
}
object AdminUser
{
  "type": "object",
  "required": [
    "id",
    "first_name",
    "last_name",
    "email"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier",
      "nullable": false,
      "description": "Admin user profile id."
    },
    "email": {
      "type": "string",
      "format": "email",
      "description": "User's email"
    },
    "last_name": {
      "type": "string",
      "nullable": false,
      "description": "User's last name"
    },
    "first_name": {
      "type": "string",
      "nullable": false,
      "description": "User's first name"
    }
  }
}
object AdminUserCreateContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/AdminUserCreateRequest"
    }
  },
  "x-internal": true
}
object AdminUserCreateRequest
{
  "type": "object",
  "required": [
    "first_name",
    "last_name",
    "email"
  ],
  "properties": {
    "email": {
      "type": "string",
      "format": "email",
      "nullable": false,
      "description": "User's email"
    },
    "last_name": {
      "type": "string",
      "nullable": false,
      "minLength": 1,
      "description": "User's last name"
    },
    "first_name": {
      "type": "string",
      "nullable": false,
      "minLength": 1,
      "description": "User's first name"
    }
  }
}
object AdminUsersContainer
{
  "type": "object",
  "required": [
    "data",
    "page"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AdminUser"
      }
    },
    "page": {
      "$ref": "#/components/schemas/PageInfoWithoutCursorNew"
    }
  },
  "x-internal": true
}
object Agreement
{
  "type": "object",
  "required": [
    "id",
    "agreement_title",
    "agreement_type",
    "msa",
    "client_legal_entity",
    "provider_legal_entity"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier",
      "nullable": false
    },
    "msa": {
      "type": "object",
      "required": [
        "id",
        "title"
      ],
      "properties": {
        "id": {
          "type": "string",
          "nullable": false
        },
        "title": {
          "type": "string",
          "nullable": false
        }
      }
    },
    "agreement_type": {
      "type": "string",
      "example": "shield",
      "nullable": false
    },
    "agreement_title": {
      "type": "string",
      "nullable": false
    },
    "client_legal_entity": {
      "type": "object",
      "required": [
        "id",
        "name"
      ],
      "properties": {
        "id": {
          "$ref": "#/components/schemas/UniqueObjectIdentifier",
          "nullable": false
        },
        "name": {
          "type": "string",
          "nullable": false
        }
      }
    },
    "provider_legal_entity": {
      "type": "object",
      "required": [
        "id",
        "name"
      ],
      "properties": {
        "id": {
          "$ref": "#/components/schemas/UniqueObjectIdentifier",
          "nullable": false
        },
        "name": {
          "type": "string",
          "example": "Deel Inc.",
          "nullable": false
        }
      }
    }
  },
  "x-internal": true
}
array AgreementList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Agreement"
  },
  "x-internal": true
}
object AgreementListContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/AgreementList"
    },
    "page": {
      "$ref": "#/components/schemas/PageInfoWithoutCursor"
    }
  },
  "x-internal": true
}
string AgreementsParamLimit
{
  "type": "string",
  "default": "50",
  "x-internal": true,
  "description": "Maximum number of records to return. This is supposed to be an integer but query parameters are string. Maximum is 50."
}
string AgreementsParamOffset
{
  "type": "string",
  "default": "0",
  "x-internal": true,
  "description": "Offset/index of record for the next page of records to return. This is supposed to be an integer but query parameters are string."
}
object AgreementsSearchForm
{
  "type": "object",
  "properties": {
    "limit": {
      "$ref": "#/components/schemas/AgreementsParamLimit"
    },
    "offset": {
      "$ref": "#/components/schemas/AgreementsParamOffset"
    },
    "contract_id": {
      "type": "string",
      "nullable": false
    }
  },
  "x-internal": true,
  "description": "Convenient model to encapsulate query parameters to get a list of agreements."
}
object AlternateEmailItem
{
  "type": "object",
  "title": "Root Schema",
  "required": [
    "email",
    "isVerified"
  ],
  "properties": {
    "email": {
      "$ref": "#/components/schemas/EmailType",
      "title": "Alternate email"
    },
    "isVerified": {
      "type": "boolean",
      "title": "True if email has been verified"
    }
  }
}
array AlternateEmailList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/AlternateEmailItem"
  },
  "description": "List of alternate email addresses."
}
object ApiError
{
  "type": "object",
  "properties": {
    "path": {
      "type": "string",
      "example": "/data/type",
      "description": "The JSON path where input validation failed"
    },
    "message": {
      "type": "string",
      "example": "Must have required property 'example_field'",
      "description": "A description of the returned error"
    }
  },
  "x-internal": true
}
object ApiErrorContainer
{
  "type": "object",
  "properties": {
    "errors": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ApiError"
      }
    },
    "request": {
      "$ref": "#/components/schemas/ApiErrorRequest"
    }
  },
  "x-internal": true
}
object ApiErrorRequest
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "example": "/rest/v2/example",
      "description": "The relative URL of the failed request"
    },
    "code": {
      "type": "number",
      "example": 3,
      "description": "The code of the source handler which produced the returned error"
    },
    "docs": {
      "type": "string",
      "example": "https://developer.deel.com/reference/example",
      "description": "A link to the official documentation for the requested endpoint resource"
    },
    "method": {
      "type": "string",
      "example": "POST",
      "description": "The HTTP method of the failed request"
    },
    "source": {
      "type": "string",
      "example": "AJV",
      "description": "The source handler which produced the returned error"
    },
    "status": {
      "type": "number",
      "example": 400,
      "description": "The status code of the response"
    },
    "api_req_id": {
      "type": "string",
      "example": "00000000-0000-0000-0000-000000000000",
      "description": "The request ID of the failed request"
    }
  },
  "x-internal": true
}
object AttachmentFileRef
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "nullable": false,
      "description": "File URL to download the attachment."
    }
  },
  "x-internal": true
}
object AuthenticationScheme
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "specUrl": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "documentationUrl": {
      "type": "string"
    }
  }
}
object AuthenticationSchemes
{
  "type": "object",
  "properties": {
    "authenticationSchemes": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AuthenticationScheme"
      }
    }
  }
}
object BankAccountAdded
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "example": "dcc7b587-2246-4909-853e-12056e90c451",
      "description": "ID of Bank Account."
    },
    "status": {
      "$ref": "#/components/schemas/BankAccountStatus"
    },
    "created_at": {
      "$ref": "#/components/schemas/DateTimeString"
    },
    "updated_at": {
      "$ref": "#/components/schemas/DateTimeString"
    }
  },
  "x-internal": true
}
object BankAccountAddedContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/BankAccountAdded"
    }
  },
  "x-internal": true
}
object BankAccountGuide
{
  "type": "object",
  "required": [
    "key",
    "required"
  ],
  "properties": {
    "key": {
      "type": "string",
      "example": "countryCode",
      "description": "The key of the field."
    },
    "type": {
      "type": "string",
      "example": "text",
      "description": "Type of the field"
    },
    "label": {
      "type": "string",
      "example": "Country",
      "description": "Label for this field."
    },
    "required": {
      "type": "boolean",
      "example": true,
      "description": "Whether the field is required or not."
    },
    "validations": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ValidationType"
      }
    },
    "values_allowed": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/BankAccountValueAllowed"
      }
    }
  },
  "x-internal": true
}
object BankAccountGuideContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/BankAccountGuide"
      }
    }
  }
}
string BankAccountStatus
{
  "enum": [
    "new",
    "pending",
    "approved",
    "failed"
  ],
  "type": "string",
  "x-internal": true,
  "description": "Bank Account status"
}
array BankAccountToAdd
{
  "type": "array",
  "items": {
    "type": "object",
    "required": [
      "key",
      "value"
    ],
    "properties": {
      "key": {
        "type": "string",
        "description": "The key of the bank account properties."
      },
      "value": {
        "type": "string",
        "description": "The value for that key property."
      }
    }
  },
  "x-internal": true
}
object BankAccountToAddContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/BankAccountToAdd"
    }
  },
  "x-internal": true
}
object BankAccountUpdated
{
  "type": "object",
  "required": [
    "id",
    "status",
    "created_at",
    "updated_at"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "created_at": {
      "$ref": "#/components/schemas/DateTimeStringRequired"
    },
    "updated_at": {
      "$ref": "#/components/schemas/DateTimeStringRequired"
    }
  }
}
object BankAccountUpdatedContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/BankAccountUpdated"
    }
  }
}
object BankAccountValueAllowed
{
  "type": "object",
  "properties": {
    "label": {
      "type": "string",
      "example": "Argentina",
      "description": "The name of the allowed value."
    },
    "value": {
      "type": "string",
      "example": "AR",
      "description": "The key of the allowed value."
    }
  },
  "x-internal": true
}
object BankGuide
{
  "type": "object",
  "properties": {
    "key": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "type": {
      "type": "string"
    },
    "required": {
      "type": "boolean"
    },
    "validations": {
      "type": "object",
      "properties": {
        "regex": {
          "type": "string"
        },
        "maxLength": {
          "type": "integer"
        },
        "minLength": {
          "type": "integer"
        }
      }
    },
    "values_allowed": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      }
    }
  }
}
object BasicContract
{
  "type": "object",
  "required": [
    "id",
    "title",
    "type",
    "status",
    "client",
    "worker",
    "invitations",
    "signatures",
    "is_shielded",
    "is_archived",
    "created_at",
    "termination_date"
  ],
  "properties": {
    "id": {
      "type": "string",
      "nullable": false,
      "minLength": 1
    },
    "type": {
      "$ref": "#/components/schemas/ContractTypeEnum"
    },
    "scale": {
      "type": "string",
      "nullable": true,
      "description": "The payment scale (e.g., hourly, weekly, monthly, etc.)"
    },
    "title": {
      "type": "string",
      "nullable": false,
      "minLength": 1
    },
    "client": {
      "$ref": "#/components/schemas/ClientOfBasicContract"
    },
    "status": {
      "$ref": "#/components/schemas/ContractStatusEnum"
    },
    "worker": {
      "$ref": "#/components/schemas/WorkerOfBasicContract"
    },
    "created_at": {
      "$ref": "#/components/schemas/DateTimeString"
    },
    "signatures": {
      "$ref": "#/components/schemas/SignaturesOfBasicContract"
    },
    "external_id": {
      "type": "string",
      "nullable": true,
      "description": "A unique identifier for the object provided by an external system."
    },
    "invitations": {
      "$ref": "#/components/schemas/InvitationsOfBasicContract"
    },
    "is_archived": {
      "type": "boolean"
    },
    "is_shielded": {
      "type": "boolean"
    },
    "who_reports": {
      "$ref": "#/components/schemas/ContractWhoReportsEnum"
    },
    "notice_period": {
      "$ref": "#/components/schemas/NoticePeriod"
    },
    "termination_date": {
      "$ref": "#/components/schemas/DateTimeString"
    }
  },
  "x-internal": true
}
object BasicInvoiceAdjustment
{
  "type": "object",
  "required": [
    "id",
    "type",
    "status",
    "description",
    "date_submitted",
    "created_at",
    "currency_code",
    "quantity",
    "total_amount",
    "contract",
    "worksheet",
    "reported_by",
    "reviewed_by",
    "payment_cycle",
    "attachment"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier"
    },
    "type": {
      "$ref": "#/components/schemas/InvoiceAdjustmentTypeEnum"
    },
    "scale": {
      "type": "string",
      "example": "custom",
      "nullable": true
    },
    "status": {
      "$ref": "#/components/schemas/InvoiceAdjustmentStatusEnum"
    },
    "contract": {
      "type": "object",
      "required": [
        "id",
        "title",
        "type"
      ],
      "properties": {
        "id": {
          "type": "string",
          "nullable": false
        },
        "type": {
          "$ref": "#/components/schemas/ContractTypeEnum"
        },
        "title": {
          "type": "string",
          "nullable": false
        }
      }
    },
    "quantity": {
      "type": "number",
      "example": 1,
      "nullable": true
    },
    "worksheet": {
      "type": "object",
      "nullable": true,
      "required": [
        "weeks",
        "days",
        "hours",
        "minutes"
      ],
      "properties": {
        "days": {
          "type": "number",
          "example": 0,
          "minimum": 0
        },
        "hours": {
          "type": "number",
          "example": 1,
          "minimum": 0
        },
        "weeks": {
          "type": "number",
          "example": 0,
          "minimum": 0
        },
        "minutes": {
          "type": "number",
          "example": 0,
          "minimum": 0
        }
      }
    },
    "attachment": {
      "$ref": "#/components/schemas/FileAttachmentInfo"
    },
    "created_at": {
      "$ref": "#/components/schemas/DateTimeStringRequired"
    },
    "invoice_id": {
      "type": "number",
      "nullable": true
    },
    "description": {
      "type": "string",
      "nullable": false
    },
    "reported_by": {
      "type": "object",
      "nullable": false,
      "required": [
        "id",
        "full_name"
      ],
      "properties": {
        "id": {
          "$ref": "#/components/schemas/UniqueObjectIdentifier"
        },
        "full_name": {
          "type": "string",
          "example": "John Smith",
          "nullable": false
        }
      }
    },
    "reviewed_by": {
      "type": "object",
      "nullable": true,
      "required": [
        "id",
        "full_name",
        "reviewed_at",
        "remarks"
      ],
      "properties": {
        "id": {
          "$ref": "#/components/schemas/UniqueObjectIdentifier"
        },
        "remarks": {
          "type": "string",
          "nullable": false
        },
        "full_name": {
          "type": "string",
          "example": "Jane Smith"
        },
        "reviewed_at": {
          "type": "string",
          "example": "2022-05-04T03:45:27.899Z"
        }
      }
    },
    "custom_scale": {
      "type": "string",
      "nullable": true
    },
    "total_amount": {
      "type": "string",
      "example": "200.0000",
      "nullable": false
    },
    "currency_code": {
      "$ref": "#/components/schemas/CurrencyCodeRequired"
    },
    "payment_cycle": {
      "type": "object",
      "nullable": false,
      "required": [
        "start_date",
        "end_date"
      ],
      "properties": {
        "end_date": {
          "$ref": "#/components/schemas/DateTimeStringRequired"
        },
        "start_date": {
          "$ref": "#/components/schemas/DateTimeStringRequired"
        }
      }
    },
    "date_submitted": {
      "$ref": "#/components/schemas/DateTimeStringRequired"
    }
  },
  "x-internal": true
}
object BasicLegalEntity
{
  "type": "object",
  "required": [
    "id",
    "name",
    "entity_type",
    "entity_subtype"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier"
    },
    "name": {
      "type": "string",
      "nullable": false
    },
    "country": {
      "type": "string",
      "nullable": false
    },
    "entity_type": {
      "$ref": "#/components/schemas/LegalEntityType"
    },
    "entity_subtype": {
      "$ref": "#/components/schemas/LegalEntitySubType"
    }
  },
  "x-internal": true
}
object BasicOrganization
{
  "type": "object",
  "required": [
    "id",
    "name"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier"
    },
    "name": {
      "type": "string",
      "nullable": false,
      "minLength": 1
    }
  },
  "x-internal": true
}
object BasicTeam
{
  "type": "object",
  "required": [
    "id",
    "name"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier"
    },
    "name": {
      "type": "string",
      "nullable": false,
      "minLength": 1
    }
  },
  "x-internal": true
}
object BasicTimesheet
{
  "type": "object",
  "required": [
    "id",
    "type",
    "status",
    "description",
    "date_submitted",
    "created_at",
    "currency_code",
    "total_amount",
    "quantity",
    "contract",
    "worksheet",
    "reported_by",
    "reviewed_by",
    "attachment"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier"
    },
    "type": {
      "type": "string",
      "description": "Deprecated - it is always \"work\""
    },
    "scale": {
      "type": "string",
      "example": "custom",
      "nullable": true
    },
    "status": {
      "$ref": "#/components/schemas/TimesheetStatusEnum"
    },
    "contract": {
      "type": "object",
      "required": [
        "id",
        "title",
        "type"
      ],
      "properties": {
        "id": {
          "type": "string",
          "nullable": false
        },
        "type": {
          "$ref": "#/components/schemas/ContractTypeEnum"
        },
        "title": {
          "type": "string",
          "nullable": false
        }
      }
    },
    "quantity": {
      "type": "number",
      "example": 1,
      "nullable": true
    },
    "worksheet": {
      "type": "object",
      "nullable": true,
      "required": [
        "weeks",
        "days",
        "hours",
        "minutes"
      ],
      "properties": {
        "days": {
          "type": "number",
          "example": 0,
          "minimum": 0
        },
        "hours": {
          "type": "number",
          "example": 1,
          "minimum": 0
        },
        "weeks": {
          "type": "number",
          "example": 0,
          "minimum": 0
        },
        "minutes": {
          "type": "number",
          "example": 0,
          "minimum": 0
        }
      }
    },
    "attachment": {
      "$ref": "#/components/schemas/FileAttachmentInfo"
    },
    "created_at": {
      "type": "string",
      "example": "2022-05-04T03:45:27.108Z",
      "nullable": false
    },
    "description": {
      "type": "string",
      "nullable": false
    },
    "reported_by": {
      "type": "object",
      "nullable": false,
      "required": [
        "id",
        "full_name"
      ],
      "properties": {
        "id": {
          "$ref": "#/components/schemas/UniqueObjectIdentifier"
        },
        "full_name": {
          "type": "string",
          "example": "John Smith",
          "nullable": false
        }
      }
    },
    "reviewed_by": {
      "type": "object",
      "nullable": true,
      "required": [
        "id",
        "full_name",
        "reviewed_at",
        "remarks"
      ],
      "properties": {
        "id": {
          "$ref": "#/components/schemas/UniqueObjectIdentifier"
        },
        "remarks": {
          "type": "string",
          "nullable": false
        },
        "full_name": {
          "type": "string",
          "example": "Jane Smith"
        },
        "reviewed_at": {
          "type": "string",
          "example": "2022-05-04T03:45:27.899Z"
        }
      }
    },
    "custom_scale": {
      "type": "string",
      "nullable": true
    },
    "total_amount": {
      "type": "string",
      "example": "200.0000",
      "nullable": false,
      "description": "is equal to quantity times rate of active work statement + bonus in this record"
    },
    "currency_code": {
      "$ref": "#/components/schemas/CurrencyCodeRequired"
    },
    "payment_cycle": {
      "type": "object",
      "properties": {
        "end_date": {
          "$ref": "#/components/schemas/DateTimeString"
        },
        "start_date": {
          "$ref": "#/components/schemas/DateTimeString"
        }
      }
    },
    "date_submitted": {
      "$ref": "#/components/schemas/DateTimeStringRequired"
    }
  },
  "x-internal": true
}
string BenefitContributionStatusEnum
{
  "enum": [
    "MANDATORY",
    "OPTIONAL",
    "UNAVAILABLE"
  ],
  "type": "string"
}
string BenefitContributionTypeEnum
{
  "enum": [
    "PERCENTAGE",
    "FIXED_AMOUNT",
    "MATCH"
  ],
  "type": "string"
}

Versions

Version Endpoints Schemas Ingested Status
1.25.0 153 508 2026-05-11 current
1.25.0 153 508 2026-04-16