# Create policy

This endpoint creates a policy.

Endpoint: POST /v2/companies/{companyId}/policies
Version: v2
Security: Bearer

## Security:

  - `Bearer` (unknown)
    http bearer

## Path parameters:

  - `companyId` (string, required)
    Identifier for company.

## Request fields (application/json):

  - `name` (string, required)
    Name of the policy.

  - `type` (string, required)
    Policy type.
    Enum: "DEFAULT", "GROUP", "INTERNAL"

  - `parentPolicyId` (string)
    Policy to inherit the values of linked rules. If empty, consider the company default policy.
    Example: f7b3b3b3-7b3b-4b3b-8b3b-3b3b3b3b3b3b

  - `currency` (any, required)
    Currency for the policy.

  - `currency.currencyCode` (string)
    iso code of the currency.
    Example: USD

  - `currency.isLinked` (boolean)
    If the value has to be taken from default policy.
    Example: true

  - `inPolicyApprovalInfo` (object)

  - `inPolicyApprovalInfo.approvalProcessType` (string, required)
    Enum: "NONE", "SOFT_APPROVAL", "HARD_APPROVAL", "PASSIVE_APPROVAL", "PREVENT_BOOKING", "PRE_APPROVAL"

  - `inPolicyApprovalInfo.designatedApprovers` (array)
    List of designated approvers.

  - `inPolicyApprovalInfo.designatedApprovers.id` (string, required)

  - `inPolicyApprovalInfo.isManagerApprover` (boolean)
    Example: false

  - `inPolicyApprovalInfo.isEmployeeLevelDesignatedApprover` (boolean)
    Indicate whether the policy is approved by employee level designated approver or not.
    Example: false

  - `inPolicyApprovalInfo.shouldNotifyManager` (boolean)
    Indicate whether approval emails should be cc'ed to manager or not.
    Example: false

  - `inPolicyApprovalInfo.travelTypes` (array)
    List of travel types for which this ApprovalInfo is applicable.

  - `inPolicyApprovalInfo.approvalConditions` (array)
    List of approval conditions. OR operator is applied between the approval conditions.

  - `inPolicyApprovalInfo.approvalConditions.rules` (array)

  - `inPolicyApprovalInfo.approvalConditions.rules.travelRegionRule` (object)
    Rule to evaluate travel region, INTERNATIONAL or DOMESTIC.

  - `inPolicyApprovalInfo.approvalConditions.rules.travelRegionRule.travelRegionType` (string)
    Travel region Type
    Enum: "DOMESTIC", "INTERNATIONAL"

  - `inPolicyApprovalInfo.defaultApprovers` (array)
    List of designated default approvers.

  - `inPolicyApprovalInfos` (array)

  - `outOfPolicyApprovalInfos` (array)

  - `outOfPolicyAgentApprovalInfos` (array)

  - `enableAgentActionOverride` (boolean)
    True if agent can override the PREVENT_BOOKING action. If enabled, outOfPolicyAgentApprovalInfos for all travel types should be provided.

  - `userGroups` (array, required)

  - `userGroups.userIds` (array)

  - `userGroups.legalEntityIds` (array)

  - `userGroups.legalEntityIds.id` (string, required)
    Example: b93dc51f-12dd-46c7-b7d6-1cb12cd3f5b3

  - `userGroups.officeIds` (array)

  - `userGroups.departments` (array)
    List of department ids.

  - `userGroups.costCenters` (array)
    List of cost center ids.

  - `userGroups.grades` (array)
    List of grade ids.

  - `userGroups.positionTitles` (array)

  - `userGroups.personas` (array)

  - `userGroups.customFieldIds` (array)

  - `userGroups.customFieldIds.type` (string, required)
    The type of custom field.
    Enum: "QUESTION", "MEETING", "BUDGET", "BREX_TOKEN"

  - `userGroups.customFieldIds.externalId` (string, required)
    Meeting id or budget id based on custom field type.

  - `userGroups.countryCodes` (array)

  - `userGroups.workerTypes` (array)

  - `userGroups.accountingCodes` (array)

  - `commonPolicyRules` (object)
    Details of policy that is common to all travel type.

  - `commonPolicyRules.restrictedContinents` (object)
    Details containing about the continent restrictions or use default policy restrictions.

  - `commonPolicyRules.restrictedContinents.continentProps` (object)
    List of continent with their type of restriction.

  - `commonPolicyRules.restrictedContinents.continentProps.restrictions` (array, required)

  - `commonPolicyRules.restrictedContinents.continentProps.restrictions.type` (string, required)
    Enum: "BLOCK_TRAVEL_TO_CONTINENT", "ALLOW_WITHIN_CONTINENT"

  - `commonPolicyRules.restrictedContinents.continentProps.restrictions.continentCode` (string, required)
    2-letter continent code.
    Example: NA

  - `commonPolicyRules.restrictedCountries` (object)
    Details containing country related restrictions or use default policy restrictions.

  - `commonPolicyRules.restrictedCountries.countryProps` (object)
    List of country related restrictions.

  - `commonPolicyRules.restrictedCountries.countryProps.restrictions` (array, required)

  - `commonPolicyRules.restrictedCountries.countryProps.restrictions.type` (string, required)
    Enum: "BLOCK_TRAVEL_TO_COUNTRY", "ALLOW_WITHIN_COUNTRY"

  - `commonPolicyRules.restrictedCountries.countryProps.restrictions.countryCode` (string, required)
    ISO 2-letter country code.

  - `carPolicyRules` (object)
    Details of rules related to car.

  - `carPolicyRules.maxCarPricePerNumberOfDays` (object)
    Car rule to describe whether to use default policy rules 
or list of rules for max price for given number of days.

  - `carPolicyRules.maxCarPricePerNumberOfDays.maxCarPricePerNumberOfDaysProps` (object)
    Max price for given number days for a car booking.

  - `carPolicyRules.maxCarPricePerNumberOfDays.maxCarPricePerNumberOfDaysProps.maxPrice` (object, required)
    Money object containing just amount and currency code.

  - `carPolicyRules.maxCarPricePerNumberOfDays.maxCarPricePerNumberOfDaysProps.maxPrice.amount` (number, required)
    Amount
    Example: 510

  - `carPolicyRules.maxCarPricePerNumberOfDays.maxCarPricePerNumberOfDaysProps.maxPrice.currencyCode` (string, required)
    The 3-letter currency code defined in ISO 4217.
    Example: GBP

  - `carPolicyRules.maxCarPricePerNumberOfDays.maxCarPricePerNumberOfDaysProps.isTaxIncluded` (boolean)

  - `carPolicyRules.allowedCarTypes` (object)
    Car rule to describe whether to use default policy rule or use different set of 
allowed car types for booking.

  - `carPolicyRules.allowedCarTypes.allowedCarTypesProps` (object)
    List of allowed car types.

  - `carPolicyRules.allowedCarTypes.allowedCarTypesProps.carTypes` (array, required)

  - `hotelPolicyRules` (object)
    Details of rules related to hotel.

  - `hotelPolicyRules.restrictedHotels` (object)
    Hotel rule to describe whether to use default policy rule or a different set of restricted 
hotels.

  - `hotelPolicyRules.restrictedHotels.hotelCodesProps` (object)
    List of hotel codes.

  - `hotelPolicyRules.restrictedHotels.hotelCodesProps.hotelCodes` (array, required)

  - `hotelPolicyRules.maxHotelPriceByLocation` (object)
    Hotel Rule to describe whether to use default policy rule or different set of rules for max  
booking price for different locations.

  - `hotelPolicyRules.maxHotelPriceByLocation.maxHotelPriceByLocationProps` (object)
    List of max price of a hotel booking in a location.

  - `hotelPolicyRules.maxHotelPriceByLocation.maxHotelPriceByLocationProps.isTaxIncluded` (boolean)

  - `hotelPolicyRules.maxHotelPriceByLocation.maxHotelPriceByLocationProps.maxPricePerLocationList` (array, required)

  - `hotelPolicyRules.maxHotelPriceByLocation.maxHotelPriceByLocationProps.maxPricePerLocationList.address` (object, required)
    Postal Address Details

  - `hotelPolicyRules.maxHotelPriceByLocation.maxHotelPriceByLocationProps.maxPricePerLocationList.address.addressLines` (array, required)
    Address lines

  - `hotelPolicyRules.maxHotelPriceByLocation.maxHotelPriceByLocationProps.maxPricePerLocationList.address.administrativeArea` (string)
    Code of administrative area. For example: DL for Delhi, India.
Highest administrative subdivision which is used for postal
addresses of a country or region.
For example, this can be a state, a province, an oblast, or a prefecture.
Specifically, for Spain this is the province and not the autonomous
community (e.g. "Barcelona" and not "Catalonia").
Many countries don't use an administrative area in postal addresses. E.g.
in Switzerland this should be left unpopulated.
    Example: CA

  - `hotelPolicyRules.maxHotelPriceByLocation.maxHotelPriceByLocationProps.maxPricePerLocationList.address.administrativeAreaName` (string)
    Name of administrative area. This is full name corresponding to administrativeArea. 
Like Delhi for DL area code. For some places, code and name maybe same as well like Tokyo.
    Example: California

  - `hotelPolicyRules.maxHotelPriceByLocation.maxHotelPriceByLocationProps.maxPricePerLocationList.address.description` (string)
    Address description
    Example: San Francisco Home

  - `hotelPolicyRules.maxHotelPriceByLocation.maxHotelPriceByLocationProps.maxPricePerLocationList.address.isDefault` (boolean)
    Whether this address is default address in case multiple addresses are specified.
    Example: true

  - `hotelPolicyRules.maxHotelPriceByLocation.maxHotelPriceByLocationProps.maxPricePerLocationList.address.languageCode` (string)
    BCP-47 language code of the contents of this address (if known). This is often the UI 
language of the input form or is expected to match one of the languages used in the 
address' country/region, or their transliterated equivalents.
This can affect formatting in certain countries, but is not critical to the correctness 
of the data and will never affect any validation or other non-formatting related operations.
Examples: "zh-Hant", "ja", "ja-Latn", "en".
    Example: en

  - `hotelPolicyRules.maxHotelPriceByLocation.maxHotelPriceByLocationProps.maxPricePerLocationList.address.locality` (string)
    Generally refers to the city/town portion of the address.
    Example: San Francisco

  - `hotelPolicyRules.maxHotelPriceByLocation.maxHotelPriceByLocationProps.maxPricePerLocationList.address.locationCode` (string)
    IATA 3-letter location code. See https://www.iata.org/en/services/codes.
    Example: LAX

  - `hotelPolicyRules.maxHotelPriceByLocation.maxHotelPriceByLocationProps.maxPricePerLocationList.address.organization` (string)
    The name of the organization at the address.
    Example: Spotnana

  - `hotelPolicyRules.maxHotelPriceByLocation.maxHotelPriceByLocationProps.maxPricePerLocationList.address.postalCode` (string)
    Postal code of the address. This is a required field when setting for a user/legal entity/company etc.
    Example: 94130

  - `hotelPolicyRules.maxHotelPriceByLocation.maxHotelPriceByLocationProps.maxPricePerLocationList.address.continentCode` (string)
    2 letter continent code of the continent this address falls in.
    Example: AF

  - `hotelPolicyRules.maxHotelPriceByLocation.maxHotelPriceByLocationProps.maxPricePerLocationList.address.recipients` (array)
    The recipient at the address.

  - `hotelPolicyRules.maxHotelPriceByLocation.maxHotelPriceByLocationProps.maxPricePerLocationList.address.regionCode` (string, required)
    Region code of the country/region of the address.
    Example: US

  - `hotelPolicyRules.maxHotelPriceByLocation.maxHotelPriceByLocationProps.maxPricePerLocationList.address.regionName` (string)
    Region name of the country/region of the address.
    Example: America

  - `hotelPolicyRules.maxHotelPriceByLocation.maxHotelPriceByLocationProps.maxPricePerLocationList.address.revision` (integer)
    Example: 1

  - `hotelPolicyRules.maxHotelPriceByLocation.maxHotelPriceByLocationProps.maxPricePerLocationList.address.sortingCode` (string)
    Additional, country-specific, sorting code. This is not used
in most regions. Where it is used, the value is either a string like
"CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number
alone, representing the "sector code" (Jamaica), "delivery area indicator"
(Malawi) or "post office indicator" (e.g. Côte d'Ivoire).
    Example: Jamaica

  - `hotelPolicyRules.maxHotelPriceByLocation.maxHotelPriceByLocationProps.maxPricePerLocationList.address.sublocality` (string)
    Sublocality of the address. This can be neighborhoods, boroughs, districts.

  - `hotelPolicyRules.maxHotelPriceByLocation.maxHotelPriceByLocationProps.maxPricePerLocationList.address.timezone` (string)
    Time zone of the address.
    Example: America/Los_Angeles

  - `hotelPolicyRules.maxHotelPriceByLocation.maxHotelPriceByLocationProps.maxPricePerLocationList.address.coordinates` (object)
    Latitude and Longitude for a Location

  - `hotelPolicyRules.maxHotelPriceByLocation.maxHotelPriceByLocationProps.maxPricePerLocationList.address.coordinates.latitude` (number, required)
    Latitude of the Location
    Example: 77.1025

  - `hotelPolicyRules.maxHotelPriceByLocation.maxHotelPriceByLocationProps.maxPricePerLocationList.address.coordinates.longitude` (number, required)
    Longitude of the Location
    Example: 28.7041

  - `hotelPolicyRules.maxHotelPriceByLocation.maxHotelPriceByLocationProps.maxPricePerLocationList.isTaxIncluded` (boolean)

  - `hotelPolicyRules.hotelAdvanceBookingWindow` (object)
    Hotel rule to describe whether to use default policy or different rule for advance booking.

  - `hotelPolicyRules.hotelAdvanceBookingWindow.hotelAdvanceBookingWindowProps` (object)
    Number of advance days for a hotel booking.

  - `hotelPolicyRules.hotelAdvanceBookingWindow.hotelAdvanceBookingWindowProps.numDaysInAdvance` (integer, required)

  - `hotelPolicyRules.hotelCancellation` (object)
    Hotel rule to describe whether to use default policy or allow booking of any specific type 
of cancellation.

  - `hotelPolicyRules.hotelCancellation.hotelCancellationProps` (object)
    Different types of cancellation rules for hotel booking.

  - `hotelPolicyRules.hotelCancellation.hotelCancellationProps.type` (string, required)
    Enum: "NONE", "REFUNDABLE", "REFUNDABLE_WITH_PENALTY", "DONT_ALLOW"

  - `hotelPolicyRules.hotelCancellation.hotelCancellationProps.conditionalRefundability` (object)
    Configuration for time-based exceptions to hotel refundability or cancellation policy rules.
When enabled, otherwise restricted hotel rates may be allowed if booking occurs within the
configured window before check-in.

  - `hotelPolicyRules.hotelCancellation.hotelCancellationProps.conditionalRefundability.enableGracePeriodLogic` (boolean)
    When true, applies the configured booking-window exception.

  - `hotelPolicyRules.hotelCancellation.hotelCancellationProps.conditionalRefundability.allowedBookingWindowHours` (integer)
    Number of hours before check-in during which the exception applies.
Only evaluated when enableGracePeriodLogic is true.

  - `hotelPolicyRules.hotelChainCodes` (object)
    Hotel rule to describe whether to use default policy or use a different set of allowed hotel 
chain codes.

  - `hotelPolicyRules.hotelChainCodes.hotelChainCodesProps` (object)
    List of hotel chain codes.

  - `hotelPolicyRules.hotelChainCodes.hotelChainCodesProps.hotelChainCodes` (array, required)

  - `hotelPolicyRules.hotelStarRating` (object)
    Hotel rule to describe whether to use default policy rule or use the specific range of star
rated hotels.

  - `hotelPolicyRules.hotelStarRating.approvalProcessType` (string)
    Out of policy action to take when hotel star rating rule is violated.
    Enum: "NONE", "SOFT_APPROVAL", "HARD_APPROVAL", "PASSIVE_APPROVAL", "PREVENT_BOOKING", "PRE_APPROVAL"

  - `hotelPolicyRules.hotelStarRating.hotelStarRatingProps` (object)
    Range of hotel star ratings with optional major chain exemptions.

  - `hotelPolicyRules.hotelStarRating.hotelStarRatingProps.ratingRange` (object, required)

  - `hotelPolicyRules.hotelStarRating.hotelStarRatingProps.ratingRange.min` (number)
    Minimum value - inclusive.

  - `hotelPolicyRules.hotelStarRating.hotelStarRatingProps.ratingRange.max` (number)
    Maximum value - inclusive.

  - `hotelPolicyRules.hotelStarRating.hotelStarRatingProps.enableMajorChainExemptions` (boolean)
    Master toggle for major chain exemptions. When false, all major chain exemption ranges are ignored.

  - `hotelPolicyRules.hotelStarRating.hotelStarRatingProps.ratingRangeByLocation` (array)
    Location-specific star rating overrides. More specific locations take precedence (City > Country > Region).

  - `hotelPolicyRules.hotelStarRating.hotelStarRatingProps.ratingRangeByLocation.enableMajorChainExemption` (boolean)
    Per-location toggle for major chain exemption.

  - `hotelPolicyRules.hotelMedianRateNightly` (object)
    Defines the attributes/filters used to identify candidate hotels
for calculating the median nightly rate in hotel search.

The calculated median rate serves as the reference value for
MaxHotelBookingPriceProps when enforcing price limits.

  - `hotelPolicyRules.hotelMedianRateNightly.hotelMedianRateProps` (object)
    Props for hotel median rate calculation.

  - `hotelPolicyRules.hotelMedianRateNightly.hotelMedianRateProps.searchRadius` (object, required)
    Specifies the length or a distance.

  - `hotelPolicyRules.hotelMedianRateNightly.hotelMedianRateProps.searchRadius.length` (number, required)
    Distance from search point.
    Example: 150

  - `hotelPolicyRules.hotelMedianRateNightly.hotelMedianRateProps.searchRadius.unit` (string, required)
    Unit of measure being applied.
    Enum: "UNKNOWN_UNIT", "KM", "MILE", "CENTIMETER", "METER"

  - `hotelPolicyRules.hotelMedianRateNightly.hotelMedianRateProps.hideRateStatistics` (boolean)
    If true, rate statistics will be hidden.

  - `hotelPolicyRules.hotelMedianRateNightly.hotelMedianRateProps.prepaidQualifier` (string)
    Filter for prepaid rates to include in median calculation.
    Enum: "INCLUDE_PREPAID", "EXCLUDE_PREPAID", "PREPAID_ONLY"

  - `hotelPolicyRules.hotelMedianRateNightly.hotelMedianRateProps.refundableOnly` (boolean)
    If true, only refundable rates will be included in median calculation.

  - `hotelPolicyRules.hotelMedianRateNightly.hotelMedianRateProps.statisticalMethod` (string)
    Statistical method used to calculate the recommended maximum hotel rate. Defaults to MEDIAN. Buffer and statistical method can be adjusted per policy.
    Enum: "MEDIAN", "MEAN"

  - `hotelPolicyRules.hotelMedianRateNightly.hotelMedianRateProps.preferredPropertiesRateStatsLimit` (object)
    Configures limiting hotel rate statistics to preferred properties.
The enable flag and minimum threshold are evaluated together; when enabled,
calculation falls back to all properties if the minimum is not met.

  - `hotelPolicyRules.hotelMedianRateNightly.hotelMedianRateProps.preferredPropertiesRateStatsLimit.limitCalculationToPreferredProperties` (boolean)
    When enabled, rate statistics are calculated using preferred properties only.

  - `hotelPolicyRules.hotelMedianRateNightly.hotelMedianRateProps.preferredPropertiesRateStatsLimit.minimumPreferredPropertiesRequired` (integer)
    Minimum preferred properties required before limiting calculation to preferred
properties. Must be greater than 0 when enabled.

  - `hotelPolicyRules.hotelCentralTierExemption` (object)
    Central tier exemption configuration for hotel rules. Configures which hotel preference tiers bypass individual policy rules. Properties in selected tiers are considered in-policy regardless of the rule configuration.

  - `hotelPolicyRules.hotelCentralTierExemption.hotelCentralTierExemptionProps` (object)
    Props for hotel central tier exemption. Choose one exemption mode.

  - `hotelPolicyRules.hotelCentralTierExemption.hotelCentralTierExemptionProps.allRulesAllTiers` (boolean)
    When true, all preference tiers are exempted for all hotel rules.

  - `hotelPolicyRules.hotelCentralTierExemption.hotelCentralTierExemptionProps.ruleTierExemptionConfig` (object)
    Per-rule tier exemption configuration with defaults.

  - `hotelPolicyRules.hotelCentralTierExemption.hotelCentralTierExemptionProps.ruleTierExemptionConfig.defaultExemptedTiers` (array)
    Default tiers exempted for every rule not explicitly listed in ruleTierExemptions.

  - `hotelPolicyRules.hotelCentralTierExemption.hotelCentralTierExemptionProps.ruleTierExemptionConfig.ruleTierExemptions` (array)
    Per-rule exemption configuration. Overrides defaultExemptedTiers for the listed rule types.

  - `hotelPolicyRules.hotelCentralTierExemption.hotelCentralTierExemptionProps.ruleTierExemptionConfig.ruleTierExemptions.ruleType` (string, required)
    Policy rule types applicable to hotel central tier exemption configuration.
    Enum: "HOTEL_RESTRICTED_KEYWORDS", "HOTEL_PROPERTY_TYPE", "HOTEL_ADVANCE_BOOKING_WINDOW", "HOTEL_RATING", "MAX_HOTEL_PRICE_BY_LOCATION", "MAX_HOTEL_BOOKING_PRICE"

  - `hotelPolicyRules.hotelCentralTierExemption.hotelCentralTierExemptionProps.ruleTierExemptionConfig.ruleTierExemptions.allTiers` (boolean)
    When true, all preference tiers are exempted for this rule.

  - `hotelPolicyRules.hotelCentralTierExemption.hotelCentralTierExemptionProps.ruleTierExemptionConfig.ruleTierExemptions.exemptedTiers` (object)
    List of preference tier levels.

  - `hotelPolicyRules.hotelCentralTierExemption.hotelCentralTierExemptionProps.ruleTierExemptionConfig.ruleTierExemptions.exemptedTiers.tiers` (array)

  - `airPolicyRules` (object)
    Details of rules related to air.

  - `airPolicyRules.restrictedAirlines` (object)
    Air rule to describe whether to use default policy or use the specific set of airlines that 
are restricted.

  - `airPolicyRules.restrictedAirlines.restrictedAirlinesProps` (object)
    List of IATA Airline code.

  - `airPolicyRules.restrictedAirlines.restrictedAirlinesProps.airlineCodes` (array, required)

  - `airPolicyRules.restrictedAirCrafts` (object)
    Air rule to describe whether to use default policy or use the specific set of air crafts 
that are restricted.

  - `airPolicyRules.restrictedAirCrafts.restrictedAirCraftsProps` (object)
    List of IATA Aircraft code.

  - `airPolicyRules.restrictedAirCrafts.restrictedAirCraftsProps.airCraftCodes` (array, required)

  - `airPolicyRules.maxFlightBookingPriceByDuration` (object)
    Air rule to describe whether to use default policy or different set of max booking price
for different flight durations.

  - `airPolicyRules.maxFlightBookingPriceByDuration.maxFlightBookingPriceByDurationProps` (object)
    List of max price of flight booking for different flight duration.

  - `airPolicyRules.maxFlightBookingPriceByDuration.maxFlightBookingPriceByDurationProps.maxPricePerDurationList` (array, required)

  - `airPolicyRules.maxFlightBookingPriceByDuration.maxFlightBookingPriceByDurationProps.maxPricePerDurationList.durationRange` (object, required)

  - `airPolicyRules.maxFlightBookingPriceByDuration.maxFlightBookingPriceByDurationProps.maxPricePerDurationList.durationRange.min` (integer)
    Minimum value - inclusive.

  - `airPolicyRules.maxFlightBookingPriceByDuration.maxFlightBookingPriceByDurationProps.maxPricePerDurationList.durationRange.max` (integer)
    Maximum value - inclusive.

  - `airPolicyRules.maxFlightBookingPriceByDuration.maxFlightBookingPriceByDurationProps.isTaxIncluded` (boolean)

  - `airPolicyRules.flightCabinUpgrade` (object)
    Air rule to describe whether to use default policy or specific rules regarding flight cabin 
upgrade.

  - `airPolicyRules.flightCabinUpgrade.flightCabinUpgradeProps` (object)
    Details whether flight cabin upgrade is allowed or not if cheaper.

  - `airPolicyRules.flightCabinUpgrade.flightCabinUpgradeProps.isAllowed` (boolean, required)

  - `airPolicyRules.flightAdvanceBookingWindow` (object)
    Air rule to describe whether to use default policy or a different advance booking window for
a flight.

  - `airPolicyRules.flightAdvanceBookingWindow.flightAdvanceBookingWindowProps` (object)
    Number of days in advance one can book a flight.

  - `airPolicyRules.flightAdvanceBookingWindow.flightAdvanceBookingWindowProps.numDaysInAdvance` (integer, required)

  - `airPolicyRules.flightTicketsRefundable` (object)
    Air rule to describe whether to use default policy or different rule regarding refundable
flight tickets.

  - `airPolicyRules.flightTicketsRefundable.approvalProcessType` (string)
    Out of policy action to take when a rule is violated.
    Enum: "NONE", "SOFT_APPROVAL", "HARD_APPROVAL", "PASSIVE_APPROVAL", "PREVENT_BOOKING", "PRE_APPROVAL"

  - `airPolicyRules.flightTicketsRefundable.flightTicketsRefundableProps` (object)
    Different type of refund policy allowed for flight ticket booking.

  - `airPolicyRules.flightTicketsRefundable.flightTicketsRefundableProps.type` (string, required)
    Enum: "NONE", "REFUNDABLE", "REFUNDABLE_WITH_PENALTY", "DONT_ALLOW"

  - `airPolicyRules.flightTicketsRefundable.flightTicketsRefundableProps.types` (array)
    List of allowed refundability types for flight ticket booking.

  - `airPolicyRules.flightTicketsChangeable` (object)
    Air rule to describe whether to use default policy or different rule regarding flight
tickets exchange.

  - `airPolicyRules.flightTicketsChangeable.flightTicketsChangeableProps` (object)
    Different type of ticket exchange policy allowed for flight ticket booking.

  - `airPolicyRules.flightTicketsChangeable.flightTicketsChangeableProps.type` (string, required)
    Enum: "NONE", "CHANGEABLE", "CHANGEABLE_WITH_PENALTY", "DONT_ALLOW"

  - `airPolicyRules.flightTicketsChangeable.flightTicketsChangeableProps.types` (array)
    List of allowed changeability types for flight ticket booking.

  - `airPolicyRules.highestFlightCabinByDurationDomestic` (object)
    Air rule to describe whether to use default policy or different set of rules for cabin based
on flight duration.

  - `airPolicyRules.highestFlightCabinByDurationDomestic.highestFlightCabinByDurationProps` (object)
    List of highest cabin that can be booked for different flight durations.

  - `airPolicyRules.highestFlightCabinByDurationDomestic.highestFlightCabinByDurationProps.highestCabinForDurationList` (array, required)

  - `airPolicyRules.highestFlightCabinByDurationDomestic.highestFlightCabinByDurationProps.highestCabinForDurationList.cabin` (string, required)
    Flight cabin
    Enum: "UNKNOWN_CABIN", "ECONOMY", "PREMIUM_ECONOMY", "BUSINESS", "FIRST"

  - `airPolicyRules.highestFlightCabinOvernight` (object)
    Air rule to describe whether to use default policy or different cabin rule for overnight 
flight.

  - `airPolicyRules.highestFlightCabinOvernight.highestFlightCabinOvernightProps` (object)
    Highest cabin that can be booked for overnight flight.

  - `airPolicyRules.highestFlightCabinOvernight.highestFlightCabinOvernightProps.overnightTimeParams` (object)
    This defines what is considered as overnight.

  - `airPolicyRules.highestFlightCabinOvernight.highestFlightCabinOvernightProps.overnightTimeParams.nightTimeStart` (object, required)
    ISO8601 Local Time

  - `airPolicyRules.highestFlightCabinOvernight.highestFlightCabinOvernightProps.overnightTimeParams.nightTimeStart.iso8601` (string, required)
    Example: 17:32

  - `airPolicyRules.highestFlightCabinOvernight.highestFlightCabinOvernightProps.overnightTimeParams.includeLayover` (boolean, required)
    Whether layover time should be included in the overnight time.

  - `airPolicyRules.highestFlightCabinOvernight.highestFlightCabinOvernightProps.overnightTimeParams.nightTimeOverlapMinutes` (integer, required)
    The minimum night flight time needed to qualify as an overnight flight.

  - `airPolicyRules.differenceBetweenFlightFareAndMedianFare` (object)
    Air rule to describe whether to use default policy or different rule for difference between
a flight fare and median fare of the flights for a destination.
Note: Median fare was calculated based on number of stops, cabin class and flight duration.

  - `airPolicyRules.differenceBetweenFlightFareAndMedianFare.differenceBetweenFlightFareAndMedianFareProps` (object)
    Allowed difference between flight's total fare and median fare for all
flights for that destination.

  - `airPolicyRules.differenceBetweenFlightFareAndMedianFare.differenceBetweenFlightFareAndMedianFareProps.percentage` (integer, required)
    Percentage difference between flight's total fare and median fare for all
flights for that destination.

  - `airPolicyRules.co2EmissionPerPassengerPerKm` (object)
    Air rule to describe whether to use default policy or different rule regarding CO2 emission.

  - `airPolicyRules.co2EmissionPerPassengerPerKm.co2EmissionPerPassengerPerKmProps` (object)
    Maximum allowed Co2 emission (in grams) per passenger per flight distance covered (in Kms).

  - `airPolicyRules.co2EmissionPerPassengerPerKm.co2EmissionPerPassengerPerKmProps.emission` (number, required)

  - `airPolicyRules.maxFlightBookingPriceInternational` (object)
    Max allowed flight booking price for that selected cabin.

  - `airPolicyRules.maxFlightBookingPriceInternational.maxFlightBookingPriceProps` (object)
    Air rule to describing how the maximum allowed flight price will be calculated and set for policy.

  - `airPolicyRules.maxFlightBookingPriceInternational.maxFlightBookingPriceProps.type` (string, required)
    Enum: "MINIMUM", "MEDIAN", "LOWEST_LOGICAL_FARE"

  - `airPolicyRules.maxFlightBookingPriceInternational.maxFlightBookingPriceProps.sign` (string, required)
    Enum: "MORE", "LESS"

  - `airPolicyRules.maxFlightBookingPriceInternational.maxFlightBookingPriceProps.difference` (object, required)

  - `airPolicyRules.maxFlightBookingPriceInternational.maxFlightBookingPriceProps.difference.percentage` (number)
    Example: 20

  - `airPolicyRules.maxFlightBookingPriceInternational.maxFlightBookingPriceProps.isTaxIncluded` (boolean)

  - `airPolicyRules.lowestLogicalFare` (object)

  - `airPolicyRules.lowestLogicalFare.props` (object)
    Properties which will be used to filter candidates for a given flight in order to calculate lowest possible fare for the group.

  - `airPolicyRules.lowestLogicalFare.props.flightTimeWindowInHoursDomestic` (integer)
    Time window (in hours) applied at both departure and arrival to get time bounds of candidate flights for domestic travel.

  - `airPolicyRules.lowestLogicalFare.props.flightTimeWindowInHoursInternational` (integer)
    Time window (in hours) applied at both departure and arrival to get time bounds of candidate flights for international travel.

  - `airPolicyRules.lowestLogicalFare.props.maxLayoverDurationInHoursDomestic` (integer)
    Maximum layover duration (in hours) possible for candidate flights for domestic travel.

  - `airPolicyRules.lowestLogicalFare.props.maxLayoverDurationInHoursInternational` (integer)
    Maximum layover duration (in hours) possible for candidate flights for international travel.

  - `airPolicyRules.lowestLogicalFare.props.maxLayoverDurationMinutesDomestic` (integer)
    Maximum layover duration (in minutes) possible for candidate flights for domestic travel.
    Example: 120

  - `airPolicyRules.lowestLogicalFare.props.maxLayoverDurationMinutesInternational` (integer)
    Maximum layover duration (in minutes) possible for candidate flights for international travel.
    Example: 150

  - `airPolicyRules.lowestLogicalFare.props.flightTimeWindowMinutesDomestic` (integer)
    Time window (in minutes) applied at both departure and arrival 
to get time bounds of candidate flights for domestic travel.
    Example: 60

  - `airPolicyRules.lowestLogicalFare.props.flightTimeWindowMinutesInternational` (integer)
    Time window (in minutes) applied at both departure and arrival 
to get time bounds of candidate flights for international travel.
    Example: 90

  - `airPolicyRules.lowestLogicalFare.props.maxNumberOfStops` (string)
    Maximum number of stops possible in a leg to be for it to be considered as a valid llf candidate.
    Enum: "ANY", "ONE_OR_LESS", "TWO_OR_LESS", "FEWEST"

  - `airPolicyRules.lowestLogicalFare.props.airportConnectionChanges` (string)
    Is more than one distinct airport possible in a leg.
    Enum: "NOT_ALLOWED"

  - `airPolicyRules.lowestLogicalFare.props.rejectMixCabinFlights` (boolean)
    When true, reject flights with mixed cabin classes from LLF candidates.

  - `airPolicyRules.lowestLogicalFare.props.sameFlightOnlyDomestic` (boolean)
    When true, LLF candidates are restricted to the traveler's exact selected
flight (matched by marketing flight number) instead of a time-window search
for domestic travel.

  - `airPolicyRules.lowestLogicalFare.props.sameFlightOnlyInternational` (boolean)
    When true, LLF candidates are restricted to the traveler's exact selected
flight (matched by marketing flight number) instead of a time-window search
for international travel.

  - `airPolicyRules.lowestLogicalFare.props.carrier` (object)
    Carriers which may be excluded / included for llf calculation.

  - `airPolicyRules.lowestLogicalFare.props.carrier.type` (string)
    Whether to include / exclude carriers.
    Enum: "PREFERRED", "EXCLUDE"

  - `airPolicyRules.lowestLogicalFare.props.carrier.airlines` (array)
    List of airline codes.

  - `isRestrictive` (boolean)
    True if policy is a restrictive policy.
    Example: true

  - `rules` (array)
    A list of general policy rules for all travel types air, hotel, car and rail.

  - `rules.ruleType` (string, required)
    Policy Rule type.
    Enum: "BASIC_ECONOMY_FARES_DOMESTIC", "BASIC_ECONOMY_FARES_INTERNATIONAL", "CABIN_CLASS_NOT_ALLOWED_DOMESTIC", "CABIN_CLASS_NOT_ALLOWED_INTERNATIONAL", "HOTEL_RATE_CONDITIONS_NOT_ALLOWED", "CAR_TYPES_NOT_ALLOWED", "RAIL_ADVANCE_BOOKING_WINDOW", "MAX_RAIL_BOOKING_PRICE_BY_DURATION", "HIGHEST_RAIL_TRAVEL_CLASS_BY_DURATION", "RAIL_TICKETS_REFUNDABLE", "HOTEL_RESTRICTED_KEYWORDS", "FLIGHT_ADVANCE_BOOKING_WINDOW_DOMESTIC", "FLIGHT_ADVANCE_BOOKING_WINDOW_INTERNATIONAL", "ALLOWED_AIR_ADDONS", "MAX_HOTEL_BOOKING_PRICE", "CAR_ENGINE_TYPES_NOT_ALLOWED", "LOWEST_FARE_PER_HOTEL_PROPERTY", "AIR_RESTRICTED_FARES", "RESTRICT_AIRPORT_TRANSFERS", "HOTEL_LPR_FILTER", "HOTEL_PROPERTY_TYPE", "LIMO_TYPES_NOT_ALLOWED", "AIR_ANCILLARY"

  - `rules.action` (object)

  - `rules.action.preventBooking` (object)
    Whether to allow booking if a rule is violated.

  - `rules.action.preventBooking.prevent` (boolean)

  - `rules.action.preventBooking.reason` (string)

  - `rules.policyValue` (object)

  - `rules.policyValue.universalProps` (object)
    Universal Props.

  - `rules.policyValue.universalProps.cabinClassNotAllowedDomesticProps` (object)
    List of cabins which should not be allowed.

  - `rules.policyValue.universalProps.cabinClassNotAllowedDomesticProps.cabins` (array, required)

  - `rules.policyValue.universalProps.cabinClassNotAllowedInternationalProps` (object)
    List of cabins which should not be allowed.

  - `rules.policyValue.universalProps.carTypesNotAllowedProps` (object)
    List of allowed car types.

  - `rules.policyValue.universalProps.carEngineTypesNotAllowedProps` (object)
    List of car engine types.

  - `rules.policyValue.universalProps.carEngineTypesNotAllowedProps.carEngineTypes` (array, required)

  - `rules.policyValue.universalProps.hotelRateConditionsNotAllowedProps` (object)
    List of cancellation types and payment options which should not be allowed.

  - `rules.policyValue.universalProps.hotelRateConditionsNotAllowedProps.types` (array, required)

  - `rules.policyValue.universalProps.railAdvanceBookingWindowProps` (object)
    Number of days in advance one can book a Rail ticket.

  - `rules.policyValue.universalProps.railAdvanceBookingWindowProps.numDaysInAdvance` (integer, required)

  - `rules.policyValue.universalProps.maxRailBookingPriceByDurationProps` (object)
    List of max price of rail booking for different rail duration.

  - `rules.policyValue.universalProps.maxRailBookingPriceByDurationProps.maxPricePerDurationList` (array, required)

  - `rules.policyValue.universalProps.maxRailBookingPriceByDurationProps.isTaxIncluded` (boolean)

  - `rules.policyValue.universalProps.railTicketsRefundableProps` (object)
    Different type of refund policy allowed for rail ticket booking.

  - `rules.policyValue.universalProps.railTicketsRefundableProps.type` (string, required)
    Enum: "REFUNDABLE_WITHOUT_FEES", "REFUNDABLE_WITH_OR_WITHOUT_FEES", "NON_REFUNDABLE"

  - `rules.policyValue.universalProps.highestRailTravelClassByDurationProps` (object)
    List of highest travel class that can be booked for different rail durations.

  - `rules.policyValue.universalProps.highestRailTravelClassByDurationProps.highestTravelClassForDurationList` (array, required)

  - `rules.policyValue.universalProps.highestRailTravelClassByDurationProps.highestTravelClassForDurationList.travelClass` (string, required)
    Travel class
    Enum: "FIRST", "STANDARD", "BUSINESS", "SLEEPER", "STANDARD_PREMIUM", "BUSINESS_PREMIUM", "COACH", "ROOM", "EXECUTIVE"

  - `rules.policyValue.universalProps.hotelRestrictedKeywordsProps` (object)
    List of keywords that should not be allowed in hotel name/description.

  - `rules.policyValue.universalProps.hotelRestrictedKeywordsProps.hotelRestrictedKeywordsList` (array)

  - `rules.policyValue.universalProps.hotelRestrictedKeywordsProps.hotelRestrictedKeywordsList.keyword` (string, required)
    Keyword that should not be allowed in hotel name/description.

  - `rules.policyValue.universalProps.hotelRestrictedKeywordsProps.hotelRestrictedKeywordsList.reason` (string, required)
    Reason for not allowing the keyword.

  - `rules.policyValue.universalProps.hotelRestrictedKeywordsProps.exemptMajorChains` (boolean)
    When true, hotels belonging to major chains (Accor, Hilton, Hyatt, IHG, Marriott)
are exempt from restricted keyword checks.

  - `rules.policyValue.universalProps.flightAdvanceBookingWindowDomesticProps` (object)
    Number of days in advance one can book a domestic flight.

  - `rules.policyValue.universalProps.flightAdvanceBookingWindowDomesticProps.numDaysInAdvance` (integer, required)

  - `rules.policyValue.universalProps.flightAdvanceBookingWindowInternationalProps` (object)
    Number of days in advance one can book an international flight.

  - `rules.policyValue.universalProps.flightAdvanceBookingWindowInternationalProps.numDaysInAdvance` (integer, required)

  - `rules.policyValue.universalProps.allowedAirAddonsProps` (object)
    Add-ons which can be booked on a central card as part of an air reservation.

  - `rules.policyValue.universalProps.allowedAirAddonsProps.addons` (array, required)

  - `rules.policyValue.universalProps.allowedAirAddonsProps.paymentSourceAccessTypes` (array)

  - `rules.policyValue.universalProps.maxHotelBookingPriceProps` (object)
    Defines the maximum allowed hotel booking price relative to the
median nightly rate calculated using HotelMedianRate.

This rule enforces whether a booking can exceed or must remain
below the median rate by a configured difference value.

  - `rules.policyValue.universalProps.maxHotelBookingPriceProps.isTaxIncluded` (boolean)

  - `rules.policyValue.universalProps.maxHotelBookingPriceProps.type` (string, required)
    Enum: "MORE_THAN_MEDIAN", "LESS_THAN_MEDIAN"

  - `rules.policyValue.universalProps.lowestFarePerHotelPropertyProps` (object)
    Props for lowest fare per hotel property rule.

  - `rules.policyValue.universalProps.lowestFarePerHotelPropertyProps.onlyAllowLowestFare` (boolean, required)
    If true, only the lowest fare per hotel property will be allowed.

  - `rules.policyValue.universalProps.airRestrictedFaresProps` (object)
    Airline fare restrictions.

  - `rules.policyValue.universalProps.airRestrictedFaresProps.restrictedKeywords` (array, required)

  - `rules.policyValue.universalProps.airRestrictedFaresProps.restrictedKeywords.keyword` (string, required)
    Restricted keyword.

  - `rules.policyValue.universalProps.airRestrictedFaresProps.restrictedKeywords.airlineCode` (string)
    IATA airline code. If not set, the restriction applies to all airlines.

  - `rules.policyValue.universalProps.restrictAirportTransfersProps` (object)
    Restrict airport transfers configuration.

  - `rules.policyValue.universalProps.restrictAirportTransfersProps.isRestricted` (boolean, required)
    Whether airport transfers are restricted or not.

  - `rules.policyValue.universalProps.hotelLprFilterProps` (object)
    Properties for LPR filter configuration.

  - `rules.policyValue.universalProps.hotelLprFilterProps.isEnabled` (boolean, required)
    If true, only the lowest property rate is allowed.

  - `rules.policyValue.universalProps.hotelLprFilterProps.lprFilterConfig` (object)
    Configuration for filtering rates in LPR calculation.

  - `rules.policyValue.universalProps.hotelLprFilterProps.lprFilterConfig.rateConditions` (array)
    Rate conditions to exclude (NON_REFUNDABLE, PREPAID, etc.)

  - `rules.policyValue.universalProps.hotelLprFilterProps.lprFilterConfig.restrictedKeywords` (array)
    Keywords to exclude from LPR calculation

  - `rules.policyValue.universalProps.hotelLprFilterProps.lprFilterConfig.excludedRateTypes` (array)
    Rate types to exclude (CORPORATE, GOVERNMENT, etc.)

  - `rules.policyValue.universalProps.hotelPropertyTypeProps` (object)
    Properties for hotel property type restriction rule.

  - `rules.policyValue.universalProps.hotelPropertyTypeProps.restrictedPropertyTypes` (array, required)
    List of hotel property types that are restricted.

  - `rules.policyValue.universalProps.hotelPropertyTypeProps.approvalProcessType` (string)
    Out of policy action to take when this rule is violated.
    Enum: "NONE", "SOFT_APPROVAL", "HARD_APPROVAL", "PASSIVE_APPROVAL", "PREVENT_BOOKING", "PRE_APPROVAL"

  - `rules.policyValue.universalProps.limoTypesNotAllowedProps` (object)
    Properties for restricting limo car types.

  - `rules.policyValue.universalProps.limoTypesNotAllowedProps.limoTypes` (array, required)

  - `rules.policyValue.universalProps.airAncillaryProps` (object)
    Properties for allowing or denying specific air ancillaries.

  - `rules.policyValue.universalProps.airAncillaryProps.ancillaryWithConditions` (array, required)

  - `rules.policyValue.universalProps.airAncillaryProps.ancillaryWithConditions.ancillary` (string, required)
    Type of air ancillary.
    Enum: "SEAT", "BAGGAGE", "WIFI", "CARBON_OFFSET", "EARLY_BIRD", "ALL"

  - `rules.policyValue.universalProps.airAncillaryProps.ancillaryWithConditions.notAllowedConditions` (array)
    If any of these conditions is met, the ancillary cannot be selected.

  - `rules.policyValue.universalProps.airAncillaryProps.ancillaryWithConditions.isBlocked` (boolean)
    If true, the ancillary is blocked unconditionally.

  - `airOopReasonCodes` (object)
    OOP reason codes value. Either linked to default policy or actual values.

  - `airOopReasonCodes.props` (object)
    Out of policy reason codes.

  - `airOopReasonCodes.props.reasonCodes` (array)

  - `airOopReasonCodes.props.reasonCodes.entityId` (string)

  - `airOopReasonCodes.props.reasonCodes.displayInfo` (string)
    Question display name that the user will see. For eg, 'Choose the purpose of your trip'.

  - `airOopReasonCodes.props.reasonCodes.questionFormat` (string)
    Question types. INPUT_BOX will make user enter a free flowing text.
RADIO_BUTTON will have multiple options, user can select only one.
CHECKBOX questions contain the possible set of options, from which the user can choose multiple options.
CHECKBOX_WITH_PERCENTAGE is similar to checkbox, with the difference being that each option having an additional input field whose values must add up to 100.
    Enum: "INPUT_BOX", "RADIO_BUTTON", "CHECKBOX", "CHECKBOX_WITH_PERCENTAGE"

  - `airOopReasonCodes.props.reasonCodes.options` (array)
    List of potential options for any question. Options will be present if the question type provides options to select.

  - `airOopReasonCodes.props.reasonCodes.options.displayCode` (string, required)
    The code which is sent in answer response.

  - `airOopReasonCodes.props.reasonCodes.options.displayValue` (string)
    The text to be displayed to the user beside this option.

  - `airOopReasonCodes.props.reasonCodes.isRequired` (boolean)
    Whether its compulsory to answer the question or not.
    Example: true

  - `airOopReasonCodes.props.reasonCodes.isDisabled` (boolean)
    Whether the question is disabled or not. If true, this should not be asked.
    Example: true

  - `category` (string)
    Category of the policy.
    Enum: "EMPLOYEE", "GUEST"

## Response 201:

  - `201` (unknown)
    Created

## Response 201 fields (application/json):

  - `id` (string, required)
    Example: b93dc51f-12dd-46c7-b7d6-1cb12cd3f5b3

## Response 400:

  - `400` (unknown)
    Bad request

## Response 400 fields (application/json):

  - `debugIdentifier` (string)
    Link to debug the error internally.

  - `errorMessages` (array)

  - `errorMessages.errorCode` (string)
    Error code to identify the specific errors.

  - `errorMessages.message` (string)
    Message containing details of error.

  - `errorMessages.errorParameters` (array)
    Error message parameters.

  - `errorMessages.errorParameters.name` (string)
    Parameter name

  - `errorMessages.errorParameters.value` (string)
    Parameter value

  - `errorMessages.errorDetail` (string)
    More details about the error.

## Response 401:

  - `401` (unknown)
    Unauthorized

## Response 401 fields (application/json):

  - `debugIdentifier` (string)
    Link to debug the error internally.

  - `errorMessages` (array)

  - `errorMessages.errorCode` (string)
    Error code to identify the specific errors.

  - `errorMessages.message` (string)
    Message containing details of error.

  - `errorMessages.errorParameters` (array)
    Error message parameters.

  - `errorMessages.errorParameters.name` (string)
    Parameter name

  - `errorMessages.errorParameters.value` (string)
    Parameter value

  - `errorMessages.errorDetail` (string)
    More details about the error.

## Response 403:

  - `403` (unknown)
    Forbidden

## Response 403 fields (application/json):

  - `debugIdentifier` (string)
    Link to debug the error internally.

  - `errorMessages` (array)

  - `errorMessages.errorCode` (string)
    Error code to identify the specific errors.

  - `errorMessages.message` (string)
    Message containing details of error.

  - `errorMessages.errorParameters` (array)
    Error message parameters.

  - `errorMessages.errorParameters.name` (string)
    Parameter name

  - `errorMessages.errorParameters.value` (string)
    Parameter value

  - `errorMessages.errorDetail` (string)
    More details about the error.

