Product management
ReferenceProduct management

createFeeSet mutation

This mutation is offered as part of the product management capability, which is available to pilot partners only. If you are interested in adopting this capability, contact your Technical Account Manager.

Creates a fee set that can be associated with rate plans. Fees defined at the rate-plan level are included in the price that travelers see when booking and are either paid in advance for Expedia Collect bookings or upon arrival for Hotel Collect bookings. These fees include

  • Extra person fees (category:GUEST_FEE_PER_GUEST)
  • Service fees per person (category:SERVICE_FEE_PER_GUEST)
  • Service fees per stay (category:SERVICE_FEE_PER_ACCOMMODATION)

This mutation does not create mandatory and optional fees at a property level; those are created using the Property API. Property-level fees are not included in the price that travelers pay when booking and are collected upon arrival or during a traveler’s stay. These include

  • Mandatory fees, such as resort or cleaning fees
  • Optional fees that only apply to guests who make use of specific facilities and services, such as parking or spa fees

And you cannot define optional fees that are defined at the unit level, such as surcharges for extra beds or wifi fees. Use the createUnit mutation or updateUnit mutation to define these fees.

Syntax

1mutation {
3}

Examples

1mutation {
2 createFeeSet(
3 input: {
4 clientMutationId: "Fees_UAT_New_Schema_ALL_Example"
5 name: "Fees_UAT_New_Schema_ALL-Example"
6 propertyId: "12293874"
7 businessModel: MERCHANT
8 variesByLengthOfStay: false
9 fees: [
10 {
11 category: "GUEST_FEE_PER_GUEST"
12 charges: [{ duration: NIGHT, type: PERCENTAGE, percentage: "5" }]
13 ageCategory: "ADULT"
14 restrictions: {
15 extraGuestRange: { min: 1, max: 1 }
16 dateRange: { from: "2025-01-01", to: "2079-06-06" }
17 }
18 taxable: false
19 }
20 {
21 category: "GUEST_FEE_PER_GUEST"
22 charges: [{ duration: NIGHT, type: FLAT_AMOUNT, flatAmount: "50" }]
23 ageCategory: "CHILD_A"
24 restrictions: {
25 extraGuestRange: { min: 1, max: 1 }
26 dateRange: { from: "2025-01-01", to: "2079-06-06" }
27 }
28 taxable: false
29 }
30 {
31 category: "SERVICE_FEE_PER_GUEST"
32 charges: [
33 {
34 duration: NIGHT
35 type: FLAT_AMOUNT
36 flatAmount: "10"
37 percentage: null
38 }
39 {
40 duration: STAY
41 type: FLAT_AMOUNT
42 flatAmount: "20"
43 percentage: null
44 }
45 ]
46 ageCategory: "ADULT"
47 restrictions: {
48 extraGuestRange: { min: 1, max: 1 }
49 dateRange: { from: "2025-08-01", to: "2079-06-06" }
50 }
51 taxable: false
52 }
53 {
54 category: "SERVICE_FEE_PER_GUEST"
55 charges: [
56 {
57 duration: NIGHT
58 type: FLAT_AMOUNT
59 flatAmount: "10"
60 percentage: null
61 }
62 {
63 duration: STAY
64 type: FLAT_AMOUNT
65 flatAmount: "20"
66 percentage: null
67 }
68 ]
69 ageCategory: "CHILD_A"
70 restrictions: {
71 extraGuestRange: { min: 1, max: 1 }
72 dateRange: { from: "2025-08-01", to: "2079-06-06" }
73 }
74 taxable: false
75 }
76 {
77 category: "SERVICE_FEE_PER_ACCOMMODATION"
78 charges: [
79 { duration: NIGHT, type: FLAT_AMOUNT, flatAmount: "10" }
80 { duration: STAY, type: FLAT_AMOUNT, flatAmount: "5" }
81 { duration: STAY, type: PERCENTAGE, percentage: "5" }
82 ]
83 taxable: false
84 }
85 ]
86 }
87 ) {
88 clientMutationId
89 feeSet {
90 id
91 name
92 businessModel
93 variesByLengthOfStay
94 fees {
95 category
96 charges {
97 duration
98 type
99 percentage
100 flatAmount
101 }
102 ageCategory
103 restrictions {
104 dateRange {
105 from
106 to
107 }
108 extraGuestRange {
109 min
110 max
111 }
112 }
113 taxable
114 }
115 }
116 }
117}

Arguments

NameDescription

input

Required.
Type: CreateFeeSetInput

Types


Name
Type
Boolean
Boolean

The Boolean scalar type represents true or false.

CreateFeeSetInput
InputObject

Input parameters for creating a fee set.

FieldDescription
businessModelNot nullable.

Business model used by the property. If the property uses Expedia Traveler Preference (ETP) and manages net rates, specify MERCHANT (Expedia Collect) here. If the property uses Expedia Traveler Preference (ETP) and manages sell rates, and if the rate plan's business model is Hotel Collect, specify AGENCY (Hotel Collect) here.

Type: FeeBusinessModel
clientMutationId

Partner's transaction ID that uniquely identifies the request, which can be used to associate requests and responses for troubleshooting purposes. This ID must be unique across requests and cannot be reused. However, if a request needs to be retried, such as because it failed or timed out, the ID provided in the original request should be used. The ID can be in any format as long as it uniquely identifies the request.

Type: String
feesNot nullable.

Parameters that define how the fee is applied.

Type: Array of non nullable FeeInput
nameNot nullable.

Fee set name.

Type: String
propertyIdNot nullable.

ID of the property to which the fee set belongs.

Type: ID
variesByLengthOfStay

Whether the fee changes based on length of stay.

Type: Boolean
CreateFeeSetPayload
Object

Fee set defined for the property.

FieldDescription
clientMutationId

Partner's transaction ID that identifies the request, which can be used to correlate with partner's transaction logs. This ID must be unique across requests and cannot be reused.

Type: String
feeSetNot nullable.

Details about the fee set.

Type: FeeSet
CurrencyCode
CurrencyCode

Scalar that represents the three-letter currency code defined by the ISO 4217 standard.

Date
Date

Scalar that represents a date string compliant with the RFC 3339 profile of the ISO 8601 standard.

Decimal
Decimal

A type represending a signed decimal number (supporting up to two decimal places), which is serialized as a string.

Fee
Object

Details about a fee.

FieldDescription
ageCategory

Age category to which the fee applies.

Type: String
categoryNot nullable.

Fee category.

Type: String
chargesNot nullable.

Amount, type, and duration of the fee.

Type: Array of non nullable FeeCharge
restrictions

Restrictions applied to the fee (dates or extra guests).

Type: FeeRestrictions
taxable

Whether the fee is taxable.

Type: Boolean
FeeBusinessModel
Enum

Values for the property's business model.

NameDescription
AGENCY
MERCHANT
FeeCharge
Object

Amount, type, and duration of the fee.

FieldDescription
durationNot nullable.

Duration of time to which the fee is applied.

Type: FeeChargeDuration
flatAmount

Amount of the fee if applied as a flat amount.

Type: Money
percentage

Percentage of the rental amount if the fee is applied as a percentage.

Type: Decimal
typeNot nullable.

How the fee is applied (flat amount or percentage).

Type: FeeChargeType
FeeChargeDuration
Enum

Duration of time to which the fee is applied.

NameDescription
NIGHT
STAY
FeeChargeInput
InputObject

Amount, type, and duration of the fee. Note that when a fee's category is SERVICE_FEE_PER_ACCOMMODATION, all charges must be specified, even if the value is 0.

FieldDescription
durationNot nullable.

Duration of time to which the fee is applied.

Type: FeeChargeDuration
flatAmount

Amount of the fee if applied as a flat amount.

Type: Decimal
percentage

Percentage of the rental amount if the fee is applied as a percentage.

Type: Decimal
typeNot nullable.

How the fee is applied (flat amount or percentage).

Type: FeeChargeType
FeeChargeType
Enum

How the fee is applied (flat amount or percentage).

NameDescription
FLAT_AMOUNT
PERCENTAGE
FeeDateRange
Object

Date range when the fee is applied.

FieldDescription
fromNot nullable.

Start date of the date range.

Type: Date
to

End date of the date range.

Type: Date
FeeDateRangeInput
InputObject

Date range when the fee is applied.

FieldDescription
fromNot nullable.

Start date of the date range.

Type: Date
to

End date of the date range.

Type: Date
FeeInput
InputObject

Details about a fee.

FieldDescription
ageCategory

Age category to which the fee applies. Only applies if category is set to GUEST_FEE_PER_GUEST or SERVICE_FEE_PER_GUEST.

Type: String
categoryNot nullable.

Fee category (Guest or Service). Allowed values include GUEST_FEE_PER_GUEST, SERVICE_FEE_PER_GUEST, and SERVICE_FEE_PER_ACCOMMODATION.

Type: String
chargesNot nullable.

Amount, type, and duration of the fee.

Type: Array of non nullable FeeChargeInput
restrictions

Restrictions applied to the fee (dates or extra guests).

Type: FeeRestrictionsInput
taxable

Whether the fee is taxable.

Type: Boolean
FeeRestrictions
Object

Restrictions applied to the fee (dates or extra guests).

FieldDescription
dateRange

Date range restriction

Type: FeeDateRange
extraGuestRange

Number of guests (minimum and maximum) that are restricted.

Type: IntRange
FeeRestrictionsInput
InputObject

Restrictions applied to the fee (dates or extra guests).

FieldDescription
dateRange

Start and end dates that define the date range that is restricted.

Type: FeeDateRangeInput
extraGuestRange

Number of guests (minimum and maximum) that are restricted. Only supported when category:GUEST_FEE_PER_GUEST.

Type: IntRangeInput
FeeSet
Object

Details and fees that make up the fee set.

FieldDescription
businessModelNot nullable.

Business model used by the property.

Type: FeeBusinessModel
feesNot nullable.

One or more fees included in the fee set.

Type: Array of non nullable Fee
idNot nullable.

Fee set ID.

Type: ID
nameNot nullable.

Fee set name.

Type: String
variesByLengthOfStay

Whether the fee changes based on length of stay.

Type: Boolean
ID
ID

The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.

Int
Int

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

IntRange
Object

Range of integers.

FieldDescription
maxNot nullable.

Maximum integer value.

Type: Int
minNot nullable.

Minimum integer value.

Type: Int
IntRangeInput
InputObject

Range of integers.

FieldDescription
maxNot nullable.

Maximum integer value.

Type: Int
minNot nullable.

Minimum integer value.

Type: Int
Money
Object

Monetary amount value and its currency code.

FieldDescription
amountNot nullable.

Monetary amount value. The scale of the amount varies according to the currency or any rate conversion that may have been applied.

Type: Decimal
currencyCodeNot nullable.

Currency code.

Type: CurrencyCode
String
String

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.