APIs to configure company travel policies.
Policy to inherit the values of linked rules. If empty, consider the company default policy.
True if agent can override the PREVENT_BOOKING action. If enabled, outOfPolicyAgentApprovalInfos for all travel types should be provided.
A list of general policy rules for all travel types air, hotel, car and rail.
Out of policy reason code question to be asked to user for air booking.
Out of policy reason code question to be asked to user for hotel booking.
Out of policy reason code question to be asked to user for car booking.
Out of policy reason code question to be asked to user for rail booking.
curl -i -X POST \
  https://apis.spotnana.com/v2/companies/4974a66b-7493-4f41-908c-58ba81093947/policies \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "string",
    "type": "GROUP",
    "parentPolicyId": "f7b3b3b3-7b3b-4b3b-8b3b-3b3b3b3b3b3b",
    "currency": {
      "currencyCode": "USD"
    },
    "inPolicyApprovalInfo": {
      "approvalProcessType": "NONE",
      "designatedApprovers": [
        {
          "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
        }
      ],
      "isManagerApprover": false,
      "isEmployeeLevelDesignatedApprover": false,
      "shouldNotifyManager": false,
      "travelTypes": [
        "AIR"
      ],
      "approvalConditions": [
        {
          "rules": [
            {
              "travelRegionRule": {
                "travelRegionType": "DOMESTIC"
              }
            }
          ]
        }
      ],
      "defaultApprovers": [
        {
          "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
        }
      ]
    },
    "outOfPolicyApprovalInfo": {
      "approvalProcessType": "NONE",
      "designatedApprovers": [
        {
          "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
        }
      ],
      "isManagerApprover": false,
      "isEmployeeLevelDesignatedApprover": false,
      "shouldNotifyManager": false,
      "travelTypes": [
        "AIR"
      ],
      "approvalConditions": [
        {
          "rules": [
            {
              "travelRegionRule": {
                "travelRegionType": "DOMESTIC"
              }
            }
          ]
        }
      ],
      "defaultApprovers": [
        {
          "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
        }
      ]
    },
    "inPolicyApprovalInfos": [
      {
        "approvalProcessType": "NONE",
        "designatedApprovers": [
          {
            "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
          }
        ],
        "isManagerApprover": false,
        "isEmployeeLevelDesignatedApprover": false,
        "shouldNotifyManager": false,
        "travelTypes": [
          "AIR"
        ],
        "approvalConditions": [
          {
            "rules": [
              {
                "travelRegionRule": {}
              }
            ]
          }
        ],
        "defaultApprovers": [
          {
            "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
          }
        ]
      }
    ],
    "outOfPolicyApprovalInfos": [
      {
        "approvalProcessType": "NONE",
        "designatedApprovers": [
          {
            "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
          }
        ],
        "isManagerApprover": false,
        "isEmployeeLevelDesignatedApprover": false,
        "shouldNotifyManager": false,
        "travelTypes": [
          "AIR"
        ],
        "approvalConditions": [
          {
            "rules": [
              {
                "travelRegionRule": {}
              }
            ]
          }
        ],
        "defaultApprovers": [
          {
            "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
          }
        ]
      }
    ],
    "outOfPolicyAgentApprovalInfos": [
      {
        "approvalProcessType": "NONE",
        "designatedApprovers": [
          {
            "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
          }
        ],
        "isManagerApprover": false,
        "isEmployeeLevelDesignatedApprover": false,
        "shouldNotifyManager": false,
        "travelTypes": [
          "AIR"
        ],
        "approvalConditions": [
          {
            "rules": [
              {
                "travelRegionRule": {}
              }
            ]
          }
        ],
        "defaultApprovers": [
          {
            "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
          }
        ]
      }
    ],
    "enableAgentActionOverride": true,
    "userGroups": [
      {
        "userIds": [
          {
            "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
          }
        ],
        "legalEntityIds": [
          {
            "id": "b93dc51f-12dd-46c7-b7d6-1cb12cd3f5b3"
          }
        ],
        "officeIds": [
          {
            "id": "b93dc51f-12dd-46c7-b7d6-1cb12cd3f5b3"
          }
        ],
        "departments": [
          "string"
        ],
        "costCenters": [
          "string"
        ],
        "grades": [
          "string"
        ],
        "positionTitles": [
          "string"
        ],
        "personas": [
          "EMPLOYEE"
        ],
        "customFieldIds": [
          {
            "type": "QUESTION",
            "externalId": "string"
          }
        ],
        "countryCodes": [
          "GB"
        ],
        "workerTypes": [
          "EMPLOYEE"
        ],
        "accountingCodes": [
          "string"
        ]
      }
    ],
    "commonPolicyRules": {
      "restrictedContinents": {
        "isLinked": true
      },
      "restrictedCountries": {
        "isLinked": true
      }
    },
    "carPolicyRules": {
      "maxCarPricePerNumberOfDays": {
        "isLinked": true
      },
      "allowedCarTypes": {
        "isLinked": true
      }
    },
    "hotelPolicyRules": {
      "restrictedHotels": {
        "isLinked": true
      },
      "maxHotelPriceByLocation": {
        "isLinked": true
      },
      "hotelAdvanceBookingWindow": {
        "isLinked": true
      },
      "hotelCancellation": {
        "isLinked": true
      },
      "hotelChainCodes": {
        "isLinked": true
      },
      "hotelStarRating": {
        "isLinked": true
      },
      "hotelMedianRateNightly": {
        "isLinked": true
      }
    },
    "airPolicyRules": {
      "restrictedAirlines": {
        "isLinked": true
      },
      "restrictedAirCrafts": {
        "isLinked": true
      },
      "maxFlightBookingPriceByDuration": {
        "isLinked": true
      },
      "flightCabinUpgrade": {
        "isLinked": true
      },
      "flightAdvanceBookingWindow": {
        "isLinked": true
      },
      "flightTicketsRefundable": {
        "isLinked": true
      },
      "flightTicketsChangeable": {
        "isLinked": true
      },
      "highestFlightCabinByDurationDomestic": {
        "isLinked": true
      },
      "highestFlightCabinByDurationInternational": {
        "isLinked": true
      },
      "highestFlightCabinOvernight": {
        "isLinked": true
      },
      "differenceBetweenFlightFareAndMedianFare": {
        "isLinked": true
      },
      "co2EmissionPerPassengerPerKm": {
        "isLinked": true
      },
      "maxFlightBookingPriceInternational": {
        "isLinked": true
      },
      "maxFlightBookingPriceDomestic": {
        "isLinked": true
      },
      "lowestLogicalFare": {
        "isLinked": true
      }
    },
    "isRestrictive": true,
    "rules": [
      {
        "ruleType": "CAR_TYPES_NOT_ALLOWED",
        "action": {
          "preventBooking": {
            "prevent": false,
            "reason": "string"
          }
        },
        "policyValue": {
          "isLinked": true
        }
      }
    ],
    "airOopReasonCodes": {
      "props": {
        "reasonCodes": [
          {
            "entityId": "string",
            "displayInfo": "string",
            "questionFormat": "CHECKBOX",
            "options": [
              {
                "displayCode": "string",
                "displayValue": "string"
              }
            ],
            "isRequired": true,
            "isDisabled": true
          }
        ]
      }
    },
    "hotelOopReasonCodes": {
      "props": {
        "reasonCodes": [
          {
            "entityId": "string",
            "displayInfo": "string",
            "questionFormat": "CHECKBOX",
            "options": [
              {
                "displayCode": "string",
                "displayValue": "string"
              }
            ],
            "isRequired": true,
            "isDisabled": true
          }
        ]
      }
    },
    "carOopReasonCodes": {
      "props": {
        "reasonCodes": [
          {
            "entityId": "string",
            "displayInfo": "string",
            "questionFormat": "CHECKBOX",
            "options": [
              {
                "displayCode": "string",
                "displayValue": "string"
              }
            ],
            "isRequired": true,
            "isDisabled": true
          }
        ]
      }
    },
    "railOopReasonCodes": {
      "props": {
        "reasonCodes": [
          {
            "entityId": "string",
            "displayInfo": "string",
            "questionFormat": "CHECKBOX",
            "options": [
              {
                "displayCode": "string",
                "displayValue": "string"
              }
            ],
            "isRequired": true,
            "isDisabled": true
          }
        ]
      }
    },
    "category": "EMPLOYEE"
  }'{ "id": "b93dc51f-12dd-46c7-b7d6-1cb12cd3f5b3" }
curl -i -X GET \
  'https://apis.spotnana.com/v2/companies/4974a66b-7493-4f41-908c-58ba81093947/policies?categories=EMPLOYEE' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'{ "length": 0, "elements": [ { … } ], "totalNumResults": 0 }
curl -i -X GET \
  https://apis.spotnana.com/v2/companies/4974a66b-7493-4f41-908c-58ba81093947/policies/4974a66b-7493-4f41-908c-58ba81093947 \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'OK
User group details if membership is via HR feed. Read-only.
Policy to inherit the values of linked rules. If empty, consider the company default policy.
True if agent can override the PREVENT_BOOKING action. If enabled, outOfPolicyAgentApprovalInfos for all travel types should be provided.
A list of general policy rules for all travel types air, hotel, car and rail.
Out of policy reason code question to be asked to user for air booking.
Out of policy reason code question to be asked to user for hotel booking.
Out of policy reason code question to be asked to user for car booking.
Out of policy reason code question to be asked to user for rail booking.
{ "id": "4974a66b-7493-4f41-908c-58ba81093947", "version": 0, "updatedAt": { "iso8601": "2017-07-21T17:32Z" }, "isMembershipViaHrFeed": true, "hrFeedPolicyDetails": { "totalMemberCount": 0 }, "name": "string", "type": "GROUP", "parentPolicyId": "f7b3b3b3-7b3b-4b3b-8b3b-3b3b3b3b3b3b", "currency": { "currencyCode": "USD" }, "inPolicyApprovalInfo": { "approvalProcessType": "NONE", "designatedApprovers": [ … ], "isManagerApprover": false, "isEmployeeLevelDesignatedApprover": false, "shouldNotifyManager": false, "travelTypes": [ … ], "approvalConditions": [ … ], "defaultApprovers": [ … ] }, "outOfPolicyApprovalInfo": { "approvalProcessType": "NONE", "designatedApprovers": [ … ], "isManagerApprover": false, "isEmployeeLevelDesignatedApprover": false, "shouldNotifyManager": false, "travelTypes": [ … ], "approvalConditions": [ … ], "defaultApprovers": [ … ] }, "inPolicyApprovalInfos": [ { … } ], "outOfPolicyApprovalInfos": [ { … } ], "outOfPolicyAgentApprovalInfos": [ { … } ], "enableAgentActionOverride": true, "userGroups": [ { … } ], "commonPolicyRules": { "restrictedContinents": { … }, "restrictedCountries": { … } }, "carPolicyRules": { "maxCarPricePerNumberOfDays": { … }, "allowedCarTypes": { … } }, "hotelPolicyRules": { "restrictedHotels": { … }, "maxHotelPriceByLocation": { … }, "hotelAdvanceBookingWindow": { … }, "hotelCancellation": { … }, "hotelChainCodes": { … }, "hotelStarRating": { … }, "hotelMedianRateNightly": { … } }, "airPolicyRules": { "restrictedAirlines": { … }, "restrictedAirCrafts": { … }, "maxFlightBookingPriceByDuration": { … }, "flightCabinUpgrade": { … }, "flightAdvanceBookingWindow": { … }, "flightTicketsRefundable": { … }, "flightTicketsChangeable": { … }, "highestFlightCabinByDurationDomestic": { … }, "highestFlightCabinByDurationInternational": { … }, "highestFlightCabinOvernight": { … }, "differenceBetweenFlightFareAndMedianFare": { … }, "co2EmissionPerPassengerPerKm": { … }, "maxFlightBookingPriceInternational": { … }, "maxFlightBookingPriceDomestic": { … }, "lowestLogicalFare": { … } }, "isRestrictive": true, "rules": [ { … } ], "airOopReasonCodes": { "props": { … } }, "hotelOopReasonCodes": { "props": { … } }, "carOopReasonCodes": { "props": { … } }, "railOopReasonCodes": { "props": { … } }, "category": "EMPLOYEE" }
User group details if membership is via HR feed. Read-only.
Policy to inherit the values of linked rules. If empty, consider the company default policy.
True if agent can override the PREVENT_BOOKING action. If enabled, outOfPolicyAgentApprovalInfos for all travel types should be provided.
A list of general policy rules for all travel types air, hotel, car and rail.
Out of policy reason code question to be asked to user for air booking.
Out of policy reason code question to be asked to user for hotel booking.
Out of policy reason code question to be asked to user for car booking.
Out of policy reason code question to be asked to user for rail booking.
curl -i -X PUT \
  https://apis.spotnana.com/v2/companies/4974a66b-7493-4f41-908c-58ba81093947/policies/4974a66b-7493-4f41-908c-58ba81093947 \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "id": "4974a66b-7493-4f41-908c-58ba81093947",
    "version": 0,
    "updatedAt": {
      "iso8601": "2017-07-21T17:32Z"
    },
    "isMembershipViaHrFeed": true,
    "hrFeedPolicyDetails": {
      "totalMemberCount": 0
    },
    "name": "string",
    "type": "GROUP",
    "parentPolicyId": "f7b3b3b3-7b3b-4b3b-8b3b-3b3b3b3b3b3b",
    "currency": {
      "currencyCode": "USD"
    },
    "inPolicyApprovalInfo": {
      "approvalProcessType": "NONE",
      "designatedApprovers": [
        {
          "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
        }
      ],
      "isManagerApprover": false,
      "isEmployeeLevelDesignatedApprover": false,
      "shouldNotifyManager": false,
      "travelTypes": [
        "AIR"
      ],
      "approvalConditions": [
        {
          "rules": [
            {
              "travelRegionRule": {
                "travelRegionType": "DOMESTIC"
              }
            }
          ]
        }
      ],
      "defaultApprovers": [
        {
          "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
        }
      ]
    },
    "outOfPolicyApprovalInfo": {
      "approvalProcessType": "NONE",
      "designatedApprovers": [
        {
          "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
        }
      ],
      "isManagerApprover": false,
      "isEmployeeLevelDesignatedApprover": false,
      "shouldNotifyManager": false,
      "travelTypes": [
        "AIR"
      ],
      "approvalConditions": [
        {
          "rules": [
            {
              "travelRegionRule": {
                "travelRegionType": "DOMESTIC"
              }
            }
          ]
        }
      ],
      "defaultApprovers": [
        {
          "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
        }
      ]
    },
    "inPolicyApprovalInfos": [
      {
        "approvalProcessType": "NONE",
        "designatedApprovers": [
          {
            "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
          }
        ],
        "isManagerApprover": false,
        "isEmployeeLevelDesignatedApprover": false,
        "shouldNotifyManager": false,
        "travelTypes": [
          "AIR"
        ],
        "approvalConditions": [
          {
            "rules": [
              {
                "travelRegionRule": {}
              }
            ]
          }
        ],
        "defaultApprovers": [
          {
            "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
          }
        ]
      }
    ],
    "outOfPolicyApprovalInfos": [
      {
        "approvalProcessType": "NONE",
        "designatedApprovers": [
          {
            "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
          }
        ],
        "isManagerApprover": false,
        "isEmployeeLevelDesignatedApprover": false,
        "shouldNotifyManager": false,
        "travelTypes": [
          "AIR"
        ],
        "approvalConditions": [
          {
            "rules": [
              {
                "travelRegionRule": {}
              }
            ]
          }
        ],
        "defaultApprovers": [
          {
            "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
          }
        ]
      }
    ],
    "outOfPolicyAgentApprovalInfos": [
      {
        "approvalProcessType": "NONE",
        "designatedApprovers": [
          {
            "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
          }
        ],
        "isManagerApprover": false,
        "isEmployeeLevelDesignatedApprover": false,
        "shouldNotifyManager": false,
        "travelTypes": [
          "AIR"
        ],
        "approvalConditions": [
          {
            "rules": [
              {
                "travelRegionRule": {}
              }
            ]
          }
        ],
        "defaultApprovers": [
          {
            "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
          }
        ]
      }
    ],
    "enableAgentActionOverride": true,
    "userGroups": [
      {
        "userIds": [
          {
            "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
          }
        ],
        "legalEntityIds": [
          {
            "id": "b93dc51f-12dd-46c7-b7d6-1cb12cd3f5b3"
          }
        ],
        "officeIds": [
          {
            "id": "b93dc51f-12dd-46c7-b7d6-1cb12cd3f5b3"
          }
        ],
        "departments": [
          "string"
        ],
        "costCenters": [
          "string"
        ],
        "grades": [
          "string"
        ],
        "positionTitles": [
          "string"
        ],
        "personas": [
          "EMPLOYEE"
        ],
        "customFieldIds": [
          {
            "type": "QUESTION",
            "externalId": "string"
          }
        ],
        "countryCodes": [
          "GB"
        ],
        "workerTypes": [
          "EMPLOYEE"
        ],
        "accountingCodes": [
          "string"
        ]
      }
    ],
    "commonPolicyRules": {
      "restrictedContinents": {
        "isLinked": true
      },
      "restrictedCountries": {
        "isLinked": true
      }
    },
    "carPolicyRules": {
      "maxCarPricePerNumberOfDays": {
        "isLinked": true
      },
      "allowedCarTypes": {
        "isLinked": true
      }
    },
    "hotelPolicyRules": {
      "restrictedHotels": {
        "isLinked": true
      },
      "maxHotelPriceByLocation": {
        "isLinked": true
      },
      "hotelAdvanceBookingWindow": {
        "isLinked": true
      },
      "hotelCancellation": {
        "isLinked": true
      },
      "hotelChainCodes": {
        "isLinked": true
      },
      "hotelStarRating": {
        "isLinked": true
      },
      "hotelMedianRateNightly": {
        "isLinked": true
      }
    },
    "airPolicyRules": {
      "restrictedAirlines": {
        "isLinked": true
      },
      "restrictedAirCrafts": {
        "isLinked": true
      },
      "maxFlightBookingPriceByDuration": {
        "isLinked": true
      },
      "flightCabinUpgrade": {
        "isLinked": true
      },
      "flightAdvanceBookingWindow": {
        "isLinked": true
      },
      "flightTicketsRefundable": {
        "isLinked": true
      },
      "flightTicketsChangeable": {
        "isLinked": true
      },
      "highestFlightCabinByDurationDomestic": {
        "isLinked": true
      },
      "highestFlightCabinByDurationInternational": {
        "isLinked": true
      },
      "highestFlightCabinOvernight": {
        "isLinked": true
      },
      "differenceBetweenFlightFareAndMedianFare": {
        "isLinked": true
      },
      "co2EmissionPerPassengerPerKm": {
        "isLinked": true
      },
      "maxFlightBookingPriceInternational": {
        "isLinked": true
      },
      "maxFlightBookingPriceDomestic": {
        "isLinked": true
      },
      "lowestLogicalFare": {
        "isLinked": true
      }
    },
    "isRestrictive": true,
    "rules": [
      {
        "ruleType": "CAR_TYPES_NOT_ALLOWED",
        "action": {
          "preventBooking": {
            "prevent": false,
            "reason": "string"
          }
        },
        "policyValue": {
          "isLinked": true
        }
      }
    ],
    "airOopReasonCodes": {
      "props": {
        "reasonCodes": [
          {
            "entityId": "string",
            "displayInfo": "string",
            "questionFormat": "CHECKBOX",
            "options": [
              {
                "displayCode": "string",
                "displayValue": "string"
              }
            ],
            "isRequired": true,
            "isDisabled": true
          }
        ]
      }
    },
    "hotelOopReasonCodes": {
      "props": {
        "reasonCodes": [
          {
            "entityId": "string",
            "displayInfo": "string",
            "questionFormat": "CHECKBOX",
            "options": [
              {
                "displayCode": "string",
                "displayValue": "string"
              }
            ],
            "isRequired": true,
            "isDisabled": true
          }
        ]
      }
    },
    "carOopReasonCodes": {
      "props": {
        "reasonCodes": [
          {
            "entityId": "string",
            "displayInfo": "string",
            "questionFormat": "CHECKBOX",
            "options": [
              {
                "displayCode": "string",
                "displayValue": "string"
              }
            ],
            "isRequired": true,
            "isDisabled": true
          }
        ]
      }
    },
    "railOopReasonCodes": {
      "props": {
        "reasonCodes": [
          {
            "entityId": "string",
            "displayInfo": "string",
            "questionFormat": "CHECKBOX",
            "options": [
              {
                "displayCode": "string",
                "displayValue": "string"
              }
            ],
            "isRequired": true,
            "isDisabled": true
          }
        ]
      }
    },
    "category": "EMPLOYEE"
  }'curl -i -X DELETE \
  https://apis.spotnana.com/v2/companies/4974a66b-7493-4f41-908c-58ba81093947/policies/4974a66b-7493-4f41-908c-58ba81093947 \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'