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
}
Load more schemas