Deel

Global payroll and HR platform

developer.deel.com ↗
Version
1.25.0
OpenAPI
3.0.1
Endpoints
153
Schemas
508
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

Authentication

bearer oauth2

Endpoints

Clear filters

Contracts 1 endpoints

PUT /contracts/{contract_id}/documents

Overwrite the file currently attached to contract document.

operationId: Contracts_editFileAttachment

Parameters

Name In Required Type Description
optional

Request Body

{
  "$ref": "#/components/requestBodies/RequestFormForContractDocument"
}

Responses

200
400
401
403
404
405
429
500
PUT /contracts/{contract_id}/documents

People 2 endpoints

PUT /people/{worker_id}/department

Update worker department.

operationId: People_updateDepartment

Parameters

Name In Required Type Description
optional

Request Body

{
  "$ref": "#/components/requestBodies/RequestBodyToUpdateWorkerDepartment"
}

Responses

200
400
401
403
404
405
429
500
PUT /people/{worker_id}/department
PUT /people/{worker_id}/working-location

Update worker working location.

operationId: People_updateWorkingLocation

Parameters

Name In Required Type Description
optional

Request Body

{
  "$ref": "#/components/requestBodies/RequestBodyToUpdateWorkerWorkingLocation"
}

Responses

200
400
401
403
404
405
429
500
PUT /people/{worker_id}/working-location

Time off 1 endpoints

PUT /contracts/{contract_id}/time-offs/{timeoff_id}

Edit a time off request for a full-time employee.

operationId: TimeOff_editRequestObsolete

Parameters

Name In Required Type Description
optional
optional

Request Body

{
  "$ref": "#/components/requestBodies/RequestBodyToCreateTimeoff"
}

Responses

201
401
403
404
500
PUT /contracts/{contract_id}/time-offs/{timeoff_id}

User 1 endpoints

PUT /Users/{id}
operationId: User_updateUserById

Parameters

Name In Required Type Description
id path required string user id

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/User"
      }
    },
    "application/scim+json": {
      "schema": {
        "$ref": "#/components/schemas/User"
      }
    }
  },
  "required": false,
  "description": "an existing user"
}

Responses

200 successfully fully updated a user
400 bad request
401 authorization failure
403 permissions denied
404 not found
409 duplicate email
429 too many requests
500 internal server error
PUT /Users/{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"
}
object BenefitQuote
{
  "type": "object",
  "properties": {
    "fee": {
      "type": "number",
      "description": "Fee in local currency"
    },
    "name": {
      "type": "string",
      "description": "Benefit's name"
    },
    "plan": {
      "type": "string",
      "description": "Benefit's plan"
    },
    "price": {
      "type": "number",
      "description": "Price in local currency"
    },
    "fee_usd": {
      "type": "number",
      "description": "Fee in USD"
    },
    "currency": {
      "$ref": "#/components/schemas/CurrencyCode"
    },
    "price_usd": {
      "type": "number",
      "description": "Price in USD"
    }
  },
  "x-internal": true
}
string BenefitStatusEnum
{
  "enum": [
    "REQUIRED",
    "ENABLED",
    "DISABLED"
  ],
  "type": "string"
}
object BreakdownCostsQuote
{
  "type": "object",
  "properties": {
    "monthly": {
      "type": "object",
      "properties": {
        "costs": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/CostQuote"
          }
        },
        "total": {
          "type": "number",
          "description": "Total costs in local currency"
        },
        "total_usd": {
          "type": "number",
          "description": "Total costs in USD"
        }
      }
    }
  },
  "x-internal": true
}
object BulkSupported
{
  "type": "object",
  "properties": {
    "supported": {
      "type": "boolean",
      "default": false
    },
    "maxOperations": {
      "type": "integer",
      "format": "int32"
    },
    "maxPayloadSize": {
      "type": "integer",
      "format": "int32"
    }
  }
}
string CandidateStatusEnum
{
  "enum": [
    "offer-accepted",
    "offer-sent",
    "offer-declined",
    "offer-deleted"
  ],
  "type": "string",
  "x-internal": true,
  "description": "Offer status"
}
object CandidateToCreate
{
  "type": "object",
  "required": [
    "id",
    "first_name",
    "last_name",
    "status",
    "start_date",
    "link"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Unique identifier of candidate in your ATS."
    },
    "link": {
      "type": "string",
      "description": "Link to candidate's profile in ATS."
    },
    "email": {
      "$ref": "#/components/schemas/EmailTypeRequired",
      "title": "Candidate's email."
    },
    "state": {
      "type": "string",
      "example": "AL",
      "maxLength": 50,
      "minLength": 1,
      "description": "Job location state."
    },
    "status": {
      "$ref": "#/components/schemas/CandidateStatusEnum"
    },
    "country": {
      "$ref": "#/components/schemas/CountryCode",
      "description": "Job location country."
    },
    "job_title": {
      "type": "string",
      "example": "3D Designer",
      "description": "Job Title."
    },
    "last_name": {
      "type": "string",
      "example": "Doe",
      "description": "Candidate's last name."
    },
    "first_name": {
      "type": "string",
      "example": "John",
      "description": "Candidate's first name."
    },
    "start_date": {
      "$ref": "#/components/schemas/DateStringRequired",
      "description": "Candidate's expected start date."
    },
    "nationality": {
      "$ref": "#/components/schemas/NationalityType",
      "description": "Candidate's nationality."
    }
  },
  "x-internal": true,
  "description": "Details of candidate to create"
}
object CandidateToCreateContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/CandidateToCreate"
    }
  },
  "x-internal": true
}
object CandidateToPatch
{
  "type": "object",
  "required": [
    "status"
  ],
  "properties": {
    "link": {
      "type": "string",
      "description": "Link to candidate's profile in ATS."
    },
    "email": {
      "$ref": "#/components/schemas/EmailTypeRequired",
      "title": "Candidate's email."
    },
    "state": {
      "type": "string",
      "example": "AL",
      "maxLength": 50,
      "minLength": 1,
      "description": "Job location state."
    },
    "status": {
      "$ref": "#/components/schemas/CandidateStatusEnum"
    },
    "country": {
      "$ref": "#/components/schemas/CountryCode",
      "description": "Job location country."
    },
    "job_title": {
      "type": "string",
      "example": "3D Designer",
      "description": "Job Title."
    },
    "last_name": {
      "type": "string",
      "example": "Doe",
      "description": "Candidate's last name."
    },
    "first_name": {
      "type": "string",
      "example": "John",
      "description": "Candidate's first name."
    },
    "start_date": {
      "$ref": "#/components/schemas/DateStringRequired",
      "description": "Candidate's expected start date."
    },
    "nationality": {
      "$ref": "#/components/schemas/NationalityType",
      "description": "Candidate's nationality."
    }
  },
  "x-internal": true,
  "description": "Details of candidate to update"
}
object CandidateToPatchContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/CandidateToPatch"
    }
  },
  "x-internal": true
}
object ClientLegalEntity
{
  "type": "object",
  "nullable": true,
  "required": [
    "id",
    "name",
    "email",
    "type",
    "subtype",
    "registration_number",
    "vat_number"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier"
    },
    "name": {
      "type": "string"
    },
    "type": {
      "$ref": "#/components/schemas/LegalEntityType"
    },
    "email": {
      "$ref": "#/components/schemas/EmailType"
    },
    "subtype": {
      "$ref": "#/components/schemas/LegalEntitySubType"
    },
    "vat_number": {
      "type": "string"
    },
    "registration_number": {
      "type": "string"
    }
  },
  "x-internal": true
}
object ClientOfBasicContract
{
  "type": "object",
  "properties": {
    "team": {
      "$ref": "#/components/schemas/TeamOfBasicContract"
    }
  },
  "x-internal": true
}
object ClientOfContract
{
  "type": "object",
  "nullable": true,
  "required": [
    "team",
    "legal_entity"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier"
    },
    "team": {
      "$ref": "#/components/schemas/TeamOfContract"
    },
    "email": {
      "$ref": "#/components/schemas/EmailType"
    },
    "full_name": {
      "type": "string"
    },
    "legal_entity": {
      "$ref": "#/components/schemas/ClientLegalEntity"
    }
  },
  "x-internal": true
}
object CompensationDetailsOfContract
{
  "type": "object",
  "required": [
    "currency_code",
    "amount",
    "scale",
    "frequency",
    "first_payment",
    "first_payment_date",
    "gross_annual_salary",
    "gross_signing_bonus",
    "gross_variable_bonus"
  ],
  "properties": {
    "scale": {
      "type": "string"
    },
    "amount": {
      "type": "string"
    },
    "frequency": {
      "type": "string"
    },
    "currency_code": {
      "$ref": "#/components/schemas/CurrencyCodeRequired"
    },
    "first_payment": {
      "type": "string"
    },
    "first_payment_date": {
      "$ref": "#/components/schemas/DateTimeString"
    },
    "gross_annual_salary": {
      "type": "string"
    },
    "gross_signing_bonus": {
      "type": "string"
    },
    "gross_variable_bonus": {
      "type": "string"
    }
  },
  "x-internal": true
}
object CompensationDetailsOfContractToCreate_Shared
{
  "type": "object",
  "required": [
    "currency_code",
    "frequency",
    "cycle_end",
    "cycle_end_type",
    "payment_due_type",
    "payment_due_days"
  ],
  "properties": {
    "amount": {
      "type": "number",
      "example": 100,
      "description": "Amount to be paid. This field can be excluded when creating a Pay-as-you-go task-based or Milestone contracts."
    },
    "cycle_end": {
      "type": "number",
      "example": 15,
      "maximum": 31,
      "minimum": 1,
      "description": "Date invoice cycle ends."
    },
    "frequency": {
      "$ref": "#/components/schemas/WorkStatementCycleScaleEnum"
    },
    "currency_code": {
      "$ref": "#/components/schemas/CurrencyCodeRequired"
    },
    "first_payment": {
      "type": "number",
      "default": 0,
      "example": 500,
      "minimum": 0,
      "description": "First payment amount."
    },
    "notice_period": {
      "$ref": "#/components/schemas/NoticePeriod"
    },
    "cycle_end_type": {
      "$ref": "#/components/schemas/WorkStatementCycleEndTypeEnum"
    },
    "payment_due_days": {
      "type": "number",
      "example": 7,
      "maximum": 90,
      "minimum": 0
    },
    "payment_due_type": {
      "$ref": "#/components/schemas/WorkStatementPaymentDueTypeEnum"
    },
    "first_payment_date": {
      "$ref": "#/components/schemas/DateString"
    },
    "pay_before_weekends": {
      "type": "boolean",
      "example": true,
      "description": "If the payment due is on a weekend, pay on Friday."
    }
  },
  "x-internal": true
}
object CompensationDetailsOfContractToCreate_ongoing_time_based
{
  "type": "object",
  "required": [
    "amount",
    "scale"
  ],
  "properties": {
    "scale": {
      "$ref": "#/components/schemas/WorkStatementScaleEnum"
    },
    "amount": {
      "type": "number"
    }
  },
  "x-internal": true
}
object CompensationDetailsOfContractToCreate_pay_as_you_go_time_based
{
  "type": "object",
  "required": [
    "amount",
    "scale"
  ],
  "properties": {
    "scale": {
      "$ref": "#/components/schemas/WorkStatementScaleEnum"
    },
    "amount": {
      "type": "number"
    }
  },
  "x-internal": true
}
object Contract
{
  "type": "object",
  "required": [
    "id",
    "title",
    "type",
    "status",
    "created_at",
    "job_title",
    "seniority",
    "special_clause",
    "start_date",
    "termination_date",
    "is_archived",
    "client",
    "worker",
    "invitations",
    "signatures",
    "compensation_details",
    "employment_details"
  ],
  "properties": {
    "id": {
      "type": "string",
      "nullable": false,
      "minLength": 1
    },
    "type": {
      "$ref": "#/components/schemas/ContractTypeEnum"
    },
    "quote": {
      "$ref": "#/components/schemas/EorQuoteBase",
      "nullable": true,
      "description": "It is the quote associated with this contract. It will only be present for EOR-type contracts."
    },
    "title": {
      "type": "string",
      "nullable": false,
      "minLength": 1
    },
    "client": {
      "$ref": "#/components/schemas/ClientOfContract"
    },
    "status": {
      "$ref": "#/components/schemas/ContractStatusEnum"
    },
    "worker": {
      "$ref": "#/components/schemas/WorkerOfContract"
    },
    "job_title": {
      "type": "string"
    },
    "seniority": {
      "$ref": "#/components/schemas/Seniority"
    },
    "created_at": {
      "$ref": "#/components/schemas/DateTimeString"
    },
    "signatures": {
      "$ref": "#/components/schemas/SignaturesOfContract"
    },
    "start_date": {
      "$ref": "#/components/schemas/DateTimeString"
    },
    "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"
    },
    "who_reports": {
      "$ref": "#/components/schemas/ContractWhoReportsEnum"
    },
    "custom_fields": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ContractCustomField"
      }
    },
    "notice_period": {
      "$ref": "#/components/schemas/NoticePeriod"
    },
    "scope_of_work": {
      "type": "string",
      "nullable": true
    },
    "special_clause": {
      "type": "string"
    },
    "termination_date": {
      "$ref": "#/components/schemas/DateTimeString"
    },
    "contract_template": {
      "$ref": "#/components/schemas/ContractTemplate"
    },
    "employment_details": {
      "$ref": "#/components/schemas/EmploymentDetailsOfContract"
    },
    "compensation_details": {
      "$ref": "#/components/schemas/CompensationDetailsOfContract"
    }
  },
  "x-internal": true
}
object ContractAmendmentSentToClient
{
  "type": "object",
  "required": [
    "contract_oid",
    "contract_name",
    "client_id",
    "client_name"
  ],
  "properties": {
    "client_id": {
      "type": "number",
      "nullable": false
    },
    "client_name": {
      "type": "string",
      "nullable": false
    },
    "contract_oid": {
      "type": "string",
      "nullable": false
    },
    "contract_name": {
      "type": "string",
      "nullable": false
    }
  }
}
object ContractContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/Contract"
    }
  },
  "x-internal": true
}
object ContractContainer_ongoing_time_based
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/Contract"
    }
  },
  "x-internal": true
}
object ContractContainer_pay_as_you_go_time_based
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/Contract"
    }
  },
  "x-internal": true
}
object ContractContainer_payg_milestones
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/Contract"
    }
  },
  "x-internal": true
}
object ContractContainer_payg_tasks
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/Contract"
    }
  },
  "x-internal": true
}
object ContractCustomField
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "Employee ID",
      "nullable": false,
      "description": "Custom field property name."
    },
    "value": {
      "type": "string",
      "example": "54234",
      "nullable": false,
      "description": "Custom field property value."
    }
  },
  "description": "Customized attributes on contracts (Employee ID, Project code, etc)."
}
object ContractDetailsToAmend
{
  "type": "object",
  "properties": {
    "scale": {
      "$ref": "#/components/schemas/WorkStatementScaleEnum"
    },
    "amount": {
      "type": "number",
      "example": 100,
      "minimum": 1,
      "nullable": false
    },
    "cycle_end": {
      "type": "number",
      "maximum": 31,
      "minimum": 1
    },
    "frequency": {
      "$ref": "#/components/schemas/WorkStatementCycleScaleEnum"
    },
    "job_title_id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier",
      "example": 123,
      "description": "If you want to use a predefined job title, please use a job title ID"
    },
    "seniority_id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier",
      "description": "You can use a predefined seniority level ID."
    },
    "currency_code": {
      "$ref": "#/components/schemas/CurrencyCodeRequired"
    },
    "first_payment": {
      "type": "number",
      "minimum": 0,
      "nullable": false
    },
    "scope_of_work": {
      "type": "string",
      "nullable": false,
      "description": "Text to describe the scope of work of the contract."
    },
    "cycle_end_type": {
      "$ref": "#/components/schemas/WorkStatementCycleEndTypeEnum"
    },
    "effective_date": {
      "$ref": "#/components/schemas/DateStringRequired"
    },
    "job_title_name": {
      "type": "string",
      "example": "3D Designer",
      "nullable": false,
      "description": "You can enter new job title."
    },
    "special_clause": {
      "type": "string",
      "nullable": false,
      "description": "Text to describe any special clause in contract."
    },
    "payment_due_days": {
      "type": "number",
      "maximum": 90,
      "minimum": 0,
      "nullable": false
    },
    "payment_due_type": {
      "$ref": "#/components/schemas/WorkStatementPaymentDueTypeEnum"
    },
    "first_payment_date": {
      "$ref": "#/components/schemas/DateStringRequired"
    },
    "pay_before_weekends": {
      "type": "boolean",
      "nullable": false,
      "description": "If the payment due is on a weekend, pay on Friday."
    }
  },
  "x-internal": true,
  "description": "You can specify any combination of data points that need changing."
}
object ContractDocumentContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/FileAttachmentInfo"
    }
  }
}
object ContractExternalIdPatchedContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ContractExternalIdToPatch"
    }
  },
  "x-internal": true
}
object ContractExternalIdToPatch
{
  "type": "object",
  "required": [
    "external_id"
  ],
  "properties": {
    "external_id": {
      "type": "string",
      "nullable": false,
      "description": "A unique identifier for the object provided by an external system."
    }
  }
}
string ContractFirstSignEnum
{
  "enum": [
    "client",
    "contractor"
  ],
  "type": "string",
  "x-internal": true,
  "description": "Flag to indicate who is supposed to sign a contract"
}
object ContractInvitationToCreate
{
  "type": "object",
  "required": [
    "email",
    "message"
  ],
  "properties": {
    "email": {
      "$ref": "#/components/schemas/EmailTypeRequired"
    },
    "message": {
      "type": "string",
      "nullable": false,
      "minLength": 1,
      "description": "Message for the worker."
    }
  },
  "x-internal": true
}
object ContractInvitationToCreateContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ContractInvitationToCreate"
    }
  },
  "x-internal": true
}
array ContractList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/BasicContract"
  },
  "x-internal": true
}
object ContractListContainer
{
  "type": "object",
  "required": [
    "data",
    "page"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ContractList"
    },
    "page": {
      "$ref": "#/components/schemas/PageInfo"
    }
  },
  "x-internal": true
}
string ContractPreview
{
  "type": "string"
}
object ContractSearchForm
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/ContractSearchFormWithCursor"
    },
    {
      "$ref": "#/components/schemas/ContractSearchFormWithoutCursor"
    }
  ],
  "x-internal": true,
  "description": "Search form should include parameters varied based on usage of cursor for pagination. NOTE: that all query parameters are based on strings"
}
object ContractSearchFormWithCursor
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "string",
      "default": "10",
      "pattern": "^\\d{1,5}$",
      "nullable": false,
      "description": "Return a page of results with given number of records."
    },
    "after_cursor": {
      "type": "string",
      "nullable": false,
      "description": "Return next page of results after given cursor."
    }
  },
  "x-internal": true,
  "description": "This is a model to make it easier to understand and restrict search parameters"
}
object ContractSearchFormWithoutCursor
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "string",
      "default": "10",
      "pattern": "^\\d{1,5}$",
      "nullable": false,
      "description": "Return a page of results with given number of records."
    },
    "types": {
      "oneOf": [
        {
          "$ref": "#/components/schemas/ContractTypeEnum"
        },
        {
          "$ref": "#/components/schemas/ContractTypeEnumList"
        }
      ]
    },
    "search": {
      "type": "string",
      "nullable": false,
      "description": "Include a contract if by name or contractor name contains given search term."
    },
    "sort_by": {
      "$ref": "#/components/schemas/ContractsSortByEnum"
    },
    "team_id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier"
    },
    "statuses": {
      "oneOf": [
        {
          "$ref": "#/components/schemas/ContractStatusEnumList"
        },
        {
          "$ref": "#/components/schemas/ContractStatusEnum"
        }
      ]
    },
    "countries": {
      "oneOf": [
        {
          "$ref": "#/components/schemas/CountryCodeList"
        },
        {
          "$ref": "#/components/schemas/CountryCode"
        }
      ]
    },
    "currencies": {
      "oneOf": [
        {
          "$ref": "#/components/schemas/CurrencyCodeList"
        },
        {
          "$ref": "#/components/schemas/CurrencyCodeRequired"
        }
      ]
    },
    "external_id": {
      "type": "string",
      "nullable": false,
      "maxLength": 255,
      "description": "Filter contracts for given external ID"
    },
    "order_direction": {
      "$ref": "#/components/schemas/SortDirEnum"
    }
  },
  "x-internal": true,
  "description": "This is a model to make it easier to understand and restrict search parameters"
}
object ContractSignatureToCreate
{
  "type": "object",
  "required": [
    "client_signature"
  ],
  "properties": {
    "client_signature": {
      "type": "string",
      "nullable": false,
      "minLength": 2,
      "description": "Signature of client."
    },
    "contract_template_id": {
      "type": "number",
      "example": 12345678,
      "nullable": true,
      "description": "Please use null to use default Deel contract template; otherwise you can use the template you created and customized. If template ID is not in payload, template stays unchanged."
    }
  },
  "x-internal": true
}
object ContractSignatureToCreateContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ContractSignatureToCreate"
    }
  },
  "x-internal": true
}
string ContractStatusEnum
{
  "enum": [
    "new",
    "under_review",
    "waiting_for_employee_contract",
    "waiting_for_client_sign",
    "processing_payment",
    "waiting_for_contractor_sign",
    "waiting_for_eor_sign",
    "waiting_for_employee_sign",
    "awaiting_deposit_payment",
    "in_progress",
    "completed",
    "cancelled",
    "user_cancelled",
    "rejected",
    "waiting_for_client_payment"
  ],
  "type": "string",
  "nullable": false,
  "x-internal": true,
  "description": "Status of a contract in Deel workflow"
}
array ContractStatusEnumList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/ContractStatusEnum"
  },
  "x-internal": true,
  "description": "List of contract statuses"
}
object ContractTemplate
{
  "type": "object",
  "nullable": true,
  "properties": {
    "id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier",
      "description": "Unique identifier of a contract template"
    },
    "title": {
      "type": "string",
      "example": "UK Employment Contract 2022.",
      "description": "Title of a contract template"
    }
  },
  "x-internal": true,
  "description": "Contract template details."
}
array ContractTemplateList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/ContractTemplateSummary"
  },
  "x-internal": true
}
object ContractTemplateListContainer
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ContractTemplateList"
    }
  },
  "x-internal": true
}
object ContractTemplateSummary
{
  "type": "object",
  "required": [
    "id",
    "title"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier",
      "description": "Unique identifier of a contract template"
    },
    "title": {
      "type": "string",
      "example": "UK Employment Contract 2022.",
      "nullable": false,
      "description": "Title of a contract template"
    }
  },
  "x-internal": true
}
object ContractTerminationResult
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "nullable": false,
      "description": "Deel Contract ID."
    },
    "completion_date": {
      "$ref": "#/components/schemas/DateString"
    }
  },
  "x-internal": true,
  "x-konfig-properties": {
    "completion_date": {
      "description": "Date the contract is marked for completion"
    }
  }
}
object ContractTerminationResultContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ContractTerminationResult"
    }
  },
  "x-internal": true
}
object ContractToAmendDetailsContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ContractDetailsToAmend"
    }
  },
  "x-internal": true
}
object ContractToCreate
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/ContractToCreate_pay_as_you_go_time_based"
    },
    {
      "$ref": "#/components/schemas/ContractToCreate_payg_tasks"
    },
    {
      "$ref": "#/components/schemas/ContractToCreate_payg_milestones"
    },
    {
      "$ref": "#/components/schemas/ContractToCreate_ongoing_time_based"
    }
  ],
  "x-internal": true
}
object ContractToCreateContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ContractToCreate"
    }
  },
  "x-internal": true
}
object ContractToCreateContainer_ongoing_time_based
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ContractToCreate_ongoing_time_based"
    }
  },
  "x-internal": true
}
object ContractToCreateContainer_pay_as_you_go_time_based
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ContractToCreate_pay_as_you_go_time_based"
    }
  },
  "x-internal": true
}
object ContractToCreateContainer_payg_milestones
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ContractToCreate_payg_milestones"
    }
  },
  "x-internal": true
}
object ContractToCreateContainer_payg_tasks
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ContractToCreate_payg_tasks"
    }
  },
  "x-internal": true
}
object ContractToCreate_Shared
{
  "type": "object",
  "required": [
    "type",
    "title",
    "job_title",
    "meta",
    "client"
  ],
  "properties": {
    "meta": {
      "$ref": "#/components/schemas/MetaDataOfContractToCreate"
    },
    "title": {
      "type": "string",
      "description": "The title of the contract."
    },
    "client": {
      "type": "object",
      "required": [
        "legal_entity",
        "team"
      ],
      "properties": {
        "team": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "$ref": "#/components/schemas/UniqueObjectIdentifier"
            }
          },
          "description": "Choose the Deel team for this contract. Use teams endpoint to retrieve a list of teams in your organization."
        },
        "legal_entity": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "$ref": "#/components/schemas/UniqueObjectIdentifier"
            }
          },
          "description": "Choose the Deel legal entity for this contract. Use legal entity endpoint to retrieve a list of legal entities in your organization."
        }
      }
    },
    "worker": {
      "type": "object",
      "nullable": true,
      "required": [
        "first_name",
        "expected_email"
      ],
      "properties": {
        "last_name": {
          "type": "string",
          "example": "Doe",
          "nullable": true,
          "maxLength": 255,
          "description": "Worker's last name"
        },
        "first_name": {
          "type": "string",
          "example": "John",
          "nullable": true,
          "maxLength": 255,
          "description": "Worker's first name"
        },
        "expected_email": {
          "$ref": "#/components/schemas/WorkerEmailType"
        }
      },
      "description": "Worker properties"
    },
    "job_title": {
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/components/schemas/UniqueObjectIdentifier",
          "description": "Id of an predefined job title."
        },
        "name": {
          "type": "string",
          "nullable": true,
          "maxLength": 255,
          "description": "Job title. Please leave it blank when entering an Id."
        }
      },
      "description": "Worker's job title. You can enter a custom job title or use a pre-defiled job title using the Id retrieved in job-titles endpoint."
    },
    "seniority": {
      "type": "object",
      "nullable": true,
      "properties": {
        "id": {
          "$ref": "#/components/schemas/UniqueObjectIdentifier"
        }
      },
      "description": "Job seniority level. Please use the seniority levels endpoint to retrieve the list of seniority levels."
    },
    "state_code": {
      "type": "string",
      "nullable": true,
      "description": "The state or province code. Use country lookup endpoint to retrieve state codes."
    },
    "external_id": {
      "type": "string",
      "nullable": true,
      "description": "External Id."
    },
    "who_reports": {
      "$ref": "#/components/schemas/ContractWhoReportsEnum"
    },
    "country_code": {
      "$ref": "#/components/schemas/CountryCode"
    },
    "notice_period": {
      "$ref": "#/components/schemas/NoticePeriod"
    },
    "scope_of_work": {
      "type": "string",
      "nullable": true,
      "description": "Describe the work to be performed."
    },
    "special_clause": {
      "type": "string",
      "nullable": true,
      "description": "Enter any special clause you may have."
    },
    "termination_date": {
      "$ref": "#/components/schemas/DateString"
    }
  },
  "x-internal": true,
  "description": "Details of contract to create"
}
object ContractToCreate_ongoing_time_based
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ContractToCreate_Shared"
    },
    {
      "type": "object",
      "required": [
        "type",
        "start_date"
      ],
      "properties": {
        "type": {
          "enum": [
            "ongoing_time_based"
          ],
          "type": "string"
        },
        "start_date": {
          "$ref": "#/components/schemas/DateStringRequired"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "compensation_details"
      ],
      "properties": {
        "compensation_details": {
          "allOf": [
            {
              "$ref": "#/components/schemas/CompensationDetailsOfContractToCreate_Shared"
            },
            {
              "$ref": "#/components/schemas/CompensationDetailsOfContractToCreate_ongoing_time_based"
            }
          ]
        }
      }
    }
  ],
  "x-internal": true
}
object ContractToCreate_pay_as_you_go_time_based
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ContractToCreate_Shared"
    },
    {
      "type": "object",
      "required": [
        "type",
        "start_date"
      ],
      "properties": {
        "type": {
          "enum": [
            "pay_as_you_go_time_based"
          ],
          "type": "string"
        },
        "start_date": {
          "$ref": "#/components/schemas/DateStringRequired"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "compensation_details"
      ],
      "properties": {
        "compensation_details": {
          "allOf": [
            {
              "$ref": "#/components/schemas/CompensationDetailsOfContractToCreate_Shared"
            },
            {
              "$ref": "#/components/schemas/CompensationDetailsOfContractToCreate_pay_as_you_go_time_based"
            }
          ]
        }
      }
    }
  ],
  "x-internal": true
}
object ContractToCreate_payg_milestones
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ContractToCreate_Shared"
    },
    {
      "type": "object",
      "required": [
        "type"
      ],
      "properties": {
        "type": {
          "enum": [
            "payg_milestones"
          ],
          "type": "string"
        },
        "start_date": {
          "$ref": "#/components/schemas/DateString"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "compensation_details"
      ],
      "properties": {
        "compensation_details": {
          "$ref": "#/components/schemas/CompensationDetailsOfContractToCreate_Shared"
        }
      }
    }
  ],
  "x-internal": true
}
object ContractToCreate_payg_tasks
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ContractToCreate_Shared"
    },
    {
      "type": "object",
      "required": [
        "type",
        "start_date"
      ],
      "properties": {
        "type": {
          "enum": [
            "payg_tasks"
          ],
          "type": "string"
        },
        "start_date": {
          "$ref": "#/components/schemas/DateStringRequired"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "compensation_details"
      ],
      "properties": {
        "compensation_details": {
          "$ref": "#/components/schemas/CompensationDetailsOfContractToCreate_Shared"
        }
      }
    }
  ],
  "x-internal": true
}
object ContractToTerminate
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string",
      "nullable": false,
      "description": "A message for the termination"
    },
    "terminate_now": {
      "type": "boolean"
    },
    "completion_date": {
      "$ref": "#/components/schemas/DateString"
    }
  },
  "x-internal": true
}
object ContractToTerminateContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ContractToTerminate"
    }
  },
  "x-internal": true
}
string ContractTypeEnum
{
  "enum": [
    "ongoing_time_based",
    "milestones",
    "time_based",
    "pay_as_you_go_time_based",
    "commission",
    "payg_milestones",
    "payg_tasks",
    "eor",
    "unknown",
    "employee",
    "global_payroll",
    "shield_msa",
    "hris_direct_employee"
  ],
  "type": "string",
  "x-internal": true,
  "description": "Type of a contract"
}
string ContractTypeEnumForEstimate
{
  "enum": [
    "ongoing_time_based",
    "payg_tasks"
  ],
  "type": "string",
  "x-internal": true,
  "description": "Type of a contract"
}
array ContractTypeEnumList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/ContractTypeEnum"
  },
  "x-internal": true,
  "description": "List of contract types"
}
string ContractTypeEnumToCreate
{
  "enum": [
    "pay_as_you_go_time_based",
    "payg_tasks",
    "payg_milestones"
  ],
  "type": "string",
  "x-internal": true,
  "description": "Type of a contract"
}
string ContractWhoReportsEnum
{
  "enum": [
    "both",
    "client",
    "contractor"
  ],
  "type": "string",
  "x-internal": true,
  "description": "Flag to indicate who is supposed to provide regular reports"
}
string ContractsSortByEnum
{
  "enum": [
    "contract_title",
    "worker_name"
  ],
  "type": "string",
  "x-internal": true
}
object Contribution
{
  "type": "object",
  "properties": {
    "type": {
      "$ref": "#/components/schemas/BenefitContributionTypeEnum",
      "description": "Contribution type."
    },
    "maximum": {
      "type": "string",
      "example": "10.00",
      "description": "Maximum pension contribution."
    },
    "minimum": {
      "type": "string",
      "example": "5.00",
      "description": "Minimum pension contribution."
    }
  },
  "x-internal": true,
  "description": "Pension contribution."
}
object CostQuote
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Cost's name"
    },
    "total": {
      "type": "number",
      "description": "Total cost in local currency"
    },
    "currency": {
      "$ref": "#/components/schemas/CurrencyCode"
    },
    "total_usd": {
      "type": "number",
      "description": "Total cost in USD"
    }
  },
  "x-internal": true
}
object Country
{
  "type": "object",
  "required": [
    "code",
    "name",
    "visa_support",
    "eor_support",
    "state_type",
    "states"
  ],
  "properties": {
    "code": {
      "$ref": "#/components/schemas/CountryCode"
    },
    "name": {
      "type": "string",
      "example": "United States",
      "nullable": false,
      "minLength": 1,
      "description": "Country name."
    },
    "states": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/StateOfCountry"
      }
    },
    "state_type": {
      "type": "string",
      "example": "state",
      "nullable": true,
      "description": "Identifies the type of sub-territory within a country where local laws may apply. Some countries may have states, provinces, prefectures or regions."
    },
    "eor_support": {
      "type": "boolean",
      "nullable": false,
      "description": "Identifies if Deel support EoR in this country."
    },
    "visa_support": {
      "type": "boolean",
      "nullable": false,
      "description": "Identifies if Deel provides visa support for employees being hired in this country."
    }
  },
  "x-internal": true
}
string CountryCode
{
  "type": "string",
  "example": "US",
  "pattern": "^[A-Z]{2}$",
  "maxLength": 2,
  "minLength": 2,
  "x-internal": true,
  "description": "Country code."
}
array CountryCodeList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/CountryCode"
  },
  "x-internal": true
}
string CountryCodeNulleable
{
  "type": "string",
  "example": "US",
  "pattern": "^[A-Z]{2}$",
  "nullable": true,
  "maxLength": 2,
  "minLength": 2,
  "x-internal": true,
  "description": "Country code."
}
array CountryList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Country"
  },
  "x-internal": true
}
object CountryListContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/CountryList"
    }
  },
  "x-internal": true
}
object CreateAdminUserResponseContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/AdminUser"
    }
  },
  "x-internal": true
}
object CreateClientUser
{
  "type": "object",
  "required": [
    "schemas",
    "userName",
    "name",
    "userType"
  ],
  "properties": {
    "name": {
      "type": "object",
      "properties": {
        "givenName": {
          "type": "string",
          "example": "Barbara",
          "description": "Given name of the user."
        },
        "familyName": {
          "type": "string",
          "example": "Jensen",
          "description": "Family name of the user."
        }
      }
    },
    "schemas": {
      "type": "array",
      "items": {
        "enum": [
          "urn:ietf:params:scim:schemas:core:2.0:User"
        ],
        "type": "string"
      },
      "example": [
        "urn:ietf:params:scim:schemas:core:2.0:User"
      ],
      "description": "Schema URNs."
    },
    "userName": {
      "type": "string",
      "example": "work@email.com",
      "description": "User's email."
    },
    "userType": {
      "enum": [
        "client"
      ],
      "type": "string",
      "example": "client",
      "description": "Type of user."
    }
  }
}
object CreatePeopleTimeoff
{
  "type": "object",
  "required": [
    "type",
    "start_date",
    "end_date",
    "reason"
  ],
  "properties": {
    "type": {
      "enum": [
        "VACATION",
        "SICK_LEAVE",
        "OTHER"
      ],
      "type": "string",
      "example": "VACATION",
      "description": "Time off type."
    },
    "reason": {
      "type": "string",
      "example": "Holiday",
      "description": "Description for employee's time off."
    },
    "end_date": {
      "type": "string",
      "example": "2022-09-05T00:00:00.000Z",
      "description": "End date of employee's time off."
    },
    "start_date": {
      "type": "string",
      "example": "2022-09-03T00:00:00.000Z",
      "description": "Start date of employee's time off."
    },
    "attachments": {
      "type": "string",
      "format": "binary",
      "description": "Attachments for employee's time off."
    }
  }
}
object CreatePublicToken
{
  "type": "object",
  "properties": {
    "scope": {
      "type": "array",
      "items": {
        "type": "string",
        "example": "contracts:read"
      },
      "description": "Access scopes."
    }
  }
}
object CreatePublicTokenContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/CreatePublicToken"
    }
  },
  "x-internal": true
}
object CreateTimeoff
{
  "type": "object",
  "required": [
    "type",
    "with_multiple_dates"
  ],
  "properties": {
    "type": {
      "enum": [
        "VACATION",
        "SICK_LEAVE",
        "OTHER"
      ],
      "type": "string",
      "example": "VACATION",
      "description": "Time off type."
    },
    "reason": {
      "type": "string",
      "example": "Holiday",
      "description": "Description for employee's time off."
    },
    "end_date": {
      "type": "string",
      "example": "2022-09-05T00:00:00.000Z",
      "description": "End date of employee's time off."
    },
    "start_date": {
      "type": "string",
      "example": "2022-09-03T00:00:00.000Z",
      "description": "Start date of employee's time off."
    },
    "other_timeoff_name": {
      "type": "string",
      "example": "Birthday",
      "description": "Custom name for this time off."
    },
    "with_multiple_dates": {
      "type": "boolean",
      "description": "If true, then multiple time off days were requested. You must supply a start and end date. If false, end date is ignored"
    },
    "is_end_date_half_day": {
      "type": "boolean",
      "example": false,
      "description": "Is the start day a half day?"
    },
    "is_start_date_half_day": {
      "type": "boolean",
      "example": false,
      "description": "Is the start day a half day?"
    }
  }
}
object CreateTimeoffContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/CreateTimeoff"
    }
  },
  "x-internal": true
}
object CreateWebhookRequest
{
  "type": "object",
  "required": [
    "name",
    "description",
    "status",
    "url",
    "signing_key",
    "api_version",
    "events"
  ],
  "properties": {
    "url": {
      "type": "string",
      "example": "https://mywebhook.com",
      "description": "Endpoint to receive webhook."
    },
    "name": {
      "type": "string",
      "example": "My first webhook.",
      "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."
    },
    "status": {
      "enum": [
        "enabled",
        "disabled"
      ],
      "type": "string",
      "example": "enabled",
      "description": "Status of webhook."
    },
    "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": "I like it very much.",
      "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."
    }
  }
}
object Currency
{
  "type": "object",
  "required": [
    "code",
    "name"
  ],
  "properties": {
    "code": {
      "$ref": "#/components/schemas/CurrencyCodeRequired"
    },
    "name": {
      "type": "string",
      "example": "Euro",
      "nullable": false,
      "minLength": 1
    }
  },
  "x-internal": true
}
string CurrencyCode
{
  "type": "string",
  "example": "GBP",
  "pattern": "^[A-Z]{3}$",
  "nullable": false,
  "maxLength": 3,
  "minLength": 3,
  "x-internal": true,
  "description": "Currency code."
}
array CurrencyCodeList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/CurrencyCodeRequired"
  },
  "x-internal": true
}
string CurrencyCodeRequired
{
  "type": "string",
  "example": "GBP",
  "pattern": "^[A-Z]{3}$",
  "maxLength": 3,
  "minLength": 3,
  "x-internal": true
}
array CurrencyList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Currency"
  },
  "x-internal": true
}
object CurrencyListContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/CurrencyList"
    }
  },
  "x-internal": true
}
string DateString
{
  "type": "string",
  "format": "date",
  "example": "1999-12-31T00:00:00.000Z",
  "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
  "nullable": true,
  "x-internal": true,
  "description": "Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."
}
string DateStringDefaultNow
{
  "type": "string",
  "format": "date",
  "example": "1999-12-31T00:00:00.000Z",
  "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
  "x-internal": true,
  "description": "Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31. Defaults to current date"
}
string DateStringRequired
{
  "type": "string",
  "format": "date",
  "example": "1999-12-31T00:00:00.000Z",
  "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
  "x-internal": true,
  "description": "Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."
}
string DateTimeString
{
  "type": "string",
  "format": "date-time",
  "example": "2022-05-24T09:38:46.235Z",
  "nullable": true,
  "x-internal": true,
  "description": "Long date-time format following ISO-8601"
}
string DateTimeStringRequired
{
  "type": "string",
  "format": "date-time",
  "example": "2022-05-24T09:38:46.235Z",
  "nullable": false,
  "x-internal": true,
  "description": "Long date-time format following ISO-8601"
}
object DeelInvoice
{
  "type": "object",
  "required": [
    "id",
    "label",
    "status",
    "currency",
    "total",
    "created_at"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "rhCTiRd9Mad41RwjsFWw-",
      "description": "Unique identifier of the invoice."
    },
    "label": {
      "type": "string",
      "example": "INV-2023-4",
      "description": "Label of the invoice."
    },
    "total": {
      "type": "string",
      "example": 1000,
      "description": "Total invoice amount including Fee and VAT."
    },
    "status": {
      "$ref": "#/components/schemas/InvoiceStatusEnum"
    },
    "currency": {
      "$ref": "#/components/schemas/CurrencyCode"
    },
    "created_at": {
      "$ref": "#/components/schemas/DateTimeString"
    }
  }
}
array DeelInvoiceList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/DeelInvoice"
  }
}
object DeelInvoiceListContainer
{
  "type": "object",
  "required": [
    "data",
    "page"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/DeelInvoiceList"
    },
    "page": {
      "$ref": "#/components/schemas/PageInfoWithoutCursorNew"
    }
  },
  "x-internal": true
}
object Departments
{
  "type": "object",
  "nullable": false,
  "required": [
    "id",
    "name"
  ],
  "properties": {
    "id": {
      "type": "number",
      "example": 25599
    },
    "name": {
      "type": "string",
      "example": "Marketing"
    },
    "parent": {
      "type": "string",
      "example": "Growth",
      "nullable": true
    }
  }
}
object DepartmentsContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Departments"
      }
    }
  }
}
array EORContractBenefits
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "string",
        "example": "e2e09831-853d-4f56-b43f-2ec19cda7b0c",
        "description": "Unique identifier of the benefit."
      },
      "name": {
        "type": "string",
        "example": "Health Insurance",
        "description": "Name of the benefit."
      },
      "plan": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Gold",
            "description": "Name of the plan."
          }
        }
      },
      "provider": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Provider name",
            "description": "Name of the provider."
          }
        }
      },
      "offer_status": {
        "enum": [
          "Offered",
          "Not offered"
        ],
        "type": "string",
        "example": "Offered",
        "description": "Status of the offer."
      },
      "enrollment_details": {
        "type": "object",
        "properties": {
          "plan": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "example": "Gold",
                "description": "Name of the plan."
              }
            }
          },
          "status": {
            "type": "string",
            "example": "Enrolled",
            "description": "Status of the enrollment."
          },
          "current": {
            "type": "object",
            "properties": {
              "monthly_cost": {
                "type": "string",
                "example": "100",
                "description": "Current monthly cost."
              },
              "monthly_contribution": {
                "type": "string",
                "example": "50",
                "description": "Current monthly contribution."
              }
            }
          },
          "standard": {
            "type": "object",
            "properties": {
              "monthly_cost": {
                "type": "string",
                "example": "100",
                "nullable": true,
                "description": "Standard monthly cost."
              },
              "monthly_contribution": {
                "type": "string",
                "example": "50",
                "nullable": true,
                "description": "Standard monthly contribution."
              }
            }
          }
        }
      }
    }
  }
}
object EORContractBenefitsContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/EORContractBenefits"
    }
  },
  "x-internal": true
}
object EORPayslipDownloadUrlContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/PayslipDownloadUrl"
    }
  },
  "x-internal": true
}
object EORPayslipsListContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Payslips"
      }
    }
  }
}
object Email
{
  "type": "object",
  "required": [
    "type",
    "value"
  ],
  "properties": {
    "type": {
      "enum": [
        "work"
      ],
      "type": "string",
      "example": "work",
      "description": "The type of email."
    },
    "value": {
      "type": "string",
      "example": "work.email@example.com",
      "description": "The email address."
    },
    "primary": {
      "type": "boolean",
      "default": false,
      "example": true
    }
  }
}
string EmailType
{
  "type": "string",
  "format": "email",
  "nullable": true,
  "minLength": 5,
  "x-internal": true,
  "description": "User's email address."
}
string EmailTypeRequired
{
  "type": "string",
  "format": "email",
  "minLength": 5,
  "x-internal": true,
  "description": "Worker's email address."
}
object Employee
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "example": "9b9fc43a-a90c-4615-ac50-baf1e314b53e",
      "description": "Unique identifier for the employee."
    },
    "state": {
      "type": "string",
      "example": "Active",
      "description": "The state of the employee."
    },
    "emails": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Email"
      },
      "description": "An array of the employee's email addresses."
    },
    "country": {
      "type": "string",
      "example": "USA",
      "description": "The country of the employee."
    },
    "timezone": {
      "type": "string",
      "example": "EST",
      "description": "The timezone of the employee."
    },
    "addresses": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Address"
      }
    },
    "full_name": {
      "type": "string",
      "example": "John Doe",
      "description": "The full name of the employee."
    },
    "job_title": {
      "type": "string",
      "example": "Access Field Technician",
      "description": "The job title of the employee."
    },
    "last_name": {
      "type": "string",
      "example": "Doe",
      "description": "The last name of the employee."
    },
    "seniority": {
      "type": "string",
      "example": "Junior (Individual Contributor Level 1)",
      "description": "The seniority level of the employee."
    },
    "birth_date": {
      "type": "string",
      "example": "1990-01-01T00:00:00.000Z",
      "description": "The birth date of the employee."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2023-03-21T10:27:25.950Z",
      "description": "The creation timestamp of the employee record."
    },
    "department": {
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/components/schemas/UniqueObjectIdentifier"
        },
        "name": {
          "type": "string",
          "example": "Delivery team"
        },
        "parent": {
          "type": "string",
          "example": "Research and Development"
        }
      },
      "description": "The department of the employee."
    },
    "first_name": {
      "type": "string",
      "example": "John",
      "description": "The first name of the employee."
    },
    "start_date": {
      "type": "string",
      "format": "date",
      "example": "2023-03-20T00:00:00.000Z",
      "description": "The date the employee started working."
    },
    "updated_at": {
      "$ref": "#/components/schemas/DateTimeString",
      "description": "Date time of the last update."
    },
    "employments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EmploymentDetail"
      },
      "description": "An array of the employee's employment details."
    },
    "hiring_type": {
      "type": "string",
      "example": "contractor",
      "description": "The type of hiring of the employee."
    },
    "nationality": {
      "type": "string",
      "example": "American",
      "description": "The nationality of the employee."
    },
    "hiring_status": {
      "type": "string",
      "example": "onboarding",
      "description": "The current hiring status of the employee."
    },
    "work_location": {
      "type": "string",
      "example": "Remote",
      "description": "The work location of the employee."
    },
    "direct_manager": {
      "type": "object",
      "nullable": false,
      "properties": {
        "id": {
          "type": "string",
          "example": "642b0547-9d80-4d35-a085-fd977ef209ef"
        },
        "last_name": {
          "type": "string",
          "example": "John"
        },
        "first_name": {
          "type": "string",
          "example": "Doe"
        },
        "work_email": {
          "type": "string",
          "example": "john.doe@example.com"
        }
      },
      "description": "The direct manager of the employee."
    },
    "direct_reports": {
      "type": "array",
      "items": {
        "type": "object",
        "nullable": false,
        "properties": {
          "id": {
            "type": "string",
            "example": "642b0547-9d80-4d35-a085-fd977ef209ef"
          },
          "last_name": {
            "type": "string",
            "example": "John"
          },
          "first_name": {
            "type": "string",
            "example": "Doe"
          },
          "work_email": {
            "type": "string",
            "example": "john.doe@example.com"
          }
        }
      },
      "description": "The direct reports to the employee."
    },
    "completion_date": {
      "type": "string",
      "example": "2023-06-20T00:00:00.000Z",
      "nullable": true,
      "description": "The completion date of the task or project."
    },
    "new_hiring_status": {
      "type": "string",
      "example": "onboarding_overdue",
      "description": "The new hiring status of the employee."
    },
    "client_legal_entity": {
      "$ref": "#/components/schemas/PeopleClientLegalEntity",
      "description": "The legal entity of the client."
    },
    "direct_reports_count": {
      "type": "integer",
      "example": 0,
      "description": "The count of direct reports to the employee."
    }
  }
}
object EmployeeAgreementDownloadContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/EmployeeAgreementDownloadObject"
    }
  },
  "x-internal": true
}
object EmployeeAgreementDownloadObject
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "example": "https://s3URL/letsdeel.com/employee-agreement/12345.pdf",
      "description": "URL to requested employee agreement to download."
    },
    "expires_at": {
      "type": "string",
      "format": "date-time",
      "example": "2020-03-31T10:58:49.780Z",
      "description": "Expiration date time of download URL."
    }
  }
}
object EmployeeContractSignatureToCreate
{
  "type": "object",
  "required": [
    "signature"
  ],
  "properties": {
    "signature": {
      "type": "string",
      "minLength": 2,
      "description": "Signature of employee."
    }
  },
  "x-internal": true
}
object EmployeeContractSignatureToCreateContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/EmployeeContractSignatureToCreate"
    }
  },
  "x-internal": true
}
object EmployeeList
{
  "properties": {
    "id": {
      "type": "string",
      "example": "a7cc0404-0a13-442a-92d0-dfcbc7e6f1ad"
    },
    "team": {
      "type": "string",
      "example": "John's Team"
    },
    "email": {
      "type": "string",
      "example": "john@example.com"
    },
    "state": {
      "type": "string",
      "example": "CO"
    },
    "country": {
      "type": "string",
      "example": "BR"
    },
    "pic_url": {
      "type": "string",
      "format": "nullable"
    },
    "team_id": {
      "type": "number",
      "example": 245062
    },
    "payments": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "rate": {
            "type": "number",
            "example": 4000
          },
          "scale": {
            "type": "string",
            "example": "monthly"
          },
          "currency": {
            "type": "string",
            "example": "BRL"
          },
          "contract_name": {
            "type": "string",
            "example": "Demo.1"
          }
        }
      }
    },
    "timezone": {
      "type": "string",
      "example": "America/Sao_Paulo"
    },
    "full_name": {
      "type": "string",
      "example": "John Smith"
    },
    "job_title": {
      "type": "string",
      "example": "Director"
    },
    "last_name": {
      "type": "string",
      "example": "Smith"
    },
    "seniority": {
      "type": "string",
      "example": "Junior (Individual Contributor Level 1)"
    },
    "birth_date": {
      "type": "string",
      "example": "1984-12-26T00:00:00.000Z"
    },
    "first_name": {
      "type": "string",
      "example": "John"
    },
    "start_date": {
      "type": "string",
      "example": "2022-07-01T03:00:00.000Z"
    },
    "hiring_type": {
      "type": "string",
      "example": "contractor"
    },
    "hiring_status": {
      "type": "string",
      "example": "active"
    },
    "personal_email": {
      "type": "string",
      "example": "john@example.com"
    },
    "completion_date": {
      "type": "string",
      "example": "2023-11-12T02:59:59.999Z"
    },
    "monthly_payment": {
      "type": "object",
      "properties": {
        "count": {
          "type": "number",
          "example": 10
        }
      }
    },
    "client_legal_entity": {
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/components/schemas/UniqueObjectIdentifier"
        },
        "name": {
          "type": "string",
          "example": "John.test2"
        }
      }
    },
    "hourly_report_total": {
      "type": "string",
      "example": "8017.8000"
    }
  },
  "x-internal": true
}
object EmployeeListContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EmployeeList"
      }
    }
  },
  "x-internal": true
}
object EmployeePayslipsList
{
  "type": "object",
  "required": [
    "id",
    "from",
    "to",
    "filename",
    "status",
    "rejected_at",
    "reject_reason",
    "uploaded_at",
    "published_at",
    "schedule_publishing_date",
    "created_at",
    "updated_at",
    "url"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "9K1rw5vwkZX2"
    },
    "to": {
      "type": "string",
      "format": "date-time",
      "example": "2023-08-31T00:00:00.000Z"
    },
    "url": {
      "type": "string",
      "example": "http://example.com/file.pdf"
    },
    "from": {
      "type": "string",
      "format": "date-time",
      "example": "2023-08-01T00:00:00.000Z"
    },
    "status": {
      "type": "string",
      "example": "PUBLISHED"
    },
    "filename": {
      "type": "string",
      "example": "payslip_demo.pdf"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2023-09-08T08:44:20.289Z"
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "example": "2023-09-08T08:44:20.289Z"
    },
    "rejected_at": {
      "type": "string",
      "format": "date-time",
      "example": "2023-08-29T00:00:00.000Z"
    },
    "uploaded_at": {
      "type": "string",
      "format": "date-time",
      "example": "2023-09-08T08:44:20.464Z"
    },
    "published_at": {
      "type": "string",
      "format": "date-time",
      "example": "2023-09-08T08:44:20.289Z"
    },
    "reject_reason": {
      "type": "string",
      "example": "Something wrong"
    },
    "schedule_publishing_date": {
      "type": "string",
      "format": "date-time",
      "example": "2023-09-08T08:44:20.289Z"
    }
  },
  "x-internal": true
}
object EmployeePayslipsListContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EmployeePayslipsList"
      }
    }
  }
}
object EmployeeTaxDocumentsList
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "example": "9AmobdjMwXOq"
    },
    "url": {
      "type": "string",
      "example": "https://example.com/file.pdf"
    },
    "type": {
      "type": "string",
      "example": "Tax Document"
    },
    "year": {
      "type": "number",
      "example": 2023
    },
    "country": {
      "type": "string",
      "example": "IL"
    }
  },
  "x-internal": true
}
object EmployeeTaxDocumentsListContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EmployeeTaxDocumentsList"
      }
    }
  }
}
object EmployeeTimeoffsContainer
{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EmployeeTimeoffsItem"
      },
      "description": "List of employee time offs."
    }
  },
  "x-internal": true
}
object EmployeeTimeoffsCreationContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/EmployeeTimeoffsItemResponse"
    }
  },
  "x-internal": true
}
object EmployeeTimeoffsEntitlementsContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EmployeeTimeoffsEntitlementsItem"
      },
      "description": "List of employee time offs entitlements."
    }
  },
  "x-internal": true
}
object EmployeeTimeoffsEntitlementsItem
{
  "type": "object",
  "required": [
    "year",
    "tracking_period",
    "vacation_allowed",
    "vacation_rollover",
    "vacation_expired",
    "vacation_payout",
    "vacation_requested",
    "vacation_approved",
    "vacation_used",
    "vacation_total",
    "sick_leave_requested",
    "sick_leave_approved",
    "sick_leave_used",
    "sick_leave_total",
    "sick_leave_allowed",
    "other_leave_requested",
    "other_leave_approved",
    "other_leave_used",
    "other_leave_total"
  ],
  "properties": {
    "year": {
      "type": "number",
      "example": 2023
    },
    "vacation_used": {
      "type": "string",
      "example": "7.00"
    },
    "vacation_total": {
      "type": "string",
      "example": "7.00"
    },
    "sick_leave_used": {
      "type": "string",
      "example": "0.00"
    },
    "tracking_period": {
      "type": "string",
      "example": "2023-01-01T00:00:00.000Z"
    },
    "vacation_payout": {
      "type": "string",
      "example": "0.00"
    },
    "other_leave_used": {
      "type": "string",
      "example": "0.00"
    },
    "sick_leave_total": {
      "type": "string",
      "example": "0.00"
    },
    "vacation_allowed": {
      "type": "string",
      "example": "0.00"
    },
    "vacation_expired": {
      "type": "string",
      "example": "0.00"
    },
    "other_leave_total": {
      "type": "string",
      "example": "0.00"
    },
    "vacation_approved": {
      "type": "string",
      "example": "0.00"
    },
    "vacation_rollover": {
      "type": "string",
      "example": "0.00"
    },
    "sick_leave_allowed": {
      "type": "string",
      "example": "395.00"
    },
    "vacation_requested": {
      "type": "string",
      "example": "0.00"
    },
    "sick_leave_approved": {
      "type": "string",
      "example": "0.00"
    },
    "other_leave_approved": {
      "type": "string",
      "example": "0.00"
    },
    "sick_leave_requested": {
      "type": "string",
      "example": "0.00"
    },
    "other_leave_requested": {
      "type": "string",
      "example": "0.00"
    }
  }
}
object EmployeeTimeoffsItem
{
  "type": "object",
  "required": [
    "time_off_id",
    "reason",
    "type",
    "requested_at",
    "reviewed_at",
    "with_multiple_dates",
    "created_at",
    "updated_at",
    "status",
    "other_time_off_name",
    "denial_reason",
    "requester",
    "reviewer",
    "days_used_start_year",
    "days_used_end_year",
    "days_used",
    "start_date",
    "end_date",
    "is_start_date_half_day",
    "is_end_date_half_day",
    "attachments",
    "change_request"
  ],
  "properties": {
    "type": {
      "enum": [
        "VACATION",
        "SICK_LEAVE",
        "OTHER"
      ],
      "type": "string",
      "example": "VACATION",
      "description": "Time off type."
    },
    "reason": {
      "type": "string",
      "example": "I need to relax."
    },
    "end_date": {
      "type": "string",
      "example": "2024-02-25T23:00:00.000Z"
    },
    "reviewer": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "example": "Rabia Arikdogan"
        }
      }
    },
    "days_used": {
      "type": "string",
      "example": "0.50"
    },
    "requester": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "example": "Carlos from deel"
        }
      }
    },
    "created_at": {
      "type": "string",
      "example": "2023-08-03T22:00:00.000Z"
    },
    "start_date": {
      "type": "string",
      "example": "2024-02-23T23:00:00.000Z"
    },
    "updated_at": {
      "type": "string",
      "example": "2023-08-03T22:00:00.000Z"
    },
    "attachments": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string",
            "example": "924177_SC_l73xijJk-Xn1xfeN4V.jpeg"
          },
          "attachment_id": {
            "type": "string",
            "example": "3759767d-2737-4284-8263-65099896f7c3"
          },
          "file_extension": {
            "type": "string",
            "example": "pdf"
          }
        }
      },
      "example": []
    },
    "reviewed_at": {
      "type": "string",
      "example": "2023-08-03T22:00:00.000Z"
    },
    "time_off_id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier",
      "nullable": true
    },
    "requested_at": {
      "type": "string",
      "example": "2023-08-03T22:00:00.000Z"
    },
    "denial_reason": {
      "type": "string",
      "example": false,
      "nullable": true
    },
    "change_request": {
      "type": "string",
      "example": "",
      "nullable": true
    },
    "days_used_end_year": {
      "type": "string",
      "example": "0.00"
    },
    "with_multiple_dates": {
      "type": "boolean",
      "example": false
    },
    "days_used_start_year": {
      "type": "string",
      "example": "0.50"
    },
    "is_end_date_half_day": {
      "type": "boolean",
      "example": true
    },
    "is_start_date_half_day": {
      "type": "boolean",
      "example": false
    }
  }
}
object EmployeeTimeoffsItemResponse
{
  "type": "object",
  "properties": {
    "type": {
      "enum": [
        "VACATION",
        "SICK_LEAVE",
        "OTHER"
      ],
      "type": "string",
      "example": "VACATION",
      "description": "Time off type."
    },
    "reason": {
      "type": "string",
      "example": "I need to relax."
    },
    "end_date": {
      "type": "string",
      "example": "2024-02-25T23:00:00.000Z"
    },
    "days_used": {
      "type": "string",
      "example": "0.50"
    },
    "policy_id": {
      "type": "string",
      "example": "85cae186-c0b2-4b92-b554-d8eb1f0fdc1d"
    },
    "requester": {
      "$ref": "#/components/schemas/RequesterTimeOff"
    },
    "created_at": {
      "type": "string",
      "example": "2023-08-03T22:00:00.000Z"
    },
    "is_updated": {
      "type": "boolean",
      "example": false
    },
    "start_date": {
      "type": "string",
      "example": "2024-02-23T23:00:00.000Z"
    },
    "updated_at": {
      "type": "string",
      "example": "2023-08-03T22:00:00.000Z"
    },
    "attachments": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "example": "3759767d-2737-4284-8263-65099896f7c3"
          },
          "filename": {
            "type": "string",
            "example": "test.pdf"
          },
          "created_at": {
            "type": "string",
            "example": "2023-08-04T09:03:31.577Z"
          },
          "updated_at": {
            "type": "string",
            "example": "2023-08-04T09:03:31.577Z"
          },
          "time_off_id": {
            "type": "string",
            "example": "eb0b38d1-4851-4560-87fd-c57b7cf19e5f"
          }
        }
      },
      "example": []
    },
    "policy_name": {
      "type": "string",
      "example": "Vacation - unlimited days"
    },
    "reviewed_at": {
      "type": "string",
      "example": "2023-08-03T22:00:00.000Z"
    },
    "single_date": {
      "type": "string",
      "example": "2023-08-03T22:00:00.000Z"
    },
    "time_off_id": {
      "type": "string",
      "example": "bca1738c-194a-48e7-a26d-89fddca5bff3"
    },
    "requested_at": {
      "type": "string",
      "example": "2023-08-03T22:00:00.000Z"
    },
    "denial_reason": {
      "type": "boolean",
      "example": false
    },
    "change_request": {
      "type": "string",
      "example": ""
    },
    "applied_changes": {
      "type": "array",
      "items": {},
      "example": []
    },
    "policy_type_name": {
      "type": "string",
      "example": "Vacation"
    },
    "time_off_type_id": {
      "type": "string",
      "example": "e0a91fd6-0646-41ae-84a9-ca3d2f761793"
    },
    "days_used_end_year": {
      "type": "string",
      "example": "0.00"
    },
    "can_request_changes": {
      "type": "boolean",
      "example": false
    },
    "with_multiple_dates": {
      "type": "boolean",
      "example": false
    },
    "days_used_start_year": {
      "type": "string",
      "example": "0.50"
    },
    "is_end_date_half_day": {
      "type": "boolean",
      "example": true
    },
    "is_start_date_half_day": {
      "type": "boolean",
      "example": false
    }
  }
}
object EmployeeTimeoffsPoliciesContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EmployeeTimeoffsPoliciesItem"
      },
      "description": "List of employee time offs policies."
    }
  },
  "x-internal": true
}
object EmployeeTimeoffsPoliciesItem
{
  "type": "object",
  "required": [
    "id",
    "type",
    "name",
    "description",
    "unit_amount",
    "used",
    "tracking_start_date",
    "tracking_end_date",
    "entitlement"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "9K1rw5vwkZX2",
      "description": "Unique identifier for the time off policy."
    },
    "name": {
      "type": "string",
      "example": "Vacation",
      "description": "Name of the time off policy."
    },
    "type": {
      "type": "string",
      "example": "VACATION",
      "description": "Type of time off policy."
    },
    "used": {
      "type": "number",
      "example": 10,
      "nullable": true,
      "description": "Used time off policy."
    },
    "description": {
      "type": "string",
      "example": "Vacation policy",
      "description": "Description of the time off policy."
    },
    "entitlement": {
      "type": "object",
      "properties": {
        "unit": {
          "type": "string",
          "example": "CALENDAR_DAY",
          "nullable": true,
          "description": "Unit of the time off policy."
        },
        "total": {
          "example": 20,
          "nullable": true,
          "description": "Total time off policy."
        },
        "accrued": {
          "type": "string",
          "example": "2.55",
          "nullable": true,
          "description": "Accrued time off policy."
        },
        "unit_amount": {
          "example": 20,
          "nullable": true,
          "description": "Unit amount of the time off policy."
        },
        "accrual_unit": {
          "type": "string",
          "example": "BUSINESS_DAY",
          "nullable": true,
          "description": "Accrual unit of the time off policy."
        },
        "accrual_amount": {
          "type": "string",
          "example": 0,
          "nullable": true,
          "description": "Accrual amount of the time off policy."
        }
      }
    },
    "unit_amount": {
      "type": "number",
      "example": 20,
      "description": "Unit amount of the time off policy."
    },
    "tracking_end_date": {
      "format": "date-time",
      "example": "2023-08-31T00:00:00.000Z",
      "nullable": true,
      "description": "End date of the time off policy."
    },
    "tracking_start_date": {
      "format": "date-time",
      "example": "2023-08-01T00:00:00.000Z",
      "nullable": true,
      "description": "Start date of the time off policy."
    }
  }
}
object Employment
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Unique identifier for the employment."
    },
    "name": {
      "type": "string",
      "description": "The name of the employment."
    },
    "team": {
      "$ref": "#/components/schemas/Team",
      "description": "The team associated with the employment."
    },
    "email": {
      "type": "string",
      "description": "The email associated with the employment."
    },
    "state": {
      "type": "string",
      "description": "The state associated with the employment."
    },
    "country": {
      "type": "string",
      "description": "The country associated with the employment."
    },
    "payment": {
      "$ref": "#/components/schemas/PeoplePayment",
      "description": "The payment information associated with the employment."
    },
    "is_ended": {
      "type": "boolean",
      "description": "Indicates whether the employment has ended."
    },
    "timezone": {
      "type": "string",
      "description": "The timezone associated with the employment."
    },
    "job_title": {
      "type": "string",
      "description": "The job title associated with the employment."
    },
    "seniority": {
      "type": "string",
      "description": "The seniority level associated with the employment."
    },
    "start_date": {
      "type": "string",
      "description": "The start date of the employment."
    },
    "work_email": {
      "type": "string",
      "description": "The work email associated with the employment."
    },
    "hiring_type": {
      "type": "string",
      "description": "The hiring type associated with the employment."
    },
    "hiring_status": {
      "type": "string",
      "description": "The hiring status associated with the employment."
    },
    "completion_date": {
      "type": "string",
      "description": "The completion date of the employment."
    },
    "contract_status": {
      "type": "string",
      "description": "The contract status associated with the employment."
    },
    "voluntarily_left": {
      "type": "boolean",
      "description": "Indicates whether the employment was left voluntarily."
    },
    "client_legal_entity": {
      "$ref": "#/components/schemas/PeopleClientLegalEntity",
      "description": "The client legal entity associated with the employment."
    },
    "has_eor_termination": {
      "type": "boolean",
      "description": "Indicates whether the employment had an EOR termination."
    },
    "contract_is_archived": {
      "type": "boolean",
      "description": "Indicates whether the employment's contract is archived."
    }
  }
}
object EmploymentDetail
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "example": "mzj524j",
      "description": "Unique identifier for the employment."
    },
    "name": {
      "type": "string",
      "example": "Khizar Naeem",
      "description": "Name of the employee."
    },
    "team": {
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/components/schemas/UniqueObjectIdentifier"
        },
        "name": {
          "type": "string",
          "description": "The team name."
        }
      },
      "description": "The team to which the employee belongs."
    },
    "email": {
      "type": "string",
      "example": "some@example.com",
      "description": "The work email of the employee."
    },
    "state": {
      "type": "string",
      "example": "Active",
      "description": "The state of employment."
    },
    "country": {
      "type": "string",
      "example": "USA",
      "description": "The country of employment."
    },
    "payment": {
      "$ref": "#/components/schemas/PeoplePayment",
      "description": "The payment information associated with the employment."
    },
    "is_ended": {
      "type": "boolean",
      "example": false,
      "description": "Whether the employment has ended."
    },
    "timezone": {
      "type": "string",
      "example": "EST",
      "description": "The timezone of the employment."
    },
    "job_title": {
      "type": "string",
      "example": "Access Field Technician",
      "description": "The job title of the employment."
    },
    "seniority": {
      "type": "string",
      "example": "Junior (Individual Contributor Level 1)",
      "description": "The seniority level of the employment."
    },
    "start_date": {
      "type": "string",
      "format": "date",
      "example": "2023-03-20T00:00:00.000Z",
      "description": "The start date of the employment."
    },
    "work_email": {
      "type": "string",
      "example": "work.email@example.com",
      "description": "The work email of the employment."
    },
    "hiring_type": {
      "type": "string",
      "example": "contractor",
      "description": "The type of hiring of the employment."
    },
    "hiring_status": {
      "type": "string",
      "example": "onboarding",
      "description": "The current hiring status of the employment."
    },
    "completion_date": {
      "type": "string",
      "example": "2023-06-20T00:00:00.000Z",
      "description": "The completion date of the employment contract."
    },
    "contract_status": {
      "type": "string",
      "example": "waiting_for_client_sign",
      "description": "The status of the employment contract."
    },
    "voluntarily_left": {
      "type": "string",
      "example": "No",
      "description": "Whether the employee voluntarily left the employment."
    },
    "contract_coverage": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "no_coverage"
      ],
      "description": "The coverage of the employment contract."
    },
    "new_hiring_status": {
      "type": "string",
      "example": "onboarding_overdue",
      "description": "The new hiring status of the employment."
    },
    "client_legal_entity": {
      "$ref": "#/components/schemas/PeopleClientLegalEntity",
      "description": "The legal entity of the client in the employment."
    },
    "has_eor_termination": {
      "type": "string",
      "example": "No",
      "description": "Whether the employment has an EOR termination."
    },
    "contract_is_archived": {
      "type": "boolean",
      "example": false,
      "description": "Whether the employment contract is archived."
    },
    "contract_has_contractor": {
      "type": "boolean",
      "example": true,
      "description": "Whether the contract has a contractor."
    },
    "is_user_contract_deleted": {
      "type": "boolean",
      "example": false,
      "description": "Whether the user contract is deleted."
    },
    "hris_direct_employee_invitation": {
      "type": "string",
      "example": "Invited",
      "description": "The HRIS direct employee invitation status."
    }
  }
}
object EmploymentDetailsOfContract
{
  "type": "object",
  "required": [
    "type",
    "days_per_week",
    "hours_per_day",
    "probation_period",
    "paid_vacation_days"
  ],
  "properties": {
    "type": {
      "type": "string"
    },
    "state": {
      "type": "string",
      "example": "CO",
      "nullable": true,
      "description": "State code."
    },
    "country": {
      "$ref": "#/components/schemas/CountryCode"
    },
    "days_per_week": {
      "type": "number"
    },
    "hours_per_day": {
      "type": "number"
    },
    "probation_period": {
      "type": "number",
      "nullable": true
    },
    "paid_vacation_days": {
      "type": "number"
    }
  },
  "x-internal": true
}
object EnterpriseUser
{
  "type": "object",
  "properties": {
    "manager": {
      "$ref": "#/components/schemas/Manager"
    },
    "costCenter": {
      "type": "string",
      "example": 12345,
      "description": "Legal entity."
    },
    "department": {
      "type": "string",
      "example": "Engineering",
      "description": "Employee's department in Deel HR."
    },
    "organization": {
      "type": "string",
      "example": 45321,
      "description": "Organization name in Deel."
    }
  }
}
object EorClientTimeoffRequests
{
  "type": "object",
  "required": [
    "requests"
  ],
  "properties": {
    "year": {
      "type": "number",
      "example": 2022
    },
    "requests": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EorTimeoffsBaseItem"
      },
      "description": "List of time offs."
    },
    "yearly_limit": {
      "type": "number",
      "description": "Total number of days off allowed per year."
    },
    "days_requested": {
      "type": "number",
      "description": "Days off requested by employee."
    },
    "yearly_requests": {
      "type": "number",
      "description": "Total number of time off requests this year."
    },
    "current_approved": {
      "type": "number",
      "description": "Days off approved."
    },
    "over_annual_limit": {
      "type": "boolean",
      "description": "Too many days off requested by employee."
    }
  }
}
object EorClientTimeoffs
{
  "required": [
    "employees",
    "total_requests"
  ],
  "properties": {
    "employees": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EorTimeoffsEmployeeItem"
      },
      "description": "List of employee time offs."
    },
    "total_requests": {
      "type": "number"
    }
  }
}
object EorClientTimeoffsContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/EorClientTimeoffs"
    }
  },
  "x-internal": true
}
object EorContractCreated
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "nullable": false,
      "description": "Id of the contract quote created"
    },
    "type": {
      "$ref": "#/components/schemas/ContractTypeEnum"
    },
    "client": {
      "type": "object",
      "properties": {
        "legal_entity": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "Legal entity name."
            }
          }
        }
      }
    },
    "status": {
      "$ref": "#/components/schemas/ContractStatusEnum"
    },
    "employee": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "description": "Employee's email."
        },
        "last_name": {
          "type": "string",
          "description": "Employee's last name."
        },
        "first_name": {
          "type": "string",
          "description": "Employee's first name."
        },
        "legal_name": {
          "type": "string",
          "description": "Employee's legal name."
        }
      }
    },
    "job_title": {
      "type": "string",
      "example": "Designer",
      "description": "Employee's job title."
    },
    "seniority": {
      "$ref": "#/components/schemas/Seniority"
    },
    "created_at": {
      "$ref": "#/components/schemas/DateTimeString"
    },
    "employment": {
      "type": "object",
      "properties": {
        "state": {
          "type": "string",
          "nullable": true,
          "description": "State code of the state/province where the this person will be employed."
        },
        "country": {
          "type": "string",
          "description": "Country of employement."
        },
        "end_date": {
          "$ref": "#/components/schemas/DateString"
        },
        "start_date": {
          "$ref": "#/components/schemas/DateString"
        },
        "scope_of_work": {
          "type": "string",
          "example": "A designer works on the entire process of defining requirements, visualizing and creating graphics including illustrations or logos. Also, the designer works on shaping the visual aspects of websites, product packaging, and more.",
          "description": "Scope of work description."
        },
        "time_off_type": {
          "type": "string",
          "description": "If you want to use standard number of holidays for this employee, choose \"STANDARD\". If you want to enter a specific number of holidays, choose \"SPECIFIC\" and enter the number of days in the holidays field."
        },
        "probation_period": {
          "type": "number",
          "nullable": true,
          "description": "Number of probation days."
        },
        "work_visa_required": {
          "type": "boolean",
          "description": "Do you require Deel to apply for work visa for this person?"
        },
        "calculated_holidays": {
          "type": "string",
          "description": "Number of calculate holidays for this contract."
        }
      }
    },
    "health_plan": {
      "type": "object",
      "nullable": true,
      "properties": {
        "id": {
          "type": "string",
          "description": "Health plan ID"
        },
        "name": {
          "type": "string",
          "description": "Health plan name"
        }
      }
    },
    "compensation_details": {
      "type": "object",
      "properties": {
        "salary": {
          "type": "number",
          "description": "Gross annual salary."
        },
        "currency": {
          "type": "string",
          "description": "Currency of gross annual salary."
        },
        "variable_compensation": {
          "type": "string",
          "description": "Variable compensation acount or percentage."
        },
        "variable_compensation_type": {
          "type": "string",
          "nullable": true,
          "description": "Type fo variable compensation."
        }
      }
    }
  }
}
object EorContractCreatedContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/EorContractCreated"
    }
  },
  "x-internal": true
}
object EorContractToCreate
{
  "type": "object",
  "required": [
    "employment",
    "employee",
    "job_title",
    "seniority",
    "client",
    "compensation_details"
  ],
  "properties": {
    "client": {
      "type": "object",
      "required": [
        "team"
      ],
      "properties": {
        "team": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "$ref": "#/components/schemas/UniqueObjectIdentifier",
              "description": "Enter the Id of team this person will be hired in. Use /teams endpoint to retrieve a list of teams in your organization."
            }
          }
        },
        "legal_entity": {
          "type": "object",
          "properties": {
            "id": {
              "$ref": "#/components/schemas/UniqueObjectIdentifier",
              "description": "Enter the Id of legal entity under which you want to hire this person. Use /legal-entities endpoint to retrieve a list of legal entities in your organization."
            }
          }
        }
      }
    },
    "pension": {
      "$ref": "#/components/schemas/PensionEORContractToCreate"
    },
    "employee": {
      "type": "object",
      "required": [
        "first_name",
        "last_name",
        "nationality"
      ],
      "properties": {
        "email": {
          "type": "string",
          "example": "employee@email.com",
          "description": "Employee's email address."
        },
        "address": {
          "type": "object",
          "nullable": true,
          "properties": {
            "zip": {
              "type": "string",
              "example": "44000",
              "description": "Zip code."
            },
            "city": {
              "type": "string",
              "example": "Denver",
              "description": "City name."
            },
            "state": {
              "type": "string",
              "example": "CO",
              "nullable": true,
              "description": "State code."
            },
            "street": {
              "type": "string",
              "example": "Deel Street 500",
              "description": "Street and number."
            },
            "country": {
              "$ref": "#/components/schemas/CountryCode"
            }
          }
        },
        "last_name": {
          "type": "string",
          "example": "Doe",
          "description": "Employee's last name."
        },
        "first_name": {
          "type": "string",
          "example": "Jane",
          "description": "Employee's first name."
        },
        "nationality": {
          "type": "string",
          "example": "US",
          "description": "Employee's nationality."
        }
      }
    },
    "job_title": {
      "type": "string",
      "description": "Employee's job title."
    },
    "seniority": {
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/components/schemas/UniqueObjectIdentifier",
          "description": "Enter the Id retrieved from the seniority lookup endpoint. Enter 34 for \"Not Applicable\"."
        }
      }
    },
    "employment": {
      "type": "object",
      "required": [
        "country",
        "start_date",
        "work_visa_required"
      ],
      "properties": {
        "type": {
          "enum": [
            "Full-time",
            "Part-time"
          ],
          "type": "string",
          "description": "Is it a full-time contract or a part-time contract?"
        },
        "state": {
          "type": "string",
          "nullable": true,
          "description": "State code of the state/province where the this person will be employed."
        },
        "country": {
          "$ref": "#/components/schemas/CountryCode"
        },
        "end_date": {
          "$ref": "#/components/schemas/DateString"
        },
        "holidays": {
          "type": "number",
          "nullable": true,
          "description": "Enter the number of holidays. Leave this field blank if you are chooseing \"STANDARD\" time_off_type."
        },
        "start_date": {
          "$ref": "#/components/schemas/DateStringRequired"
        },
        "scope_of_work": {
          "type": "string",
          "description": "Scope of work description."
        },
        "time_off_type": {
          "enum": [
            "STANDARD",
            "SPECIFIC"
          ],
          "type": "string",
          "description": "If you want to use standard number of holidays for this employee, choose \"STANDARD\". If you want to enter a specific number of holidays, choose \"SPECIFIC\" and enter the number of days in the holidays field."
        },
        "probation_period": {
          "type": "number",
          "nullable": true,
          "description": "Number of probation days."
        },
        "work_visa_required": {
          "type": "boolean",
          "default": false,
          "description": "Do you require Deel to apply for work visa for this person?"
        }
      }
    },
    "health_plan_id": {
      "type": "string",
      "description": "Healthcare plan id. You can see available healthcare plans in the country guide endpoint."
    },
    "compensation_details": {
      "type": "object",
      "required": [
        "currency"
      ],
      "properties": {
        "salary": {
          "type": "number",
          "description": "Employee's gross annual salary."
        },
        "currency": {
          "type": "string",
          "description": "Salary currency."
        },
        "variable_compensation": {
          "type": "number",
          "nullable": true,
          "description": "Variable compensation. For example, if the person will earn 5% of the gross annual salary as the variable compensation, enter 5."
        },
        "variable_compensation_type": {
          "enum": [
            "PERCENTAGE",
            "FIXED",
            null
          ],
          "type": "string",
          "nullable": true,
          "description": "Should be set only if variable_compensation is set. It can be PERCENTAGE or FIXED."
        }
      }
    },
    "quote_additional_fields": {
      "type": "object",
      "nullable": true,
      "properties": {
        "dob": {
          "type": "string",
          "description": "Employee's date of birth."
        },
        "gender": {
          "type": "string",
          "description": "Employee's gender."
        },
        "worker_type": {
          "enum": [
            "Skilled",
            "Unskilled"
          ],
          "type": "string",
          "description": "Type of worker."
        }
      },
      "description": "Some countries require additional employee information for employment contracts."
    }
  }
}
object EorContractToCreateContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/EorContractToCreate"
    }
  },
  "x-internal": true
}
object EorCountryValidations
{
  "type": "object",
  "properties": {
    "salary": {
      "type": "object",
      "properties": {
        "max": {
          "type": "string",
          "example": "2649300.00",
          "description": "Maximum wage allowed for a legally compliant contract."
        },
        "min": {
          "type": "string",
          "example": "14544.00",
          "description": "Minimum wage for a legally compliant contract."
        },
        "frequency": {
          "$ref": "#/components/schemas/SalaryFrequencyScaleEnum",
          "type": "string"
        }
      },
      "description": "Salary range."
    },
    "holiday": {
      "type": "object",
      "properties": {
        "min": {
          "type": "string",
          "example": "20",
          "description": "Minimum number of holidays required for a legally compliant contract."
        }
      },
      "description": "Range of the number of holidays."
    },
    "pension": {
      "type": "object",
      "nullable": true,
      "properties": {
        "status": {
          "$ref": "#/components/schemas/BenefitStatusEnum",
          "description": "Pension benefit status."
        },
        "providers": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/PensionProvider"
          }
        }
      },
      "description": "If it is there, you must specify the pension benefit when creating an EOR contract."
    },
    "currency": {
      "type": "string",
      "example": "BRL",
      "description": "Country currency."
    },
    "probation": {
      "type": "object",
      "properties": {
        "max": {
          "type": "number",
          "example": 90,
          "description": "Maximum probation days allowed for a legally compliant contract."
        },
        "min": {
          "type": "string",
          "format": "nullable",
          "description": "Minimum probation days required for a legally compliant contract."
        }
      },
      "description": "Probation period range."
    },
    "sick_days": {
      "type": "object",
      "properties": {
        "max": {
          "type": "string",
          "format": "nullable",
          "description": "Maximum number of sick days allowed for a legally compliant contract."
        },
        "min": {
          "type": "string",
          "example": "0",
          "description": "Minimum number of sick days required for a legally compliant contract."
        }
      }
    },
    "insurance_fee": {
      "type": "string",
      "example": "15.00",
      "description": "Insurance fee."
    },
    "work_schedule": {
      "type": "object",
      "properties": {
        "days": {
          "type": "object",
          "properties": {
            "max": {
              "type": "string",
              "example": "6"
            }
          }
        },
        "hours": {
          "type": "object",
          "properties": {
            "max": {
              "type": "string",
              "example": "10"
            }
          }
        }
      },
      "description": "Employee's Work schedule in days and hours."
    },
    "health_insurance": {
      "type": "object",
      "nullable": true,
      "properties": {
        "status": {
          "$ref": "#/components/schemas/BenefitStatusEnum",
          "description": "Health insurance status."
        },
        "providers": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/HealthInsuranceProvider"
          }
        }
      }
    },
    "mandatory_fields": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EorField"
      }
    },
    "definite_contract": {
      "type": "object",
      "properties": {
        "type": {
          "enum": [
            "ALLOWED_WITHOUT_LIMITATION",
            "ALLOWED_WITH_MAXIMUM_LIMITATION",
            "NOT_ALLOWED"
          ],
          "type": "string",
          "example": "ALLOWED_WITH_MAXIMUM_LIMITATION"
        },
        "maximum_limitation": {
          "type": "number",
          "example": 36
        }
      },
      "description": "Conditions to make definitive contract."
    },
    "part_time_holiday": {
      "type": "object",
      "properties": {
        "min": {
          "type": "string",
          "example": "15",
          "description": "Minimum number of holidays required for a legally compliant contract."
        },
        "type": {
          "enum": [
            "PRORATED",
            "STANDARD",
            "SPECIFIC"
          ],
          "type": "string",
          "example": "SPECIFIC"
        }
      },
      "description": "Holiday type and range for part-time contracts."
    },
    "start_date_buffer": {
      "type": "number",
      "example": 5,
      "description": "Calculate employee's minimum start date using the start date buffer. Today's date + (number of business days x start_date_buffer) = Minimum start date."
    },
    "part_time_probation": {
      "type": "object",
      "properties": {
        "max": {
          "type": "number",
          "example": 60,
          "description": "Maximum probation days allowed for a legally compliant contract."
        },
        "min": {
          "type": "number",
          "example": 30,
          "description": "Minimum probation days required for a legally compliant contract."
        }
      },
      "description": "Probation period range for part-time contracts."
    },
    "hiring_guide_country_name": {
      "type": "string",
      "example": "brazil",
      "description": "Country name."
    },
    "adjustments_information_box": {
      "type": "string",
      "example": "Not allowed to contract people under 21.",
      "description": "Country specific notes and information."
    }
  }
}
object EorCountryValidationsContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/EorCountryValidations"
    }
  },
  "x-internal": true
}
object EorEmployeeCostCalculationRequestBody
{
  "type": "object",
  "required": [
    "salary",
    "country",
    "currency"
  ],
  "properties": {
    "salary": {
      "type": "number",
      "example": 50000,
      "minimum": 1,
      "description": "The gross annual salary of the employee."
    },
    "country": {
      "type": "string",
      "example": "Germany",
      "description": "The country of employment."
    },
    "benefits": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "provider_id"
        ],
        "properties": {
          "plan_id": {
            "type": "string",
            "example": "00000000-0000-0000-0000-000000000000",
            "nullable": true,
            "description": "The ID of a benefits plan to include in the calculation."
          },
          "provider_id": {
            "type": "string",
            "example": "00000000-0000-0000-0000-000000000000",
            "description": "The ID of a benefits provider to include in the calculation."
          }
        }
      },
      "nullable": true,
      "description": "Benefits which should be included in the calculation."
    },
    "currency": {
      "type": "string",
      "example": "EUR",
      "description": "The currency that the salary is paid in."
    }
  }
}
object EorEmployeeCostCalculationRequestBodyContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/EorEmployeeCostCalculationRequestBody"
    }
  },
  "x-internal": true
}
object EorEmployeeCostCalculationResponse
{
  "type": "object",
  "properties": {
    "costs": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Health Insurance Estimate",
            "description": "The name of the cost item."
          },
          "amount": {
            "type": "string",
            "example": 500,
            "description": "The amount or price of the cost item."
          },
          "country": {
            "type": "string",
            "example": "Germany",
            "description": "The country that the cost item is associated with."
          },
          "frequency": {
            "type": "string",
            "example": "Monthly",
            "description": "The frequency that the cost item must be paid."
          },
          "country_code": {
            "type": "string",
            "example": "DE",
            "description": "The country code for the country that the cost item is associated with."
          }
        }
      },
      "description": "The various costs associated with employment in the specified country."
    },
    "salary": {
      "type": "string",
      "example": 5000,
      "description": "The gross annual salary of the employee."
    },
    "country": {
      "type": "string",
      "example": "Germany",
      "description": "The country of employment."
    },
    "currency": {
      "type": "string",
      "example": "EUR",
      "description": "The currency of the employee salary."
    },
    "deel_fee": {
      "type": "string",
      "example": 500,
      "description": "The monthly Deel fee."
    },
    "frequency": {
      "type": "string",
      "example": "Monthly",
      "description": "The frequency that the salary is paid out to the employee."
    },
    "total_costs": {
      "type": "string",
      "example": 10000,
      "description": "Total monthly cost including salary, Deel fee, severance accrual and employer costs."
    },
    "country_code": {
      "type": "string",
      "example": "DE",
      "description": "The country code for the country of employment."
    },
    "benefits_data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Healthcare",
            "description": "The name of the benefit item."
          },
          "plan": {
            "type": "string",
            "description": "The name of the benefit plan."
          },
          "amount": {
            "type": "string",
            "example": 50,
            "description": "The amount or price of the benefit item."
          },
          "fee_amount": {
            "type": "string",
            "example": 10,
            "description": "The amount or price of the fee associated with the benefit item."
          }
        }
      },
      "description": "The various benefits costs involved in the calculation, if any."
    },
    "employer_costs": {
      "type": "string",
      "example": 1000,
      "description": "Total monthly employer costs. Does not include Deel fee, salary and severance accrual."
    },
    "additional_data": {
      "type": "object",
      "properties": {
        "additional_notes": {
          "type": "array",
          "items": {
            "type": "string",
            "example": "Kindly note that employment process X is mandatory for this country.",
            "description": "A textual note describing important additional data regarding the employement process."
          }
        }
      },
      "description": "Textual notes describing important additional data regarding the employement process or costs."
    },
    "severance_accrual": {
      "type": "string",
      "example": 1000,
      "description": "Monthly funds to cover future potential severance payments to the employee."
    }
  }
}
object EorEmployeeCostCalculationResponseContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/EorEmployeeCostCalculationResponse"
    }
  },
  "x-internal": true
}
object EorEntitlementListItem
{
  "type": "object",
  "properties": {
    "year": {
      "type": "number",
      "example": 2022
    },
    "rollover_type": {
      "$ref": "#/components/schemas/EorHolidaysRolloverType"
    },
    "vacation_used": {
      "type": "string",
      "example": "5",
      "description": "Vacation days used by the employee."
    },
    "vacation_total": {
      "type": "string",
      "example": "5",
      "description": "Total number of vacation days requested, approved and used."
    },
    "sick_leave_used": {
      "type": "string",
      "example": "5",
      "description": "Sick days used by the employee."
    },
    "other_leave_used": {
      "type": "string",
      "example": "5",
      "description": "Other type of time off days used by the employee."
    },
    "sick_leave_total": {
      "type": "string",
      "example": "5",
      "description": "Total number of sick days requested, approved and used."
    },
    "vacation_allowed": {
      "type": "string",
      "example": "16",
      "description": "Minimum vacation allowed."
    },
    "other_leave_total": {
      "type": "string",
      "example": "5",
      "description": "Total number of other type of time off days requested, approved and used."
    },
    "vacation_approved": {
      "type": "string",
      "example": "5",
      "description": "Vacation days approved."
    },
    "sick_leave_allowed": {
      "type": "string",
      "example": "16",
      "description": "Maximum sick leave allowed."
    },
    "vacation_requested": {
      "type": "string",
      "example": "5",
      "description": "Vacation days requested by the employee."
    },
    "max_rollover_yearly": {
      "type": "string",
      "format": "nullable",
      "example": "3"
    },
    "sick_leave_approved": {
      "type": "string",
      "example": "5",
      "description": "Sick days approved."
    },
    "other_leave_approved": {
      "type": "string",
      "example": "5",
      "description": "Other type of time off days approved."
    },
    "sick_leave_requested": {
      "type": "string",
      "example": "5",
      "description": "Sick days requested by the employee."
    },
    "other_leave_requested": {
      "type": "string",
      "example": "5",
      "description": "Other type of time off requested by the employee."
    }
  },
  "description": "Entitlement Item for a given year.",
  "x-konfig-properties": {
    "rollover_type": {
      "example": "EXPIRATION"
    }
  }
}
object EorEntitlements
{
  "type": "object",
  "required": [
    "entitlements"
  ],
  "properties": {
    "entitlements": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EorEntitlementListItem"
      },
      "description": "List of entitlements."
    }
  },
  "description": "Time-off Entitlements for EOR contracts."
}
object EorEntitlementsContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/EorEntitlements"
    }
  },
  "x-internal": true
}
object EorField
{
  "type": "object",
  "properties": {
    "label": {
      "type": "string",
      "example": "Country of birth"
    },
    "options": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "Afghanistan (AF)",
        "Canada (CA)",
        "Zimbabwe (ZW)"
      ]
    },
    "input_type": {
      "type": "string",
      "example": "select"
    },
    "is_optional": {
      "type": "boolean",
      "example": false
    },
    "property_name": {
      "type": "string",
      "example": "countryOfBirth"
    }
  },
  "description": "Mandatory EOR field."
}
string EorHolidaysRolloverType
{
  "enum": [
    "EXPIRATION",
    "PAY_OUT",
    "UNLIMITED_ROLLOVER",
    "LIMITED_ROLLOVER",
    "UNSET"
  ],
  "type": "string"
}
object EorQuoteBase
{
  "type": "object",
  "properties": {
    "currency": {
      "$ref": "#/components/schemas/CurrencyCodeRequired",
      "description": "Local currency"
    },
    "cba_total": {
      "type": "number",
      "example": 900,
      "description": "Total CBA in local currency"
    },
    "created_at": {
      "$ref": "#/components/schemas/DateString",
      "description": "Quote creation date"
    },
    "updated_at": {
      "$ref": "#/components/schemas/DateString",
      "description": "Quote updated date"
    },
    "salary_total": {
      "type": "number",
      "example": 900,
      "description": "Total salary in local currency"
    },
    "annual_salary": {
      "type": "number",
      "example": 900,
      "description": "Annual Salary in local currency"
    },
    "cba_total_usd": {
      "type": "number",
      "example": 900,
      "description": "Total CBA in USD"
    },
    "breakdown_costs": {
      "$ref": "#/components/schemas/BreakdownCostsQuote",
      "description": "Breakdown costs"
    },
    "salary_total_usd": {
      "type": "number",
      "example": 900,
      "description": "Total salary in USD"
    },
    "gross_salary_total": {
      "type": "number",
      "example": 900,
      "description": "Total gross salary in local currency"
    },
    "mobility_fee_total": {
      "type": "number",
      "example": 900,
      "description": "Total mobility fee in local currency"
    },
    "monthly_cost_total": {
      "type": "number",
      "example": 900,
      "description": "Total monthly cost in local currency"
    },
    "platform_fee_total": {
      "type": "number",
      "example": 900,
      "description": "Total platform fee in local currency"
    },
    "employer_cost_total": {
      "type": "number",
      "example": 900,
      "description": "Total employer cost in local currency"
    },
    "gross_salary_total_usd": {
      "type": "number",
      "example": 900,
      "description": "Total gross salary in USD"
    },
    "mobility_fee_total_usd": {
      "type": "number",
      "example": 900,
      "description": "Total mobility fee in USD"
    },
    "monthly_cost_total_usd": {
      "type": "number",
      "example": 900,
      "description": "Total monthly cost in USD"
    },
    "platform_fee_total_usd": {
      "type": "number",
      "example": 900,
      "description": "Total platform fee in USD"
    },
    "employer_cost_total_usd": {
      "type": "number",
      "example": 900,
      "description": "Total employer cost in USD"
    },
    "severance_accrual_total": {
      "type": "number",
      "example": 900,
      "description": "Total severance accrual in local currency"
    },
    "recurring_allowance_total": {
      "type": "number",
      "example": 900,
      "description": "Total recurring allowance in local currency"
    },
    "severance_accrual_total_usd": {
      "type": "number",
      "example": 900,
      "description": "Total severance accrual in USD"
    },
    "recurring_allowance_total_usd": {
      "type": "number",
      "example": 900,
      "description": "Total recurring allowance in USD"
    }
  },
  "description": "EOR quote approved by Deel"
}
object EorQuotePayload
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/EorQuoteBase"
    },
    {
      "type": "object",
      "properties": {
        "contract_id": {
          "type": "string",
          "description": "Contract id"
        },
        "country_code": {
          "$ref": "#/components/schemas/CountryCode"
        },
        "country_name": {
          "type": "string",
          "example": "Argentina",
          "description": "Country Name"
        },
        "contract_name": {
          "type": "string",
          "example": "My EOR Contract",
          "description": "Contract name"
        }
      }
    }
  ],
  "description": "EOR quote approved by Deel"
}
array EorTimeoffs
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/EorTimeoffsBaseItem"
  },
  "description": "List of time offs."
}
object EorTimeoffsBaseItem
{
  "type": "object",
  "required": [
    "type",
    "requested_at",
    "status"
  ],
  "properties": {
    "type": {
      "$ref": "#/components/schemas/TimeoffsTypeEnum"
    },
    "reason": {
      "type": "string",
      "example": "I have a doctors appointment",
      "nullable": true,
      "description": "Reason for requesting time off."
    },
    "status": {
      "$ref": "#/components/schemas/TimeoffsStatusEnum"
    },
    "reviewer": {
      "allOf": [
        {
          "$ref": "#/components/schemas/TimeoffsProfile"
        }
      ],
      "nullable": true,
      "description": "User who reviewed the time off."
    },
    "requester": {
      "allOf": [
        {
          "$ref": "#/components/schemas/TimeoffsProfile"
        }
      ],
      "nullable": true,
      "description": "Employee who requested the time off."
    },
    "attachments": {
      "allOf": [
        {
          "$ref": "#/components/schemas/TimeoffsAttachments"
        }
      ],
      "nullable": true
    },
    "reviewed_at": {
      "allOf": [
        {
          "$ref": "#/components/schemas/DateTimeString"
        }
      ],
      "example": "2022-08-25T12:09:34.695Z",
      "nullable": true,
      "description": "Timestamp when time off was reviewed."
    },
    "single_date": {
      "allOf": [
        {
          "$ref": "#/components/schemas/DateTimeString"
        }
      ],
      "example": "2022-08-25T12:09:34.695Z",
      "nullable": true
    },
    "requested_at": {
      "$ref": "#/components/schemas/DateTimeString"
    },
    "denial_reason": {
      "type": "string",
      "example": "No time off available",
      "nullable": true,
      "description": "Reason why time off was denied."
    },
    "total_days_used": {
      "type": "string",
      "example": "4.00",
      "description": "Total number of time off days used."
    },
    "date_is_half_day": {
      "type": "boolean",
      "nullable": true,
      "description": "If true, only a single date was specified."
    },
    "days_used_end_year": {
      "type": "string",
      "example": "2.00",
      "description": "Days used at the end year."
    },
    "has_multiple_dates": {
      "type": "boolean",
      "nullable": true,
      "description": "Indicates if multiple time off days are requested."
    },
    "other_timeoff_name": {
      "type": "string",
      "example": "This is time off for a doctor's appointment",
      "nullable": true,
      "description": "Custom title for the time off. Only specify if type is \"OTHER\"."
    },
    "days_used_start_year": {
      "type": "string",
      "example": "2.00",
      "description": "Days used at the start year."
    },
    "end_date_is_half_day": {
      "type": "boolean",
      "description": "Indicates if the last day of time off is a half day."
    },
    "start_date_is_half_day": {
      "type": "boolean",
      "description": "Indicates if the first day of time off is a half day."
    }
  },
  "x-konfig-properties": {
    "type": {
      "example": "VACATION",
      "description": "The type of time off."
    },
    "status": {
      "example": "USED",
      "description": "Status of the time off request."
    },
    "requested_at": {
      "example": "2022-08-25T12:09:34.695Z",
      "description": "Timestamp when time off was requested."
    }
  }
}
object EorTimeoffsContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/EorTimeoffs"
    }
  },
  "x-internal": true
}
object EorTimeoffsEmployeeItem
{
  "type": "object",
  "required": [
    "id",
    "name",
    "eor_contract_id",
    "contract_id",
    "vacations",
    "sick_leaves",
    "others",
    "time_zones"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier"
    },
    "name": {
      "type": "string",
      "example": "Steve Timeoff"
    },
    "others": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EorClientTimeoffRequests"
      },
      "description": "List of all other employee time offs."
    },
    "vacations": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EorClientTimeoffRequests"
      },
      "description": "List of employee vacation time offs."
    },
    "time_zones": {
      "type": "string"
    },
    "contract_id": {
      "type": "string",
      "example": "7WjJWdsJ113vocUN6Buwn"
    },
    "sick_leaves": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EorClientTimeoffRequests"
      },
      "description": "List of employee sick leave time offs."
    },
    "eor_contract_id": {
      "type": "number",
      "example": 110143
    }
  }
}
object EorTimeoffsItemContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/EorTimeoffsBaseItem"
    }
  },
  "x-internal": true
}
object ErrorResponse
{
  "type": "object",
  "properties": {
    "detail": {
      "type": "string",
      "description": "detail error message"
    },
    "status": {
      "type": "string",
      "description": "same as HTTP status code, e.g. 400, 401, etc."
    },
    "schemas": {
      "type": "array",
      "items": {
        "enum": [
          "urn:ietf:params:scim:api:messages:2.0:Error"
        ],
        "type": "string"
      }
    },
    "scimType": {
      "enum": [
        "uniqueness",
        "tooMany",
        "mutability",
        "sensitive",
        "invalidSyntax",
        "invalidFilter",
        "invalidPath",
        "invalidValue",
        "invalidVers",
        "noTarget"
      ],
      "type": "string",
      "description": "bad request type when status code is 400"
    }
  }
}
object EstimateFirstPayment
{
  "type": "object",
  "nullable": false,
  "required": [
    "start_date",
    "country_code",
    "type",
    "compensation_details"
  ],
  "properties": {
    "type": {
      "$ref": "#/components/schemas/ContractTypeEnumForEstimate"
    },
    "start_date": {
      "$ref": "#/components/schemas/DateStringRequired"
    },
    "country_code": {
      "$ref": "#/components/schemas/CountryCode"
    },
    "compensation_details": {
      "type": "object",
      "properties": {
        "scale": {
          "$ref": "#/components/schemas/WorkStatementCycleScaleEnum"
        },
        "amount": {
          "type": "number",
          "example": 2500,
          "minimum": 0,
          "nullable": false,
          "description": "Amount to be paid. Must be a positive number."
        },
        "cycle_end": {
          "type": "number",
          "maximum": 31,
          "minimum": 1,
          "description": "Date invoice cycle ends."
        },
        "currency_code": {
          "$ref": "#/components/schemas/CurrencyCodeRequired"
        },
        "work_week_end": {
          "$ref": "#/components/schemas/WeekDaysEnum"
        },
        "cycle_end_type": {
          "$ref": "#/components/schemas/WorkStatementCycleEndTypeEnum"
        },
        "work_week_start": {
          "$ref": "#/components/schemas/WeekDaysEnum"
        },
        "calculation_type": {
          "enum": [
            "CUSTOM_AMOUNT",
            "WORK_DAYS",
            "CALENDAR_DAYS",
            "FULL_AMOUNT"
          ],
          "type": "string",
          "nullable": false,
          "description": "Either works days or calendar days"
        },
        "payment_due_days": {
          "type": "number",
          "maximum": 90,
          "minimum": 0,
          "nullable": false
        },
        "payment_due_type": {
          "$ref": "#/components/schemas/WorkStatementPaymentDueTypeEnum"
        }
      }
    }
  },
  "x-internal": true,
  "description": "Details of pro rata payment to create."
}
object EstimateFirstPaymentContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/EstimateFirstPayment"
    }
  },
  "x-internal": true
}
object ExchangeRates
{
  "type": "object",
  "properties": {
    "risk": {
      "type": "number"
    },
    "rates": {
      "type": "object",
      "example": {
        "USD": 1
      }
    }
  }
}
object FileAttachment
{
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "description": "Unique key for the file"
    },
    "name": {
      "type": "string",
      "description": "Name of the file"
    }
  }
}
object FileAttachmentInfo
{
  "type": "object",
  "nullable": true,
  "required": [
    "filename",
    "key"
  ],
  "properties": {
    "key": {
      "type": "string",
      "nullable": false,
      "description": "You can call attachments end-point, get key and URL to upload your file."
    },
    "filename": {
      "type": "string",
      "nullable": false,
      "description": "Original filename you used to upload using attachments end-point."
    }
  },
  "x-internal": true,
  "description": "This object is used for linking file attachments to your records."
}
object FileObject
{
  "type": "object",
  "properties": {
    "file": {
      "type": "string",
      "format": "binary",
      "nullable": false,
      "description": "Upload the file you want to attach to this entry."
    }
  },
  "x-internal": true,
  "description": "This is the file you will upload in a multi-part form."
}
string FileRefTypeEnum
{
  "enum": [
    "application/pdf",
    "text/csv",
    "text/plain",
    "image/jpeg",
    "image/png"
  ],
  "type": "string",
  "nullable": false,
  "minLength": 5,
  "x-internal": true,
  "description": "type of files allowed when uploading attachments"
}
object FilterSupported
{
  "type": "object",
  "properties": {
    "supported": {
      "type": "boolean",
      "default": false
    },
    "maxResults": {
      "type": "integer",
      "format": "int32"
    }
  }
}
object FinalPaymentCalculated
{
  "type": "object",
  "required": [
    "daily_rate",
    "total",
    "remaining_days",
    "last_cycle",
    "calculation_type",
    "workweek_start",
    "workweek_end"
  ],
  "properties": {
    "total": {
      "type": "string",
      "example": "5.8571",
      "nullable": false,
      "description": "Total amount to pay."
    },
    "daily_rate": {
      "type": "string",
      "example": "5.8571",
      "nullable": false,
      "description": "The daily rate paid."
    },
    "last_cycle": {
      "properties": {
        "end": {
          "$ref": "#/components/schemas/DateTimeStringRequired"
        },
        "start": {
          "$ref": "#/components/schemas/DateTimeStringRequired"
        },
        "completion_date": {
          "$ref": "#/components/schemas/DateTimeStringRequired"
        }
      },
      "description": "The last payment cycle."
    },
    "workweek_end": {
      "type": "number",
      "default": 5,
      "nullable": false,
      "description": "The day the work week starts, 0 to 6"
    },
    "remaining_days": {
      "type": "string",
      "example": "5.8571",
      "nullable": false,
      "description": "Dais remaining to end the contract."
    },
    "workweek_start": {
      "type": "number",
      "default": 1,
      "nullable": false,
      "description": "The day the work week starts, 0 to 6"
    },
    "calculation_type": {
      "enum": [
        "CUSTOM_AMOUNT",
        "WORK_DAYS",
        "CALENDAR_DAYS",
        "FULL_AMOUNT"
      ],
      "type": "string",
      "nullable": false,
      "description": "Either works days or calendar days"
    }
  },
  "x-internal": true
}
object FinalPaymentCalculatedContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/FinalPaymentCalculated"
    }
  },
  "x-internal": true
}
object FirstPaymentDate
{
  "type": "object",
  "nullable": false,
  "properties": {
    "due": {
      "$ref": "#/components/schemas/DateStringRequired"
    }
  },
  "x-internal": true,
  "description": "First payment date"
}
object GPClient
{
  "type": "object",
  "required": [
    "legal_entity",
    "team"
  ],
  "properties": {
    "team": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "$ref": "#/components/schemas/UniqueObjectIdentifier",
          "description": "Enter the Id of the team this person will be hired in. Use /teams endpoint to retrieve a list of teams in your organization."
        }
      }
    },
    "legal_entity": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "$ref": "#/components/schemas/UniqueObjectIdentifier",
          "description": "Enter the Id of the legal entity under which you want to hire this person. Use /legal-entities endpoint to retrieve a list of legal entities in your organization."
        }
      }
    }
  }
}
object GPContractCreated
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Id of the contract created."
    },
    "type": {
      "$ref": "#/components/schemas/ContractTypeEnum"
    },
    "client": {
      "type": "object",
      "properties": {
        "legal_entity": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "Legal entity name."
            }
          }
        }
      }
    },
    "status": {
      "$ref": "#/components/schemas/ContractStatusEnum"
    },
    "employee": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "description": "Employee's email address."
        },
        "last_name": {
          "type": "string",
          "description": "Employee's last name."
        },
        "first_name": {
          "type": "string",
          "description": "Employee's first name."
        },
        "employee_number": {
          "type": "string",
          "description": "Employee's number."
        }
      }
    },
    "job_title": {
      "type": "string",
      "example": "Designer",
      "description": "Employee's job title."
    },
    "created_at": {
      "$ref": "#/components/schemas/DateTimeString"
    },
    "employment": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "Is it a full-time contract or a part-time contract?"
        },
        "state": {
          "type": "string",
          "nullable": true,
          "description": "State code of the state/province where this person will be employed."
        },
        "country": {
          "type": "string",
          "description": "Country of employment."
        },
        "end_date": {
          "$ref": "#/components/schemas/DateString",
          "description": "Employment end date in Deel."
        },
        "holidays": {
          "type": "object",
          "properties": {
            "allowance": {
              "type": "number",
              "description": "Number of holidays."
            },
            "start_date": {
              "$ref": "#/components/schemas/DateString"
            }
          }
        },
        "start_date": {
          "$ref": "#/components/schemas/DateString",
          "description": "Employment start date in Deel."
        },
        "work_visa_required": {
          "type": "boolean",
          "description": "Do you require Deel to apply for a work visa for this person?"
        }
      }
    },
    "compensation_details": {
      "type": "object",
      "properties": {
        "scale": {
          "type": "string",
          "description": "Scale at which the salary is paid."
        },
        "salary": {
          "type": "number",
          "description": "Gross annual/month salary."
        },
        "currency": {
          "type": "string",
          "description": "Currency of gross annual/month salary."
        }
      }
    }
  }
}
object GPContractCreatedContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/GPContractCreated"
    }
  },
  "x-internal": true
}
string GPContractSalaryScaleEnum
{
  "enum": [
    "YEAR",
    "MONTH",
    "HOUR"
  ],
  "type": "string",
  "example": "YEAR",
  "description": "The scale to which a given salary applies."
}
string GPContractSalaryStatusEnum
{
  "enum": [
    "ACTIVE",
    "UPCOMING",
    "OUTDATED"
  ],
  "type": "string",
  "example": "ACTIVE",
  "description": "The status of a salary amendment."
}
string GPContractStatusTypeEnum
{
  "enum": [
    "Full-time",
    "Part-time"
  ],
  "type": "string",
  "description": "Is it a full-time contract or a part-time contract?"
}
object GPContractToCreate
{
  "type": "object",
  "required": [
    "employee",
    "employment",
    "job_title",
    "client",
    "compensation_details"
  ],
  "properties": {
    "client": {
      "$ref": "#/components/schemas/GPClient"
    },
    "employee": {
      "type": "object",
      "required": [
        "first_name",
        "last_name",
        "email",
        "address",
        "work_email"
      ],
      "properties": {
        "email": {
          "$ref": "#/components/schemas/EmailTypeRequired",
          "example": "employee@email.com",
          "description": "Employee's email address."
        },
        "address": {
          "type": "object",
          "required": [
            "street",
            "city",
            "zip",
            "country"
          ],
          "properties": {
            "zip": {
              "type": "string",
              "example": "44000",
              "description": "Zip code."
            },
            "city": {
              "type": "string",
              "example": "Denver",
              "description": "City name."
            },
            "state": {
              "type": "string",
              "example": "CO",
              "description": "State code."
            },
            "street": {
              "type": "string",
              "example": "Deel Street 500",
              "description": "Street and number."
            },
            "country": {
              "$ref": "#/components/schemas/CountryCode"
            }
          }
        },
        "last_name": {
          "type": "string",
          "example": "Doe",
          "description": "Employee's last name."
        },
        "first_name": {
          "type": "string",
          "example": "Jane",
          "description": "Employee's first name."
        },
        "work_email": {
          "$ref": "#/components/schemas/EmailTypeRequired",
          "example": "work@email.com",
          "description": "Employee's work email address."
        },
        "nationality": {
          "type": "string",
          "example": "US",
          "description": "Employee's nationality."
        },
        "employee_number": {
          "type": "string",
          "example": "100",
          "description": "Employee's number."
        }
      }
    },
    "job_title": {
      "type": "string",
      "description": "Employee's job title."
    },
    "employment": {
      "type": "object",
      "required": [
        "type",
        "start_date",
        "holidays"
      ],
      "properties": {
        "type": {
          "$ref": "#/components/schemas/GPContractStatusTypeEnum"
        },
        "holidays": {
          "type": "object",
          "required": [
            "allowance",
            "start_date"
          ],
          "properties": {
            "allowance": {
              "type": "number",
              "description": "Enter the number of holidays."
            },
            "start_date": {
              "$ref": "#/components/schemas/DateStringRequired"
            }
          }
        },
        "start_date": {
          "$ref": "#/components/schemas/DateStringRequired",
          "description": "Employment start date in Deel."
        }
      },
      "x-konfig-properties": {}
    },
    "compensation_details": {
      "type": "object",
      "required": [
        "salary",
        "scale"
      ],
      "properties": {
        "scale": {
          "enum": [
            "YEAR",
            "MONTH"
          ],
          "type": "string",
          "default": "YEAR",
          "description": "Defines the scale at which the salary is paid."
        },
        "salary": {
          "type": "number",
          "description": "Employee's gross annual/month salary."
        },
        "currency": {
          "$ref": "#/components/schemas/CurrencyCodeRequired",
          "example": "BRL",
          "description": "Salary currency."
        }
      }
    }
  }
}
object GPContractToCreateContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/GPContractToCreate"
    }
  },
  "x-internal": true
}
object GPEmployeeAddressToUpdateContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/GPEmployeeAddressUpdateData"
    }
  },
  "x-internal": true
}
object GPEmployeeAddressUpdateData
{
  "type": "object",
  "properties": {
    "zip": {
      "type": "string",
      "example": "12345",
      "description": "Zip code."
    },
    "city": {
      "type": "string",
      "example": "London",
      "description": "City name."
    },
    "street": {
      "type": "string",
      "example": "123 Deel Street",
      "description": "Street name."
    }
  }
}
object GPEmployeeAddressUpdated
{
  "type": "object",
  "properties": {
    "zip": {
      "type": "string",
      "example": "12345",
      "description": "Zip code."
    },
    "city": {
      "type": "string",
      "example": "Denver",
      "description": "City name."
    },
    "state": {
      "type": "string",
      "example": "CO",
      "description": "State name."
    },
    "street": {
      "type": "string",
      "example": "123 Deel Street",
      "description": "Street name."
    },
    "country": {
      "$ref": "#/components/schemas/CountryCode"
    },
    "updated_at": {
      "$ref": "#/components/schemas/DateTimeStringRequired"
    }
  }
}
object GPEmployeeAddressUpdatedContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/GPEmployeeAddressUpdated"
    }
  },
  "x-internal": true
}
object GPEmployeeCompensationToUpdateContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/GPEmployeeCompensationUpdateData"
    }
  },
  "x-internal": true
}
object GPEmployeeCompensationUpdateData
{
  "type": "object",
  "required": [
    "scale",
    "salary",
    "effective_date"
  ],
  "properties": {
    "scale": {
      "$ref": "#/components/schemas/GPContractSalaryScaleEnum"
    },
    "salary": {
      "type": "number",
      "example": 50000,
      "description": "Compensation salary."
    },
    "effective_date": {
      "$ref": "#/components/schemas/DateStringRequired"
    }
  }
}
array GPEmployeeCompensationUpdated
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "scale": {
        "$ref": "#/components/schemas/GPContractSalaryScaleEnum"
      },
      "salary": {
        "type": "number",
        "example": 50000,
        "description": "Compensation salary."
      },
      "status": {
        "$ref": "#/components/schemas/GPContractSalaryStatusEnum"
      },
      "effective_date": {
        "$ref": "#/components/schemas/DateStringRequired"
      }
    }
  }
}
object GPEmployeeCompensationUpdatedContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/GPEmployeeCompensationUpdated"
    }
  },
  "x-internal": true
}
object GPEmployeeInformationToUpdateContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/GPEmployeeInformationUpdateData"
    }
  },
  "x-internal": true
}
object GPEmployeeInformationUpdateData
{
  "type": "object",
  "properties": {
    "gender": {
      "type": "string",
      "description": "Employee's gender."
    },
    "last_name": {
      "type": "string",
      "example": "Doe",
      "description": "Last name of the employee."
    },
    "first_name": {
      "type": "string",
      "example": "Jane",
      "description": "First name of the employee."
    },
    "middle_name": {
      "type": "string",
      "example": "Jay",
      "description": "Middle name of the employee."
    },
    "date_of_birth": {
      "$ref": "#/components/schemas/DateString"
    },
    "marital_status": {
      "$ref": "#/components/schemas/MaritalStatusEnum",
      "example": "Single"
    },
    "employee_number": {
      "type": "string",
      "description": "Employee's number."
    }
  }
}
object GPEmployeeInformationUpdatedContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/GPEmployeeInformationUpdateData"
    }
  },
  "x-internal": true
}
object GPEmployeePTOToUpdateContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/GPEmployeePTOUpdateData"
    }
  },
  "x-internal": true
}
object GPEmployeePTOUpdateData
{
  "type": "object",
  "required": [
    "accrual_start_date",
    "yearly_allowance"
  ],
  "properties": {
    "yearly_allowance": {
      "type": "string",
      "example": "15",
      "description": "Enter the number of holidays."
    },
    "accrual_start_date": {
      "$ref": "#/components/schemas/DateStringRequired",
      "description": "Date when the employee starts to accrue PTO."
    }
  }
}
object GPPayrollEventReportContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/GPPayrollEventReports"
    }
  },
  "x-internal": true
}
array GPPayrollEventReports
{
  "type": "array",
  "items": {
    "type": "object",
    "required": [
      "id",
      "status",
      "start_date",
      "end_date",
      "lock_date"
    ],
    "properties": {
      "id": {
        "type": "string",
        "example": "clqmd5qb07xwevi01cd5kb6kw"
      },
      "status": {
        "type": "string",
        "example": "OPEN"
      },
      "end_date": {
        "$ref": "#/components/schemas/DateTimeStringRequired"
      },
      "lock_date": {
        "$ref": "#/components/schemas/DateTimeStringRequired"
      },
      "start_date": {
        "$ref": "#/components/schemas/DateTimeStringRequired"
      }
    }
  }
}
object GPPayslipDownloadUrlContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/PayslipDownloadUrl"
    }
  },
  "x-internal": true
}
object GPPayslipsListContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Payslips"
      }
    }
  }
}
object GenericReportReviewCreated
{
  "type": "object",
  "required": [
    "status",
    "id"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier"
    },
    "status": {
      "$ref": "#/components/schemas/InvoiceAdjustmentStatusEnum"
    }
  },
  "x-internal": true
}
object GenericReportReviewCreatedContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/GenericReportReviewCreatedList"
    }
  },
  "x-internal": true
}
array GenericReportReviewCreatedList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/GenericReportReviewCreated"
  },
  "x-internal": true
}
object GenericResultCreated
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "created"
      ],
      "properties": {
        "created": {
          "type": "boolean"
        }
      }
    }
  },
  "x-internal": true
}
object GenericResultCreatedWithId
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "created"
      ],
      "properties": {
        "id": {
          "$ref": "#/components/schemas/UniqueObjectIdentifier"
        },
        "created": {
          "type": "boolean"
        }
      }
    }
  },
  "x-internal": true
}
object GenericResultDeleted
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "deleted"
      ],
      "properties": {
        "deleted": {
          "type": "boolean",
          "nullable": false,
          "description": "Confirms the deletion."
        }
      }
    }
  },
  "x-internal": true
}
object GenericResultUpdated
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "updated"
      ],
      "properties": {
        "updated": {
          "type": "boolean"
        }
      }
    }
  },
  "x-internal": true
}
object GetEmployeeComplianceDocumentTemplateDownloadLinkContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "example": "https://s3URL/letsdeel.com/contract_requirement_templates/12345.pdf",
          "description": "The URL for the requested compliance document template."
        },
        "expires_at": {
          "type": "string",
          "format": "date-time",
          "example": "2020-03-31T10:58:49.780Z",
          "description": "Expiration date time of download URL."
        }
      }
    }
  },
  "x-internal": true
}
object GetEmployeeComplianceDocumentsContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "documents"
      ],
      "properties": {
        "documents": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "$ref": "#/components/schemas/UniqueObjectIdentifier",
                "description": "The unique identifier of the document."
              },
              "name": {
                "type": "string",
                "example": "Example Document",
                "description": "The name of the document."
              },
              "country": {
                "type": "string",
                "example": "GB",
                "description": "The country associated with this document."
              },
              "fillable": {
                "type": "boolean",
                "example": false,
                "description": "Denotes if the document is available to fill out on Deel."
              },
              "filenames": {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "myComplianceDocument.pdf",
                  "description": "A file name for an uploaded document."
                },
                "description": "The list of filenames for the associated uploaded documents."
              },
              "description": {
                "type": "string",
                "example": "This document is needed for tax purposes.",
                "description": "A short description of the document."
              },
              "is_optional": {
                "type": "boolean",
                "example": false,
                "description": "Denotes if the document is optional or required."
              },
              "uploaded_at": {
                "type": "string",
                "example": "2023-01-01T12:00:00.000Z",
                "description": "The timestamp when this document was uploaded / supplied to Deel."
              },
              "has_template": {
                "type": "boolean",
                "example": true,
                "description": "Denotes if this document has a template available for download"
              }
            }
          }
        }
      }
    }
  },
  "x-internal": true
}
string GlobalPayrollDownloadGrossToNetGpReportResponse
{
  "type": "string"
}
object GlobalPayrollG2NReport
{
  "type": "object",
  "properties": {
    "net_pay": {
      "type": "string",
      "nullable": true
    },
    "ee_loans": {
      "type": "string",
      "nullable": true
    },
    "contract_id": {
      "type": "string"
    },
    "cost_center": {
      "type": "string",
      "nullable": true
    },
    "annual_bonus": {
      "type": "number",
      "nullable": true
    },
    "car_allowance": {
      "type": "number",
      "nullable": true
    },
    "ee_income_tax": {
      "type": "string",
      "nullable": true
    },
    "employee_name": {
      "type": "string",
      "nullable": true
    },
    "employer_cost": {
      "type": "string",
      "nullable": true
    },
    "esp_deduction": {
      "type": "number",
      "nullable": true
    },
    "funding_amount": {
      "type": "number",
      "nullable": true
    },
    "home_allowance": {
      "type": "string",
      "nullable": true
    },
    "employee_number": {
      "type": "number",
      "nullable": true
    },
    "backdated_salary": {
      "type": "string",
      "nullable": true
    },
    "employee_division": {
      "type": "string",
      "nullable": true
    },
    "employee_job_title": {
      "type": "string",
      "nullable": true
    },
    "employee_department": {
      "type": "string",
      "nullable": true
    },
    "er_occupational_risk": {
      "type": "string",
      "nullable": true
    },
    "pension_contribution": {
      "type": "number",
      "nullable": true
    },
    "employer_contribution": {
      "type": "string",
      "nullable": true
    },
    "employment_status_tag_internal": {
      "type": "string",
      "nullable": true
    }
  }
}
object GlobalPayrollG2NReportContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/GlobalPayrollG2NReport"
      }
    }
  },
  "x-internal": true
}
object HRDocumentInfo
{
  "type": "object",
  "required": [
    "id",
    "name"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Document Id."
    },
    "name": {
      "type": "string",
      "example": "Standard verification letter",
      "description": "Name of the document."
    }
  }
}
object HealthInsuranceProvider
{
  "type": "object",
  "properties": {
    "id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier",
      "description": "Unique identifier of a health insurance provider."
    },
    "name": {
      "type": "string",
      "example": "United Healthcare VSP Vision & Delta Dental: Singles Only",
      "description": "Name of insurance provider."
    },
    "type": {
      "type": "string",
      "example": "PLAN",
      "description": "Insurance type."
    },
    "plans": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/UniqueObjectIdentifier",
            "description": "Insurance plan id."
          },
          "name": {
            "type": "string",
            "example": "USA Healthcare Plan",
            "description": "Insurance plan name."
          },
          "price": {
            "type": "string",
            "example": "570.00",
            "nullable": true,
            "description": "Insurance price."
          },
          "currency": {
            "type": "string",
            "example": "USD",
            "description": "Insurance payment currency."
          },
          "is_enabled": {
            "type": "boolean"
          }
        }
      }
    },
    "currency": {
      "type": "string",
      "example": "USD",
      "description": "Payment currency."
    },
    "is_unisure": {
      "type": "boolean"
    },
    "attachments": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/UniqueObjectIdentifier"
          },
          "label": {
            "type": "string",
            "example": "Deel USA Health Care Packet.pdf"
          }
        }
      },
      "description": "File attachments."
    },
    "ending_rule": {
      "type": "string",
      "example": "END_OF_MONTH",
      "description": "Insurance cycle ending rule."
    },
    "fixed_price": {
      "type": "boolean",
      "description": "URL to price info."
    },
    "home_page_url": {
      "type": "string",
      "example": "https://bit.ly/3uW72fp",
      "description": "Insurance provider's home page url."
    },
    "days_to_cancel": {
      "type": "string",
      "format": "nullable",
      "description": "Days to cancel the insurance."
    },
    "pricing_info_link": {
      "type": "string",
      "format": "nullable",
      "description": "URL to price info."
    },
    "client_info_banner": {
      "type": "string",
      "format": "nullable",
      "description": "Health insurance info banner."
    },
    "is_available_for_new_quotes": {
      "type": "boolean"
    }
  },
  "description": "Health insurance provider."
}
string HiringStatusEnum
{
  "enum": [
    "active",
    "inactive",
    "onboarding"
  ],
  "type": "string",
  "x-internal": true
}
object HrVerificationLettersAndDocumentsListContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/HRDocumentInfo"
      }
    }
  },
  "x-internal": true
}
object HrisCompensation
{
  "type": "object",
  "required": [
    "gross_annual_salary",
    "currency"
  ],
  "properties": {
    "currency": {
      "type": "string",
      "example": "USD",
      "maxLength": 3,
      "minLength": 3
    },
    "gross_annual_salary": {
      "type": "number",
      "format": "float"
    }
  }
}
object HrisContractBase
{
  "type": "object",
  "required": [
    "start_date",
    "employment_type",
    "contract_oid"
  ],
  "properties": {
    "end_date": {
      "$ref": "#/components/schemas/DateString"
    },
    "start_date": {
      "$ref": "#/components/schemas/DateStringRequired"
    },
    "contract_oid": {
      "type": "string",
      "example": "pdcMQe0cXCCXWTkqkdytw",
      "description": "The Hris Direct employee contract ID"
    },
    "employee_number": {
      "type": "number"
    }
  }
}
object HrisDirectEmployee
{
  "type": "object",
  "required": [
    "employee_details",
    "team_information",
    "job_information",
    "compensation",
    "contract"
  ],
  "properties": {
    "contract": {
      "oneOf": [
        {
          "$ref": "#/components/schemas/HrisContractBase"
        },
        {
          "$ref": "#/components/schemas/HrisContractBase"
        }
      ]
    },
    "compensation": {
      "$ref": "#/components/schemas/HrisCompensation"
    },
    "vacation_info": {
      "type": "object",
      "nullable": true,
      "required": [
        "vacation_accrual_start_date",
        "vacation_yearly_policy"
      ],
      "properties": {
        "vacation_yearly_policy": {
          "type": "number",
          "maximum": 365,
          "minimum": 1
        },
        "vacation_accrual_start_date": {
          "type": "string",
          "format": "date"
        }
      }
    },
    "job_information": {
      "oneOf": [
        {
          "$ref": "#/components/schemas/HrisJobInformationTitleId"
        },
        {
          "$ref": "#/components/schemas/HrisJobInformationTitleName"
        }
      ]
    },
    "employee_details": {
      "$ref": "#/components/schemas/HrisDirectEmployeeDetails"
    },
    "team_information": {
      "$ref": "#/components/schemas/HrisTeamInformation"
    }
  }
}
object HrisDirectEmployeeContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/HrisDirectEmployeeResponse"
    }
  },
  "x-internal": true
}
object HrisDirectEmployeeDetails
{
  "type": "object",
  "required": [
    "first_name",
    "last_name",
    "email",
    "work_email",
    "nationality",
    "country"
  ],
  "properties": {
    "email": {
      "type": "string",
      "example": "john.doe@domain.com",
      "maxLength": 255,
      "minLength": 3
    },
    "state": {
      "type": "string",
      "example": "AC",
      "maxLength": 50,
      "minLength": 1
    },
    "country": {
      "type": "string",
      "example": "BR",
      "maxLength": 2,
      "minLength": 2
    },
    "last_name": {
      "type": "string",
      "example": "Doe",
      "maxLength": 100,
      "minLength": 3
    },
    "first_name": {
      "type": "string",
      "example": "John",
      "maxLength": 100,
      "minLength": 3
    },
    "work_email": {
      "type": "string",
      "example": "john.doe@domain.com",
      "maxLength": 255,
      "minLength": 3
    },
    "nationality": {
      "type": "string",
      "example": "CA",
      "maxLength": 2,
      "minLength": 2
    }
  }
}
object HrisDirectEmployeeResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/HrisDirectEmployee"
    },
    {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "example": "6733c95b-df52-419e-906d-6904d3117dab",
          "description": "The Hris Direct employee ID"
        }
      }
    }
  ]
}
object HrisJobInformationBase
{
  "type": "object",
  "required": [
    "seniority_id"
  ],
  "properties": {
    "seniority_id": {
      "type": "number"
    }
  }
}
object HrisJobInformationTitleId
{
  "allOf": [
    {
      "$ref": "#/components/schemas/HrisJobInformationBase"
    },
    {
      "type": "object",
      "required": [
        "seniority_id",
        "job_title_id"
      ],
      "properties": {
        "job_title_id": {
          "type": "number"
        }
      }
    }
  ]
}
object HrisJobInformationTitleName
{
  "allOf": [
    {
      "$ref": "#/components/schemas/HrisJobInformationBase"
    },
    {
      "type": "object",
      "required": [
        "seniority_id",
        "job_title_name"
      ],
      "properties": {
        "job_title_name": {
          "type": "string",
          "example": "BE Software Engineer"
        }
      }
    }
  ]
}
object HrisTeamInformation
{
  "type": "object",
  "required": [
    "team_id",
    "legal_entity_id"
  ],
  "properties": {
    "team_id": {
      "type": "number"
    },
    "legal_entity_id": {
      "type": "number"
    }
  }
}
object InputToCreateFileRef
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "object",
      "required": [
        "content_type"
      ],
      "properties": {
        "content_type": {
          "$ref": "#/components/schemas/FileRefTypeEnum"
        }
      }
    }
  },
  "x-internal": true
}
object InputToCreatePgoTask
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/PgoTaskToCreate"
    }
  },
  "x-internal": true
}
object InputToDeletePgoTask
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/PgoTaskToDelete"
    }
  },
  "x-internal": true
}
object InputToPatchContractExternalId
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ContractExternalIdToPatch"
    }
  },
  "x-internal": true
}
object InputToShieldContract
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "object",
      "nullable": false,
      "required": [
        "agreement_id"
      ],
      "properties": {
        "agreement_id": {
          "type": "number",
          "nullable": false,
          "description": "MSA contract id (agreement)."
        }
      },
      "x-internal": false
    }
  },
  "x-internal": true
}
object InternalPeople
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Unique identifier for the user"
    },
    "team": {
      "type": "string",
      "description": "Name of the team that the user belongs to"
    },
    "email": {
      "type": "string",
      "description": "Email address of the user"
    },
    "state": {
      "type": "string",
      "description": "State where the user is located"
    },
    "country": {
      "type": "string",
      "description": "ISO 3166-1 alpha-2 code of the country where the user is located"
    },
    "pic_url": {
      "type": "string",
      "description": "URL of the user's profile picture"
    },
    "team_id": {
      "type": "integer",
      "description": "Unique identifier for the team that the user belongs to"
    },
    "payments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Payment"
      },
      "description": "List of payment objects representing the user's payment history"
    },
    "timezone": {
      "type": "string",
      "description": "Time zone of the user's location"
    },
    "full_name": {
      "type": "string",
      "description": "Full name of the user"
    },
    "job_title": {
      "type": "string",
      "description": "Title of the user's role"
    },
    "last_name": {
      "type": "string",
      "description": "Last name of the user"
    },
    "seniority": {
      "type": "string",
      "description": "Seniority level of the user's role"
    },
    "birth_date": {
      "type": "string",
      "description": "Date of birth of the user in ISO format (yyyy-mm-dd)"
    },
    "department": {
      "type": "string",
      "description": "Name of the department that the user belongs to"
    },
    "first_name": {
      "type": "string",
      "description": "First name of the user"
    },
    "start_date": {
      "type": "string",
      "description": "Date when the user started their current employment in ISO format (yyyy-mm-dd)"
    },
    "work_email": {
      "type": "string",
      "description": "Work email address of the user"
    },
    "employments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Employment"
      },
      "description": "List of employment objects representing the user's employment history"
    },
    "hiring_type": {
      "type": "string",
      "description": "Type of employment contract that the user has"
    },
    "country_name": {
      "type": "string",
      "description": "Name of the country where the user is located"
    },
    "has_deel_user": {
      "type": "boolean",
      "description": "Indicates whether the user has a Deel account or not"
    },
    "hiring_status": {
      "type": "string",
      "description": "Hiring status of the user"
    },
    "work_location": {
      "type": "string",
      "description": "Name of the user's work location"
    },
    "contract_types": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "List of contract types that the user has had in the past and/or currently has"
    },
    "direct_manager": {
      "type": "string",
      "description": "Name of the user's direct manager"
    },
    "direct_reports": {
      "type": "string",
      "description": "Names of the user's direct reports"
    },
    "personal_email": {
      "type": "string",
      "description": "Personal email address of the user"
    },
    "completion_date": {
      "type": "string",
      "description": "Date when the user's current employment is expected to end in ISO format (yyyy-mm-ddThh:mm:ss.sssZ)"
    },
    "monthly_payment": {
      "$ref": "#/components/schemas/MonthlyPayment",
      "description": "Object representing the user's monthly payment information"
    },
    "client_legal_entity": {
      "$ref": "#/components/schemas/PeopleClientLegalEntity",
      "description": "Object representing the client legal entity that the user is associated with"
    },
    "hourly_report_total": {
      "type": "string",
      "description": "Total amount of hours worked by the user in ISO format (hh:mm:ss)"
    },
    "direct_reports_count": {
      "type": "integer",
      "description": "Number of direct reports that the user has"
    }
  },
  "description": "People object representing a Deel"
}
object InternalPeopleContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/InternalPeople"
      }
    }
  }
}
object InvitationsOfBasicContract
{
  "type": "object",
  "properties": {
    "client_email": {
      "$ref": "#/components/schemas/EmailType"
    },
    "worker_email": {
      "$ref": "#/components/schemas/EmailType"
    }
  },
  "x-internal": true
}
object InviteTeamMemberToSign
{
  "type": "object",
  "required": [
    "contract_oid",
    "contract_name",
    "invitee_id",
    "invitee_name"
  ],
  "properties": {
    "invitee_id": {
      "type": "number",
      "nullable": false
    },
    "contract_oid": {
      "type": "string",
      "nullable": false
    },
    "invitee_name": {
      "type": "string",
      "nullable": false
    },
    "contract_name": {
      "type": "string",
      "nullable": false
    }
  }
}
object Invoice
{
  "type": "object",
  "required": [
    "id",
    "status",
    "currency",
    "created_at",
    "total",
    "label",
    "paid_at",
    "vat_total",
    "vat_percentage",
    "vat_id",
    "is_overdue",
    "issued_at",
    "due_date",
    "contract_id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "rhCTiRd9Mad41RwjsFWw-",
      "description": "Unique identifier of the invoice."
    },
    "label": {
      "type": "string",
      "example": "INV-2023-4",
      "description": "Label of the invoice."
    },
    "total": {
      "type": "string",
      "example": 1000,
      "description": "Total invoice amount including Fee and VAT."
    },
    "status": {
      "$ref": "#/components/schemas/InvoiceStatusEnum"
    },
    "vat_id": {
      "type": "string",
      "nullable": true,
      "description": "VAT identification number."
    },
    "paid_at": {
      "$ref": "#/components/schemas/DateTimeString"
    },
    "currency": {
      "$ref": "#/components/schemas/CurrencyCode"
    },
    "due_date": {
      "$ref": "#/components/schemas/DateString",
      "description": "Due date for the invoice payment."
    },
    "issued_at": {
      "$ref": "#/components/schemas/DateString",
      "description": "Timestamp when the invoice was issued."
    },
    "vat_total": {
      "type": "string",
      "example": 210,
      "nullable": true,
      "description": "Amount of VAT."
    },
    "created_at": {
      "$ref": "#/components/schemas/DateTimeString"
    },
    "is_overdue": {
      "type": "boolean",
      "example": true,
      "nullable": true,
      "description": "Indicates if the invoice is overdue."
    },
    "contract_id": {
      "$ref": "#/components/schemas/DateString",
      "description": "Due date for the invoice payment."
    },
    "vat_percentage": {
      "type": "string",
      "example": 21,
      "nullable": true,
      "description": "VAT percentage."
    }
  }
}
object InvoiceAdjustment
{
  "allOf": [
    {
      "$ref": "#/components/schemas/BasicInvoiceAdjustment"
    },
    {
      "$ref": "#/components/schemas/InvoiceAdjustmentApproversContainer"
    }
  ],
  "x-internal": true
}
object InvoiceAdjustmentApprover
{
  "type": "object",
  "required": [
    "full_name",
    "email",
    "approved"
  ],
  "properties": {
    "email": {
      "type": "string"
    },
    "approved": {
      "type": "boolean"
    },
    "full_name": {
      "type": "string"
    }
  },
  "x-internal": true
}
array InvoiceAdjustmentApproverList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/InvoiceAdjustmentApprover"
  },
  "x-internal": true
}
object InvoiceAdjustmentApproversContainer
{
  "type": "object",
  "required": [
    "approvers"
  ],
  "properties": {
    "approvers": {
      "$ref": "#/components/schemas/InvoiceAdjustmentApproverList"
    }
  },
  "x-internal": true
}
object InvoiceAdjustmentAttachmentContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/AttachmentFileRef"
    }
  },
  "x-internal": true
}
object InvoiceAdjustmentContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/InvoiceAdjustment"
    }
  },
  "x-internal": true
}
object InvoiceAdjustmentCreated
{
  "type": "object",
  "required": [
    "created"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier",
      "nullable": true
    },
    "status": {
      "$ref": "#/components/schemas/InvoiceAdjustmentStatusEnum"
    },
    "created": {
      "type": "boolean",
      "nullable": false
    },
    "created_at": {
      "$ref": "#/components/schemas/DateTimeString"
    }
  },
  "x-internal": true,
  "description": "Details of invoice adjustment created."
}
object InvoiceAdjustmentCreatedContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/InvoiceAdjustmentCreated"
    }
  },
  "x-internal": true
}
array InvoiceAdjustmentList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/BasicInvoiceAdjustment"
  },
  "x-internal": true
}
object InvoiceAdjustmentListContainer
{
  "type": "object",
  "required": [
    "data",
    "page"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/InvoiceAdjustmentList"
    },
    "page": {
      "$ref": "#/components/schemas/PageInfoWithoutCursorNew"
    }
  },
  "x-internal": true
}
object InvoiceAdjustmentPendingForApproval
{
  "type": "object",
  "required": [
    "contract_name",
    "contract_oid",
    "adjustment_id",
    "adjustment_type",
    "event_type"
  ],
  "properties": {
    "team_id": {
      "type": "string",
      "nullable": false
    },
    "approvers": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "name"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      }
    },
    "event_type": {
      "type": "string",
      "nullable": false
    },
    "contract_oid": {
      "type": "string",
      "nullable": false
    },
    "adjustment_id": {
      "type": "string",
      "nullable": false
    },
    "contract_name": {
      "type": "string",
      "nullable": false
    },
    "adjustment_type": {
      "type": "string",
      "nullable": false
    }
  }
}
object InvoiceAdjustmentReviewToCreate
{
  "type": "object",
  "required": [
    "status",
    "reason"
  ],
  "properties": {
    "reason": {
      "type": "string",
      "nullable": false
    },
    "status": {
      "enum": [
        "approved",
        "declined"
      ],
      "type": "string",
      "nullable": false
    }
  },
  "x-internal": true
}
object InvoiceAdjustmentReviewToCreateContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/InvoiceAdjustmentReviewToCreate"
    }
  },
  "x-internal": true
}
object InvoiceAdjustmentReviewsToCreate
{
  "type": "object",
  "required": [
    "status",
    "ids",
    "reason"
  ],
  "properties": {
    "ids": {
      "$ref": "#/components/schemas/TimesheetIdItems"
    },
    "reason": {
      "type": "string",
      "nullable": false
    },
    "status": {
      "enum": [
        "approved",
        "declined"
      ],
      "type": "string",
      "nullable": false
    }
  },
  "x-internal": true
}
object InvoiceAdjustmentReviewsToCreateContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/InvoiceAdjustmentReviewsToCreate"
    }
  },
  "x-internal": true
}
object InvoiceAdjustmentSearchContainer
{
  "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/InvoiceAdjustmentTypeEnumList"
        },
        {
          "$ref": "#/components/schemas/InvoiceAdjustmentTypeEnum"
        }
      ]
    },
    "offset": {
      "type": "string",
      "default": "10",
      "pattern": "^\\d{1,5}$",
      "nullable": false,
      "maxLength": 5
    },
    "date_to": {
      "$ref": "#/components/schemas/DateString"
    },
    "statuses": {
      "oneOf": [
        {
          "$ref": "#/components/schemas/InvoiceAdjustmentStatusEnumList"
        },
        {
          "$ref": "#/components/schemas/InvoiceAdjustmentStatusEnum"
        }
      ]
    },
    "date_from": {
      "$ref": "#/components/schemas/DateString"
    },
    "invoice_id": {
      "type": "string",
      "nullable": false
    },
    "contract_id": {
      "type": "string",
      "nullable": false
    },
    "reporter_id": {
      "type": "string",
      "nullable": false
    },
    "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"
}
string InvoiceAdjustmentStatusEnum
{
  "enum": [
    "approved",
    "declined",
    "not_payable",
    "paid",
    "pending",
    "processing",
    null
  ],
  "type": "string",
  "nullable": true,
  "x-internal": true,
  "description": "status of invoice adjustment"
}
array InvoiceAdjustmentStatusEnumList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/InvoiceAdjustmentStatusEnum"
  },
  "x-internal": true
}
object InvoiceAdjustmentToCreate
{
  "type": "object",
  "required": [
    "contract_id",
    "date_submitted",
    "type",
    "description",
    "amount"
  ],
  "properties": {
    "type": {
      "$ref": "#/components/schemas/InvoiceAdjustmentTypeToCreateEnum"
    },
    "amount": {
      "type": "number",
      "example": 2500,
      "minimum": 0,
      "nullable": false,
      "description": "Amount to be paid. Must be a positive number."
    },
    "contract_id": {
      "type": "string",
      "nullable": false,
      "description": "Id of a Deel contract."
    },
    "description": {
      "type": "string",
      "example": "Bonus for being awesome.",
      "maxLength": 30000,
      "description": "Description of the adjustment."
    },
    "date_submitted": {
      "$ref": "#/components/schemas/DateStringRequired"
    },
    "paymentCycleId": {
      "type": "number",
      "nullable": true,
      "description": "ID of an existing active payment cycle - required if type is \"vat\""
    }
  },
  "x-internal": true,
  "description": "Details of invoice adjustment to create."
}
object InvoiceAdjustmentToCreateContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/InvoiceAdjustmentToCreate"
    }
  },
  "x-internal": true
}
object InvoiceAdjustmentToCreateWithFile
{
  "allOf": [
    {
      "$ref": "#/components/schemas/InvoiceAdjustmentToCreate"
    },
    {
      "$ref": "#/components/schemas/FileObject"
    }
  ],
  "x-internal": true
}
object InvoiceAdjustmentToUpdate
{
  "type": "object",
  "required": [
    "description"
  ],
  "properties": {
    "amount": {
      "type": "number",
      "minimum": 0,
      "nullable": false
    },
    "description": {
      "type": "string",
      "nullable": false,
      "maxLength": 30000
    }
  },
  "x-internal": true,
  "description": "Details of invoice adjustment to update."
}
object InvoiceAdjustmentToUpdateContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/InvoiceAdjustmentToUpdate"
    }
  },
  "x-internal": true
}
string InvoiceAdjustmentTypeEnum
{
  "enum": [
    "accrued_holiday",
    "additional_fee",
    "allowance",
    "bonus",
    "commission",
    "deduction",
    "deposit",
    "deposit_refund",
    "employer_cost",
    "expense",
    "health_allowance",
    "health_benefit",
    "health_insurance_fee",
    "legal_fee",
    "management_fee",
    "milestone",
    "offcycle",
    "other",
    "overtime",
    "pension",
    "pro_rata",
    "setup_fee",
    "severance",
    "shield_service",
    "signing_bonus",
    "signing_bonus_employer_cost",
    "refund",
    "task",
    "time_off",
    "vat",
    "withholding_tax",
    "work"
  ],
  "type": "string",
  "x-internal": true,
  "description": "Type of invoice adjustment."
}
array InvoiceAdjustmentTypeEnumList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/InvoiceAdjustmentTypeEnum"
  },
  "x-internal": true
}
string InvoiceAdjustmentTypeToCreateEnum
{
  "enum": [
    "bonus",
    "commission",
    "deduction",
    "expense",
    "other",
    "overtime",
    "time_off",
    "vat"
  ],
  "type": "string",
  "x-internal": true,
  "description": "Type of invoice adjustment."
}
object InvoiceContract
{
  "type": "object",
  "required": [
    "id",
    "contract_type"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "rhCTiRd9Mad41RwjsFWw-",
      "description": "Unique identifier of a Deel contract."
    },
    "name": {
      "type": "string",
      "example": "Lisandro Shanahan-Dynamic Web Specialist",
      "description": "Contract title."
    },
    "contract_type": {
      "type": "string",
      "example": "pay_as_you_go_time_based",
      "description": "Type of Deel contract."
    }
  }
}
string InvoiceContractTypes
{
  "enum": [
    "pending",
    "paid",
    "processing",
    "canceled",
    "skipped",
    "failed",
    "refunded"
  ],
  "type": "string",
  "example": "pending",
  "nullable": false,
  "description": "invoice's allowed contract types"
}
object InvoiceContractor
{
  "type": "object",
  "title": "Contractor",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "default": ""
    }
  }
}
object InvoiceDownloadContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/InvoiceDownloadObject"
    }
  },
  "x-internal": true
}
object InvoiceDownloadLinkContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/InvoiceDownloadObject"
    }
  },
  "x-internal": true
}
object InvoiceDownloadObject
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "example": "https://s3URL/letsdeel.com/invoices/12345.pdf",
      "nullable": true,
      "description": "URL to requested invoice to download."
    }
  }
}
array InvoiceList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Invoice"
  }
}
object InvoiceListContainer
{
  "type": "object",
  "required": [
    "data",
    "page"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/InvoiceList"
    },
    "page": {
      "$ref": "#/components/schemas/PageInfoWithoutCursorNew"
    }
  },
  "x-internal": true
}
object InvoiceObject
{
  "type": "object",
  "properties": {
    "rows": {
      "$ref": "#/components/schemas/InvoiceList"
    }
  }
}
string InvoiceStatusEnum
{
  "enum": [
    "pending",
    "paid",
    "processing",
    "canceled",
    "skipped",
    "failed",
    "refunded"
  ],
  "type": "string",
  "example": "paid",
  "nullable": false,
  "description": "Current status of the invoice."
}
array InvoiceStatusEnumList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/InvoiceStatusEnum"
  },
  "description": "filter invoices by current status, show a invoice if its status is in this list"
}
string InvoiceTypeEnum
{
  "enum": [
    "PAYMENT",
    "EOR_DEPOSIT",
    "EOR_FIRST_PAYMENT",
    "EOR_TERMINATION_OFFCYCLE",
    "SIGNING_BONUS",
    "REFUND_STATEMENT",
    "EOR_TAX_RULING",
    "GP_DEPOSIT_STATEMENT",
    "GP_FUNDING_STATEMENT",
    "GLOBAL_PAYROLL_FEES",
    "SHIELD_DEPOSIT",
    "EOR_MANAGEMENT_FEE"
  ],
  "type": "string",
  "example": "GP_DEPOSIT_STATEMENT",
  "nullable": false,
  "description": "invoice's type"
}
object JobTitle
{
  "type": "object",
  "required": [
    "id",
    "name"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier",
      "description": "Unique identifier for the job title in Deel platform."
    },
    "name": {
      "type": "string",
      "example": "3D Artist",
      "nullable": false,
      "description": "Job title."
    }
  },
  "x-internal": true
}
array JobTitleList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/JobTitle"
  },
  "x-internal": true
}
object JobTitleListContainer
{
  "type": "object",
  "required": [
    "data",
    "page"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/JobTitleList"
    },
    "page": {
      "type": "object",
      "required": [
        "cursor"
      ],
      "properties": {
        "cursor": {
          "type": "string",
          "example": "eyJvZmZzZXQiOjEwMCwibGltaXQiOjEwMCwiZmlsdGVyVHlwZSI6ImFsbCJ9",
          "description": "Use for pagination to get next set of records after the given cursor."
        }
      }
    }
  },
  "x-internal": true
}
array LegalEntityArray
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/LegalEntityType"
  }
}
array LegalEntityList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/BasicLegalEntity"
  },
  "x-internal": true
}
object LegalEntityListContainer
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/LegalEntityList"
    }
  },
  "x-internal": true
}
string LegalEntitySubType
{
  "type": "string",
  "x-internal": true
}
string LegalEntityType
{
  "enum": [
    "individual",
    "company"
  ],
  "type": "string",
  "x-internal": true
}
object LetterRequest
{
  "type": "object",
  "required": [
    "description",
    "type"
  ],
  "properties": {
    "type": {
      "enum": [
        "VISA_APPLICATION_FOR_PERSONAL_TRIP",
        "VISA_APPLICATION_FOR_BUSINESS_TRIP",
        "VISA_RENEWAL_CERTIFICATE",
        "NO_OBJECTION_CERTIFICATE_FOR_TRAVELLING",
        "BANK_VERIFICATION_OR_SALARY_CERTIFICATE",
        "CUSTOMISED"
      ],
      "type": "string"
    },
    "description": {
      "type": "string",
      "minLength": 25,
      "description": "Description of the letter (minimum 25 characters)"
    },
    "includeQRCode": {
      "type": "boolean",
      "description": "Flag indicating whether to include a QR code"
    }
  }
}
object Manager
{
  "type": "object",
  "required": [
    "value"
  ],
  "properties": {
    "value": {
      "type": "string",
      "example": "b29a5ff0-bdb5-11ed-afa1-0242ac120002",
      "description": "Manager's unique identifier."
    }
  }
}
string MaritalStatusEnum
{
  "enum": [
    "Single",
    "Married",
    "Widowed",
    "Divorced",
    "Separated",
    "Registered Partnership",
    "Common Law"
  ],
  "type": "string",
  "x-internal": true
}
object Meta
{
  "type": "object",
  "properties": {
    "created": {
      "type": "string",
      "format": "date-time"
    },
    "location": {
      "type": "string",
      "description": "resource location URI"
    },
    "lastModified": {
      "type": "string",
      "format": "date-time"
    },
    "resourceType": {
      "enum": [
        "User",
        "Group"
      ],
      "type": "string"
    }
  },
  "description": "Resource metadata."
}
object MetaDataOfContractToCreate
{
  "type": "object",
  "required": [
    "documents_required"
  ],
  "properties": {
    "is_main_income": {
      "type": "boolean"
    },
    "documents_required": {
      "type": "boolean",
      "description": "Require the contractor to upload necessary compliance documents as per their country’s labor laws."
    }
  },
  "x-internal": true,
  "description": "Additional custom info about a contract"
}
object Milestone
{
  "type": "object",
  "nullable": false,
  "required": [
    "amount",
    "approval_requested",
    "reviewed_by",
    "reported_by",
    "id",
    "title",
    "description",
    "status",
    "created_at"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier",
      "description": "Unique identifier for the milestone."
    },
    "title": {
      "type": "string",
      "example": "Sprint 1",
      "nullable": false,
      "description": "Title of milestone."
    },
    "amount": {
      "type": "string",
      "example": "900.00",
      "description": "Amount to be paid for the milestone."
    },
    "status": {
      "type": "string",
      "example": "pending",
      "nullable": false,
      "description": "Current status of milestone."
    },
    "created_at": {
      "$ref": "#/components/schemas/DateTimeString"
    },
    "description": {
      "type": "string",
      "example": "Sprint #1",
      "nullable": false,
      "description": "Description of milestone."
    },
    "reported_by": {
      "type": "object",
      "nullable": false,
      "required": [
        "id",
        "full_name"
      ],
      "properties": {
        "id": {
          "$ref": "#/components/schemas/UniqueObjectIdentifier",
          "description": "Reporter's unique Deel id."
        },
        "full_name": {
          "type": "string",
          "example": "Jane Doe",
          "nullable": false,
          "description": "Reporter's full name."
        }
      },
      "description": "Milestone creator."
    },
    "reviewed_by": {
      "type": "object",
      "nullable": true,
      "required": [
        "id",
        "full_name"
      ],
      "properties": {
        "id": {
          "$ref": "#/components/schemas/UniqueObjectIdentifier",
          "description": "Reviewer's unique Deel id."
        },
        "full_name": {
          "type": "string",
          "example": "Jane Doe",
          "nullable": false,
          "description": "Reviewer's full name."
        }
      },
      "description": "Reviewer's information."
    },
    "approval_requested": {
      "type": "boolean",
      "example": false,
      "description": "Indicates if the contractor has requested the approval for the milestone."
    }
  },
  "x-internal": true
}
object MilestoneContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/Milestone"
    }
  },
  "x-internal": true
}
array MilestoneList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Milestone"
  },
  "x-internal": true
}
object MilestoneListContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/MilestoneList"
    }
  },
  "x-internal": true
}
object MilestoneProperties
{
  "type": "object",
  "nullable": false,
  "required": [
    "amount",
    "title",
    "description"
  ],
  "properties": {
    "title": {
      "type": "string",
      "example": "Sprint 2",
      "nullable": false,
      "description": "Title of milestone."
    },
    "amount": {
      "type": "string",
      "example": "900.00",
      "nullable": false,
      "description": "Amount to be paid for the milestone."
    },
    "description": {
      "type": "string",
      "example": "Sprint #2",
      "nullable": false,
      "description": "Description of milestone."
    }
  },
  "x-internal": true
}
object MilestoneReviewToCreate
{
  "type": "object",
  "required": [
    "status"
  ],
  "properties": {
    "reason": {
      "type": "string",
      "nullable": true
    },
    "status": {
      "enum": [
        "approved",
        "declined"
      ],
      "type": "string",
      "nullable": false
    }
  },
  "x-internal": true
}
object MilestoneReviewToCreateContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/MilestoneReviewToCreate"
    }
  },
  "x-internal": true
}
object MilestoneReviewsToCreate
{
  "type": "object",
  "required": [
    "status",
    "ids"
  ],
  "properties": {
    "ids": {
      "type": "array",
      "items": {
        "type": "number",
        "nullable": false,
        "description": "ID of an existing milestone record"
      },
      "maxItems": 1000,
      "minItems": 1
    },
    "reason": {
      "type": "string",
      "nullable": true
    },
    "status": {
      "enum": [
        "approved",
        "declined"
      ],
      "type": "string",
      "nullable": false
    }
  },
  "x-internal": true
}
object MilestoneReviewsToCreateContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/MilestoneReviewsToCreate"
    }
  },
  "x-internal": true
}
object MilestoneToCreateContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/MilestoneProperties"
    }
  },
  "x-internal": true
}
object MilestoneToCreateFormWithFile
{
  "allOf": [
    {
      "$ref": "#/components/schemas/MilestoneProperties"
    },
    {
      "$ref": "#/components/schemas/FileObject"
    }
  ],
  "x-internal": true
}
object MonthlyPayment
{
  "type": "object",
  "properties": {
    "count": {
      "type": "integer",
      "description": "The number of monthly payments"
    }
  },
  "description": "Monthly payment details for the user"
}
object Name
{
  "type": "object",
  "required": [
    "familyName",
    "givenName"
  ],
  "properties": {
    "givenName": {
      "type": "string",
      "example": "Jane",
      "description": "User's given name. Also known as first name."
    },
    "familyName": {
      "type": "string",
      "example": "Doe",
      "description": "User's family name."
    }
  }
}
string NationalityType
{
  "type": "string",
  "example": "US",
  "maxLength": 2,
  "minLength": 2,
  "x-internal": true
}
number NoticePeriod
{
  "type": "number",
  "default": 0,
  "example": 15,
  "minimum": 0,
  "description": "Days before to notice the termination of contract for eather party."
}
object OffCyclePayment
{
  "type": "object",
  "nullable": false,
  "required": [
    "id",
    "status",
    "description",
    "date_submitted",
    "created_at",
    "currency_code",
    "amount",
    "reported_by"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier"
    },
    "amount": {
      "type": "string",
      "example": "200.00",
      "nullable": false,
      "description": "Amount of off-cycle payment."
    },
    "status": {
      "$ref": "#/components/schemas/InvoiceAdjustmentStatusEnum"
    },
    "created_at": {
      "$ref": "#/components/schemas/DateTimeStringRequired"
    },
    "description": {
      "type": "string",
      "example": "Yearly bonus.",
      "nullable": false,
      "description": "Description of the off-cycle payment entry."
    },
    "reported_by": {
      "type": "object",
      "nullable": false,
      "required": [
        "id",
        "full_name"
      ],
      "properties": {
        "id": {
          "$ref": "#/components/schemas/UniqueObjectIdentifier",
          "description": "Profile id of the creator."
        },
        "full_name": {
          "type": "string",
          "example": "John Smith",
          "nullable": false,
          "description": "Full name of the creator."
        }
      }
    },
    "currency_code": {
      "$ref": "#/components/schemas/CurrencyCodeRequired"
    },
    "date_submitted": {
      "$ref": "#/components/schemas/DateTimeStringRequired"
    }
  },
  "x-internal": true
}
object OffCyclePaymentContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/OffCyclePayment"
    }
  },
  "x-internal": true
}
array OffCyclePaymentList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/OffCyclePayment"
  },
  "x-internal": true
}
object OffCyclePaymentListContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/OffCyclePaymentList"
    }
  },
  "x-internal": true
}
object OffCyclePaymentToCreate
{
  "type": "object",
  "nullable": false,
  "required": [
    "date_submitted",
    "amount"
  ],
  "properties": {
    "amount": {
      "type": "number",
      "example": 2500,
      "minimum": 0,
      "nullable": false,
      "description": "Amount to be paid. Must be a positive number."
    },
    "description": {
      "type": "string",
      "nullable": false,
      "description": "Description of off-cycle payment."
    },
    "date_submitted": {
      "$ref": "#/components/schemas/DateStringRequired"
    }
  },
  "x-internal": true,
  "description": "Details of invoice adjustment to create."
}
object OffCyclePaymentToCreateContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/OffCyclePaymentToCreate"
    }
  },
  "x-internal": true
}
string OffCyclePaymentTypeEnum
{
  "enum": [
    "offcycle"
  ],
  "type": "string",
  "x-internal": true,
  "description": "Type for Off-cycle payments"
}
array OrganizationList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/BasicOrganization"
  },
  "x-internal": true
}
object OrganizationListContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/OrganizationList"
    }
  },
  "x-internal": true
}
object OutputToCreateFileRef
{
  "type": "object",
  "required": [
    "key",
    "url"
  ],
  "properties": {
    "key": {
      "type": "string",
      "nullable": false
    },
    "url": {
      "type": "string",
      "nullable": false
    }
  },
  "x-internal": true
}
object OutputToCreateFileRefContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/OutputToCreateFileRef"
    }
  },
  "x-internal": true
}
object PageInfo
{
  "type": "object",
  "required": [
    "cursor",
    "total_rows"
  ],
  "properties": {
    "cursor": {
      "type": "string",
      "nullable": false
    },
    "total_rows": {
      "type": "number",
      "nullable": false
    }
  },
  "x-internal": true
}
object PageInfoWithCursorNew
{
  "type": "object",
  "required": [
    "total_rows",
    "items_per_page",
    "offset"
  ],
  "properties": {
    "cursor": {
      "type": "string",
      "example": "eyJvZmZzZXQiOjEwMCwibGltaXQiOjEwMCwiZmlsdGVyVHlwZSI6ImFsbCJ9",
      "description": "Use for pagination to get next set of records after the given cursor."
    },
    "offset": {
      "type": "number",
      "maximum": 999999999,
      "minimum": 0,
      "nullable": false
    },
    "total_rows": {
      "type": "number",
      "nullable": false
    },
    "items_per_page": {
      "type": "number",
      "maximum": 99,
      "minimum": 1,
      "nullable": false
    }
  },
  "x-internal": true
}
object PageInfoWithoutCursor
{
  "type": "object",
  "required": [
    "total_rows"
  ],
  "properties": {
    "total_rows": {
      "type": "number",
      "nullable": false
    }
  },
  "x-internal": true
}
object PageInfoWithoutCursorNew
{
  "type": "object",
  "required": [
    "total_rows",
    "items_per_page",
    "offset"
  ],
  "properties": {
    "offset": {
      "type": "number",
      "maximum": 999999999,
      "minimum": 0,
      "nullable": false
    },
    "total_rows": {
      "type": "number",
      "nullable": false
    },
    "items_per_page": {
      "type": "number",
      "maximum": 99,
      "minimum": 1,
      "nullable": false
    }
  },
  "x-internal": true
}
object PatchOperation
{
  "type": "object",
  "required": [
    "op"
  ],
  "properties": {
    "op": {
      "enum": [
        "add",
        "replace",
        "remove"
      ],
      "type": "string"
    },
    "path": {
      "type": "string"
    },
    "value": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "object",
          "properties": {}
        }
      ],
      "description": "corresponding 'value' of that field specified by 'path'"
    }
  }
}
object PatchWebhookRequest
{
  "type": "object",
  "required": [
    "name",
    "description",
    "status",
    "url",
    "signing_key",
    "events"
  ],
  "properties": {
    "url": {
      "type": "string",
      "example": "https://mywebhook.com/listening",
      "description": "Endpoint to receive webhook."
    },
    "name": {
      "type": "string",
      "example": "Demo webhook",
      "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."
    },
    "status": {
      "enum": [
        "enabled",
        "disabled"
      ],
      "type": "string",
      "example": "enabled",
      "description": "Status of webhook."
    },
    "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."
    }
  }
}
object Payment
{
  "type": "object",
  "required": [
    "id",
    "payment_method",
    "status",
    "payment_currency",
    "label",
    "paid_at",
    "created_at",
    "total",
    "workers"
  ],
  "properties": {
    "id": {
      "type": "number",
      "example": 12345,
      "nullable": false,
      "description": "Unique identifier of the payment."
    },
    "label": {
      "type": "string"
    },
    "total": {
      "type": "string",
      "example": 1015,
      "description": "Total paid."
    },
    "status": {
      "$ref": "#/components/schemas/PaymentStatusEnum"
    },
    "paid_at": {
      "$ref": "#/components/schemas/DateTimeString"
    },
    "workers": {
      "$ref": "#/components/schemas/PaymentWorkerList"
    },
    "created_at": {
      "$ref": "#/components/schemas/DateTimeString"
    },
    "payment_method": {
      "$ref": "#/components/schemas/PaymentMethod"
    },
    "payment_currency": {
      "$ref": "#/components/schemas/CurrencyCode"
    }
  },
  "x-konfig-properties": {
    "paid_at": {
      "example": "2022-08-25T12:09:34.695Z",
      "description": "Timestamp when payment was paid."
    },
    "created_at": {
      "example": "2022-08-25T12:09:34.695Z",
      "description": "Timestamp when the record was created."
    }
  }
}
object PaymentBreakDown
{
  "type": "object",
  "nullable": false,
  "properties": {
    "date": {
      "type": "string",
      "example": "2022-10-01T00:59:28.482Z"
    },
    "team": {
      "type": "string",
      "example": "Deel Inc."
    },
    "work": {
      "type": "string",
      "example": "0.00"
    },
    "bonus": {
      "type": "string",
      "example": "0.00"
    },
    "total": {
      "type": "string",
      "example": "1000.00",
      "description": "Total due."
    },
    "others": {
      "type": "string",
      "example": "0.00"
    },
    "currency": {
      "type": "string",
      "example": "USD",
      "description": "Currency code."
    },
    "expenses": {
      "type": "string",
      "example": "0.00"
    },
    "overtime": {
      "type": "string",
      "example": "0.00"
    },
    "pro_rata": {
      "type": "string",
      "example": "0.00"
    },
    "approvers": {
      "type": "string"
    },
    "frequency": {
      "type": "string",
      "example": ""
    },
    "adjustment": {
      "type": "string",
      "example": "0.00"
    },
    "deductions": {
      "type": "string",
      "example": "0.00"
    },
    "commissions": {
      "type": "string",
      "example": "0.00"
    },
    "approve_date": {
      "type": "string"
    },
    "payment_date": {
      "type": "string",
      "example": "2022-11-01T17:20:32.837Z",
      "description": "Date of payment."
    },
    "invoice_number": {
      "type": "string",
      "example": "5069872",
      "description": "Invoice number."
    },
    "processing_fee": {
      "type": "string",
      "example": "0.00"
    },
    "receipt_number": {
      "type": "string",
      "example": "5551621"
    },
    "contract_country": {
      "type": "string",
      "example": "US",
      "description": "Country of the contract."
    },
    "contractor_email": {
      "type": "string",
      "example": "name@email.com",
      "description": "Worker's email."
    },
    "payment_currency": {
      "type": "string",
      "example": "USD"
    },
    "contract_start_date": {
      "type": "string",
      "example": "2020-03-31T10:58:49.780Z",
      "description": "Contract start date."
    },
    "general_ledger_account": {
      "type": "string",
      "example": ""
    },
    "total_payment_currency": {
      "type": "string",
      "example": "1000.00",
      "description": "Total in payment currency."
    },
    "contractor_employee_name": {
      "type": "string",
      "example": "Jane Doe",
      "description": "Worker's name."
    },
    "contractor_unique_identifier": {
      "type": "string",
      "example": "12345",
      "description": "Worker's unique identifier."
    }
  }
}
object PaymentBreakDownContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PaymentBreakDown"
      }
    }
  }
}
array PaymentList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Payment"
  }
}
object PaymentListContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/PaymentObject"
    }
  },
  "x-internal": true
}
object PaymentMethod
{
  "type": "object",
  "required": [
    "type"
  ],
  "properties": {
    "type": {
      "$ref": "#/components/schemas/PaymentMethodEnum"
    }
  }
}
string PaymentMethodEnum
{
  "enum": [
    "stripe_bacs_debit",
    "pay_pal",
    "stripe_card",
    "bt_card",
    "stripe_ach",
    "coinbase",
    "go_cardless",
    "brex",
    "stripe_sepa_debit",
    "transferwise",
    "go_cardless_becs",
    "bank_transfer",
    "mercury_wire",
    "bt_pay_pal"
  ],
  "type": "string",
  "nullable": false,
  "description": "All the supported payment types"
}
array PaymentMethodEnumList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/PaymentMethodEnum"
  },
  "description": "filter invoices by payment method"
}
object PaymentObject
{
  "type": "object",
  "properties": {
    "rows": {
      "$ref": "#/components/schemas/PaymentList"
    },
    "total": {
      "type": "number",
      "nullable": false
    }
  }
}
object PaymentStatementInitiatedWebhook
{
  "type": "object",
  "required": [
    "billing_invoices",
    "invoices"
  ],
  "properties": {
    "invoices": {
      "type": "array",
      "items": {
        "type": "number"
      }
    },
    "billing_invoices": {
      "type": "array",
      "items": {
        "type": "number"
      }
    }
  }
}
string PaymentStatusEnum
{
  "enum": [
    "paid",
    "processing"
  ],
  "type": "string",
  "description": "status of payment"
}
array PaymentStatusEnumList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/PaymentStatusEnum"
  }
}
object PaymentWorker
{
  "type": "object",
  "title": "The worker for the payment",
  "required": [
    "name",
    "picUrl"
  ],
  "properties": {
    "id": {
      "type": "number",
      "example": 123456,
      "description": "Worker's unique id."
    },
    "name": {
      "type": "string",
      "default": "",
      "example": "Jane Doe",
      "description": "Worker's full name."
    },
    "picUrl": {
      "type": "string",
      "default": null,
      "nullable": true,
      "description": "URL to worker's Deel avatar."
    },
    "contract_id": {
      "type": "string",
      "nullable": true,
      "description": "The worker's Deel contract Id."
    }
  }
}
array PaymentWorkerList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/PaymentWorker"
  }
}
object PayrollAdjustment
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "example": "123e4567-e89b-12d3-a456-426614174000",
      "description": "The unique identifier of the adjustment"
    },
    "file": {
      "type": "object",
      "nullable": true,
      "properties": {
        "id": {
          "type": "string",
          "example": "123e4567-e89b-12d3-a456-426614174000",
          "description": "The unique identifier of the file"
        },
        "name": {
          "type": "string",
          "example": "your_file_name",
          "description": "The name of the file"
        },
        "fileType": {
          "type": "string",
          "example": "pdf",
          "description": "The type of the file"
        }
      }
    },
    "title": {
      "type": "string",
      "example": "Your title here",
      "description": "The title of the adjustment"
    },
    "amount": {
      "type": "string",
      "example": "1234.56",
      "description": "The amount of the adjustment"
    },
    "status": {
      "$ref": "#/components/schemas/AdjustmentStatusEnum",
      "example": "open",
      "description": "The status of the adjustment"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "example": "2020-11-02T12:00:00.000Z",
      "description": "The date and time when the adjustment was created"
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "example": "2020-11-02T12:00:00.000Z",
      "description": "The date and time when the adjustment was last updated"
    },
    "contract_id": {
      "type": "string",
      "example": "m3jk2j",
      "description": "The identifier of the contract associated with the adjustment"
    },
    "description": {
      "type": "string",
      "example": "Your description here",
      "description": "The description of the adjustment"
    },
    "cycle_reference": {
      "type": "string",
      "example": "your_cycle_reference",
      "nullable": true,
      "description": "The reference to the cycle associated with the adjustment"
    },
    "move_next_cycle": {
      "type": "boolean",
      "example": true,
      "description": "If an adjustments can belong to another payroll cycle"
    },
    "date_of_adjustment": {
      "type": "string",
      "format": "date",
      "example": "2023-11-02T00:00:00.000Z",
      "description": "The date of the adjustment"
    },
    "actual_end_cycle_date": {
      "type": "string",
      "example": "2023-11-15T00:00:00.000Z",
      "description": "The date of the actual end cycle date"
    },
    "adjustment_category_id": {
      "type": "string",
      "example": "c9cf4c2c0165f48f494415390c3b49",
      "description": "The identifier of the adjustment category associated with the adjustment"
    },
    "actual_start_cycle_date": {
      "type": "string",
      "example": "2023-11-01T00:00:00.000Z",
      "description": "The date of the actual start cycle date"
    }
  }
}
object PayslipDownloadUrl
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "example": "https://s3.eu-west-1.amazonaws.com/api-dev-eks.letsdeel.com/employee_payslips/ApdZbLvq0r0E_Payslip_Kulvear_Bowie_2023-12-31.pdf?AWSAccessKeyId=ASIATHF2L5PZ545TTFF7&Expires=1698149134&Signature=DmqwQiXY%2FHmPS%2FYBcB2DOZ9SDVA%3D&x-amz-security-token=zxc"
    }
  }
}
object Payslips
{
  "type": "object",
  "required": [
    "id",
    "from",
    "to",
    "status"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "9K1rw5vwkZX2",
      "description": "Unique identifier for the payslip."
    },
    "to": {
      "format": "date-time",
      "example": "2023-08-31T00:00:00.000Z",
      "description": "End date of the payslip."
    },
    "from": {
      "format": "date-time",
      "example": "2023-08-01T00:00:00.000Z",
      "description": "Start date of the payslip."
    },
    "status": {
      "type": "string",
      "example": "PUBLISHED",
      "description": "Status of the payslip."
    }
  },
  "x-internal": true
}
object PensionEORContractToCreate
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Pension provider id. You can see available pension providers in the country guide endpoint."
    },
    "contribution": {
      "type": "string",
      "description": "Enter the value of pension contribution. You should send this value only if the contribution object is available in the country guide endpoint and the value should be there between minimum and maximum values indicated."
    }
  },
  "description": "Some countries required a pension benefit."
}
object PensionProvider
{
  "type": "object",
  "properties": {
    "id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier",
      "description": "Unique identifier of a Pension provider."
    },
    "name": {
      "type": "string",
      "example": "US Pension",
      "description": "Name of pension provider."
    },
    "contribution": {
      "$ref": "#/components/schemas/Contribution",
      "description": "If it is there, you must specify the contribution property when creating an EOR contract."
    },
    "home_page_url": {
      "type": "string",
      "example": "https://bit.ly/3uW72fp",
      "description": "Pension provider's home page url."
    }
  },
  "description": "Pension provider."
}
object PeopleByIdContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Employee"
        },
        {
          "type": "object",
          "properties": {
            "custom_fields": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/PeopleCustomField"
              }
            }
          }
        }
      ]
    }
  }
}
object PeopleClientLegalEntity
{
  "type": "object",
  "properties": {
    "id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier",
      "description": "The unique identifier for the client legal entity."
    },
    "name": {
      "type": "string",
      "description": "The name of the client legal entity."
    }
  }
}
object PeopleContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Employee"
      }
    },
    "page": {
      "$ref": "#/components/schemas/PageInfoWithoutCursorNew"
    }
  }
}
object PeopleCustomField
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "Job title",
      "nullable": false,
      "description": "Custom field property name."
    },
    "value": {
      "type": "string",
      "example": "Software Engineer II",
      "nullable": false,
      "description": "Custom field property value."
    }
  },
  "description": "Customized attributes on people (Job title, Project code, etc)."
}
object PeopleMe
{
  "type": "object",
  "properties": {
    "id": {
      "type": "number",
      "description": "Unique identifier for the user profile"
    },
    "email": {
      "type": "string",
      "description": "Email address of the user"
    },
    "user_id": {
      "type": "number",
      "description": "Unique identifier for the user"
    },
    "username": {
      "type": "string",
      "description": "Username of the user"
    },
    "full_name": {
      "type": "string",
      "description": "Full name of the user"
    },
    "last_name": {
      "type": "string",
      "description": "Last name of the user"
    },
    "avatar_url": {
      "type": "string",
      "nullable": true,
      "description": "URL of the user's avatar"
    },
    "first_name": {
      "type": "string",
      "description": "First name of the user"
    },
    "middle_name": {
      "type": "string",
      "nullable": true,
      "description": "Middle name of the user"
    },
    "hris_enabled": {
      "type": "boolean",
      "nullable": true,
      "description": "HRIS feature enabled."
    },
    "profile_type": {
      "$ref": "#/components/schemas/ProfileTypeEnum"
    },
    "slack_team_id": {
      "type": "string",
      "nullable": true,
      "description": "User's team slack id"
    },
    "slack_user_id": {
      "type": "string",
      "nullable": true,
      "description": "User's slack id"
    },
    "client_country": {
      "$ref": "#/components/schemas/CountryCodeNulleable"
    },
    "organization_id": {
      "type": "number",
      "description": "Unique identifier for the organization"
    },
    "organization_name": {
      "type": "string",
      "nullable": true,
      "description": "Name of the organization"
    },
    "contractor_country": {
      "$ref": "#/components/schemas/CountryCodeNulleable"
    }
  },
  "description": "People object representing a Deel",
  "x-konfig-properties": {}
}
object PeoplePayment
{
  "type": "object",
  "properties": {
    "rate": {
      "type": "number",
      "description": "The payment rate"
    },
    "scale": {
      "type": "string",
      "description": "The payment scale (e.g., hourly, weekly, monthly, etc.)"
    },
    "currency": {
      "type": "string",
      "description": "The currency code (ISO 4217) for the payment"
    },
    "contract_name": {
      "type": "string",
      "description": "The name of the contract associated with the payment"
    }
  }
}
string PeopleSortByEnum
{
  "enum": [
    "id",
    "first_name",
    "last_name",
    "full_name",
    "email",
    "country",
    "birth_date",
    "hiring_type",
    "start_date",
    "team",
    "job_title",
    "hiring_status",
    "completion_date",
    "direct_manager",
    "direct_reports_count"
  ],
  "type": "string",
  "x-internal": true
}
object PeopleTimeOffContainer
{
  "type": "object",
  "properties": {
    "type": {
      "enum": [
        "VACATION",
        "SICK_LEAVE",
        "OTHER"
      ],
      "type": "string",
      "example": "VACATION",
      "description": "Time off type."
    },
    "reason": {
      "type": "string",
      "example": "Holiday",
      "description": "Description for employee's time off."
    },
    "end_date": {
      "type": "string",
      "example": "2022-09-05T00:00:00.000Z",
      "description": "End date of employee's time off."
    },
    "start_date": {
      "type": "string",
      "example": "2022-09-03T00:00:00.000Z",
      "description": "Start date of employee's time off."
    },
    "attachments": {
      "type": "string",
      "format": "binary",
      "description": "Attachments for employee's time off."
    }
  }
}
object PgoTask
{
  "type": "object",
  "required": [
    "id",
    "amount",
    "date_submitted",
    "description",
    "status"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier",
      "description": "Unique identifier of the task."
    },
    "amount": {
      "type": "string",
      "example": "200",
      "nullable": false,
      "description": "Fixed rate for this task."
    },
    "status": {
      "$ref": "#/components/schemas/TimesheetStatusEnum"
    },
    "attachment": {
      "$ref": "#/components/schemas/FileAttachmentInfo"
    },
    "description": {
      "type": "string",
      "example": "Make the button pop.",
      "nullable": false,
      "description": "Task description."
    },
    "date_submitted": {
      "$ref": "#/components/schemas/DateStringRequired"
    }
  },
  "x-internal": true
}
object PgoTaskReviewsByIdToCreate
{
  "type": "object",
  "required": [
    "status"
  ],
  "properties": {
    "reason": {
      "type": "string",
      "example": "Excited!",
      "nullable": true,
      "description": "Review comments."
    },
    "status": {
      "enum": [
        "approved",
        "declined"
      ],
      "type": "string",
      "example": "approved",
      "nullable": false,
      "description": "Review status."
    }
  },
  "x-internal": true
}
object PgoTaskReviewsToCreate
{
  "type": "object",
  "required": [
    "status",
    "ids"
  ],
  "properties": {
    "ids": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/UniqueObjectIdentifier",
        "description": "ID of an existing timesheet record"
      },
      "example": [
        1234,
        1235
      ],
      "maxItems": 1000,
      "minItems": 1
    },
    "reason": {
      "type": "string",
      "example": "Great work.",
      "nullable": true,
      "description": "Additional comments with the reivew."
    },
    "status": {
      "enum": [
        "approved",
        "declined"
      ],
      "type": "string",
      "example": "approved",
      "nullable": false,
      "description": "Review status."
    }
  },
  "x-internal": true
}
object PgoTaskToCreate
{
  "type": "object",
  "required": [
    "amount",
    "date_submitted",
    "description"
  ],
  "properties": {
    "amount": {
      "type": "string",
      "example": "123.45",
      "nullable": false,
      "minLength": 1,
      "description": "Fixed rate for this task."
    },
    "attachment": {
      "$ref": "#/components/schemas/FileAttachmentInfo"
    },
    "description": {
      "type": "string",
      "example": "Make the button pop.",
      "nullable": true,
      "description": "Task description."
    },
    "date_submitted": {
      "$ref": "#/components/schemas/DateStringRequired"
    }
  },
  "x-internal": true
}
object PgoTaskToDelete
{
  "type": "object",
  "properties": {
    "description": {
      "type": "string",
      "nullable": true,
      "description": "Description of exclusion."
    },
    "delete_recurring_report": {
      "type": "boolean",
      "nullable": true,
      "description": "Request to delete recurring report."
    }
  },
  "x-internal": true
}
object PremiumResultAdded
{
  "type": "object",
  "required": [
    "id",
    "calculated_premium",
    "misclassification_guarantee",
    "penalties",
    "third_party_liabilities"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "d3f79ad9-b0b5-4e0d-af2e-ad84435c0acb",
      "nullable": false,
      "description": "Deel Premium plan id."
    },
    "penalties": {
      "type": "object",
      "nullable": false,
      "properties": {
        "name": {
          "type": "string",
          "nullable": false,
          "description": "Penalties."
        },
        "description": {
          "type": "string",
          "nullable": false,
          "description": "Get indemnity against tax authority penalties, liabilities and fines."
        }
      }
    },
    "calculated_premium": {
      "type": "number",
      "example": 50,
      "nullable": false,
      "description": "Cost for Deel Premium."
    },
    "third_party_liabilities": {
      "type": "object",
      "nullable": false,
      "properties": {
        "name": {
          "type": "string",
          "nullable": false,
          "description": "Third-party liabilities."
        },
        "description": {
          "type": "string",
          "nullable": false,
          "description": "Get indemnity against third parties up to $10k depending on the court's decision."
        }
      }
    },
    "misclassification_guarantee": {
      "type": "object",
      "nullable": false,
      "properties": {
        "name": {
          "type": "string",
          "nullable": false,
          "description": "Legal costs."
        },
        "description": {
          "type": "string",
          "nullable": false,
          "description": "Cover your legal defense costs."
        }
      }
    }
  },
  "x-internal": true
}
object PremiumResultAddedContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/PremiumResultAdded"
    }
  },
  "x-internal": true
}
object PremiumToAdd
{
  "type": "object",
  "nullable": false,
  "required": [
    "agreement_reflects_relation",
    "contractor_characteristics"
  ],
  "properties": {
    "contractor_characteristics": {
      "enum": [
        true,
        false
      ],
      "type": "boolean",
      "example": false,
      "nullable": false,
      "description": "Workers doing certain jobs may be considered to be employees by law, even if they would otherwise be considered independent contractors under common law. Is the work of this worker characterized as: Apprentice, Trainee, Labourer, Driver, Medical worker, Legal worker, Construction worker or someone working in the fields of Finance/Investment?"
    },
    "agreement_reflects_relation": {
      "enum": [
        true,
        false
      ],
      "type": "boolean",
      "example": true,
      "nullable": false,
      "description": "Is the Contractor Agreement selected on the Deel Platform perfectly reflecting your organizations relation and actual working practices with the contractor?"
    }
  },
  "x-internal": true
}
object PremiumToAddContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/PremiumToAdd"
    }
  },
  "x-internal": true
}
object ProRata
{
  "type": "object",
  "nullable": false,
  "properties": {
    "rate": {
      "type": "number",
      "example": 2500,
      "minimum": 0,
      "nullable": false,
      "description": "Rate to be paid."
    },
    "total": {
      "type": "number",
      "example": 2500,
      "minimum": 0,
      "nullable": false,
      "description": "Total to be paid."
    },
    "cycle_end": {
      "$ref": "#/components/schemas/DateStringRequired"
    },
    "daily_rate": {
      "type": "number",
      "example": 2500,
      "minimum": 0,
      "nullable": false,
      "description": "Daily rate to be paid."
    },
    "cycle_start": {
      "$ref": "#/components/schemas/DateStringRequired"
    },
    "work_week_end": {
      "$ref": "#/components/schemas/WeekDaysEnum"
    },
    "cycle_work_days": {
      "type": "number",
      "example": 11,
      "minimum": 0,
      "nullable": false,
      "description": "Total days to be work."
    },
    "work_week_start": {
      "$ref": "#/components/schemas/WeekDaysEnum"
    },
    "calculation_type": {
      "enum": [
        "CUSTOM_AMOUNT",
        "WORK_DAYS",
        "CALENDAR_DAYS",
        "FULL_AMOUNT"
      ],
      "type": "string",
      "nullable": false,
      "description": "Either works days or calendar days"
    }
  },
  "x-internal": true,
  "description": "Details of the pro rata for the first payment"
}
string ProfileTypeEnum
{
  "enum": [
    "client",
    "contractor",
    "icp",
    "direct_employee",
    "hris_direct_employee",
    "service_account"
  ],
  "type": "string",
  "x-internal": true
}
string PublicId
{
  "type": "string",
  "format": "uuid",
  "example": "00000000-0000-0000-0000-000000000000",
  "nullable": true,
  "description": "The public UUID of the object"
}
object PublicToken
{
  "type": "object",
  "required": [
    "token"
  ],
  "properties": {
    "token": {
      "type": "string",
      "example": "eXampL3.t0Ken",
      "description": "Public token."
    }
  }
}
object PublicTokenCreatedContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/PublicToken"
    }
  },
  "x-internal": true
}
object RequestBodyToCreatePgoTaskReviewsByIdReviewsContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/PgoTaskReviewsByIdToCreate"
    }
  },
  "x-internal": true
}
object RequestBodyToCreatePgoTaskReviewsReviewsContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/PgoTaskReviewsToCreate"
    }
  },
  "x-internal": true
}
object RequestCustomVerificationLetterContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/LetterRequest"
    }
  },
  "x-internal": true
}
object RequestCustomVerificationLetterWithFile
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/LetterRequest"
    },
    {
      "type": "object",
      "required": [
        "files"
      ],
      "properties": {
        "files": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/FileObject"
          }
        }
      }
    }
  ]
}
object RequesterTimeOff
{
  "type": "object",
  "properties": {
    "id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier"
    },
    "uuid": {
      "type": "string",
      "example": "8bf2ee9c-aa43-4d8e-9f6f-ee8b880b3607"
    },
    "country": {
      "type": "string",
      "example": "LB"
    },
    "end_date": {
      "type": "string",
      "example": "2023-08-04T09:03:31.577Z"
    },
    "created_at": {
      "type": "string",
      "example": "2023-08-04T09:03:31.577Z"
    },
    "updated_at": {
      "type": "string",
      "example": "2023-08-04T09:03:31.577Z"
    },
    "worker_type": {
      "type": "string",
      "example": "hris_direct_employee"
    },
    "is_part_time": {
      "type": "boolean",
      "example": false
    },
    "hris_profile_id": {
      "type": "string",
      "example": "05ab39e5-1200-4cc1-90bf-0969e02bcf02"
    },
    "organization_id": {
      "type": "number",
      "example": 306415
    },
    "client_profile_id": {
      "type": "string",
      "example": "08462445-3a37-4d3e-8413-bf28a125dabd"
    },
    "has_reached_end_date": {
      "type": "boolean",
      "example": false
    },
    "part_time_percentage": {
      "type": "string",
      "example": ""
    }
  }
}
object ResponseBodyForAdjustmentById
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/PayrollAdjustment"
    }
  },
  "x-internal": true
}
object ResponseEstimateFirstPayment
{
  "type": "object",
  "properties": {
    "pro_rata": {
      "$ref": "#/components/schemas/ProRata"
    },
    "first_payment_dates": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/FirstPaymentDate"
      }
    }
  },
  "x-internal": true
}
object ResponseEstimateFirstPaymentContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ResponseEstimateFirstPayment"
    }
  },
  "x-internal": true
}
string SalaryFrequencyScaleEnum
{
  "enum": [
    "monthly",
    "quarterly",
    "annually",
    "specific_month",
    "specific_date"
  ],
  "type": "string",
  "example": "monthly",
  "x-internal": true,
  "description": "Scale of the salary frequency."
}
object SearchRequest
{
  "type": "object",
  "properties": {
    "count": {
      "type": "integer",
      "format": "int32",
      "description": "page size"
    },
    "filter": {
      "type": "string",
      "description": "only support 'userName' or 'email' filter expressions for now"
    },
    "schemas": {
      "type": "array",
      "items": {
        "enum": [
          "urn:ietf:params:scim:api:messages:2.0:SearchRequest"
        ],
        "type": "string"
      }
    },
    "startIndex": {
      "type": "integer",
      "format": "int32",
      "description": "start index (1-based)"
    }
  }
}
object Seniority
{
  "type": "object",
  "nullable": true,
  "required": [
    "id",
    "name"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier",
      "description": "Unique identifier for seniority record"
    },
    "name": {
      "type": "string",
      "example": "Mid (Individual Contributor Level 2)",
      "nullable": false,
      "minLength": 1,
      "description": "Name of seniority level e.g. Mid (Individual Contributor Level 2)"
    },
    "level": {
      "type": "number",
      "example": 2,
      "nullable": true,
      "description": "Level of seniority level e.g. 2"
    }
  },
  "x-internal": true,
  "description": "Seniority describes level of expertise at a job e.g. junior"
}
array SeniorityList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/SeniorityRequired"
  },
  "x-internal": true
}
object SeniorityListContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/SeniorityList"
    }
  },
  "x-internal": true
}
object SeniorityRequired
{
  "type": "object",
  "required": [
    "id",
    "name",
    "level"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier",
      "description": "Unique identifier for seniority record."
    },
    "name": {
      "type": "string",
      "example": "Mid (Individual Contributor Level 2)",
      "nullable": false,
      "minLength": 1,
      "description": "Name of seniority level e.g. Mid (Individual Contributor Level 2)"
    },
    "level": {
      "type": "number",
      "example": 2,
      "nullable": false,
      "description": "Level of seniority level e.g. 2"
    }
  },
  "x-internal": true,
  "description": "Seniority describes level of expertise at a job e.g. junior"
}
object ServiceProviderConfig
{
  "type": "object",
  "properties": {
    "bulk": {
      "$ref": "#/components/schemas/BulkSupported"
    },
    "etag": {
      "$ref": "#/components/schemas/Supported"
    },
    "sort": {
      "$ref": "#/components/schemas/Supported"
    },
    "patch": {
      "$ref": "#/components/schemas/Supported"
    },
    "filter": {
      "$ref": "#/components/schemas/FilterSupported"
    },
    "schemas": {
      "type": "array",
      "items": {
        "enum": [
          "urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig"
        ],
        "type": "string"
      }
    },
    "xmlDataFormat": {
      "$ref": "#/components/schemas/Supported"
    },
    "changePassword": {
      "$ref": "#/components/schemas/Supported"
    },
    "authenticationSchemes": {
      "$ref": "#/components/schemas/AuthenticationSchemes"
    }
  }
}
object SignaturesOfBasicContract
{
  "type": "object",
  "required": [
    "client_signed_at",
    "worker_signature",
    "worker_signed_at"
  ],
  "properties": {
    "client_signed_at": {
      "$ref": "#/components/schemas/DateTimeString"
    },
    "worker_signature": {
      "type": "string",
      "example": "Jane Doe",
      "nullable": false,
      "description": "Worker's signature."
    },
    "worker_signed_at": {
      "$ref": "#/components/schemas/DateTimeString"
    }
  },
  "x-internal": true
}
object SignaturesOfContract
{
  "type": "object",
  "required": [
    "client_signature",
    "client_signed_at",
    "worker_signature",
    "worker_signed_at",
    "signed_at"
  ],
  "properties": {
    "signed_at": {
      "$ref": "#/components/schemas/DateTimeString"
    },
    "client_signature": {
      "type": "string",
      "description": "normally name of client is used as signature"
    },
    "client_signed_at": {
      "$ref": "#/components/schemas/DateTimeString"
    },
    "worker_signature": {
      "type": "string",
      "nullable": false,
      "description": "Signatures of client representative."
    },
    "worker_signed_at": {
      "$ref": "#/components/schemas/DateTimeString"
    }
  },
  "x-internal": true
}
string SortDirEnum
{
  "enum": [
    "asc",
    "desc"
  ],
  "type": "string",
  "x-internal": true
}
object StateOfCountry
{
  "type": "object",
  "required": [
    "code",
    "name"
  ],
  "properties": {
    "code": {
      "type": "string",
      "example": "NY",
      "nullable": false,
      "minLength": 1,
      "description": "Territory code."
    },
    "name": {
      "type": "string",
      "example": "New York",
      "nullable": false,
      "minLength": 1,
      "description": "Territory name."
    }
  },
  "x-internal": true,
  "description": "It may be called states, provinces, prefectures or regions, or none at all"
}
object Supported
{
  "type": "object",
  "properties": {
    "supported": {
      "type": "boolean",
      "default": false
    }
  }
}
object TaskCreated
{
  "type": "object",
  "properties": {
    "id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier"
    },
    "status": {
      "$ref": "#/components/schemas/TimesheetStatusEnum"
    },
    "created": {
      "type": "boolean",
      "description": "Whether the creation operation was successful."
    }
  },
  "x-internal": true
}
object TaskCreatedContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/TaskCreated"
    }
  },
  "x-internal": true
}
array TaskList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/PgoTask"
  },
  "x-internal": true
}
object TaskListContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/TaskList"
    }
  },
  "x-internal": true
}
object Team
{
  "type": "object",
  "properties": {
    "id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier",
      "description": "The unique identifier for the team."
    },
    "name": {
      "type": "string",
      "description": "The name of the team."
    }
  }
}
array TeamList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/BasicTeam"
  },
  "x-internal": true
}
object TeamListContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/TeamList"
    }
  },
  "x-internal": true
}
object TeamOfBasicContract
{
  "type": "object",
  "required": [
    "id",
    "name"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier",
      "description": "Unique reference of a team"
    },
    "name": {
      "type": "string",
      "nullable": true,
      "description": "Name of a team"
    }
  },
  "x-internal": true
}
object TeamOfContract
{
  "type": "object",
  "required": [
    "id",
    "name"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier",
      "description": "Unique reference of a team"
    },
    "name": {
      "type": "string",
      "nullable": false,
      "description": "Name of a team"
    }
  },
  "x-internal": true
}
object TimeoffReview
{
  "type": "object",
  "required": [
    "is_approved"
  ],
  "properties": {
    "is_approved": {
      "type": "boolean",
      "example": true,
      "description": "Approve or decline employee's time off request."
    },
    "denial_reason": {
      "type": "string",
      "example": "Not allowed for this day.",
      "description": "Denial reason for the time off requested."
    }
  }
}
object TimeoffReviewInternal
{
  "type": "object",
  "required": [
    "recipientId",
    "status"
  ],
  "properties": {
    "reason": {
      "type": "string",
      "example": "Approved because there are no conflicts.",
      "description": "The reason that the chosen status was chosen."
    },
    "status": {
      "enum": [
        "APPROVED",
        "REJECTED"
      ],
      "type": "string",
      "example": "APPROVED",
      "description": "The review decision to review the time off request with"
    }
  }
}
object TimeoffToReviewContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/TimeoffReview"
    }
  },
  "x-internal": true
}
object TimeoffToReviewInternalContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/TimeoffReviewInternal"
    }
  },
  "x-internal": true
}
array TimeoffTypeList
{
  "type": "array",
  "items": {
    "type": "string"
  },
  "example": [
    "VACATION",
    "SICK_LEAVE",
    "OTHER"
  ]
}
object TimeoffTypeListContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/TimeoffTypeList"
    }
  },
  "x-internal": true
}
array TimeoffsAttachments
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/TimeoffsAttachmentsItem"
  },
  "description": "A list of attachments. 2022-09-08 FE only allows for \"SICK LEAVE\""
}
object TimeoffsAttachmentsItem
{
  "type": "object",
  "properties": {
    "id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier"
    },
    "label": {
      "type": "string",
      "description": "The file name"
    },
    "file_extension": {
      "type": "string",
      "description": "The file name extension"
    }
  },
  "description": "A item in attachments array. 2022-09-08 FE only allows for \"SICK LEAVE\""
}
object TimeoffsProfile
{
  "type": "object",
  "required": [
    "id",
    "name",
    "profile_type"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier"
    },
    "name": {
      "type": "string",
      "example": "Mr. Rogers"
    },
    "pic_url": {
      "allOf": [
        {
          "$ref": "#/components/schemas/UrlType"
        }
      ],
      "example": "https://media.letsdeel.com/avatar/2ROng8m5?q=1648722955603",
      "nullable": true,
      "description": "Avatar or selfie."
    },
    "is_employee": {
      "type": "boolean",
      "description": "Only valid for requester. True if requester is an employee."
    },
    "profile_type": {
      "$ref": "#/components/schemas/ProfileTypeEnum"
    }
  },
  "x-konfig-properties": {
    "profile_type": {
      "example": "employee"
    }
  }
}
string TimeoffsStatusEnum
{
  "enum": [
    "REQUESTED",
    "APPROVED",
    "REJECTED"
  ],
  "type": "string"
}
string TimeoffsTypeEnum
{
  "enum": [
    "VACATION",
    "SICK_LEAVE",
    "OTHER"
  ],
  "type": "string"
}
object Timesheet
{
  "allOf": [
    {
      "$ref": "#/components/schemas/BasicTimesheet"
    },
    {
      "$ref": "#/components/schemas/TimesheetApproversContainer"
    }
  ],
  "x-internal": true
}
array TimesheetAccountingRefs
{
  "type": "array",
  "items": {
    "type": "object",
    "nullable": false,
    "required": [
      "integration"
    ],
    "properties": {
      "integration": {
        "type": "string",
        "nullable": false
      },
      "mapping_category": {
        "type": "object",
        "required": [
          "id",
          "name"
        ],
        "properties": {
          "id": {
            "type": "string",
            "nullable": false
          },
          "name": {
            "type": "string",
            "nullable": false
          }
        }
      }
    }
  },
  "nullable": true,
  "x-internal": true
}
object TimesheetApprover
{
  "type": "object",
  "required": [
    "full_name",
    "email",
    "approved"
  ],
  "properties": {
    "email": {
      "type": "string"
    },
    "approved": {
      "type": "boolean"
    },
    "full_name": {
      "type": "string"
    }
  },
  "x-internal": true
}
array TimesheetApproverList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/TimesheetApprover"
  },
  "x-internal": true
}
object TimesheetApproversContainer
{
  "type": "object",
  "required": [
    "approvers"
  ],
  "properties": {
    "approvers": {
      "$ref": "#/components/schemas/TimesheetApproverList"
    }
  },
  "x-internal": true
}
object TimesheetContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/Timesheet"
    }
  },
  "x-internal": true
}
array TimesheetIdItems
{
  "type": "array",
  "items": {
    "oneOf": [
      {
        "type": "number"
      },
      {
        "type": "string"
      }
    ],
    "description": "ID of an existing timesheet record"
  },
  "maxItems": 1000,
  "minItems": 1,
  "nullable": false,
  "x-internal": true
}
array TimesheetList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/BasicTimesheet"
  },
  "x-internal": true
}
object TimesheetListContainer
{
  "type": "object",
  "required": [
    "data",
    "page"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/TimesheetList"
    },
    "page": {
      "$ref": "#/components/schemas/PageInfoWithoutCursor"
    }
  },
  "x-internal": true
}
object TimesheetReviewToCreate
{
  "type": "object",
  "required": [
    "status"
  ],
  "properties": {
    "reason": {
      "type": "string",
      "nullable": true
    },
    "status": {
      "enum": [
        "approved",
        "declined"
      ],
      "type": "string",
      "nullable": false
    }
  },
  "x-internal": true
}
object TimesheetReviewToCreateContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/TimesheetReviewToCreate"
    }
  },
  "x-internal": true
}
object 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
}
object TimesheetReviewsToCreateContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/TimesheetReviewsToCreate"
    }
  },
  "x-internal": true
}
object 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"
}
object 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."
}
string TimesheetStatusEnum
{
  "enum": [
    "approved",
    "declined",
    "not_payable",
    "paid",
    "pending",
    "processing",
    null
  ],
  "type": "string",
  "example": "approved",
  "nullable": true,
  "x-internal": true,
  "description": "Status of this entry."
}
array TimesheetStatusEnumList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/TimesheetStatusEnum"
  },
  "x-internal": true
}
object TimesheetToCreateContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/TimesheetSharedProperties"
    }
  },
  "x-internal": true
}
object TimesheetToCreateWithFile
{
  "allOf": [
    {
      "$ref": "#/components/schemas/TimesheetSharedProperties"
    },
    {
      "$ref": "#/components/schemas/FileObject"
    }
  ],
  "x-internal": true
}
object 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."
}
object TimesheetToUpdateContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/TimesheetToUpdate"
    }
  },
  "x-internal": true
}
string TimesheetTypeEnum
{
  "enum": [
    "work"
  ],
  "type": "string",
  "x-internal": true,
  "description": "Type for timesheet"
}
array TimesheetTypeEnumList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/TimesheetTypeEnum"
  },
  "x-internal": true
}
string UniqueObjectIdentifier
{
  "type": "string",
  "example": "00000000-0000-0000-0000-000000000000",
  "description": "Unique identifier of this resource."
}
object UpdateWorkerDepartment
{
  "type": "object",
  "required": [
    "department_id"
  ],
  "properties": {
    "department_id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier"
    }
  }
}
object UpdateWorkerDepartmentContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/UpdateWorkerDepartment"
    }
  },
  "x-internal": true
}
object UpdateWorkerWorkingLocation
{
  "type": "object",
  "required": [
    "working_location_id"
  ],
  "properties": {
    "working_location_id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier"
    }
  }
}
object UpdateWorkerWorkingLocationContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/UpdateWorkerWorkingLocation"
    }
  },
  "x-internal": true
}
object 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
}
object UploadEmployeeComplianceDocumentFileContainer
{
  "type": "object",
  "required": [
    "file"
  ],
  "properties": {
    "file": {
      "type": "string",
      "format": "binary",
      "description": "The employee compliance document to upload."
    }
  },
  "x-internal": true
}
string UrlType
{
  "type": "string",
  "format": "uri",
  "nullable": true,
  "minLength": 5,
  "x-internal": true
}
string UrlTypeRequired
{
  "type": "string",
  "format": "uri",
  "nullable": false,
  "minLength": 5,
  "x-internal": true
}
object 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"
    }
  }
}
object UserDeleteUserResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object 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
    }
  }
}
object 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"
    }
  }
}
object UserResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/User"
    },
    {
      "type": "object",
      "properties": {
        "meta": {
          "$ref": "#/components/schemas/Meta"
        }
      }
    }
  ]
}
object 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"
    }
  }
}
string 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."
}
string 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)."
}
object 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."
}
object 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
}
string ValidationTypeEnum
{
  "enum": [
    "MIN_LENGTH",
    "MAX_LENGTH",
    "REGEXP"
  ],
  "type": "string"
}
object WebhookEventTypeListResponse
{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/WebhookEventTypeResponse"
      }
    }
  }
}
object 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."
    }
  }
}
object 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."
    }
  }
}
object WebhookItemResponse
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/WebhookItem"
    }
  }
}
object WebhookListResponse
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/WebhookItem"
      }
    }
  }
}
string WeekDaysEnum
{
  "enum": [
    "Sunday",
    "Monday",
    "Tuesday",
    "Wednesday",
    "Thursday",
    "Friday",
    "Saturday"
  ],
  "type": "string",
  "example": "Monday",
  "x-internal": true,
  "description": "Days of the week."
}
string 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."
}
string WorkStatementCycleScaleEnum
{
  "enum": [
    "weekly",
    "monthly",
    "biweekly",
    "semimonthly",
    "calendar-month"
  ],
  "type": "string",
  "example": "monthly",
  "x-internal": true,
  "description": "Scale of the invoice cycle."
}
string 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'."
}
string 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."
}
string 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."
}
object 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"
        }
      }
    }
  ]
}
object 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."
    }
  }
}
object WorkerBankAccountsInfoContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/WorkerBankAccountInfo"
      }
    }
  }
}
string WorkerEmailType
{
  "type": "string",
  "format": "email",
  "nullable": true,
  "minLength": 5,
  "x-internal": true,
  "description": "Worker's email address."
}
object 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
}
object WorkerOfBasicContract
{
  "type": "object",
  "nullable": true,
  "required": [
    "id",
    "full_name",
    "email"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier"
    },
    "email": {
      "$ref": "#/components/schemas/EmailType"
    },
    "image": {
      "$ref": "#/components/schemas/UrlType"
    },
    "full_name": {
      "type": "string",
      "nullable": false,
      "minLength": 1
    },
    "alternate_email": {
      "$ref": "#/components/schemas/AlternateEmailList"
    }
  },
  "x-internal": true
}
object WorkerOfContract
{
  "type": "object",
  "nullable": true,
  "properties": {
    "id": {
      "$ref": "#/components/schemas/UniqueObjectIdentifier",
      "nullable": false
    },
    "email": {
      "$ref": "#/components/schemas/EmailType"
    },
    "image": {
      "type": "string",
      "format": "url"
    },
    "country": {
      "type": "string",
      "example": "US",
      "nullable": true,
      "description": "Worker's country (location not nationality)"
    },
    "full_name": {
      "type": "string",
      "nullable": false,
      "minLength": 1,
      "description": "Worker's full name."
    },
    "last_name": {
      "type": "string",
      "example": "Doe",
      "nullable": true,
      "maxLength": 255,
      "description": "Worker's last name"
    },
    "first_name": {
      "type": "string",
      "example": "John",
      "nullable": true,
      "maxLength": 255,
      "description": "Worker's first name"
    },
    "nationality": {
      "type": "string",
      "example": "US",
      "nullable": true,
      "description": "Worker's nationality."
    },
    "legal_entity": {
      "$ref": "#/components/schemas/WorkerLegalEntity"
    },
    "date_of_birth": {
      "$ref": "#/components/schemas/DateTimeString"
    },
    "expected_email": {
      "$ref": "#/components/schemas/WorkerEmailType"
    },
    "alternate_email": {
      "$ref": "#/components/schemas/AlternateEmailList"
    }
  },
  "x-internal": true
}
object WorkerTermination
{
  "type": "object",
  "required": [
    "id",
    "last_date_of_work"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "last_date_of_work": {
      "$ref": "#/components/schemas/DateTimeStringRequired"
    }
  }
}
object WorkerTerminationBody
{
  "type": "object",
  "required": [
    "severance",
    "desired_end_date",
    "last_date_of_work",
    "message",
    "is_voluntary"
  ],
  "properties": {
    "message": {
      "type": "string",
      "example": "Termination reason",
      "description": "The reason for terminating the worker's engagement."
    },
    "severance": {
      "type": "object",
      "oneOf": [
        {
          "required": [
            "currency",
            "time_unit",
            "amount",
            "type"
          ],
          "properties": {
            "type": {
              "enum": [
                "TIME"
              ],
              "type": "string",
              "example": "TIME",
              "description": "The type of severance, either in cash or time off."
            },
            "amount": {
              "type": "number",
              "example": 100,
              "description": "The amount of severance, specified in the designated currency."
            },
            "currency": {
              "$ref": "#/components/schemas/CurrencyCode"
            },
            "time_unit": {
              "enum": [
                "DAYS",
                "WEEKS",
                "MONTHS"
              ],
              "type": "string",
              "example": "MONTHS",
              "description": "The unit of time for severance."
            }
          }
        },
        {
          "not": {
            "required": [
              "time_unit"
            ]
          },
          "required": [
            "currency",
            "amount",
            "type"
          ],
          "properties": {
            "type": {
              "enum": [
                "CASH"
              ],
              "type": "string",
              "example": "CASH",
              "description": "The type of severance, either in cash or time off."
            },
            "amount": {
              "type": "number",
              "example": 100,
              "description": "The amount of severance, specified in the designated currency."
            },
            "currency": {
              "$ref": "#/components/schemas/CurrencyCode"
            }
          }
        }
      ]
    },
    "is_voluntary": {
      "type": "boolean",
      "example": true,
      "description": "Indicates whether the worker termination is voluntary (true) or involuntary (false)."
    },
    "desired_end_date": {
      "type": "string",
      "format": "date",
      "example": "2023-12-31T00:00:00.000Z",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "The preferred end date for terminating the worker's engagement."
    },
    "last_date_of_work": {
      "type": "string",
      "format": "date",
      "example": "2023-12-31T00:00:00.000Z",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "The effective termination date of the worker's employment."
    }
  }
}
object WorkerTerminationBodyContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/WorkerTerminationBody"
    }
  },
  "x-internal": true
}
object WorkerTerminationContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/WorkerTermination"
    }
  }
}
array WorkingLocations
{
  "type": "array",
  "items": {
    "type": "object",
    "required": [
      "id",
      "name"
    ],
    "properties": {
      "id": {
        "$ref": "#/components/schemas/UniqueObjectIdentifier"
      },
      "name": {
        "type": "string",
        "example": "Some locations"
      }
    }
  }
}
object WorkingLocationsContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/WorkingLocations"
    }
  }
}