Query structured spec data via REST or MCP. Get exactly what your agent needs.
https://api.letsdeel.com/rest/v2
https://api-staging.letsdeel.com/rest/v2
/adjustments
Create a new adjustment.
Creation data for a new adjustment
multipart/form-data
AdjustmentToCreateContainer
| Property | Type | Required |
|---|---|---|
| data | object | required |
| └ file | string | required |
| └ title | string | required |
| └ amount | object | required |
| └ vendor | string | required |
| └ country | string | required |
| └ contract_id | string | required |
| └ description | string | required |
| └ cycle_reference | string | optional |
| └ move_next_cycle | boolean | optional |
| └ date_of_adjustment | string | optional |
| └ adjustment_category_id | string | required |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /adjustments
/attachments
Upload file to Deel storage to use the file attachment feature for other endpoints.
File info object that needs to be created.
application/json
InputToCreateFileRef
| Property | Type | Required |
|---|---|---|
| data | object | required |
| └ content_type | string | required |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /attachments
/candidates
Add a candidate to Deel.
Add a candidate to Deel
application/json
CandidateToCreateContainer
| Property | Type | Required |
|---|---|---|
| data | object | required |
| └ id | string | required |
| └ link | string | required |
| string | optional | |
| └ state | string | optional |
| └ status | string | required |
| └ country | string | optional |
| └ job_title | string | optional |
| └ last_name | string | required |
| └ first_name | string | required |
| └ start_date | string | required |
| └ nationality | string | optional |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /candidates
/contracts
Create a new Deel contract.
Contract object that needs to be created
application/json
ContractToCreateContainer
| Property | Type | Required |
|---|---|---|
| data | object | required |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /contracts
/contracts/fixed-rate
Contract object that needs to be created
application/json
ContractToCreateContainer_ongoing_time_based
| Property | Type | Required |
|---|---|---|
| data | object | required |
| └ meta | object | required |
| └ is_main_income | boolean | optional |
| └ documents_required | boolean | required |
| └ title | string | required |
| └ client | object | required |
| └ team | object | required |
| └ id | string | required |
| └ legal_entity | object | required |
| └ id | string | required |
| └ worker | object | optional |
| └ last_name | string | optional |
| └ first_name | string | required |
| └ expected_email | string | required |
| └ job_title | object | required |
| └ id | string | optional |
| └ name | string | optional |
| └ seniority | object | optional |
| └ id | string | optional |
| └ state_code | string | optional |
| └ external_id | string | optional |
| └ who_reports | string | optional |
| └ country_code | string | optional |
| └ notice_period | number | optional |
| └ scope_of_work | string | optional |
| └ special_clause | string | optional |
| └ termination_date | string | optional |
| └ type | string | required |
| └ start_date | string | required |
| └ compensation_details | object | required |
| └ amount | number | required |
| └ cycle_end | number | required |
| └ frequency | string | required |
| └ currency_code | string | required |
| └ first_payment | number | optional |
| └ notice_period | number | optional |
| └ cycle_end_type | string | required |
| └ payment_due_days | number | required |
| └ payment_due_type | string | required |
| └ first_payment_date | string | optional |
| └ pay_before_weekends | boolean | optional |
| └ scale | string | required |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /contracts/fixed-rate
/contracts/milestone-based
Contract object that needs to be created
application/json
ContractToCreateContainer_payg_milestones
| Property | Type | Required |
|---|---|---|
| data | object | required |
| └ meta | object | required |
| └ is_main_income | boolean | optional |
| └ documents_required | boolean | required |
| └ title | string | required |
| └ client | object | required |
| └ team | object | required |
| └ id | string | required |
| └ legal_entity | object | required |
| └ id | string | required |
| └ worker | object | optional |
| └ last_name | string | optional |
| └ first_name | string | required |
| └ expected_email | string | required |
| └ job_title | object | required |
| └ id | string | optional |
| └ name | string | optional |
| └ seniority | object | optional |
| └ id | string | optional |
| └ state_code | string | optional |
| └ external_id | string | optional |
| └ who_reports | string | optional |
| └ country_code | string | optional |
| └ notice_period | number | optional |
| └ scope_of_work | string | optional |
| └ special_clause | string | optional |
| └ termination_date | string | optional |
| └ type | string | required |
| └ start_date | string | optional |
| └ compensation_details | object | required |
| └ amount | number | optional |
| └ cycle_end | number | required |
| └ frequency | string | required |
| └ currency_code | string | required |
| └ first_payment | number | optional |
| └ notice_period | number | optional |
| └ cycle_end_type | string | required |
| └ payment_due_days | number | required |
| └ payment_due_type | string | required |
| └ first_payment_date | string | optional |
| └ pay_before_weekends | boolean | optional |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /contracts/milestone-based
/contracts/task-based
Contract object that needs to be created
application/json
ContractToCreateContainer_payg_tasks
| Property | Type | Required |
|---|---|---|
| data | object | required |
| └ meta | object | required |
| └ is_main_income | boolean | optional |
| └ documents_required | boolean | required |
| └ title | string | required |
| └ client | object | required |
| └ team | object | required |
| └ id | string | required |
| └ legal_entity | object | required |
| └ id | string | required |
| └ worker | object | optional |
| └ last_name | string | optional |
| └ first_name | string | required |
| └ expected_email | string | required |
| └ job_title | object | required |
| └ id | string | optional |
| └ name | string | optional |
| └ seniority | object | optional |
| └ id | string | optional |
| └ state_code | string | optional |
| └ external_id | string | optional |
| └ who_reports | string | optional |
| └ country_code | string | optional |
| └ notice_period | number | optional |
| └ scope_of_work | string | optional |
| └ special_clause | string | optional |
| └ termination_date | string | optional |
| └ type | string | required |
| └ start_date | string | required |
| └ compensation_details | object | required |
| └ amount | number | optional |
| └ cycle_end | number | required |
| └ frequency | string | required |
| └ currency_code | string | required |
| └ first_payment | number | optional |
| └ notice_period | number | optional |
| └ cycle_end_type | string | required |
| └ payment_due_days | number | required |
| └ payment_due_type | string | required |
| └ first_payment_date | string | optional |
| └ pay_before_weekends | boolean | optional |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /contracts/task-based
/contracts/time-based
Contract object that needs to be created
application/json
ContractToCreateContainer_pay_as_you_go_time_based
| Property | Type | Required |
|---|---|---|
| data | object | required |
| └ meta | object | required |
| └ is_main_income | boolean | optional |
| └ documents_required | boolean | required |
| └ title | string | required |
| └ client | object | required |
| └ team | object | required |
| └ id | string | required |
| └ legal_entity | object | required |
| └ id | string | required |
| └ worker | object | optional |
| └ last_name | string | optional |
| └ first_name | string | required |
| └ expected_email | string | required |
| └ job_title | object | required |
| └ id | string | optional |
| └ name | string | optional |
| └ seniority | object | optional |
| └ id | string | optional |
| └ state_code | string | optional |
| └ external_id | string | optional |
| └ who_reports | string | optional |
| └ country_code | string | optional |
| └ notice_period | number | optional |
| └ scope_of_work | string | optional |
| └ special_clause | string | optional |
| └ termination_date | string | optional |
| └ type | string | required |
| └ start_date | string | required |
| └ compensation_details | object | required |
| └ amount | number | required |
| └ cycle_end | number | required |
| └ frequency | string | required |
| └ currency_code | string | required |
| └ first_payment | number | optional |
| └ notice_period | number | optional |
| └ cycle_end_type | string | required |
| └ payment_due_days | number | required |
| └ payment_due_type | string | required |
| └ first_payment_date | string | optional |
| └ pay_before_weekends | boolean | optional |
| └ scale | string | required |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /contracts/time-based
/contracts/{contract_id}/amendments
Amend the details of a contract. Please note that if the contract is already signed or active, then the update will have to be approved and re-signed for to take effect.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| contract_id | path | optional | string | Deel contract id. |
Contract object that needs to be amended
application/json
ContractToAmendDetailsContainer
| Property | Type | Required |
|---|---|---|
| data | object | required |
| └ scale | string | optional |
| └ amount | number | optional |
| └ cycle_end | number | optional |
| └ frequency | string | optional |
| └ job_title_id | string | optional |
| └ seniority_id | string | optional |
| └ currency_code | string | optional |
| └ first_payment | number | optional |
| └ scope_of_work | string | optional |
| └ cycle_end_type | string | optional |
| └ effective_date | string | optional |
| └ job_title_name | string | optional |
| └ special_clause | string | optional |
| └ payment_due_days | number | optional |
| └ payment_due_type | string | optional |
| └ first_payment_date | string | optional |
| └ pay_before_weekends | boolean | optional |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /contracts/{contract_id}/amendments
/contracts/{contract_id}/premium
Add additional protection against misclassification by upgrading to Deel Premium.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| contract_id | path | optional | string | Deel contract id. |
Answers for assessment in order to find eligibility for Deel Premium.
application/json
PremiumToAddContainer
| Property | Type | Required |
|---|---|---|
| data | object | required |
| └ contractor_characteristics | boolean | required |
| └ agreement_reflects_relation | boolean | required |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /contracts/{contract_id}/premium
/contracts/{contract_id}/terminations
Terminate an active contract.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| contract_id | path | optional | string | Deel contract id. |
Contract that needs to be terminated and when.
application/json
ContractToTerminateContainer
| Property | Type | Required |
|---|---|---|
| data | object | required |
| └ message | string | optional |
| └ terminate_now | boolean | optional |
| └ completion_date | string | optional |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /contracts/{contract_id}/terminations
/contracts/estimate
First payment is calculated from the number of working/calendar days between their start date and the start of the payment cycle.
Pro-rata payment object that needs to estimated payment
application/json
EstimateFirstPaymentContainer
| Property | Type | Required |
|---|---|---|
| data | object | required |
| └ type | string | required |
| └ start_date | string | required |
| └ country_code | string | required |
| └ compensation_details | object | required |
| └ scale | string | optional |
| └ amount | number | optional |
| └ cycle_end | number | optional |
| └ currency_code | string | optional |
| └ work_week_end | string | optional |
| └ cycle_end_type | string | optional |
| └ work_week_start | string | optional |
| └ calculation_type | string | optional |
| └ payment_due_days | number | optional |
| └ payment_due_type | string | optional |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /contracts/estimate
/contracts/{contract_id}/documents
Attach a file to contract document.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| contract_id | path | optional | string | Deel contract id. |
A form to attach a file to contract document.
multipart/form-data
FileObject
| Property | Type | Required |
|---|---|---|
| file | string | optional |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /contracts/{contract_id}/documents
/contracts/{contract_id}/invitations
Invite a worker to sign the contract. Worker will be notified via email.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| contract_id | path | optional | string | Deel contract id. |
Contract invitation object that needs to be created
application/json
ContractInvitationToCreateContainer
| Property | Type | Required |
|---|---|---|
| data | object | required |
| string | required | |
| └ message | string | required |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /contracts/{contract_id}/invitations
/contracts/{contract_id}/signatures
Sign a contract as a client.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| contract_id | path | optional | string | Deel contract id. |
Contract signature object that needs to be created
application/json
ContractSignatureToCreateContainer
| Property | Type | Required |
|---|---|---|
| data | object | required |
| └ client_signature | string | required |
| └ contract_template_id | number | optional |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /contracts/{contract_id}/signatures
/eor
Create an Employee of Record (EOR) contract quote. The endpoints creates a contract quote request. Deel will process the information and get back with a quote for this contract.
Employee (eor) contract object that needs to be created
application/json
EorContractToCreateContainer
| Property | Type | Required |
|---|---|---|
| data | object | required |
| └ client | object | required |
| └ team | object | required |
| └ id | string | required |
| └ legal_entity | object | optional |
| └ id | string | optional |
| └ pension | object | optional |
| └ id | string | optional |
| └ contribution | string | optional |
| └ employee | object | required |
| string | optional | |
| └ address | object | optional |
| └ zip | string | optional |
| └ city | string | optional |
| └ state | string | optional |
| └ street | string | optional |
| └ country | string | optional |
| └ last_name | string | required |
| └ first_name | string | required |
| └ nationality | string | required |
| └ job_title | string | required |
| └ seniority | object | required |
| └ id | string | optional |
| └ employment | object | required |
| └ type | string | optional |
| └ state | string | optional |
| └ country | string | required |
| └ end_date | string | optional |
| └ holidays | number | optional |
| └ start_date | string | required |
| └ scope_of_work | string | optional |
| └ time_off_type | string | optional |
| └ probation_period | number | optional |
| └ work_visa_required | boolean | required |
| └ health_plan_id | string | optional |
| └ compensation_details | object | required |
| └ salary | number | optional |
| └ currency | string | required |
| └ variable_compensation | number | optional |
| └ variable_compensation_type | string | optional |
| └ quote_additional_fields | object | optional |
| └ dob | string | optional |
| └ gender | string | optional |
| └ worker_type | string | optional |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /eor
/eor/employment_cost
Determine EOR employee costs across the globe.
Information to use in the EOR employeeCost calculation.
application/json
EorEmployeeCostCalculationRequestBodyContainer
| Property | Type | Required |
|---|---|---|
| data | object | required |
| └ salary | number | required |
| └ country | string | required |
| └ benefits | array | optional |
| └ plan_id | string | optional |
| └ provider_id | string | required |
| └ currency | string | required |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /eor/employment_cost
/contracts/gp
Create a Global Payroll contract.
Global Payroll (GP) contract object that needs to be created
application/json
GPContractToCreateContainer
| Property | Type | Required |
|---|---|---|
| data | object | required |
| └ client | object | required |
| └ team | object | required |
| └ id | string | required |
| └ legal_entity | object | required |
| └ id | string | required |
| └ employee | object | required |
| string | required | |
| └ address | object | required |
| └ zip | string | required |
| └ city | string | required |
| └ state | string | optional |
| └ street | string | required |
| └ country | string | required |
| └ last_name | string | required |
| └ first_name | string | required |
| └ work_email | string | required |
| └ nationality | string | optional |
| └ employee_number | string | optional |
| └ job_title | string | required |
| └ employment | object | required |
| └ type | string | required |
| └ holidays | object | required |
| └ allowance | number | required |
| └ start_date | string | required |
| └ start_date | string | required |
| └ compensation_details | object | required |
| └ scale | string | required |
| └ salary | number | required |
| └ currency | string | optional |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /contracts/gp
/gp/workers/{worker_id}/banks
Add a new bank account for an employee.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| worker_id | path | optional | string | Unique identifier for a worker. |
Request body to add new bank account for employee
application/json
AddWorkerBankAccountContainer
| Property | Type | Required |
|---|---|---|
| data | object | required |
| └ city | string | optional |
| └ iban | string | optional |
| string | optional | |
| └ phone | string | optional |
| └ postal | string | optional |
| └ tax_id | string | optional |
| └ bank_code | string | optional |
| └ bank_name | string | optional |
| └ full_name | string | optional |
| └ swift_bic | string | optional |
| └ rib_number | string | optional |
| └ branch_code | string | optional |
| └ account_type | string | optional |
| └ country_code | string | optional |
| └ address_line1 | string | optional |
| └ address_line2 | string | optional |
| └ currency_code | string | optional |
| └ original_name | string | optional |
| └ account_number | string | optional |
| └ province_state | string | optional |
| └ …3 more | object | optional |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /gp/workers/{worker_id}/banks
/gp/workers/{worker_id}/terminations
Request a termination for a global payroll employee. A successful call starts the termination process and does not confirm termination.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| worker_id | path | optional | string | Unique identifier for a worker. |
Request body to add new bank account for employee
application/json
WorkerTerminationBodyContainer
| Property | Type | Required |
|---|---|---|
| data | object | required |
| └ message | string | required |
| └ severance | object | required |
| └ is_voluntary | boolean | required |
| └ desired_end_date | string | required |
| └ last_date_of_work | string | required |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /gp/workers/{worker_id}/terminations
/invoice-adjustments
Create an invoice adjustment using this endpoint. For example, you can add a bonus, commission, VAT %, deduction etc. to an invoice.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| recurring | query | optional | boolean | Add this invoice adjustment as recurring |
InvoiceAdjustment object that needs to be created
application/json
InvoiceAdjustmentToCreateContainer
| Property | Type | Required |
|---|---|---|
| data | object | required |
| └ type | string | required |
| └ amount | number | required |
| └ contract_id | string | required |
| └ description | string | required |
| └ date_submitted | string | required |
| └ paymentCycleId | number | optional |
multipart/form-data
InvoiceAdjustmentToCreateWithFile
| Property | Type | Required |
|---|---|---|
| type | string | required |
| amount | number | required |
| contract_id | string | required |
| description | string | required |
| date_submitted | string | required |
| paymentCycleId | number | optional |
| file | string | optional |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /invoice-adjustments
/invoice-adjustments/many/reviews
Review multiple invoice adjustments to approve or decline a batch.
InvoiceAdjustment review objects that need to be created
application/json
InvoiceAdjustmentReviewsToCreateContainer
| Property | Type | Required |
|---|---|---|
| data | object | required |
| └ ids | array | required |
| └ reason | string | required |
| └ status | string | required |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /invoice-adjustments/many/reviews
/invoice-adjustments/{invoice_adjustment_id}/reviews
Review an invoice adjustment to approve or decline it.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| invoice_adjustment_id | path | optional | number | ID of an existing invoice adjustment |
InvoiceAdjustment review object that need to be created
application/json
InvoiceAdjustmentReviewToCreateContainer
| Property | Type | Required |
|---|---|---|
| data | object | required |
| └ reason | string | required |
| └ status | string | required |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /invoice-adjustments/{invoice_adjustment_id}/reviews
/managers
Create a new organization manager.
Basic information of the new admin user.
application/json
AdminUserCreateContainer
| Property | Type | Required |
|---|---|---|
| data | object | required |
| string | required | |
| └ last_name | string | required |
| └ first_name | string | required |
Basic information of the new admin user.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
A matching profile already exists.
Operation failed.
POST /managers
/contracts/{contract_id}/milestones
Add a new milestone to contract.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| contract_id | path | optional | string | Deel contract id. |
Milestone object that needs to be created
application/json
MilestoneToCreateContainer
| Property | Type | Required |
|---|---|---|
| data | object | required |
| └ title | string | required |
| └ amount | string | required |
| └ description | string | required |
multipart/form-data
MilestoneToCreateFormWithFile
| Property | Type | Required |
|---|---|---|
| title | string | required |
| amount | string | required |
| description | string | required |
| file | string | optional |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /contracts/{contract_id}/milestones
/contracts/{contract_id}/milestones/many/reviews
Review a batch of milestones to approve or reject submitted work.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| contract_id | path | optional | string | Deel contract id. |
Milestone review objects that need to be created
application/json
MilestoneReviewsToCreateContainer
| Property | Type | Required |
|---|---|---|
| data | object | required |
| └ ids | array | required |
| └ reason | string | optional |
| └ status | string | required |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /contracts/{contract_id}/milestones/many/reviews
/contracts/{contract_id}/milestones/{milestone_id}/reviews
Review a milestone to approve or decline submitted work.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| contract_id | path | optional | string | Deel contract id. |
| milestone_id | path | optional | string | ID of milestone to return |
Milestone review object that need to be created
application/json
MilestoneReviewToCreateContainer
| Property | Type | Required |
|---|---|---|
| data | object | required |
| └ reason | string | optional |
| └ status | string | required |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /contracts/{contract_id}/milestones/{milestone_id}/reviews
/contracts/{contract_id}/off-cycle-payments
Add a new invoice line-item for the purpose of off-cycle payment for a given contract.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| contract_id | path | optional | string | Deel contract id. |
Off-cycle payment object that needs to be created
application/json
OffCyclePaymentToCreateContainer
| Property | Type | Required |
|---|---|---|
| data | object | required |
| └ amount | number | required |
| └ description | string | optional |
| └ date_submitted | string | required |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /contracts/{contract_id}/off-cycle-payments
/partner-managed/employees/{employee_id}/banks
Add bank account for an EOR employee.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| employee_id | path | optional | string | Unique identifier for an employee in Deel. |
Bank Account object that needs to be created
application/json
BankAccountToAddContainer
| Property | Type | Required |
|---|---|---|
| data | array | required |
| └ key | string | required |
| └ value | string | required |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /partner-managed/employees/{employee_id}/banks
/partner-managed/employees/{employee_id}/compliance-documents/{document_id}
Upload an employee compliance document.
| 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. |
The employee compliance document data to upload.
multipart/form-data
UploadEmployeeComplianceDocumentFileContainer
| Property | Type | Required |
|---|---|---|
| file | string | required |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /partner-managed/employees/{employee_id}/compliance-documents/{document_id}
/partner-managed/employees/{employee_id}/contracts/{contract_id}/additional-information
Add additional information for an EOR employee.
| 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. |
Bank Account object that needs to be created
application/json
AdditionalEORInfoContainer
| Property | Type | Required |
|---|---|---|
| data | object | required |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /partner-managed/employees/{employee_id}/contracts/{contract_id}/additional-information
/partner-managed/employees/{employee_id}/contracts/{contract_id}/custom-verification-letter
Request employment verification letters, visa support, bank verification and more.
| 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. |
Request custom verification letter to be requested
application/json
RequestCustomVerificationLetterContainer
| Property | Type | Required |
|---|---|---|
| data | object | required |
| └ type | string | required |
| └ description | string | required |
| └ includeQRCode | boolean | optional |
multipart/form-data
RequestCustomVerificationLetterWithFile
| Property | Type | Required |
|---|---|---|
| type | string | required |
| description | string | required |
| includeQRCode | boolean | optional |
| files | array | required |
| └ file | string | optional |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /partner-managed/employees/{employee_id}/contracts/{contract_id}/custom-verification-letter
/partner-managed/employees/{employee_id}/contracts/{contract_id}/signatures
Sign a contract as a employee.
| 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. |
Contract signature object that needs to be created
application/json
EmployeeContractSignatureToCreateContainer
| Property | Type | Required |
|---|---|---|
| data | object | required |
| └ signature | string | required |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /partner-managed/employees/{employee_id}/contracts/{contract_id}/signatures
/people/{worker_id}/time-offs
Add a time off request for a worker. New requests are auto-approved.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| worker_id | path | optional | string | Unique identifier for a worker. |
Detail of the time off that will be registered to the contract.
multipart/form-data
CreatePeopleTimeoff
| Property | Type | Required |
|---|---|---|
| type | string | required |
| reason | string | required |
| end_date | string | required |
| start_date | string | required |
| attachments | string | optional |
successful operation
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /people/{worker_id}/time-offs
/hris/direct-employees
Hris direct employee object that will be created
application/json
HrisDirectEmployee
| Property | Type | Required |
|---|---|---|
| contract | object | required |
| compensation | object | required |
| └ currency | string | required |
| └ gross_annual_salary | number | required |
| vacation_info | object | optional |
| └ vacation_yearly_policy | number | required |
| └ vacation_accrual_start_date | string | required |
| job_information | object | required |
| employee_details | object | required |
| string | required | |
| └ state | string | optional |
| └ country | string | required |
| └ last_name | string | required |
| └ first_name | string | required |
| └ work_email | string | required |
| └ nationality | string | required |
| team_information | object | required |
| └ team_id | number | required |
| └ legal_entity_id | number | required |
Hris direct employee object that was created or edited
Operation failed.
Operation failed.
Operation failed.
Operation failed.
A matching profile already exists
Operation failed.
POST /hris/direct-employees
/contracts/{contract_id}/tasks
Create a new task for the contractor.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| contract_id | path | optional | string | Deel contract id. |
Contract object that needs to be created
application/json
InputToCreatePgoTask
| Property | Type | Required |
|---|---|---|
| data | object | required |
| └ amount | string | required |
| └ attachment | object | optional |
| └ key | string | required |
| └ filename | string | required |
| └ description | string | required |
| └ date_submitted | string | required |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /contracts/{contract_id}/tasks
/contracts/{contract_id}/tasks/many/reviews
Review multiple tasks to approve or decline the submitted work.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| contract_id | path | optional | string | Deel contract id. |
Timesheet review objects that need to be created
application/json
RequestBodyToCreatePgoTaskReviewsReviewsContainer
| Property | Type | Required |
|---|---|---|
| data | object | required |
| └ ids | array | required |
| └ reason | string | optional |
| └ status | string | required |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /contracts/{contract_id}/tasks/many/reviews
/contracts/{contract_id}/tasks/{task_id}/reviews
Review a single task to approve or decline the submitted work.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| contract_id | path | optional | string | Deel contract id. |
| task_id | path | optional | string | ID of task entity. |
Timesheet review objects that need to be created
application/json
RequestBodyToCreatePgoTaskReviewsByIdReviewsContainer
| Property | Type | Required |
|---|---|---|
| data | object | required |
| └ reason | string | optional |
| └ status | string | required |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /contracts/{contract_id}/tasks/{task_id}/reviews
/contracts/{contract_id}/time-offs
Add a time off request for a full-time employee.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| contract_id | path | optional | string | Deel contract id. |
Detail of the time off that will be registered to the contract.
application/json
CreateTimeoffContainer
| Property | Type | Required |
|---|---|---|
| data | object | required |
| └ type | string | required |
| └ reason | string | optional |
| └ end_date | string | optional |
| └ start_date | string | optional |
| └ other_timeoff_name | string | optional |
| └ with_multiple_dates | boolean | required |
| └ is_end_date_half_day | boolean | optional |
| └ is_start_date_half_day | boolean | optional |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /contracts/{contract_id}/time-offs
/timesheets
Submit work for a contractor.
Timesheet object that needs to be created
application/json
TimesheetToCreateContainer
| Property | Type | Required |
|---|---|---|
| data | object | required |
| └ quantity | number | required |
| └ contract_id | string | required |
| └ description | string | required |
| └ date_submitted | string | required |
multipart/form-data
TimesheetToCreateWithFile
| Property | Type | Required |
|---|---|---|
| quantity | number | required |
| contract_id | string | required |
| description | string | required |
| date_submitted | string | required |
| file | string | optional |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /timesheets
/timesheets/many/reviews
Review a batch of timesheets to approve or reject submitted work.
Timesheet review objects that need to be created
application/json
TimesheetReviewsToCreateContainer
| Property | Type | Required |
|---|---|---|
| data | object | required |
| └ ids | array | required |
| └ reason | string | optional |
| └ status | string | required |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /timesheets/many/reviews
/timesheets/{timesheet_id}/reviews
Review a timesheet to approve or decline submitted work.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| timesheet_id | path | optional | number | ID of an existing timesheet |
Timesheet review object that need to be created
application/json
TimesheetReviewToCreateContainer
| Property | Type | Required |
|---|---|---|
| data | object | required |
| └ reason | string | optional |
| └ status | string | required |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /timesheets/{timesheet_id}/reviews
/public-tokens
Create a public token to use with embedded Deel SDK components.
Public token object that needs to be created.
application/json
CreatePublicTokenContainer
| Property | Type | Required |
|---|---|---|
| data | object | required |
| └ scope | array | optional |
Successful operation.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /public-tokens
/Users
a new user without ‘id’
application/json
CreateClientUser
| Property | Type | Required |
|---|---|---|
| name | object | required |
| └ givenName | string | optional |
| └ familyName | string | optional |
| schemas | array | required |
| userName | string | required |
| userType | string | required |
application/scim+json
CreateClientUser
| Property | Type | Required |
|---|---|---|
| name | object | required |
| └ givenName | string | optional |
| └ familyName | string | optional |
| schemas | array | required |
| userName | string | required |
| userType | string | required |
successfully created user
bad request
authorization failure
permissions denied
not found
duplicate email
too many requests
internal server error
POST /Users
/Users/.search
search parameters
application/json
SearchRequest
| Property | Type | Required |
|---|---|---|
| count | integer | optional |
| filter | string | optional |
| schemas | array | optional |
| startIndex | integer | optional |
application/scim+json
SearchRequest
| Property | Type | Required |
|---|---|---|
| count | integer | optional |
| filter | string | optional |
| schemas | array | optional |
| startIndex | integer | optional |
successful operation
bad request
authorization failure
permissions denied
too many requests
internal server error
POST /Users/.search
/webhooks
Create a new webhooks subscription.
application/json
CreateWebhookRequest
| Property | Type | Required |
|---|---|---|
| url | string | required |
| name | string | required |
| events | array | required |
| status | string | required |
| api_version | string | required |
| description | string | required |
| signing_key | string | required |
successful operation
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
Operation failed.
POST /webhooks
AddWorkerBankAccountContainer
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/WorkerBankAccountToAdd"
}
},
"x-internal": true
}
AdditionalEORInfo
{
"description": "Fields for country validation mandatory found at `/eor/validations/{country_code}`."
}
AdditionalEORInfoContainer
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/AdditionalEORInfo"
}
},
"x-internal": true
}
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."
}
}
}
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."
}
}
}
AdjustmentCreatedContainer
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/PayrollAdjustment"
}
},
"x-internal": true
}
AdjustmentStatusEnum
{
"enum": [
"open",
"pending_approval",
"overwritten",
"failed",
"success"
],
"type": "string",
"x-internal": true,
"description": "Adjustment status"
}
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"
}
AdjustmentToCreateContainer
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/AdjustmentToCreate"
}
},
"x-internal": true
}
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"
}
AdjustmentToUpdateContainer
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/AdjustmentToUpdate"
}
},
"x-internal": true
}
AdjustmentsCategoriesContainer
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AdjustmentCategory"
}
}
},
"x-internal": true
}
AdjustmentsContainer
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PayrollAdjustment"
}
}
},
"x-internal": true
}
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"
}
}
}
AdminUserCreateContainer
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/AdminUserCreateRequest"
}
},
"x-internal": true
}
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"
}
}
}
AdminUsersContainer
{
"type": "object",
"required": [
"data",
"page"
],
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AdminUser"
}
},
"page": {
"$ref": "#/components/schemas/PageInfoWithoutCursorNew"
}
},
"x-internal": true
}
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
}
AgreementList
{
"type": "array",
"items": {
"$ref": "#/components/schemas/Agreement"
},
"x-internal": true
}
AgreementListContainer
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/AgreementList"
},
"page": {
"$ref": "#/components/schemas/PageInfoWithoutCursor"
}
},
"x-internal": true
}
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."
}
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."
}
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."
}
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"
}
}
}
AlternateEmailList
{
"type": "array",
"items": {
"$ref": "#/components/schemas/AlternateEmailItem"
},
"description": "List of alternate email addresses."
}
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
}
ApiErrorContainer
{
"type": "object",
"properties": {
"errors": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ApiError"
}
},
"request": {
"$ref": "#/components/schemas/ApiErrorRequest"
}
},
"x-internal": true
}
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
}
AttachmentFileRef
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"nullable": false,
"description": "File URL to download the attachment."
}
},
"x-internal": true
}
AuthenticationScheme
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"specUrl": {
"type": "string"
},
"description": {
"type": "string"
},
"documentationUrl": {
"type": "string"
}
}
}
AuthenticationSchemes
{
"type": "object",
"properties": {
"authenticationSchemes": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AuthenticationScheme"
}
}
}
}
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
}
BankAccountAddedContainer
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/BankAccountAdded"
}
},
"x-internal": true
}
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
}
BankAccountGuideContainer
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BankAccountGuide"
}
}
}
}
BankAccountStatus
{
"enum": [
"new",
"pending",
"approved",
"failed"
],
"type": "string",
"x-internal": true,
"description": "Bank Account status"
}
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
}
BankAccountToAddContainer
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/BankAccountToAdd"
}
},
"x-internal": true
}
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"
}
}
}
BankAccountUpdatedContainer
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/BankAccountUpdated"
}
}
}
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
}
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"
}
}
}
}
}
}
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
}
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
}
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
}
BasicOrganization
{
"type": "object",
"required": [
"id",
"name"
],
"properties": {
"id": {
"$ref": "#/components/schemas/UniqueObjectIdentifier"
},
"name": {
"type": "string",
"nullable": false,
"minLength": 1
}
},
"x-internal": true
}
BasicTeam
{
"type": "object",
"required": [
"id",
"name"
],
"properties": {
"id": {
"$ref": "#/components/schemas/UniqueObjectIdentifier"
},
"name": {
"type": "string",
"nullable": false,
"minLength": 1
}
},
"x-internal": true
}
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
}
BenefitContributionStatusEnum
{
"enum": [
"MANDATORY",
"OPTIONAL",
"UNAVAILABLE"
],
"type": "string"
}
BenefitContributionTypeEnum
{
"enum": [
"PERCENTAGE",
"FIXED_AMOUNT",
"MATCH"
],
"type": "string"
}
| Version | Endpoints | Schemas | Ingested | Status |
|---|---|---|---|---|
| 1.25.0 | 153 | 508 | 2026-05-11 | current |
| 1.25.0 | 153 | 508 | 2026-04-16 |