TimesheetReviewToCreate
{
"type": "object",
"required": [
"status"
],
"properties": {
"reason": {
"type": "string",
"nullable": true
},
"status": {
"enum": [
"approved",
"declined"
],
"type": "string",
"nullable": false
}
},
"x-internal": true
}
TimesheetReviewToCreateContainer
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/TimesheetReviewToCreate"
}
},
"x-internal": true
}
TimesheetReviewsToCreate
{
"type": "object",
"required": [
"status",
"ids"
],
"properties": {
"ids": {
"$ref": "#/components/schemas/TimesheetIdItems"
},
"reason": {
"type": "string",
"nullable": true
},
"status": {
"enum": [
"approved",
"declined"
],
"type": "string",
"nullable": false
}
},
"x-internal": true
}
TimesheetReviewsToCreateContainer
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/TimesheetReviewsToCreate"
}
},
"x-internal": true
}
TimesheetSearchContainer
{
"type": "object",
"properties": {
"limit": {
"type": "string",
"default": "10",
"pattern": "^\\d{1,5}$",
"nullable": false,
"maxLength": 5,
"description": "Return a page of results with given number of records."
},
"types": {
"oneOf": [
{
"$ref": "#/components/schemas/TimesheetTypeEnumList"
},
{
"$ref": "#/components/schemas/TimesheetTypeEnum"
}
]
},
"offset": {
"type": "string",
"default": "10",
"pattern": "^\\d{1,5}$",
"nullable": false,
"maxLength": 5
},
"date_to": {
"$ref": "#/components/schemas/DateString"
},
"statuses": {
"oneOf": [
{
"$ref": "#/components/schemas/TimesheetStatusEnumList"
},
{
"$ref": "#/components/schemas/TimesheetStatusEnum"
}
]
},
"date_from": {
"$ref": "#/components/schemas/DateString"
},
"invoice_id": {
"type": "string",
"pattern": "^\\d+$",
"nullable": false,
"maxLength": 10
},
"contract_id": {
"type": "string",
"nullable": false
},
"reporter_id": {
"type": "string",
"pattern": "^\\d+$",
"nullable": false,
"maxLength": 10
},
"contract_types": {
"oneOf": [
{
"$ref": "#/components/schemas/ContractTypeEnumList"
},
{
"$ref": "#/components/schemas/ContractTypeEnum"
}
]
},
"order_direction": {
"$ref": "#/components/schemas/SortDirEnum"
}
},
"x-internal": true,
"description": "This is a model to make it easier to understand and restrict search parameters"
}
TimesheetSharedProperties
{
"type": "object",
"required": [
"contract_id",
"quantity",
"date_submitted",
"description"
],
"properties": {
"quantity": {
"type": "number",
"example": 2,
"minimum": 0.01,
"nullable": false,
"description": "This is based on the scale of work statement of the associated contract"
},
"contract_id": {
"type": "string",
"nullable": false,
"description": "Id of a Deel contract."
},
"description": {
"type": "string",
"default": "",
"nullable": false
},
"date_submitted": {
"$ref": "#/components/schemas/DateStringRequired"
}
},
"x-internal": true,
"description": "Details of the timesheet to create. Both a client or a contractor may create a timesheet."
}
TimesheetStatusEnum
{
"enum": [
"approved",
"declined",
"not_payable",
"paid",
"pending",
"processing",
null
],
"type": "string",
"example": "approved",
"nullable": true,
"x-internal": true,
"description": "Status of this entry."
}
TimesheetStatusEnumList
{
"type": "array",
"items": {
"$ref": "#/components/schemas/TimesheetStatusEnum"
},
"x-internal": true
}
TimesheetToCreateContainer
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/TimesheetSharedProperties"
}
},
"x-internal": true
}
TimesheetToCreateWithFile
{
"allOf": [
{
"$ref": "#/components/schemas/TimesheetSharedProperties"
},
{
"$ref": "#/components/schemas/FileObject"
}
],
"x-internal": true
}
TimesheetToUpdate
{
"type": "object",
"required": [
"quantity",
"description"
],
"properties": {
"quantity": {
"type": "number",
"nullable": false
},
"description": {
"type": "string",
"nullable": false
}
},
"x-internal": true,
"description": "Details of the timesheet to update. Both a client or a contractor may update a timesheet."
}
TimesheetToUpdateContainer
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/TimesheetToUpdate"
}
},
"x-internal": true
}
TimesheetTypeEnum
{
"enum": [
"work"
],
"type": "string",
"x-internal": true,
"description": "Type for timesheet"
}
TimesheetTypeEnumList
{
"type": "array",
"items": {
"$ref": "#/components/schemas/TimesheetTypeEnum"
},
"x-internal": true
}
UniqueObjectIdentifier
{
"type": "string",
"example": "00000000-0000-0000-0000-000000000000",
"description": "Unique identifier of this resource."
}
UpdateWorkerDepartment
{
"type": "object",
"required": [
"department_id"
],
"properties": {
"department_id": {
"$ref": "#/components/schemas/UniqueObjectIdentifier"
}
}
}
UpdateWorkerDepartmentContainer
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/UpdateWorkerDepartment"
}
},
"x-internal": true
}
UpdateWorkerWorkingLocation
{
"type": "object",
"required": [
"working_location_id"
],
"properties": {
"working_location_id": {
"$ref": "#/components/schemas/UniqueObjectIdentifier"
}
}
}
UpdateWorkerWorkingLocationContainer
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/UpdateWorkerWorkingLocation"
}
},
"x-internal": true
}
UploadEmployeeComplianceDocumentContainer
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"example": true,
"description": "A flag denoting if the file upload was successful."
}
}
}
},
"x-internal": true
}
UploadEmployeeComplianceDocumentFileContainer
{
"type": "object",
"required": [
"file"
],
"properties": {
"file": {
"type": "string",
"format": "binary",
"description": "The employee compliance document to upload."
}
},
"x-internal": true
}
UrlType
{
"type": "string",
"format": "uri",
"nullable": true,
"minLength": 5,
"x-internal": true
}
UrlTypeRequired
{
"type": "string",
"format": "uri",
"nullable": false,
"minLength": 5,
"x-internal": true
}
User
{
"type": "object",
"required": [
"emails",
"name",
"schemas",
"userName",
"meta"
],
"properties": {
"id": {
"type": "string",
"example": "97b727b8-bdb5-11ed-afa1-0242ac120002",
"description": "Unique resource id (UUID) defined by Deel."
},
"meta": {
"type": "object",
"properties": {
"created": {
"type": "string",
"example": "2023-02-04T18:03:18.796Z",
"description": "Time at which the resource was created."
},
"version": {
"type": "string",
"example": "W/a330bc54f0671c9",
"description": "Latest version of resource."
},
"location": {
"type": "string",
"example": "https://api.letsdeel.com/scim/v2/Users/97b727b8-bdb5-11ed-afa1-0242ac120002",
"description": "API endpoint to retrieve resource."
},
"lastModified": {
"type": "string",
"example": "2023-02-04T18:03:18.796Z",
"description": "Time at which the resource was last modified."
},
"resourceType": {
"type": "string",
"example": "User",
"description": "Resource type."
}
}
},
"name": {
"$ref": "#/components/schemas/Name"
},
"title": {
"type": "string",
"example": "Software Engineer",
"description": "Job title."
},
"active": {
"type": "boolean",
"default": false,
"description": "Hiring status. True if user employment is active. False if employment is not active."
},
"emails": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Email"
}
},
"schemas": {
"type": "array",
"items": {
"enum": [
"urn:ietf:params:scim:schemas:core:2.0:User"
],
"type": "string"
}
},
"userName": {
"type": "string",
"example": "work.email@example.com",
"description": "User's work email."
},
"userType": {
"type": "string",
"example": "employee",
"description": "User type."
},
"urn:ietf:params:scim:schemas:extension:2.0:User": {
"$ref": "#/components/schemas/UserExtension"
},
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
"$ref": "#/components/schemas/EnterpriseUser"
}
}
}
UserDeleteUserResponse
{
"type": "object",
"example": {},
"properties": {}
}
UserExtension
{
"type": "object",
"properties": {
"state": {
"type": "string",
"example": "CO",
"nullable": true,
"description": "State code."
},
"country": {
"type": "string",
"example": "US",
"nullable": true,
"description": "Country code."
},
"endDate": {
"type": "string",
"format": "date-time",
"description": "End date of employment."
},
"startDate": {
"type": "string",
"format": "date-time",
"description": "Start date of employment."
},
"employments": {
"type": "array",
"items": {
"type": "object",
"nullable": true,
"properties": {
"state": {
"type": "string",
"example": "CO",
"nullable": true,
"description": "State code."
},
"title": {
"type": "string",
"example": "International Factors Developer",
"nullable": true,
"description": "Contract title"
},
"active": {
"type": "boolean",
"default": false,
"example": true,
"description": "Indicates if the contract is currently active."
},
"country": {
"type": "string",
"example": "US",
"nullable": true,
"description": "Country code."
},
"startDate": {
"type": "string",
"example": "2023-04-26",
"nullable": true,
"description": "Contract start date."
},
"contractId": {
"type": "string",
"example": "av4bt56",
"description": "Contract identifier."
},
"contractType": {
"type": "string",
"example": "eor",
"nullable": true,
"description": "Type of Deel contract"
}
}
},
"nullable": true
}
}
}
UserPatch
{
"type": "object",
"required": [
"Operations",
"schemas"
],
"properties": {
"schemas": {
"type": "array",
"items": {
"enum": [
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
],
"type": "string"
}
},
"Operations": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PatchOperation"
},
"description": "patch operations list"
}
}
}
UserResponse
{
"allOf": [
{
"$ref": "#/components/schemas/User"
},
{
"type": "object",
"properties": {
"meta": {
"$ref": "#/components/schemas/Meta"
}
}
}
]
}
UserSearchResponse
{
"type": "object",
"properties": {
"schemas": {
"type": "array",
"items": {
"enum": [
"urn:ietf:params:scim:api:messages:2.0:ListResponse"
],
"type": "string"
}
},
"Resources": {
"type": "array",
"items": {
"$ref": "#/components/schemas/UserResponse"
},
"description": "User list."
},
"startIndex": {
"type": "integer",
"format": "int64",
"description": "Start index of the current page."
},
"itemsPerPage": {
"type": "integer",
"format": "int64"
},
"totalResults": {
"type": "integer",
"format": "int64"
}
}
}
UsersParamLimit
{
"type": "string",
"default": "50",
"maximum": 100,
"minimum": 0,
"pattern": "^[0-9][0-9]?$|^100$",
"nullable": false,
"description": "Maximum number of records to return. This is supposed to be an integer but query parameters are string. 1 to 100."
}
UsersParamOffset
{
"type": "string",
"default": "1",
"minimum": 1,
"pattern": "^[1-9]\\d{0,14}$",
"nullable": false,
"description": "Offset/index of record for the next page of records to return (1 to 999999999999999)."
}
UsersSearchForm
{
"type": "object",
"properties": {
"count": {
"$ref": "#/components/schemas/UsersParamLimit"
},
"startIndex": {
"$ref": "#/components/schemas/UsersParamOffset"
}
},
"description": "Convenient model to encapsulate query parameters to get a list of users."
}
ValidationType
{
"type": "object",
"properties": {
"type": {
"$ref": "#/components/schemas/ValidationTypeEnum",
"description": "Validation type."
},
"value": {
"oneOf": [
{
"type": "string"
},
{
"type": "number"
}
],
"example": 2,
"description": "Validation value."
}
},
"x-internal": true
}
ValidationTypeEnum
{
"enum": [
"MIN_LENGTH",
"MAX_LENGTH",
"REGEXP"
],
"type": "string"
}
WebhookEventTypeListResponse
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/WebhookEventTypeResponse"
}
}
}
}
WebhookEventTypeResponse
{
"type": "object",
"required": [
"id",
"module_name",
"module_label",
"name",
"description"
],
"properties": {
"id": {
"type": "number",
"nullable": false,
"description": "Event type unique identifier."
},
"name": {
"type": "string",
"example": "invoice-adjustment.reviewed",
"nullable": false,
"description": "Name of the webhook event."
},
"created_at": {
"type": "string",
"description": "Time at which the event type was created."
},
"updated_at": {
"type": "string",
"description": "Time at which the event type was updated."
},
"description": {
"type": "string",
"example": "Triggered when a contract status changes.",
"description": "Describes the webhook event and other pertinent info."
},
"module_name": {
"type": "string",
"example": "contract",
"nullable": false,
"description": "Name of the rabbit queue."
},
"module_label": {
"type": "string",
"example": "Contracts",
"nullable": false,
"description": "Display name of the rabbit queue in Deel UI."
},
"payload_example": {
"type": "string",
"example": null,
"nullable": true,
"description": "JSON payload example of the specific event."
}
}
}
WebhookItem
{
"type": "object",
"required": [
"name",
"description",
"status",
"url",
"signing_key",
"api_version",
"events",
"id",
"created_at",
"updated_at"
],
"properties": {
"id": {
"$ref": "#/components/schemas/UniqueObjectIdentifier",
"description": "Webhook subscription's unique identifier."
},
"url": {
"type": "string",
"example": "https://mywebhook.com/listening",
"description": "Endpoint to receive webhook."
},
"name": {
"type": "string",
"example": "My webhooks",
"nullable": true,
"description": "Webhook subscription name."
},
"events": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"contract.created"
],
"description": "The list of events to enable for this subscription."
},
"hidden": {
"type": "boolean",
"example": false,
"nullable": true,
"description": "Property to hide the webhook from frontend view. Commonly by Dell 3rd party apps"
},
"status": {
"enum": [
"enabled",
"disabled"
],
"type": "string",
"example": "enabled",
"description": "Status of webhook."
},
"created_at": {
"type": "string",
"description": "Time at which the webhook was created."
},
"updated_at": {
"type": "string",
"description": "Time at which the webhook was updated."
},
"api_version": {
"type": "string",
"default": "v2",
"example": "v2",
"nullable": false,
"description": "Deel API version. Currently Deel accepts v1 or v2 version."
},
"description": {
"type": "string",
"example": "My first webhook",
"nullable": true,
"description": "Webhook subscription description."
},
"signing_key": {
"type": "string",
"example": null,
"nullable": true,
"description": "The webhook's signing key, used to generate webhook signatures."
}
}
}
WebhookItemResponse
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/WebhookItem"
}
}
}
WebhookListResponse
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/WebhookItem"
}
}
}
}
WeekDaysEnum
{
"enum": [
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
],
"type": "string",
"example": "Monday",
"x-internal": true,
"description": "Days of the week."
}
WorkStatementCycleEndTypeEnum
{
"enum": [
"DAY_OF_WEEK",
"DAY_OF_LAST_WEEK",
"DAY_OF_MONTH"
],
"type": "string",
"example": "DAY_OF_WEEK",
"x-internal": true,
"description": "Cycle end can be weekly 1-7 (Monday = 1) or monthly 1-31."
}
WorkStatementCycleScaleEnum
{
"enum": [
"weekly",
"monthly",
"biweekly",
"semimonthly",
"calendar-month"
],
"type": "string",
"example": "monthly",
"x-internal": true,
"description": "Scale of the invoice cycle."
}
WorkStatementPaymentDueTypeEnum
{
"enum": [
"REGULAR",
"WITHIN_MONTH"
],
"type": "string",
"default": "REGULAR",
"example": "REGULAR",
"x-internal": true,
"description": "Type of payment due. If the payment is due on the last day of month, enter 'WITHIN_MONTH'."
}
WorkStatementScaleEnum
{
"enum": [
"hourly",
"daily",
"weekly",
"monthly",
"biweekly",
"semimonthly",
"custom"
],
"type": "string",
"example": "daily",
"x-internal": true,
"description": "Defines the scale at which the amount is paid. For example, enter 'hourly' to define the amount per hour. This field can be excluded when creating a Pay-as-you-go task-based or Milestone contracts."
}
WorkStatementScaleEnumOptional
{
"enum": [
"hourly",
"daily",
"weekly",
"monthly",
"biweekly",
"semimonthly",
"custom"
],
"type": "string",
"example": "daily",
"nullable": true,
"x-internal": true,
"description": "Defines the scale at which the amount is paid. For example, enter 'hourly' to define the amount per hour. This field can be excluded when creating a Pay-as-you-go task-based or Milestone contracts."
}
WorkerBankAccountInfo
{
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/WorkerBankAccountToAdd"
},
{
"type": "object",
"required": [
"id",
"created_at",
"updated_at"
],
"properties": {
"id": {
"$ref": "#/components/schemas/UniqueObjectIdentifier"
},
"status": {
"type": "string",
"description": "Current status of bank account"
},
"created_at": {
"$ref": "#/components/schemas/DateTimeStringRequired"
},
"updated_at": {
"$ref": "#/components/schemas/DateTimeStringRequired"
}
}
}
]
}
WorkerBankAccountToAdd
{
"type": "object",
"properties": {
"city": {
"type": "string",
"example": "Springfield",
"description": "The city of the user's address."
},
"iban": {
"type": "string",
"example": "GB29NWBK60161331926819",
"description": "The International Bank Account Number (IBAN)."
},
"email": {
"type": "string",
"example": "john.doe@example.com",
"description": "The user's email address."
},
"phone": {
"type": "string",
"example": "+1234567890",
"description": "The user's phone number."
},
"postal": {
"type": "string",
"example": "12345",
"description": "The user's postal or ZIP code."
},
"tax_id": {
"type": "string",
"example": "123-45-6789",
"description": "The user's tax identification number."
},
"bank_code": {
"type": "string",
"example": "123",
"description": "The bank code."
},
"bank_name": {
"type": "string",
"example": "Bank of Examples",
"description": "Name of the user's bank."
},
"full_name": {
"type": "string",
"example": "John Doe",
"description": "Full name of the user."
},
"swift_bic": {
"type": "string",
"example": "EXAMPLEBIC",
"description": "SWIFT/BIC code for the bank."
},
"rib_number": {
"type": "string",
"example": "12345678901",
"description": "The RIB(Relevé d'Identité Bancaire)."
},
"branch_code": {
"type": "string",
"example": "001",
"description": "The branch code of the user's bank."
},
"account_type": {
"type": "string",
"example": "12345678901",
"description": "Bank account type."
},
"country_code": {
"type": "string",
"example": "US",
"description": "The country code of the user."
},
"address_line1": {
"type": "string",
"example": "1234 Main St",
"description": "The primary address line."
},
"address_line2": {
"type": "string",
"example": "Apartment 101",
"description": "The secondary address line."
},
"currency_code": {
"type": "string",
"example": "USD",
"description": "The currency code for transactions."
},
"original_name": {
"type": "string",
"example": "Johnathan Doe",
"description": "The original name of the user."
},
"account_number": {
"type": "string",
"example": "123456789012",
"description": "The user's bank account number."
},
"province_state": {
"type": "string",
"example": "Ontario",
"description": "The state or province of the user's address."
},
"bank_branch_name": {
"type": "string",
"example": "Main Street Branch",
"description": "The name of the user's bank branch."
},
"bank_country_code": {
"type": "string",
"example": "US",
"description": "The country code where the bank is located."
},
"ach_routing_number": {
"type": "string",
"example": "12345678901",
"description": "The ACH (Automated Clearing House) Routing Number."
}
}
}
WorkerBankAccountsInfoContainer
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/WorkerBankAccountInfo"
}
}
}
}
WorkerEmailType
{
"type": "string",
"format": "email",
"nullable": true,
"minLength": 5,
"x-internal": true,
"description": "Worker's email address."
}
WorkerLegalEntity
{
"type": "object",
"required": [
"type",
"personal_name",
"registration_number"
],
"properties": {
"type": {
"$ref": "#/components/schemas/LegalEntityType"
},
"personal_name": {
"type": "string"
},
"registration_number": {
"type": "string"
}
},
"x-internal": true
}