> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developer.deel.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developer.deel.com/_mcp/server.

# Fetch EOR Contract form

GET https://api.letsdeel.com/rest/forms/eor/create-contract/{country_code}

Retrieves the versioned form definition for creating an EOR contract in the specified country, including fields, validation rules, and conditional logic. The `state` parameter is only required for countries that mandate it.

 **Token scopes**: `forms:read`

Reference: https://developer.deel.com/api/eor-endpoints/eor-hiring/get-create-contract-form

## Authentication

- `Authorization` header (bearer token, required) — ## Authentication The Deel API uses bearer tokens to authenticate requests. All API calls must be made over HTTPS — calls over plain HTTP or without authentication will fail. ```curl curl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \ -H 'Authorization: Bearer YOUR-TOKEN-HERE' ``` [Learn more about authentication](/api/authentication)
- `Authorization` header (bearer token, required) — Standard OAuth2 security scheme based on https://swagger.io/docs/specification/authentication/

## Servers

- `https://api.letsdeel.com/rest` (Production, default)
- `https://api-staging.letsdeel.com/rest` (Demo)

## Request

### Path parameters

- `country_code` (string, required) — Two-letter country code in ISO 3166-1 alpha-2 format

### Query parameters

- `state` (string, optional) — The selected state code of the contract. This is only required for countries that specify it.
- `start_date` (string, optional) — The selected start date of the contract in ISO 8601 formatted date string.
- `work_hours_per_week` (integer, optional) — The selected number of work hours per week.
- `contract_duration_in_days` (integer, optional) — The contract duration in days for definite contracts.

## Response

### 200

Successful response containing form configuration data.

- `data` (FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaData, required)

## Errors

### 400 Bad Request Error

Operation failed.

- `errors` (list of FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaErrorsItems, optional)
- `request` (FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaRequest, optional)

### 401 Unauthorized Error

Operation failed.

- `request` (ApiErrorRequest, optional)
- `errors` (list of ApiError, optional)

### 403 Forbidden Error

Operation failed.

- `request` (ApiErrorRequest, optional)
- `errors` (list of ApiError, optional)

### 404 Not Found Error

Country not found or EOR not available in the requested country.

- `error` (FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaError, optional)

### 500 Internal Server Error

Internal server error.

- `error` (FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaError, optional)

## Types

### FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaData

- `pages` (list of FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItems, required) — List of pages in the form.

### FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaErrorsItems

- `path` (string, optional) — The JSON path where input validation failed
- `message` (string, optional) — A description of the returned error

### FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaRequest

- `url` (string, optional) — The relative URL of the failed request
- `code` (double, optional) — The code of the source handler which produced the returned error
- `docs` (string, optional) — A link to the official documentation for the requested endpoint resource
- `method` (string, optional) — The HTTP method of the failed request
- `source` (string, optional) — The source handler which produced the returned error
- `status` (double, optional) — The status code of the response
- `api_req_id` (string, optional) — The request ID of the failed request

### ApiErrorRequest

- `method` (string, optional) — The HTTP method of the failed request
- `url` (string, optional) — The relative URL of the failed request
- `status` (double, optional) — The status code of the response
- `api_req_id` (string, optional) — The request ID of the failed request
- `docs` (string, optional) — A link to the official documentation for the requested endpoint resource
- `source` (string, optional) — The source handler which produced the returned error
- `code` (double, optional) — The code of the source handler which produced the returned error

### ApiError

- `message` (string, optional) — A description of the returned error
- `path` (string, optional) — The JSON path where input validation failed

### FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaError

- `code` (integer, optional) — HTTP status code.
- `message` (string, optional) — Human-readable error message.

### FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItems

- `title` (string, required) — Title of the form page.
- `sections` (list of FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItems, required) — Sections within the page.
- `is_disabled` (boolean, optional, nullable) — Whether the entire page is disabled for the selected country.

### FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItems

- `title` (string, required) — Title of the section.
- `questions` (list of FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItems, required) — List of questions within the section.
- `subtitle` (string, optional) — Additional information shown at the top of the section.
- `is_disabled` (boolean, optional, nullable) — Whether the entire section is disabled.

### FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItems

- `key` (string, required) — Unique key identifier for the question.
- `type` (enum, required) — Type of the question.
  - Allowed values: `FreeText`, `Paragraph`, `SingleSelection`, `MultiSelection`, `Address`, `PhoneNumber`, `DocumentUpload`, `Number`, `Dropdown`, `DatePicker`, `Email`, `CustomDropdown`, `PresetDropdown`, `Nested`
- `title` (string, required) — Title of the question.
- `rules` (list of FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsRulesItems, optional, nullable) — Validation rules for the question.
- `source` (FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsSource, optional, nullable) — Defines dynamic data source for the question.
- `options` (list of FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsOptionsItems, optional, nullable) — List of selectable options for selection-type questions. Value may be of any type.
- `is_range` (boolean, optional) — Specifies whether a date picker allows range selection.
- `max_value` (FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsMaxValue, optional) — Maximum value allowed.
- `min_value` (FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsMinValue, optional) — Minimum value allowed.
- `questions` (list of FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsQuestionsItems, optional, nullable) — For Nested questions: the child questions within this group.
- `time_unit` (string, optional, nullable) — Time unit associated with numeric duration questions.
- `max_length` (integer, optional, nullable) — Maximum character length for text responses.
- `min_length` (integer, optional, nullable) — Minimum character length for text responses.
- `variant_id` (string, optional, nullable) — Variant identifier used to distinguish different renderings of the same key.
- `helper_text` (string, optional, nullable) — Additional information to assist the user.
- `is_disabled` (boolean, optional) — If true, the field is disabled and cannot be edited.
- `is_required` (boolean, optional) — Indicates if the question is required.
- `number_type` (string, optional) — Used for number fields to define the unit or representation.
- `default_value` (FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsDefaultValue, optional) — Default value to pre-fill in the form.
- `is_only_digits` (boolean, optional) — Restricts input to numeric characters only, for FreeText questions.
- `additional_info` (FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsAdditionalInfo, optional, nullable) — Country-specific metadata for the question. The shape depends on the question key: `employment.start_date` → payroll scheduling info; `employment.end_date` → definite-contract configuration; `compensation_details.salary` → salary bounds; `employment.holidays` → PTO bounds; `employment.probation_period` → probation rules; `employment.notice_period_type` → notice period rules matrix.
- `date_limitation` (enum, optional, nullable) — Limits date selection (e.g., blocking past dates). Will always be 'BLOCK_PAST' for now.
  - Allowed values: `BLOCK_PAST`, `BLOCK_FUTURE`
- `is_multiple_selection` (boolean, optional) — Indicates if the user can select multiple values.
- `must_request_validation` (boolean, optional) — Whether additional validation should be triggered for this field.

### FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsRulesItems

- `title` (string, optional) — Title of the question.
- `source` (FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsRulesItemsSource, optional, nullable) — Defines dynamic data source for the question.
- `options` (list of FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsRulesItemsOptionsItems, optional, nullable) — List of selectable options for selection-type questions. Value may be of any type.
- `is_range` (boolean, optional) — Specifies whether a date picker allows range selection.
- `requires` (list of FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsRulesItemsRequiresItems, optional) — List of conditions that must be met for this rule to apply.
- `max_value` (FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsRulesItemsMaxValue, optional) — Maximum value allowed.
- `min_value` (FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsRulesItemsMinValue, optional) — Minimum value allowed.
- `max_length` (integer, optional, nullable) — Maximum character length for text responses.
- `min_length` (integer, optional, nullable) — Minimum character length for text responses.
- `helper_text` (string, optional, nullable) — Additional information to assist the user.
- `is_disabled` (boolean, optional) — If true, the field is disabled and cannot be edited.
- `is_required` (boolean, optional) — Indicates if the question is required.
- `number_type` (string, optional) — Used for number fields to define the unit or representation.
- `default_value` (FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsRulesItemsDefaultValue, optional) — Default value to pre-fill in the form.
- `is_only_digits` (boolean, optional) — Restricts input to numeric characters only, for FreeText questions.
- `date_limitation` (string, optional, nullable) — Limits date selection (e.g., blocking past dates). Will always be 'BLOCK_PAST' for now.
- `is_multiple_selection` (boolean, optional) — Indicates if the user can select multiple values.
- `must_request_validation` (boolean, optional) — Whether additional validation should be triggered for this field.

### FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsSource

Defines dynamic data source for the question.

- `url` (string, optional) — API endpoint providing dynamic options.
- `definition` (string, optional) — Reference URL for API documentation.
- `description` (string, optional) — Description of the data source.

### FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsOptionsItems

- `rules` (list of FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsOptionsItemsRulesItems, optional, nullable) — Conditional rules that apply when this option is selected.
- `title` (string, optional) — Display text for the option.
- `value` (string, optional, nullable) — Value associated with the option.
- `is_disabled` (boolean, optional, nullable) — Whether this specific option is disabled for the selected country.

### FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsMaxValue

Maximum value allowed.

### FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsMinValue

Minimum value allowed.

### FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsQuestionsItems

A single child question within a Nested parent.

### FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsDefaultValue

Default value to pre-fill in the form.

### FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsAdditionalInfo

Country-specific metadata for the question. The shape depends on the question key: `employment.start_date` → payroll scheduling info; `employment.end_date` → definite-contract configuration; `compensation_details.salary` → salary bounds; `employment.holidays` → PTO bounds; `employment.probation_period` → probation rules; `employment.notice_period_type` → notice period rules matrix.

### FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsRulesItemsSource

Defines dynamic data source for the question.

- `url` (string, optional) — API endpoint providing dynamic options.
- `definition` (string, optional) — Reference URL for API documentation.
- `description` (string, optional) — Description of the data source.

### FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsRulesItemsOptionsItems

- `title` (string, optional) — Display text for the option.
- `value` (string, optional, nullable) — Value associated with the option.

### FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsRulesItemsRequiresItems

- `key` (string, optional) — Key of the dependent field.
- `value` (FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsRulesItemsRequiresItemsValue, optional) — Expected value for the condition.
- `operator` (string, optional, nullable) — Comparison operator (e.g., 'eq', 'ne').
- `compare_key` (string, optional, nullable) — Key of the field to compare against.

### FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsRulesItemsMaxValue

Maximum value allowed.

### FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsRulesItemsMinValue

Minimum value allowed.

### FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsRulesItemsDefaultValue

Default value to pre-fill in the form.

### FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsOptionsItemsRulesItems

A rule that modifies another question based on this option being selected.

### StartDateAdditionalInfo

Additional info for the `employment.start_date` question.

- `payroll_lock` (integer, required) — Day of the month after which the start date can no longer be set in the current month (payroll lock day).
- `min_value_buffer_in_days` (integer, required) — Minimum number of days from today before a start date can be selected. A value of 0 means the earliest available date is today (or the first upcoming payroll-eligible date).
- `is_same_month_payment_country` (boolean, required) — Whether this country processes payroll in the same month as the employment start date (true) or the following month (false).

### EndDateAdditionalInfo

Additional info for the `employment.end_date` question.

- `type` (enum, required) — Definite-contract policy for this country. Possible values: NOT_ALLOWED (no fixed-term contracts), ALLOWED_WITHOUT_LIMITATION (fixed-term allowed without duration limit), ALLOWED_WITH_MAXIMUM_LIMITATION (fixed-term allowed up to a maximum duration).
  - Allowed values: `NOT_ALLOWED`, `ALLOWED_WITHOUT_LIMITATION`, `ALLOWED_WITH_MAXIMUM_LIMITATION`
- `min_value_buffer_in_days` (integer, optional, nullable) — Minimum fixed-term contract duration in days. Null when definite contracts are not allowed (type is NOT_ALLOWED). Represents the minimum gap between start_date and end_date.
- `maximum_limitation_in_months` (integer, optional, nullable) — Maximum fixed-term contract duration in months. Null when there is no maximum limitation.

### SalaryAdditionalInfo

Additional info for the `compensation_details.salary` question.

- `max_salary` (double, required) — Maximum allowable gross annual salary for this country.
- `min_salary` (double, required) — Minimum allowable gross annual salary for this country.
- `additional_payments` (list of FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsAdditionalInfoOneOf2AdditionalPaymentsItems, required) — Country-mandated irregular payments (e.g. 13th salary, profit sharing) that are included in the total employment cost.
- `part_time_holiday_type` (string, optional) — How holiday pay is calculated for part-time employees (e.g. PRORATED, STANDARD).
- `standard_hours_per_week` (double, optional) — Standard working hours per week used as the full-time reference.

### HolidaysAdditionalInfo

Additional info for the `employment.holidays` question.

- `min_holidays` (double, required) — Minimum statutory paid vacation days for this country.
- `standard_hours_per_week` (double, required) — Standard working hours per week used as the full-time reference.
- `max_holidays` (double, optional, nullable) — Maximum paid vacation days allowed. Null when there is no upper limit.
- `part_time_holiday_type` (string, optional) — How holiday entitlement is calculated for part-time employees (e.g. PRORATED, STANDARD).

### ProbationAdditionalInfo

Additional info for the `employment.probation_period` question.

- `probation_type_for_definite` (enum, required) — How the probation period is determined for definite (fixed-term) contracts. Possible values: STANDARD (fixed statutory period), SPECIFIC_CALCULATION (calculated from a rule), SPECIFIC_TO_DURATION_OF_CONTRACT (derived from contract length).
  - Allowed values: `STANDARD`, `SPECIFIC_CALCULATION`, `SPECIFIC_TO_DURATION_OF_CONTRACT`
- `specific_calculation_rules` (FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsAdditionalInfoOneOf4SpecificCalculationRules, optional, nullable) — Calculation rules when probation_type_for_definite is SPECIFIC_CALCULATION. Null for other types.
- `specific_to_duration_of_contract_rules` (list of FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsAdditionalInfoOneOf4SpecificToDurationOfContractRulesItems, optional, nullable) — Rules mapping contract duration ranges to probation periods when probation_type_for_definite is SPECIFIC_TO_DURATION_OF_CONTRACT. Null for other types.

### NoticePeriodAdditionalInfo

Additional info for the `employment.notice_period_type` question.

- `notice_period_settings` (list of FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsAdditionalInfoOneOf5NoticePeriodSettingsItems, required) — Notice-period configuration, one entry per employment type and term combination.
- `notice_period_rule_type` (string, required) — Notice-period rule type for the country (e.g. LIMITED_AGREEMENT, FIXED_AGREEMENT).
- `notice_period_time_unit` (string, required) — Primary display time unit for the notice period (DAY, WEEK, or MONTH).

### FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsRulesItemsRequiresItemsValue

Expected value for the condition.

### FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsAdditionalInfoOneOf2AdditionalPaymentsItems

- `amount` (double, optional, nullable) — Fixed amount of the payment (0 when it is percentage-based).
- `payment_name` (string, optional) — Display name of the additional payment.
- `invoicing_type` (string, optional, nullable) — How the payment is invoiced (e.g. Single Month, Multiple Months).
- `invoicing_months` (list of string, optional, nullable) — Months in which the payment is invoiced.
- `how_its_calculated` (string, optional, nullable) — Human-readable explanation of the calculation method.
- `payment_local_name` (string, optional, nullable) — Local-language name of the additional payment.

### FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsAdditionalInfoOneOf4SpecificCalculationRules

Calculation rules when probation_type_for_definite is SPECIFIC_CALCULATION. Null for other types.

- `time_unit` (enum, optional) — Time unit for all probation durations in this object (DAY, WEEK, or MONTH).
  - Allowed values: `DAY`, `WEEK`, `MONTH`
- `max_probation_for_definite` (double, optional) — Maximum probation duration (in the unit specified by time_unit).
- `min_probation_for_definite` (double, optional) — Minimum probation duration (in the unit specified by time_unit).
- `max_probation_type_for_definite` (string, optional) — The formula used to derive the maximum probation period for a definite contract.

### FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsAdditionalInfoOneOf4SpecificToDurationOfContractRulesItems

- `time_unit` (enum, optional) — Time unit for probation_period and min_probation_period (DAY, WEEK, or MONTH).
  - Allowed values: `DAY`, `WEEK`, `MONTH`
- `probation_period` (double, optional) — Probation duration for contracts in this range.
- `min_probation_period` (double, optional) — Minimum probation duration for contracts in this range.
- `max_employment_duration` (double, optional, nullable) — Upper bound of the contract duration range. Null when unbounded.
- `min_employment_duration` (double, optional) — Lower bound of the contract duration range.
- `employment_duration_type` (enum, optional) — Time unit for the employment duration bounds (DAY, WEEK, MONTH, or YEAR).
  - Allowed values: `DAY`, `WEEK`, `MONTH`, `YEAR`

### FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsAdditionalInfoOneOf5NoticePeriodSettingsItems

- `tenure_rules` (list of FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsAdditionalInfoOneOf5NoticePeriodSettingsItemsTenureRulesItems, optional) — Tenure-based notice period rules, used when the notice type is TENURE_BASED.
- `employment_term` (enum, optional) — Employment term this rule applies to.
  - Allowed values: `DEFINITE`, `INDEFINITE`
- `employment_type` (enum, optional) — Employment type this rule applies to.
  - Allowed values: `FULL_TIME`, `PART_TIME`
- `type_for_after_probation` (string, optional) — How the notice period is determined after probation (e.g. NO_NOTICE_PERIOD, MIN_MAX_LIMITED, SPECIFIC, TENURE_BASED).
- `type_for_during_probation` (string, optional) — How the notice period is determined during probation (e.g. NO_NOTICE_PERIOD, MIN_MAX_LIMITED, SPECIFIC, TENURE_BASED).
- `notice_period_after_probation` (FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsAdditionalInfoOneOf5NoticePeriodSettingsItemsNoticePeriodAfterProbation, optional) — Notice period minimum/maximum bounds and default for this segment.
- `notice_period_during_probation` (FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsAdditionalInfoOneOf5NoticePeriodSettingsItemsNoticePeriodDuringProbation, optional) — Notice period minimum/maximum bounds and default for this segment.

### FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsAdditionalInfoOneOf5NoticePeriodSettingsItemsTenureRulesItems

- `time_unit` (enum, optional) — Time unit for notice_value.
  - Allowed values: `DAY`, `WEEK`, `MONTH`
- `notice_value` (integer, optional) — Notice period value for contracts in this tenure range.
- `max_employment_duration` (integer, optional, nullable) — Upper bound of the employment-duration range. Null when unbounded.
- `min_employment_duration` (integer, optional) — Lower bound of the employment-duration range.
- `employment_duration_type` (enum, optional) — Time unit for the employment-duration bounds.
  - Allowed values: `DAY`, `WEEK`, `MONTH`, `YEAR`

### FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsAdditionalInfoOneOf5NoticePeriodSettingsItemsNoticePeriodAfterProbation

Notice period minimum/maximum bounds and default for this segment.

- `max_value` (integer, optional, nullable) — Maximum notice period value. Null when not applicable.
- `min_value` (integer, optional, nullable) — Minimum notice period value. Null when not applicable.
- `time_unit` (enum, optional) — Time unit for the notice period values.
  - Allowed values: `DAY`, `WEEK`, `MONTH`
- `default_value` (integer, optional, nullable) — Default notice period value. Null when there is no default.

### FormsEorCreateContractCountryCodeGetResponsesContentApplicationJsonSchemaDataPagesItemsSectionsItemsQuestionsItemsAdditionalInfoOneOf5NoticePeriodSettingsItemsNoticePeriodDuringProbation

Notice period minimum/maximum bounds and default for this segment.

- `max_value` (integer, optional, nullable) — Maximum notice period value. Null when not applicable.
- `min_value` (integer, optional, nullable) — Minimum notice period value. Null when not applicable.
- `time_unit` (enum, optional) — Time unit for the notice period values.
  - Allowed values: `DAY`, `WEEK`, `MONTH`
- `default_value` (integer, optional, nullable) — Default notice period value. Null when there is no default.

## Examples

**Response**

```json
{
  "data": {
    "pages": [
      {
        "title": "Personal Details",
        "sections": [
          {
            "title": "Team information",
            "questions": [
              {
                "key": "client.legal_entity.id",
                "type": "Dropdown",
                "title": "Legal entity ID",
                "rules": [
                  {
                    "title": "Legal entity ID",
                    "source": {
                      "url": "/rest/v2/legal-entities",
                      "definition": "https://developer.deel.com/reference/getlegalentitylist",
                      "description": "Available legal entities for selection must be dynamically fetched"
                    },
                    "options": [
                      {
                        "title": "Yes",
                        "value": "true"
                      },
                      {
                        "title": "No",
                        "value": "false"
                      }
                    ],
                    "is_range": false,
                    "requires": [
                      {
                        "key": "employee.nationality",
                        "value": true,
                        "operator": "ne",
                        "compare_key": "employment.country"
                      }
                    ],
                    "max_value": 180,
                    "min_value": 0,
                    "max_length": 255,
                    "min_length": 1,
                    "helper_text": "Please select the appropriate legal entity.",
                    "is_disabled": false,
                    "is_required": true,
                    "number_type": "CURRENCY",
                    "default_value": 40,
                    "is_only_digits": false,
                    "date_limitation": "BLOCK_PAST",
                    "is_multiple_selection": false,
                    "must_request_validation": true
                  }
                ],
                "source": {
                  "url": "/rest/v2/legal-entities",
                  "definition": "https://developer.deel.com/reference/getlegalentitylist",
                  "description": "Available legal entities for selection must be dynamically fetched"
                },
                "options": [
                  {
                    "title": "Yes",
                    "value": "true"
                  },
                  {
                    "title": "No",
                    "value": "false"
                  }
                ],
                "is_range": false,
                "max_value": 180,
                "min_value": 0,
                "questions": [
                  {}
                ],
                "time_unit": "days",
                "max_length": 255,
                "min_length": 1,
                "variant_id": "employment.start_date.default",
                "helper_text": "Please select the appropriate legal entity.",
                "is_disabled": false,
                "is_required": true,
                "number_type": "CURRENCY",
                "default_value": 40,
                "is_only_digits": false,
                "additional_info": {
                  "is_same_month_payment_country": false,
                  "min_value_buffer_in_days": 0,
                  "payroll_lock": 20
                },
                "date_limitation": "BLOCK_PAST",
                "is_multiple_selection": false,
                "must_request_validation": true
              }
            ],
            "subtitle": "Information about the team",
            "is_disabled": false
          }
        ],
        "is_disabled": false
      }
    ]
  }
}
```

**SDK Code**

```python
import requests

url = "https://api.letsdeel.com/rest/forms/eor/create-contract/BR"

querystring = {"contract_duration_in_days":"360","start_date":"2025-09-03","state":"SP","work_hours_per_week":"40"}

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript
const url = 'https://api.letsdeel.com/rest/forms/eor/create-contract/BR?contract_duration_in_days=360&start_date=2025-09-03&state=SP&work_hours_per_week=40';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.letsdeel.com/rest/forms/eor/create-contract/BR?contract_duration_in_days=360&start_date=2025-09-03&state=SP&work_hours_per_week=40"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.letsdeel.com/rest/forms/eor/create-contract/BR?contract_duration_in_days=360&start_date=2025-09-03&state=SP&work_hours_per_week=40")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.letsdeel.com/rest/forms/eor/create-contract/BR?contract_duration_in_days=360&start_date=2025-09-03&state=SP&work_hours_per_week=40")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.letsdeel.com/rest/forms/eor/create-contract/BR?contract_duration_in_days=360&start_date=2025-09-03&state=SP&work_hours_per_week=40', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.letsdeel.com/rest/forms/eor/create-contract/BR?contract_duration_in_days=360&start_date=2025-09-03&state=SP&work_hours_per_week=40");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.letsdeel.com/rest/forms/eor/create-contract/BR?contract_duration_in_days=360&start_date=2025-09-03&state=SP&work_hours_per_week=40")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```