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

Adjustments 1 endpoints

PATCH /adjustments/{adjustment_id}

Update an adjustment.

operationId: Adjustments_updateAdjustment

Parameters

Name In Required Type Description
adjustment_id path optional string

Adjustment id.

Request Body

Adjustment object that needs to be updated

application/json
schema AdjustmentToUpdateContainer
Property Type Required
data object required
file string optional
title string optional
amount object optional
description string optional

Responses

200

Successful operation.

401

Operation failed.

403

Operation failed.

404

Operation failed.

500

Operation failed.

PATCH /adjustments/{adjustment_id}

Candidates 1 endpoints

PATCH /candidates/{candidate_id}

Update an existed candidate.

operationId: Candidates_updateCandidateById

Parameters

Name In Required Type Description
candidate_id path optional string

Candidate id.

Request Body

Update an existed candidate

application/json
schema CandidateToPatchContainer
Property Type Required
data object required
link string optional
email string optional
state string optional
status string required
country string optional
job_title string optional
last_name string optional
first_name string optional
start_date string optional
nationality string optional

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.

PATCH /candidates/{candidate_id}

Contracts 1 endpoints

PATCH /contracts/{contract_id}

Add an external Id to a Deel contract. You can use this to add a Deel contract’s refernece Id in your platform. External Id can be passed as a query parameter in List contract endpoint to find this conract later.

operationId: Contracts_addExternalId

Parameters

Name In Required Type Description
contract_id path optional string

Deel contract id.

Request Body

Contract object that needs to be created

application/json
schema InputToPatchContractExternalId
Property Type Required
data object required
external_id string required

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.

PATCH /contracts/{contract_id}

Globalpayroll 5 endpoints

PATCH /gp/workers/{worker_id}/address

Update the address of a Global Payroll employee.

operationId: GlobalPayroll_updateWorkerAddress

Parameters

Name In Required Type Description
worker_id path optional string

Unique identifier for a worker.

Request Body

The desired address of the Global Payroll employee

application/json
schema GPEmployeeAddressToUpdateContainer
Property Type Required
data object required
zip string optional
city string optional
street string optional

Responses

200

Successful operation.

401

Operation failed.

403

Operation failed.

404

Operation failed.

500

Operation failed.

PATCH /gp/workers/{worker_id}/address
PATCH /gp/workers/{worker_id}/banks/{bank_id}

Modify bank account for an employee.

operationId: GlobalPayroll_modifyBankAccount

Parameters

Name In Required Type Description
worker_id path optional string

Unique identifier for a worker.

bank_id path optional string

Bank Account id.

Request Body

Request body to add new bank account for employee

application/json
schema AddWorkerBankAccountContainer
Property Type Required
data object required
city string optional
iban string optional
email 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

Responses

200

Successful operation.

400

Operation failed.

401

Operation failed.

403

Operation failed.

404

Operation failed.

500

Operation failed.

PATCH /gp/workers/{worker_id}/banks/{bank_id}
PATCH /gp/workers/{worker_id}/compensation

Update the compensation of a Global Payroll employee. Returns the full compensation history including the update.

operationId: GlobalPayroll_updateCompensationHistory

Parameters

Name In Required Type Description
worker_id path optional string

Unique identifier for a worker.

Request Body

The desired compensation of the Global Payroll employee

application/json
schema GPEmployeeCompensationToUpdateContainer
Property Type Required
data object required
scale string required
salary number required
effective_date string required

Responses

200

Successful operation.

401

Operation failed.

403

Operation failed.

404

Operation failed.

500

Operation failed.

PATCH /gp/workers/{worker_id}/compensation
PATCH /gp/workers/{worker_id}/employee-information

Update Global Payroll employee information.

operationId: GlobalPayroll_updateEmployeeInformation

Parameters

Name In Required Type Description
worker_id path optional string

Unique identifier for a worker.

Request Body

The desired information of the Global Payroll employee

application/json
schema GPEmployeeInformationToUpdateContainer
Property Type Required
data object required
gender string optional
last_name string optional
first_name string optional
middle_name string optional
date_of_birth string optional
marital_status string optional
employee_number string optional

Responses

200

Successful operation.

401

Operation failed.

403

Operation failed.

404

Operation failed.

500

Operation failed.

PATCH /gp/workers/{worker_id}/employee-information
PATCH /gp/workers/{worker_id}/pto-policy

Update the PTO policy of a Global Payroll employee.

operationId: GlobalPayroll_updatePtoPolicy

Parameters

Name In Required Type Description
worker_id path optional string

Unique identifier for a worker.

Request Body

The desired PTO policy of the Global Payroll employee

application/json
schema GPEmployeePTOToUpdateContainer
Property Type Required
data object required
yearly_allowance string required
accrual_start_date string required

Responses

200

Successful operation.

401

Operation failed.

403

Operation failed.

404

Operation failed.

500

Operation failed.

PATCH /gp/workers/{worker_id}/pto-policy

Invoices 1 endpoints

PATCH /invoice-adjustments/{invoice_adjustment_id}

Update an existing invoice adjustment. It is not possible to update VAT adjustments, we recommend you to delete the existing VAT adjust and create a new one.

operationId: Invoices_updateAdjustmentById

Parameters

Name In Required Type Description
invoice_adjustment_id path optional number

ID of an existing invoice adjustment

Request Body

InvoiceAdjustment object that needs to be updated

application/json
schema InvoiceAdjustmentToUpdateContainer
Property Type Required
data object required
amount number optional
description string required

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.

PATCH /invoice-adjustments/{invoice_adjustment_id}

Partnermanaged 1 endpoints

PATCH /partner-managed/employees/{employee_id}/banks/{bank_id}

Modify bank account for an EOR employee.

operationId: PartnerManaged_modifyBankAccountForEorEmployee

Parameters

Name In Required Type Description
employee_id path optional string

Unique identifier for an employee in Deel.

bank_id path optional string

Bank Account id.

Request Body

Bank Account object that needs to be modified

application/json
schema BankAccountToAddContainer
Property Type Required
data array required
key string required
value string required

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.

PATCH /partner-managed/employees/{employee_id}/banks/{bank_id}

People 2 endpoints

PATCH /people/{worker_id}/time-offs/{timeoff_id}

Edit a time off request for a worker.

operationId: People_editTimeOffRequest

Parameters

Name In Required Type Description
timeoff_id path optional string

Unique identifier for a time-off in Deel.

worker_id path optional string

Unique identifier for a worker.

Request Body

Detail of the time off that will be updated.

multipart/form-data
schema PeopleTimeOffContainer
Property Type Required
type string optional
reason string optional
end_date string optional
start_date string optional
attachments string optional

Responses

200

successful operation

401

Operation failed.

403

Operation failed.

404

Operation failed.

500

Operation failed.

PATCH /people/{worker_id}/time-offs/{timeoff_id}
PATCH /people/{worker_id}/time-offs/{timeoff_id}/review

Approve or decline a time off request. New requests are auto-approved. Hence they don’t need to be manually approved.

operationId: People_reviewTimeOff

Parameters

Name In Required Type Description
timeoff_id path optional string

Unique identifier for a time-off in Deel.

worker_id path optional string

Unique identifier for a worker.

Request Body

Timeoff acceptance approve or decline.

application/json
schema TimeoffToReviewInternalContainer
Property Type Required
data object required
reason string optional
status string required

Responses

200

successful operation

401

Operation failed.

403

Operation failed.

404

Operation failed.

500

Operation failed.

PATCH /people/{worker_id}/time-offs/{timeoff_id}/review

Timeoff 1 endpoints

PATCH /time-offs/{timeoff_id}/review

Approve or decline an employee’s time off request.

operationId: TimeOff_manageRequest

Parameters

Name In Required Type Description
timeoff_id path optional string

Time off Id

Request Body

Timeoff acceptance approve or decline.

application/json
schema TimeoffToReviewContainer
Property Type Required
data object required
is_approved boolean required
denial_reason string optional

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.

PATCH /time-offs/{timeoff_id}/review

Timesheets 1 endpoints

PATCH /timesheets/{timesheet_id}

Update a single timesheet entry.

operationId: Timesheets_updateEntry

Parameters

Name In Required Type Description
timesheet_id path optional number

ID of an existing timesheet

Request Body

Timesheet object that needs to be updated

application/json
schema TimesheetToUpdateContainer
Property Type Required
data object required
quantity number required
description string required

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.

PATCH /timesheets/{timesheet_id}

User 1 endpoints

PATCH /Users/{id}
operationId: User_partiallyUpdateUser

Parameters

Name In Required Type Description
id path required string

user id

Request Body

patch operations list

application/json
schema UserPatch
Property Type Required
schemas array required
Operations array required
op string required
path string optional
value object optional
application/scim+json
schema UserPatch
Property Type Required
schemas array required
Operations array required
op string required
path string optional
value object optional

Responses

200

successfully partially updated user

400

bad request

401

authorization failure

403

permissions denied

404

not found

409

duplicate email

429

too many requests

500

internal server error

PATCH /Users/{id}

Webhooks 1 endpoints

PATCH /webhooks/{id}

Edit a webhook subscription.

operationId: WebhookController_editById

Parameters

Name In Required Type Description
id path required string

Request Body

required
application/json
schema PatchWebhookRequest
Property Type Required
url string required
name string required
events array required
status string required
api_version string optional
description string required
signing_key string required

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.

PATCH /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