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

Accounting 5 endpoints

GET /invoices

Retrieve a list of paid invoices for your workforce.

operationId: Accounting_getPaidInvoices

Parameters

Name In Required Type Description
optional
optional
optional
optional

Responses

200
400
401
403
404
500
GET /invoices
GET /invoices/deel

Retrieve a list of invoices related to Deel fees.

operationId: Accounting_getDeelInvoices

Parameters

Name In Required Type Description
optional
optional

Responses

200
400
401
403
404
500
GET /invoices/deel
GET /invoices/{invoice_id}/download

Get link to download the invoice PDF.

operationId: Accounting_getInvoicePdfDownloadLink

Parameters

Name In Required Type Description
optional

Responses

200
400
401
403
404
500
GET /invoices/{invoice_id}/download
GET /payments

Retrieve a list of payments made to Deel.

operationId: Accounting_getPaymentReceipts

Parameters

Name In Required Type Description
optional
optional
optional
optional

Responses

200
400
401
403
404
500
GET /payments
GET /payments/{payment_id}/breakdown

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

operationId: Accounting_getPaymentBreakdown

Parameters

Name In Required Type Description
payment_id path required string

Responses

200
400
401
403
404
405
429
500
GET /payments/{payment_id}/breakdown

Adjustments 3 endpoints

GET /adjustments/categories

Get all categories for your organization.

operationId: Adjustments_getCategories

Responses

200
401
403
404
500
GET /adjustments/categories
GET /adjustments/{adjustment_id}

Retrieve an adjustment.

operationId: Adjustments_getById

Parameters

Name In Required Type Description
optional

Responses

200
401
403
404
500
GET /adjustments/{adjustment_id}
GET /contracts/{contract_id}/adjustments

Get all adjustments for the specific contract.

operationId: Adjustments_getAll

Parameters

Name In Required Type Description
optional
optional
optional

Responses

200
401
403
404
500
GET /contracts/{contract_id}/adjustments

Contractors 1 endpoints

GET /contracts/{contract_id}/preview

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

operationId: Contractors_getContractPreview

Parameters

Name In Required Type Description
optional
optional

Responses

200
400
401
403
404
405
429
500
GET /contracts/{contract_id}/preview

Contracts 5 endpoints

GET /contract-templates

Retrieve a list of contract templates in your organization.

operationId: Contracts_getList

Responses

200
401
403
404
405
429
500
GET /contract-templates
GET /contracts

Retrieve a list of contracts.

operationId: Contracts_getList

Parameters

Name In Required Type Description
optional
optional
optional
optional
optional
optional
optional
optional
optional
optional
optional

Responses

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

Retrieve a single contract.

operationId: Contracts_getSingleContract

Parameters

Name In Required Type Description
optional

Responses

200
400
401
403
404
405
429
500
GET /contracts/{contract_id}
GET /contracts/{contract_id}/alternate_emails

Returns an array of alternate email objects

operationId: Contracts_findEmailsById

Parameters

Name In Required Type Description
optional

Responses

200
400
401
403
404
500
GET /contracts/{contract_id}/alternate_emails
GET /contracts/{contract_id}/final-payments

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

operationId: Contracts_calculateFinalPaymentAmount

Parameters

Name In Required Type Description
optional
optional
optional
optional
optional

Responses

200
401
403
404
500
GET /contracts/{contract_id}/final-payments

Eor 4 endpoints

GET /eor/validations/{country_code}

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

operationId: Eor_getCountryGuide

Parameters

Name In Required Type Description
optional

Responses

200
401
403
404
500
GET /eor/validations/{country_code}
GET /eor/workers/{worker_id}/payslips

Get of payslips for an employee.

operationId: Eor_getEmployeePayslips

Parameters

Name In Required Type Description
optional

Responses

200
401
403
404
500
GET /eor/workers/{worker_id}/payslips
GET /eor/workers/{worker_id}/payslips/{payslip_id}/download

Get download url for EOR payslip.

operationId: Eor_getPayslipDownload

Parameters

Name In Required Type Description
optional
optional

Responses

200
401
403
404
500
GET /eor/workers/{worker_id}/payslips/{payslip_id}/download
GET /eor/{contract_id}/benefits

Retrieve EOR contract benefits

operationId: Eor_getContractBenefits

Parameters

Name In Required Type Description
optional

Responses

200
401
403
404
500
GET /eor/{contract_id}/benefits

Global payroll 7 endpoints

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

Get list of global payroll events by legal entities.

operationId: GlobalPayroll_listPayrollEventsByLegalEntity

Parameters

Name In Required Type Description
optional
optional

Responses

200
401
403
404
500
GET /gp/legal-entities/{legal_entity_id}/reports
GET /gp/reports/{gp_report_id}/gross_to_net

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

operationId: GlobalPayroll_getGrossToNetGpReport

Parameters

Name In Required Type Description
optional

Responses

200
401
403
404
500
GET /gp/reports/{gp_report_id}/gross_to_net
GET /gp/reports/{gp_report_id}/gross_to_net/csv

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

operationId: GlobalPayroll_downloadGrossToNetGpReport

Parameters

Name In Required Type Description
optional

Responses

200
401
403
404
500
GET /gp/reports/{gp_report_id}/gross_to_net/csv
GET /gp/workers/{worker_id}/banks

Retrieve all bank accounts for an employee.

operationId: GlobalPayroll_getBankAccounts

Parameters

Name In Required Type Description
optional

Responses

200
401
403
404
500
GET /gp/workers/{worker_id}/banks
GET /gp/workers/{worker_id}/banks/guide

Retrieve the bank form guide for employee.

operationId: GlobalPayroll_getBankGuide

Parameters

Name In Required Type Description
optional

Responses

200
401
403
404
500
GET /gp/workers/{worker_id}/banks/guide
GET /gp/workers/{worker_id}/payslips

Get of payslips for an employee.

operationId: GlobalPayroll_getPayslips

Parameters

Name In Required Type Description
optional

Responses

200
401
403
404
500
GET /gp/workers/{worker_id}/payslips
GET /gp/workers/{worker_id}/payslips/{payslip_id}/download

Get download url for GP payslip.

operationId: GlobalPayroll_getPayslipDownloadUrl

Parameters

Name In Required Type Description
optional
optional

Responses

200
401
403
404
500
GET /gp/workers/{worker_id}/payslips/{payslip_id}/download

Invoices 3 endpoints

GET /contracts/{contract_id}/invoice-adjustments

Retrieve invoice line items for a given contract id.

operationId: Invoices_getLineItemsByContract

Parameters

Name In Required Type Description
optional
optional
optional
optional
optional
optional
optional
optional
optional
optional

Responses

200
400
401
403
404
405
429
500
GET /contracts/{contract_id}/invoice-adjustments
GET /invoice-adjustments

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

operationId: Invoices_listInvoiceAdjustments

Parameters

Name In Required Type Description
optional
optional
optional
optional
optional
optional
optional
optional
optional
optional

Responses

200
400
401
403
404
405
429
500
GET /invoice-adjustments
GET /invoice-adjustments/{invoice_adjustment_id}/attachment

Retrieve Attachment file url of specified id.

operationId: Invoices_getAttachmentFileUrl

Parameters

Name In Required Type Description
optional

Responses

200
400
401
403
404
405
429
500
GET /invoice-adjustments/{invoice_adjustment_id}/attachment

Lookups 5 endpoints

GET /lookups/countries

Retrieve a list of countries supported by Deel.

operationId: Lookups_getCountryList

Responses

200
400
401
403
404
405
429
500
GET /lookups/countries
GET /lookups/currencies

Retrieve the list of currencies used by Deel.

operationId: Lookups_getCurrenciesList

Responses

200
400
401
403
404
405
429
500
GET /lookups/currencies
GET /lookups/job-titles

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

operationId: Lookups_getJobTitlesList

Parameters

Name In Required Type Description
optional
optional

Responses

200
400
401
403
404
405
429
500
GET /lookups/job-titles
GET /lookups/seniorities

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

operationId: Lookups_getSeniorityLevels

Parameters

Name In Required Type Description
optional

Responses

200
400
401
403
404
405
429
500
GET /lookups/seniorities
GET /lookups/time-off-types

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

operationId: Lookups_getTimeOffTypes

Responses

200
400
401
403
404
405
429
500
GET /lookups/time-off-types

Managers 1 endpoints

GET /managers

List all organization managers.

operationId: Managers_list

Parameters

Name In Required Type Description
optional
optional

Responses

200
400
401
403
404
409 A matching profile already exists.
500
GET /managers

Milestones 2 endpoints

GET /contracts/{contract_id}/milestones

Retrieve a list of milestones found for a contract.

operationId: Milestones_listByContract

Parameters

Name In Required Type Description
optional

Responses

200
400
401
403
404
405
429
500
GET /contracts/{contract_id}/milestones
GET /contracts/{contract_id}/milestones/{milestone_id}

Retrieve a single milestone.

operationId: Milestones_getSingleMilestone

Parameters

Name In Required Type Description
optional
optional

Responses

200
400
401
403
404
405
429
500
GET /contracts/{contract_id}/milestones/{milestone_id}

Off-cycle payments 2 endpoints

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

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

operationId: OffcyclePayments_getList

Parameters

Name In Required Type Description
optional

Responses

200
400
401
403
404
405
429
500
GET /contracts/{contract_id}/off-cycle-payments
GET /contracts/{contract_id}/off-cycle-payments/{offcycle_payment_id}

Retrieve a single off-cycle payment.

operationId: OffcyclePayments_getSinglePayment

Parameters

Name In Required Type Description
optional
optional

Responses

200
400
401
403
404
405
429
500
GET /contracts/{contract_id}/off-cycle-payments/{offcycle_payment_id}

Organizations 6 endpoints

GET /agreements

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

operationId: Organizations_listAgreementsWithDeel

Parameters

Name In Required Type Description
optional
optional
optional

Responses

200
401
403
404
405
429
500
GET /agreements
GET /departments

Get list of organization departments.

operationId: Organizations_getDepartmentList

Responses

200
400
401
403
404
405
429
500
GET /departments
GET /legal-entities

Retrieve a list of legal entities in your account.

operationId: Organizations_getLegalEntitiesList

Parameters

Name In Required Type Description
optional

Responses

200
400
401
403
404
405
429
500
GET /legal-entities
GET /organizations

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

operationId: Organizations_getDetails

Responses

200
400
401
403
404
405
429
500
GET /organizations
GET /teams

Retrieve a list of teams in your organization.

operationId: Organizations_getTeamList

Responses

200
400
401
403
404
405
429
500
GET /teams
GET /working-locations

Get organization working locations.

operationId: Organizations_getWorkingLocations

Responses

200
400
401
403
404
405
429
500
GET /working-locations

Partner managed 10 endpoints

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

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

operationId: PartnerManaged_getBankGuideForEorEmployee

Parameters

Name In Required Type Description
optional

Responses

200
400
401
403
404
405
429
500
GET /partner-managed/employees/{employee_id}/banks/guide
GET /partner-managed/employees/{employee_id}/compliance-documents

Get a list of employee compliance documents.

operationId: PartnerManaged_listEmployeeComplianceDocuments

Parameters

Name In Required Type Description
optional

Responses

200
400
401
403
404
405
429
500
GET /partner-managed/employees/{employee_id}/compliance-documents
GET /partner-managed/employees/{employee_id}/compliance-documents/{document_id}/templates/download

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

operationId: PartnerManaged_downloadComplianceDocumentTemplate

Parameters

Name In Required Type Description
optional
optional

Responses

200
400
401
403
404
405
429
500
GET /partner-managed/employees/{employee_id}/compliance-documents/{document_id}/templates/download
GET /partner-managed/employees/{employee_id}/contracts/{contract_id}/employee-agreement

Retrieve an EOR Employee Agreement content in HTML.

operationId: PartnerManaged_getEmployeeAgreementHtml

Parameters

Name In Required Type Description
optional
optional

Responses

200
400
401
403
404
405
429
500
GET /partner-managed/employees/{employee_id}/contracts/{contract_id}/employee-agreement
GET /partner-managed/employees/{employee_id}/contracts/{contract_id}/employee-agreement/download

Get link to download the employee agreement PDF.

operationId: PartnerManaged_downloadEmployeeAgreementPdf

Parameters

Name In Required Type Description
optional
optional

Responses

200
400
401
403
404
405
429
500
GET /partner-managed/employees/{employee_id}/contracts/{contract_id}/employee-agreement/download
GET /partner-managed/employees/{employee_id}/contracts/{contract_id}/hr-documents

List all HR verification letters and documents available.

operationId: PartnerManaged_listHrVerificationLettersAndDocuments

Parameters

Name In Required Type Description
optional
optional

Responses

200
400
401
403
404
405
429
500
GET /partner-managed/employees/{employee_id}/contracts/{contract_id}/hr-documents
GET /partner-managed/employees/{employee_id}/contracts/{contract_id}/hr-documents/{document_id}/download

Retrieve URL to download HR verification letters and documents.

operationId: PartnerManaged_downloadHrVerificationLettersAndDocuments

Parameters

Name In Required Type Description
optional
optional
optional

Responses

200
400
401
403
404
405
429
500
GET /partner-managed/employees/{employee_id}/contracts/{contract_id}/hr-documents/{document_id}/download
GET /partner-managed/employees/{employee_id}/contracts/{contract_id}/offer-letter

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

operationId: PartnerManaged_previewJobOfferLetter

Parameters

Name In Required Type Description
optional
optional

Responses

200
400
401
403
404
405
429
500
GET /partner-managed/employees/{employee_id}/contracts/{contract_id}/offer-letter
GET /partner-managed/employees/{employee_id}/payslips

Get list of payslips for an EOR employee.

operationId: PartnerManaged_listPayslipsForEorEmployee

Parameters

Name In Required Type Description
optional

Responses

200
400
401
403
404
405
429
500
GET /partner-managed/employees/{employee_id}/payslips
GET /partner-managed/employees/{employee_id}/tax-documents

Get list of tax documents for an employee.

operationId: PartnerManaged_listTaxDocumentsForEmployee

Parameters

Name In Required Type Description
optional

Responses

200
400
401
403
404
405
429
500
GET /partner-managed/employees/{employee_id}/tax-documents

People 7 endpoints

GET /internal/people
operationId: People_getList

Parameters

Name In Required Type Description
optional
optional

Responses

200
400
401
403
404
405
429
500
GET /internal/people
GET /people

Retrieve a list of People in your organization.

operationId: People_getList

Parameters

Name In Required Type Description
optional
optional
optional
optional
optional
optional

Responses

200
400
401
403
404
405
429
500
GET /people
GET /people/me
operationId: People_getCurrentProfile

Responses

200
400
401
403
404
405
429
500
GET /people/me
GET /people/{worker_id}

Retrieve a single person in your organization.

operationId: People_getPerson

Parameters

Name In Required Type Description
optional

Responses

200
400
401
403
404
405
429
500
GET /people/{worker_id}
GET /people/{worker_id}/time-offs

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

operationId: People_listTimeOffsByWorkerId

Parameters

Name In Required Type Description
optional

Responses

200
401
403
404
500
GET /people/{worker_id}/time-offs
GET /people/{worker_id}/time-offs/entitlements

Retrieve a list of time off entitlements for a worker.

operationId: People_listTimeOffEntitlements

Parameters

Name In Required Type Description
optional

Responses

200
401
403
404
500
GET /people/{worker_id}/time-offs/entitlements
GET /people/{worker_id}/time-offs/policies

Retrieve a list of time off policies for a worker.

operationId: People_listTimeOffPolicies

Parameters

Name In Required Type Description
optional

Responses

200
401
403
404
500
GET /people/{worker_id}/time-offs/policies

Serviceproviderconfig 1 endpoints

GET /ServiceProviderConfig
operationId: ServiceProviderConfig_getDetails

Responses

200 successful operation
GET /ServiceProviderConfig

Tasks 1 endpoints

GET /contracts/{contract_id}/tasks

Retrieve a list of tasks for a given contract.

operationId: Tasks_getContractTasks

Parameters

Name In Required Type Description
optional

Responses

200
400
401
403
404
405
429
500
GET /contracts/{contract_id}/tasks

Time off 3 endpoints

GET /contracts/{contract_id}/entitlements

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

operationId: TimeOff_listEntitlements

Parameters

Name In Required Type Description
optional

Responses

200
401
403
404
500
GET /contracts/{contract_id}/entitlements
GET /contracts/{contract_id}/time-offs

Retrieve the list of time off requests by an employee.

operationId: TimeOff_listByContract

Parameters

Name In Required Type Description
optional

Responses

200
401
403
404
500
GET /contracts/{contract_id}/time-offs
GET /time-offs

List of time offs for all employees in your organization.

operationId: TimeOff_getAllObsolete

Responses

200
401
403
404
500
GET /time-offs

Timesheets 3 endpoints

GET /contracts/{contract_id}/timesheets

Retrieve a list of timesheets found for a contract.

operationId: Timesheets_listByContract

Parameters

Name In Required Type Description
optional
optional
optional
optional
optional
optional
optional
optional

Responses

200
400
401
403
404
405
429
500
GET /contracts/{contract_id}/timesheets
GET /timesheets

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

operationId: Timesheets_getList

Parameters

Name In Required Type Description
optional
optional
optional
optional
optional
optional
optional
optional

Responses

200
400
401
403
404
405
429
500
GET /timesheets
GET /timesheets/{timesheet_id}

Retrieve a single timesheet entry by Id.

operationId: Timesheets_getSingleEntry

Parameters

Name In Required Type Description
optional

Responses

200
400
401
403
404
405
429
500
GET /timesheets/{timesheet_id}

User 2 endpoints

GET /Users

Retrieve a list of users in Deel HR.

operationId: User_listDeelUsers

Parameters

Name In Required Type Description
filter query optional string Filter results by a given value. For now, only supports equal (eq) expression for "email" filter.
startIndex query optional integer Start index. (1-based)
count query optional integer Page size.

Responses

200 Successful operation.
400 Bad request.
401 Unauthorized.
403 Forbidden.
429 Too many requests.
500 Internal server error
GET /Users
GET /Users/{id}

Retrieve a single user by id.

operationId: User_getById

Parameters

Name In Required Type Description
id path required string Retrieve a single user by id.

Responses

200 Successful operation.
401 Unauthorized.
403 Forbidden.
404 Not found.
429 Too many requests.
500 Internal server error,
GET /Users/{id}

Webhooks 3 endpoints

GET /webhooks

Retrieve a list of webhook subscriptions.

operationId: Webhooks_listWebhookSubscriptions

Responses

200 successful operation
400
401
403
404
405
429
500
GET /webhooks
GET /webhooks/events/types

Retrieve a list of webhook event types.

operationId: Webhooks_listEventTypes

Responses

200 successful operation
400
401
403
404
405
429
500
GET /webhooks/events/types
GET /webhooks/{id}

Retrieve a single webhook subscription.

operationId: WebhookController_getById

Parameters

Name In Required Type Description
id path required string

Responses

200 successful operation
400
401
403
404
405
429
500
GET /webhooks/{id}

Schemas

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