> This page is for API, version 2026-01-01 (Stable) (default).
> For other versions, use one of these documentation indexes:
> - 2026-01-01 (Stable) (default): https://developer.deel.com/api/stable/llms.txt

> 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.

# Retrieve policy validation templates

GET https://api.letsdeel.com/rest/time_offs/policy-validation-templates

Returns policy validation templates and policy types for one or more countries, specified as ISO 3166-1 alpha-2 codes. Policy types in the response are unique across the result set.

 **Token scopes**: `time-off:read`

Reference: https://developer.deel.com/api/reference/endpoints/time-off/get-time-off-policy-validation-templates

## 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

### Query parameters

- `countries` (list of string, required) — List of countries (ISO 3166-1 alpha-2 codes) to fetch policy templates and types for.

## Response

### 200

Successful operation.

- `data` (TimeOffsPolicyValidationTemplatesGetResponsesContentApplicationJsonSchemaData, optional)

## Errors

### 400 Bad Request Error

Operation failed.

- `errors` (list of TimeOffsPolicyValidationTemplatesGetResponsesContentApplicationJsonSchemaErrorsItems, optional)
- `request` (TimeOffsPolicyValidationTemplatesGetResponsesContentApplicationJsonSchemaRequest, 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

Operation failed.

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

### 500 Internal Server Error

Operation failed.

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

## Types

### TimeOffsPolicyValidationTemplatesGetResponsesContentApplicationJsonSchemaData

- `policy_types` (list of TimeOffsPolicyValidationTemplatesGetResponsesContentApplicationJsonSchemaDataPolicyTypesItems, optional) — List of unique policy types associated with the retrieved templates.
- `policy_validation_templates` (list of TimeOffsPolicyValidationTemplatesGetResponsesContentApplicationJsonSchemaDataPolicyValidationTemplatesItems, optional) — List of policy validation templates matching the criteria.

### TimeOffsPolicyValidationTemplatesGetResponsesContentApplicationJsonSchemaErrorsItems

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

### TimeOffsPolicyValidationTemplatesGetResponsesContentApplicationJsonSchemaRequest

- `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

### TimeOffsPolicyValidationTemplatesGetResponsesContentApplicationJsonSchemaDataPolicyTypesItems

- `id` (string, optional) — Unique identifier of the policy type.
- `name` (string, optional) — Name of the policy type.
- `description` (string, optional, nullable) — Description of the policy type.

### TimeOffsPolicyValidationTemplatesGetResponsesContentApplicationJsonSchemaDataPolicyValidationTemplatesItems

- `id` (string, optional) — Unique identifier for the policy validation template.
- `country` (string, optional, nullable) — Country code associated with this specific template instance, if applicable.
- `leave_type` (enum, optional) — Classification of the leave duration.
  - Allowed values: `SHORT_TERM_LEAVE`, `LONG_TERM_LEAVE`
- `policy_type` (TimeOffsPolicyValidationTemplatesGetResponsesContentApplicationJsonSchemaDataPolicyValidationTemplatesItemsPolicyType, optional) — Details of the associated policy type.
- `template_name` (string, optional, nullable) — Optional name for this specific template instance.
- `tracking_unit` (enum, optional, nullable) — The unit used for tracking the policy cycle (e.g., yearly).
  - Allowed values: `YEAR`, `MONTH`, `WEEK`, `DAY`, `BUSINESS_DAY`, `CALENDAR_DAY`, `HOUR`
- `policy_type_id` (string, optional) — Identifier of the associated policy type.
- `tracking_cadence` (enum, optional) — Determines when the tracking cycle starts.
  - Allowed values: `FIXED_DAY`, `ANNIVERSARY`, `NOT_SPECIFIED`
- `policy_allowances` (list of TimeOffsPolicyValidationTemplatesGetResponsesContentApplicationJsonSchemaDataPolicyValidationTemplatesItemsPolicyAllowancesItems, optional) — List of allowances defined within this policy template.
- `edit_approved_mode` (enum, optional, nullable) — Controls edit/cancel permissions on approved time off requests. Supersedes allow_to_edit_past_time_offs.
  - Allowed values: `RESTRICT_FULLY`, `RESTRICT_BEYOND_CYCLE`, `NO_RESTRICT`
- `is_payment_top_off` (boolean, optional) — Indicates if the policy involves payment top-offs.
- `notice_period_unit` (enum, optional, nullable) — Unit for the required notice period.
  - Allowed values: `YEAR`, `MONTH`, `WEEK`, `DAY`, `BUSINESS_DAY`, `CALENDAR_DAY`, `HOUR`
- `request_start_type` (enum, optional, nullable) — When a worker can start requesting time off after becoming eligible.
  - Allowed values: `IMMEDIATELY`, `FIXED_PERIOD`
- `request_start_unit` (enum, optional, nullable) — Unit for the waiting period if request_start_type is FIXED_PERIOD.
  - Allowed values: `YEAR`, `MONTH`, `WEEK`, `DAY`, `BUSINESS_DAY`, `CALENDAR_DAY`, `HOUR`
- `benefits_payer_type` (enum, optional) — Who pays for the benefits associated with this time off.
  - Allowed values: `ORGANIZATION`, `GOVERNMENT`
- `tracking_start_date` (string, optional, nullable) — Specific start date for FIXED_DAY tracking cadence (YYYY-MM-DD).
- `attachment_condition` (enum, optional, nullable) — Comparison operator if attachment is conditionally required.
  - Allowed values: `GREATER_THAN`, `LESS_THAN`, `GREATER_THAN_OR_EQUAL`, `LESS_THAN_OR_EQUAL`
- `overlap_request_type` (enum, optional) — Rule for requesting time off that overlaps with existing requests.
  - Allowed values: `ALLOWED`, `NOT_ALLOWED`, `ALLOWED_WITH_APPROVAL`
- `enabled_policy_fields` (list of string, optional, nullable) — List of specific policy fields that are enabled or configurable.
- `require_notice_period` (boolean, optional, nullable) — Whether a notice period is required before taking time off.
- `time_off_request_type` (enum, optional) — Allowed types of time off requests (e.g., full day, hourly).
  - Allowed values: `FULL_DAY`, `HALF_DAY`, `HOURLY`, `PERCENTAGE`, `FLEXIBLE`
- `enable_pay_out_balance` (boolean, optional) — Whether unused balance can be paid out.
- `adoption_date_definition` (enum, optional) — Rule regarding the requirement of an adoption date for relevant policies.
  - Allowed values: `REQUIRED`, `OPTIONAL`, `FORBIDDEN`
- `allow_estimated_end_date` (boolean, optional) — Whether an estimated end date can be provided for the time off request.
- `max_tracking_unit_amount` (integer, optional, nullable) — Maximum duration of the tracking cycle in tracking_unit.
- `min_tracking_unit_amount` (integer, optional, nullable) — Minimum duration of the tracking cycle in tracking_unit.
- `attachment_condition_unit` (enum, optional, nullable) — Unit for the attachment condition amount.
  - Allowed values: `YEAR`, `MONTH`, `WEEK`, `DAY`, `BUSINESS_DAY`, `CALENDAR_DAY`, `HOUR`
- `max_time_off_per_tracking` (double, optional, nullable) — Maximum amount of time off allowed per tracking cycle.
- `min_time_off_per_tracking` (double, optional, nullable) — Minimum amount of time off required per tracking cycle.
- `notice_period_unit_amount` (integer, optional, nullable) — Amount for the required notice period.
- `time_off_type_validations` (list of TimeOffsPolicyValidationTemplatesGetResponsesContentApplicationJsonSchemaDataPolicyValidationTemplatesItemsTimeOffTypeValidationsItems, optional) — Specific validation rules applied to time off types under this policy.
- `allow_approvers_to_request` (boolean, optional) — Whether designated approvers can also request time off under this policy.
- `policy_allowance_proration` (TimeOffsPolicyValidationTemplatesGetResponsesContentApplicationJsonSchemaDataPolicyValidationTemplatesItemsPolicyAllowanceProration, optional, nullable) — Proration rules applied to the policy allowances.
- `retrospective_request_type` (enum, optional) — Rule for requesting time off for past dates.
  - Allowed values: `ALLOWED`, `NOT_ALLOWED`, `ALLOWED_WITH_APPROVAL`
- `attachment_condition_amount` (integer, optional, nullable) — Threshold amount for the attachment condition.
- `disable_termination_editing` (boolean, optional) — Whether editing related to termination is disabled.
- `include_in_termination_flow` (boolean, optional) — Whether this policy is considered during the termination process.
- `max_entitlement_unit_amount` (double, optional, nullable) — Maximum allowed entitlement amount.
- `min_entitlement_unit_amount` (double, optional, nullable) — Minimum allowed entitlement amount.
- `upload_attachment_condition` (enum, optional) — Condition under which an attachment is needed for a request.
  - Allowed values: `REQUIRED`, `NOT_REQUIRED`, `CONDITIONALLY_REQUIRED`, `REQUIRED_WITH_CONDITION`, `ALWAYS_REQUIRED`
- `allow_to_edit_past_time_offs` (boolean, optional) — Whether past time off requests under this policy can be edited.
- `max_request_start_unit_amount` (integer, optional, nullable) — Maximum waiting period amount if request_start_type is FIXED_PERIOD.
- `min_request_start_unit_amount` (integer, optional, nullable) — Minimum waiting period amount if request_start_type is FIXED_PERIOD.
- `default_entitlement_unit_amount` (double, optional, nullable) — Default amount of entitlement granted per cycle.
- `maximum_time_off_request_amount` (double, optional, nullable) — Maximum amount that can be requested in a single time off request.
- `minimum_time_off_request_amount` (double, optional, nullable) — Minimum amount that can be requested in a single time off request.
- `auto_approval_inactivity_time_unit` (enum, optional, nullable) — Unit for the auto-approval inactivity period.
  - Allowed values: `YEAR`, `MONTH`, `WEEK`, `DAY`, `BUSINESS_DAY`, `CALENDAR_DAY`, `HOUR`
- `enable_absence_percentage_requests` (boolean, optional) — Whether requests can be made as a percentage of the workday.
- `estimated_end_date_client_reminder` (list of integer, optional, nullable) — Days before estimated end date to remind the client/manager.
- `estimated_end_date_worker_reminder` (list of integer, optional, nullable) — Days before estimated end date to remind the worker.
- `policy_validation_template_reminders` (list of TimeOffsPolicyValidationTemplatesGetResponsesContentApplicationJsonSchemaDataPolicyValidationTemplatesItemsPolicyValidationTemplateRemindersItems, optional) — Configuration for reminders related to this policy template.
- `is_auto_approval_on_inactivity_enabled` (boolean, optional, nullable) — Whether requests are automatically approved after a period of inactivity.
- `allow_time_off_payment_treatment_upsert` (boolean, optional, nullable) — Whether payment treatment details can be updated.
- `ops_workbench_process_template_reference` (string, optional, nullable) — Reference to an Ops Workbench process template, if applicable.
- `auto_approval_inactivity_time_unit_amount` (integer, optional, nullable) — Amount for the auto-approval inactivity period.
- `enable_accrued_days_for_policy_on_termination_flow` (boolean, optional) — Calculate accrued days specifically for this policy during termination.
- `enable_high_accuracy_accrued_days_on_termination_flow` (boolean, optional) — Use high accuracy calculation for accrued days during termination.

### TimeOffsPolicyValidationTemplatesGetResponsesContentApplicationJsonSchemaDataPolicyValidationTemplatesItemsPolicyType

Details of the associated policy type.

- `id` (string, optional) — Unique identifier of the policy type.
- `name` (string, optional) — Name of the policy type.
- `description` (string, optional, nullable) — Description of the policy type.

### TimeOffsPolicyValidationTemplatesGetResponsesContentApplicationJsonSchemaDataPolicyValidationTemplatesItemsPolicyAllowancesItems

- `id` (string, optional) — Unique identifier for the policy allowance.
- `name` (string, optional) — Name of the allowance.
- `type` (enum, optional) — Type of allowance (base or additional).
  - Allowed values: `BASE_ALLOWANCE`, `ADDITIONAL_ALLOWANCE`
- `accrual_type` (enum, optional) — How entitlement accrues (over time or based on events).
  - Allowed values: `TIMEFRAME`, `EVENT`, `TIME_OFF_IN_LIEU`, `HOURLY`, `LUMPSUM`, `NO_AUTO_ACCRUAL`
- `accrual_unit` (enum, optional, nullable) — Unit for accrual if type is TIMEFRAME.
  - Allowed values: `YEAR`, `MONTH`, `WEEK`, `DAY`, `BUSINESS_DAY`, `CALENDAR_DAY`, `HOUR`
- `rollover_type` (enum, optional, nullable) — Rule for carrying over unused balance to the next cycle.
  - Allowed values: `NO_ROLLOVER`, `LIMITED_ROLLOVER`, `UNLIMITED_ROLLOVER`, `PAY_OUT`, `CARRY_OVER`, `CARRY_OVER_PAY_OUT`
- `entitlement_unit` (enum, optional) — Unit in which the entitlement is measured.
  - Allowed values: `YEAR`, `MONTH`, `WEEK`, `DAY`, `BUSINESS_DAY`, `CALENDAR_DAY`, `HOUR`
- `termination_type` (enum, optional) — Rule for handling the balance upon termination.
  - Allowed values: `NO_PAYOUT`, `PAYOUT_BALANCE`
- `accrual_unit_amount` (integer, optional, nullable) — Amount of accrual per unit if type is TIMEFRAME.
- `enable_bank_holidays` (boolean, optional) — Whether bank holidays affect the entitlement or usage.
- `accrual_prorate_types` (list of enum, optional, nullable) — Specifies conditions under which accrual should be prorated.
  - Allowed values: `PRORATE_UNPAID_LEAVE`, `PRORATE_PAID_LEAVE`, `NO_PRORATE`
- `balance_tracking_type` (enum, optional, nullable) — How the balance is tracked (e.g., flexible, inflexible).
  - Allowed values: `FLEXIBLE_UP_TO_YEARLY_ALLOWANCE`, `FLEXIBLE_NO_LIMIT`, `FLEXIBLE_CUSTOM_AMOUNT`, `INFLEXIBLE`
- `entitlement_start_type` (enum, optional, nullable) — When the entitlement starts.
  - Allowed values: `IMMEDIATELY`, `FIXED_PERIOD`, `FIXED_DATE`
- `entitlement_start_unit` (enum, optional, nullable) — Unit for the start period if type is FIXED_PERIOD.
  - Allowed values: `YEAR`, `MONTH`, `WEEK`, `DAY`, `BUSINESS_DAY`, `CALENDAR_DAY`, `HOUR`
- `entitlement_unit_amount` (double, optional, nullable) — Amount of entitlement granted in entitlement_unit.
- `accrual_application_type` (enum, optional, nullable) — When the accrued amount is applied to the balance.
  - Allowed values: `BEGIN_OF_CYCLE`, `BEGIN_OF_NEXT_CYCLE`, `END_OF_CYCLE`
- `rollover_expiration_unit` (enum, optional, nullable) — Unit for the expiration period of rolled-over balance.
  - Allowed values: `YEAR`, `MONTH`, `WEEK`, `DAY`, `BUSINESS_DAY`, `CALENDAR_DAY`, `HOUR`
- `additional_allowance_rules` (list of TimeOffsPolicyValidationTemplatesGetResponsesContentApplicationJsonSchemaDataPolicyValidationTemplatesItemsPolicyAllowancesItemsAdditionalAllowanceRulesItems, optional) — Specific rules governing additional allowances.
- `rollover_limit_unit_amount` (integer, optional, nullable) — Maximum amount that can be rolled over if type is LIMITED_ROLLOVER.
- `entitlement_expiration_unit` (enum, optional, nullable) — Unit for entitlement expiration period.
  - Allowed values: `YEAR`, `MONTH`, `WEEK`, `DAY`, `BUSINESS_DAY`, `CALENDAR_DAY`, `HOUR`
- `entitlement_start_unit_amount` (integer, optional, nullable) — Amount for the start period if type is FIXED_PERIOD.
- `rollover_expiration_unit_amount` (integer, optional, nullable) — Amount for the expiration period of rolled-over balance.
- `entitlement_expiration_unit_amount` (integer, optional, nullable) — Amount for entitlement expiration period.
- `zero_out_negative_balances_on_rollover` (boolean, optional) — Whether negative balances are reset to zero at rollover.
- `part_time_worker_additional_allowance_type` (enum, optional) — How additional allowances apply to part-time workers.
  - Allowed values: `SAME_AS_FTE`, `PERCENTAGE_OF_FTE`, `NO_ADDITIONAL_ALLOWANCE`
- `balance_tracking_flexible_custom_request_amount` (integer, optional, nullable) — Custom amount for flexible balance tracking if applicable.

### TimeOffsPolicyValidationTemplatesGetResponsesContentApplicationJsonSchemaDataPolicyValidationTemplatesItemsTimeOffTypeValidationsItems

### TimeOffsPolicyValidationTemplatesGetResponsesContentApplicationJsonSchemaDataPolicyValidationTemplatesItemsPolicyAllowanceProration

Proration rules applied to the policy allowances.

- `id` (string, optional) — Unique identifier for the proration settings.
- `has_partial_prorate` (boolean, optional) — Indicates if partial proration rules are applied.
- `hire_proration_rule` (enum, optional) — Rule for prorating entitlement upon hiring.
  - Allowed values: `NO_PRORATION`, `FULL_AMOUNT`, `PRORATED_MONTHLY`, `PRORATED_DAILY`, `COUNTRY_SPECIFIC`, `FULL_MONTH_PRORATION_BASED_ON_DAY`, `TENURE_BOUNDARY_PRORATION`
- `is_accrual_prorate_policy` (boolean, optional) — Indicates if accrual is prorated based on policy rules.
- `termination_proration_rule` (enum, optional) — Rule for prorating entitlement upon termination.
  - Allowed values: `NO_PRORATION`, `FULL_AMOUNT`, `PRORATED_MONTHLY`, `PRORATED_DAILY`, `COUNTRY_SPECIFIC`, `FULL_MONTH_PRORATION_BASED_ON_DAY`, `TENURE_BOUNDARY_PRORATION`
- `hire_proration_cut_off_date` (integer, optional, nullable) — Day of the month used as cut-off for hire proration.
- `part_time_worker_treatment_type` (enum, optional) — How part-time workers are treated regarding entitlement.
  - Allowed values: `SAME_AS_FTE`, `SPECIFIC_AMOUNT`, `PRO_RATA`, `PERCENTAGE_OF_FTE`, `BASED_ON_WORK_HOURS`, `BASED_ON_WORK_DAYS`, `CUSTOM_ENTITLEMENT`
- `termination_proration_cut_off_date` (integer, optional, nullable) — Day of the month used as cut-off for termination proration.
- `part_time_worker_treatment_specific_amount` (double, optional, nullable) — Specific amount if treatment type is SPECIFIC_AMOUNT.
- `max_part_time_worker_treatment_specific_amount` (double, optional, nullable) — Maximum specific amount for part-time treatment.
- `min_part_time_worker_treatment_specific_amount` (double, optional, nullable) — Minimum specific amount for part-time treatment.

### TimeOffsPolicyValidationTemplatesGetResponsesContentApplicationJsonSchemaDataPolicyValidationTemplatesItemsPolicyValidationTemplateRemindersItems

### TimeOffsPolicyValidationTemplatesGetResponsesContentApplicationJsonSchemaDataPolicyValidationTemplatesItemsPolicyAllowancesItemsAdditionalAllowanceRulesItems

## Examples

**Response**

```json
{
  "data": {
    "policy_types": [
      {
        "id": "3597fd10-8f72-4ae2-805f-71a8ec39c28e",
        "name": "Maternity leave",
        "description": "Maternity leave"
      }
    ],
    "policy_validation_templates": [
      {
        "id": "4a8dd7c5-e2c6-499b-a333-88180e8ada6b",
        "country": "CA",
        "leave_type": "SHORT_TERM_LEAVE",
        "policy_type": {
          "id": "3597fd10-8f72-4ae2-805f-71a8ec39c28e",
          "name": "Maternity leave",
          "description": "Maternity leave"
        },
        "template_name": "Canada Maternity Leave Template",
        "tracking_unit": "YEAR",
        "policy_type_id": "3597fd10-8f72-4ae2-805f-71a8ec39c28e",
        "tracking_cadence": "ANNIVERSARY",
        "policy_allowances": [
          {
            "id": "25a92212-dac7-4410-b709-122164f0647f",
            "name": "Base Allowance",
            "type": "BASE_ALLOWANCE",
            "accrual_type": "TIMEFRAME",
            "accrual_unit": "MONTH",
            "rollover_type": "NO_ROLLOVER",
            "entitlement_unit": "CALENDAR_DAY",
            "termination_type": "NO_PAYOUT",
            "accrual_unit_amount": 2,
            "enable_bank_holidays": true,
            "accrual_prorate_types": [
              "PRORATE_UNPAID_LEAVE"
            ],
            "balance_tracking_type": "FLEXIBLE_NO_LIMIT",
            "entitlement_start_type": "IMMEDIATELY",
            "entitlement_start_unit": "MONTH",
            "entitlement_unit_amount": 245,
            "accrual_application_type": "BEGIN_OF_CYCLE",
            "rollover_expiration_unit": "MONTH",
            "additional_allowance_rules": [],
            "rollover_limit_unit_amount": 5,
            "entitlement_expiration_unit": "MONTH",
            "entitlement_start_unit_amount": 3,
            "rollover_expiration_unit_amount": 6,
            "entitlement_expiration_unit_amount": 12,
            "zero_out_negative_balances_on_rollover": true,
            "part_time_worker_additional_allowance_type": "SAME_AS_FTE",
            "balance_tracking_flexible_custom_request_amount": 10
          }
        ],
        "edit_approved_mode": "NO_RESTRICT",
        "is_payment_top_off": false,
        "notice_period_unit": "BUSINESS_DAY",
        "request_start_type": "IMMEDIATELY",
        "request_start_unit": "MONTH",
        "benefits_payer_type": "ORGANIZATION",
        "tracking_start_date": "2023-01-01",
        "attachment_condition": "GREATER_THAN",
        "overlap_request_type": "NOT_ALLOWED",
        "enabled_policy_fields": [
          "string"
        ],
        "require_notice_period": false,
        "time_off_request_type": "FULL_DAY",
        "enable_pay_out_balance": false,
        "adoption_date_definition": "FORBIDDEN",
        "allow_estimated_end_date": false,
        "max_tracking_unit_amount": 1,
        "min_tracking_unit_amount": 1,
        "attachment_condition_unit": "BUSINESS_DAY",
        "max_time_off_per_tracking": 30,
        "min_time_off_per_tracking": 1,
        "notice_period_unit_amount": 7,
        "time_off_type_validations": [],
        "allow_approvers_to_request": true,
        "policy_allowance_proration": {
          "id": "16eb330d-6e89-4e94-ae94-e3800214b2ec",
          "has_partial_prorate": true,
          "hire_proration_rule": "NO_PRORATION",
          "is_accrual_prorate_policy": false,
          "termination_proration_rule": "NO_PRORATION",
          "hire_proration_cut_off_date": 15,
          "part_time_worker_treatment_type": "SAME_AS_FTE",
          "termination_proration_cut_off_date": 15,
          "part_time_worker_treatment_specific_amount": 20,
          "max_part_time_worker_treatment_specific_amount": 30,
          "min_part_time_worker_treatment_specific_amount": 10
        },
        "retrospective_request_type": "ALLOWED",
        "attachment_condition_amount": 5,
        "disable_termination_editing": false,
        "include_in_termination_flow": false,
        "max_entitlement_unit_amount": 427,
        "min_entitlement_unit_amount": 245,
        "upload_attachment_condition": "NOT_REQUIRED",
        "allow_to_edit_past_time_offs": true,
        "max_request_start_unit_amount": 12,
        "min_request_start_unit_amount": 1,
        "default_entitlement_unit_amount": 245,
        "maximum_time_off_request_amount": 90,
        "minimum_time_off_request_amount": 0.5,
        "auto_approval_inactivity_time_unit": "BUSINESS_DAY",
        "enable_absence_percentage_requests": false,
        "estimated_end_date_client_reminder": [
          1
        ],
        "estimated_end_date_worker_reminder": [
          1
        ],
        "policy_validation_template_reminders": [],
        "is_auto_approval_on_inactivity_enabled": false,
        "allow_time_off_payment_treatment_upsert": false,
        "ops_workbench_process_template_reference": "maternity-leave-process-v1",
        "auto_approval_inactivity_time_unit_amount": 3,
        "enable_accrued_days_for_policy_on_termination_flow": false,
        "enable_high_accuracy_accrued_days_on_termination_flow": false
      }
    ]
  }
}
```

**SDK Code**

```python
import requests

url = "https://api.letsdeel.com/rest/time_offs/policy-validation-templates"

querystring = {"countries":"[\"US\",\"CA\"]"}

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

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

print(response.json())
```

```javascript
const url = 'https://api.letsdeel.com/rest/time_offs/policy-validation-templates?countries=%5B%22US%22%2C%22CA%22%5D';
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/time_offs/policy-validation-templates?countries=%5B%22US%22%2C%22CA%22%5D"

	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/time_offs/policy-validation-templates?countries=%5B%22US%22%2C%22CA%22%5D")

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/time_offs/policy-validation-templates?countries=%5B%22US%22%2C%22CA%22%5D")
  .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/time_offs/policy-validation-templates?countries=%5B%22US%22%2C%22CA%22%5D', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

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

```csharp
using RestSharp;

var client = new RestClient("https://api.letsdeel.com/rest/time_offs/policy-validation-templates?countries=%5B%22US%22%2C%22CA%22%5D");
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/time_offs/policy-validation-templates?countries=%5B%22US%22%2C%22CA%22%5D")! 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()
```