MutationsSandbox Data Mgmt API

createReservation mutation

Creates a reservation in the sandbox environment. The mutation accepts arguments such as property ID, check-in and check-out dates, adult and child counts, and more, and it supports sending a webhook notification when the reservation is created. You can also create past, present, and future reservations. If not specified, reservation details are populated with logical test data, including the following:

  • Static, randomly generated guest names
  • Random guest credit card details
  • Unit and room type IDs are the same as the property ID
  • Rate and rate plan IDs are set to 202323288

To create reservations that align with the business models, be mindful of the following field values:

Business modelbusinessModel valueremittanceType valuesupplierOperatingModel value
Hotel CollectHOTEL_COLLECTnullAGENCY
Expedia CollectEXPEDIA_COLLECTNETMERCHANT
Updated Expedia Collect, net remittanceEXPEDIA_COLLECTNETAGENCY
Updated Expedia Collect, gross remittanceEXPEDIA_COLLECTGROSSAGENCY

Syntax

1mutation {
3}

Example

1mutation {
2 createReservation(
3 input: {
4 propertyId: "100000027",
5 checkInDate: "2024-09-06",
6 checkOutDate: "2024-09-10",
7 businessModel: EXPEDIA_COLLECT,
8 paymentInstrumentType: EXPEDIA_VIRTUAL_CARD,
9 source: "Expedia",
10 adultCount: 5,
11 accessibilityText: "Wheelchair Accessible",
12 childCount: 3,
13 childAges: [3, 6, 7],
14 multiRoomText: "Room 1 of 2, Primary Guest John Smith",
15 smokingType: "NONSMOKING",
16 specialRequest: "First Floor Room",
17 status: BOOKED,
18 remittanceType: GROSS,
19 sendNotification: true
20 }
21 ) {
22 reservation {
23 id
24 businessModel
25 checkInDate
26 checkOutDate
27 lastUpdatedDateTime
28 businessModel
29 multiRoomText
30 tidsCode
31 status
32 specialRequest
33 childCount
34 childAges
35 adultCount
36 totalGuestCount
37 bedTypes
38 smokingType
39 valueAddedPromotions {
40 id
41 description
42 }
43 accessibilityText
44 reservationIds {
45 id
46 idSource
47 }
48 rateIds {
49 id
50 idSource
51 }
52 unitIds {
53 id
54 idSource
55 }
56 primaryGuest {
57 firstName
58 lastName
59 loyaltyTier
60 emailAddress
61 supplierLoyaltyPlanInfo {
62 planCode
63 membershipNumber
64 }
65 phoneNumbers {
66 countryCode
67 areaCode
68 number
69 }
70 }
71 isReconciled
72 reconciliationType
73 }
74 }
75}

Arguments

NameDescription

input

Required.
Type: CreateReservationInput

Types


Name
Type
AddressInput
InputObject

Property address information.

FieldDescription
addressLinesNot nullable.

Lines that describe the physical street address. Two address lines are supported, and up to 40 characters are allowed in each address line.

Type: Array of non nullable String
administrativeArea

State or province of the property. Up to 40 characters are allowed.

Type: String
countryCodeNot nullable.

Three-character ISO-3166-1 country code.

Type: CountryCode
localityNot nullable.

City or locality where the property is located. Up to 40 characters are allowed.

Type: String
postalCodeNot nullable.

Postal code of the address. Up to 20 characters are allowed.

Type: String
AffiliateTravelerInput
InputObject

Input to create an affiliate (corporate) traveler.

FieldDescription
affiliateVccPaymentHandling

Payment handling details for the affiliate traveler.

Type: AffiliateVccPaymentHandlingInput
companyName

Name of the company that the guest works for. Applicable when the guest is traveling or suspecting of traveling for business.

Type: String
invoicing

Invoice details for a corporate traveler. If not specified or set to false, the reservation is assumed to be for personal travel.

Type: InvoicingInput
isAffiliateVirtualCardNot nullable.

Whether affiliate virtual card is used.

Type: Boolean
AffiliateVccPaymentHandlingInput
InputObject

Payment handling details for a corporate traveler.

FieldDescription
activationDateEnd

End date for valid range of the VCC, in ISO 8601 format (YYYY-MM-DD).

Type: LocalDate
activationDateStart

Start date for the valid range of the VCC, in ISO 8601 format (YYYY-MM-DD).

Type: LocalDate
authorizedExpense

Type of expenses that are authorized to be charged to the VCC.

Type: AuthorizedExpense
authorizingCompany

Company that will issue the authorization form for the VCC payment.

Type: String
cardContactEmail

Email address of the VCC contact.

Type: EmailAddress
cardContactFullPhoneNumber

Full phone number of the VCC contact.

Type: String
maxPaymentAttemptCount

Requested limit to number of charging attempts.

Type: Int
specifiedIncidentalExpenses

List of enumerated categories to restrict the authorized incidentals. This is only used when authorizedExpense is provided with total_plus_incidentals and restrictions on incidentals are desired.

For example, to allow any incidental expenses, specify authorized_expenses equal to totalChargesAllowed and omit specifiedIncidentalExpenses.

Type: Array of non nullable String
totalChargesAllowed

The amount that can be charged to the VCC. This is the sum of all charges, including taxes and fees.

Type: MoneyInput
verificationNumberRequired

Whether a verification number (CVC) is required by the VCC. If this is marked required, the security code field for the payment MUST be provided.

Type: Boolean
AuthorizedExpense
Enum

Type of authorized expense on the VCC.

NameDescription
PRESTAY_EXPENSES_ONLY

T VCC is for pre-stay charges only (such as deposits, cancellation fees, no-show fees). A physical card must be presented at check-in for any remaining balance, as well as incidentals.

TOTAL_BOOKING_AMOUNT

Both pre-stay charges and the total booking amount are authorized, but incidentals are not authorized. A physical card must be presented at check-in for any incidentals.

TOTAL_PLUS_INCIDENTALS

Pre-stay, total booking, and incidental expenses are authorized. See specifiedIncidentalExpenses. A physical card may be required for additional incidental expenses.

SEE_AUTHORIZATION_FORM

"Property should refer to the authorization form that will be sent either by the card provider or the authorizing company.

Boolean
Boolean

The Boolean scalar type represents true or false.

BusinessModel
Enum

Entity that collects payment for the reservation.

NameDescription
EXPEDIA_COLLECT

Expedia collects payment for the reservation.

HOTEL_COLLECT

Partner collects payment for the reservation.

BusinessModelInput
Enum

Entity that collects payment.

NameDescription
EXPEDIA_COLLECT

Expedia collects payment.

HOTEL_COLLECT

Partner collects payment.

CountryCode
CountryCode

Scalar representing a country code using the ISO 3166-1 alpha-3 standard.

CreateReservationInput
InputObject

Input object for creating a reservation.

FieldDescription
accessibilityText

Accessibility requests made by the guest for the reservation. Defaults to a single accessibility text with value \"In-room accessibility (in select rooms)\".

Type: Array of non nullable String
adultCount

Adult count. Defaults to 2.

Type: Int
affiliateSource

Point of sale (POS) where the reservation was made; identities the affiliate partner who sold the reservation to the traveler. If a traveler booked through an Expedia site, or if the value was not provided by the partner, this field is null.

Type: String
affiliateTraveler

Corporate traveler details.

Type: AffiliateTravelerInput
bedTypes

Bed types of the reservation. Defaults to \"2 Queen Beds\".

Type: String
businessModel

Entity that collects payment for the reservation. Defaults to EXPEDIA_COLLECT.

Type: BusinessModelInput
checkInDate

Check-in date (format: YYYY-MM-DD) of the reservation. Defaults to a date in a near future.

Type: Date
checkOutDate

Checkout date (format: YYYY-MM-DD) of the reservation. Defaults to a random date in the month after the check-in date.

Type: Date
childAges

Ages of children associated with the reservation. If not specified, defaults to a list of random child ages.

Type: Array of non nullable Int
childCount

Child count. If not specified, defaults to the number of child ages provided (or its default).

Type: Int
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
multiRoomText

Text that is displayed to guests if there are multiple rooms associated with the reservation.

Type: String
paymentInstrumentType

Payment type, which is required for testing the variety of options of payment options. If this field is omitted:

  • For Expedia Collect properties, you can retrieve payment information using the Payments API.
  • For Hotel Collect properties, you can retrieve payment information using the Payments API.
Type: PaymentInstrumentTypeInput
petCount

Number of pets associated with the reservation.

Type: Int
primaryGuest

Guest who made the reservation. Personal information cannot be set and is automatically generated.

Type: GuestInput
propertyIdNot nullable.

Property ID on which to associate the reservation.

Type: ID
reconciliationType

Reconciliation type of the reservation. Defaults to non-reconciled (null).

Type: ReconciliationTypeInput
remittanceType

Remittance type of the reservation. Defaults to null.

Type: RemittanceTypeInput
sendNotification

Whether to send a notification upon the creation of the reservation. Defaults to false.

Type: Boolean
smokingType

Whether smoking is allowed for the reservation. Defaults to \"NONSMOKING\".

Type: String
source

Source of the reservation, such as Hotels.com, Egencia, Orbitz. Here is a list of sources (values in the Expedia Collect column), though this list is not exhaustive. Defaults to EXPEDIA

Type: String
specialRequest

Text that is displayed to guests if there is a special request associated with the reservation. Defaults to \"Expedia test reservation. This is a free-text comment from the traveler.\".

Type: String
status

Current status of the reservation. Defaults to BOOKED.

Type: ReservationStatusInput
supplierOperatingModel

Supplier's operating model.

Type: SupplierOperatingModelInput
valueAddedPromotions

Value add promotion(s) used to book the reservation. Defaults to a single \"Free full breakfast for 2 per day\" value added promotion.

Type: Array of non nullable ReservationValueAddedPromotionInput
CreateReservationPayload
Object

Response payload to the `createReservation mutation.

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

Reservation details for the reservation that was created.

Type: Reservation
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 representing a signed decimal number (supporting up to two decimal places), which is serialized as a string.

EmailAddress
EmailAddress

A field whose value conforms to the standard internet email address format as specified in HTML Spec.

Float
Float

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

Guest
Object

Details about the guest who made the reservation.

FieldDescription
emailAddressNot nullable.

Email address of the guest.

Type: String
firstNameNot nullable.

First (given) name of the guest.

Type: String
lastNameNot nullable.

Last name (surname) of the guest.

Type: String
loyaltyTierNot nullable.

The traveler's Expedia Group VIP Access loyalty tier. Values include MEMBER, VIP, PREMIUMVIP, and null.

Type: String
phoneNumbersNot nullable.

Phone numbers associated with the guest.

Type: Array of non nullable GuestContactPhoneNumber
supplierLoyaltyPlanInfo

Details about the guest's frequent traveler reward program.

Type: SupplierLoyaltyPlanInfo
GuestContactPhoneNumber
Object

Guest phone number.

FieldDescription
areaCodeNot nullable.

Area code (three digits).

Type: String
countryCodeNot nullable.

Country code (two digits).

Type: String
numberNot nullable.

Phone number (seven digits, no hyphen).

Type: String
GuestInput
InputObject

Guest who made the reservation. Personal information about the guest cannot be set and is automatically generated.

FieldDescription
companyName

Company for which the guest works.

Type: String
corporateTravelPurpose

Purpose of the reservation.

Type: Boolean
loyaltyTier

Loyalty tier of the guest. Defaults to \"MEMBER\".

Type: String
supplierLoyaltyPlanInfo

Details about the frequent traveler reward program. Defaults to null.

Type: SupplierLoyaltyPlanInfoInput
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.

IdNode
Object

Known IDs in the source system.

FieldDescription
idNot nullable.

ID in the source system.

Type: String
idSourceNot nullable.

Source of the ID.

Type: IdSource
IdSource
Enum

Source of a given ID.

NameDescription
EXPEDIA

Expedia is the source of the ID.

SUPPLIER

Connectivity provider or lodging partner is the source of the ID.

VRBO

Unsupported.

Int
Int

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

InvoicingInput
InputObject

Invoice details.

FieldDescription
company

Traveler's legal entity to appear on the invoice.

Type: LegalEntityInput
invoiceEmail

Email address where the invoice will be sent.

Type: EmailAddress
vatNumber

VAT number to include on invoice.

Type: String
LegalEntityInput
InputObject

Traveler's legal entity details.

FieldDescription
address

Postal address.

Type: AddressInput
nameNot nullable.

Legal entity name.

Type: String
LocalDate
LocalDate

A type representing a date in ISO 8601 format: YYYY-MM-DD (such as 2007-12-03).

Money
Object

Monetary amount along with its currency.

FieldDescription
amountNot nullable.

Actual monetary amount value. The scale of the amount will vary according to the currency or any rate conversion that may have been applied.

Type: String
currencyCodeNot nullable.

Code of the currency of the amount.

Type: String
MoneyInput
InputObject

A monetary amount value along with its currency.

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.

Code of the currency of the amount.

Type: CurrencyCode
Payment
Object

Guest payment details.

FieldDescription
cardNumberNot nullable.

Card number. Sandbox value is always \"4111111111111111\".

Type: String
issuerNameNot nullable.

Name of the issuer associated with the card. Sandbox value is \"VISA\" for HOTEL_COLLECT reservations and \"MasterCard\" for EXPEDIA_COLLECT reservations.

Type: String
paymentInstrumentTypeNot nullable.

Type of payment instrument. Sandbox value is \"GUEST_CREDIT_CARD\" for HOTEL_COLLECT reservations and \"EXPEDIA_VIRTUAL_CARD\" for EXPEDIA_COLLECT reservations.

Type: String
verificationNumber

Randomly generated, three-digit verification number associated with the card.

Type: String
PaymentInstrumentTypeInput
Enum

Type of payment instrument.

NameDescription
AFFILIATE_VIRTUAL_CARD
BANK_TRANSFER

Expedia collects payment via bank transfer. This is for use for Expedia Collect properties only.

CASH

Partner collects cash payment. This is for use for Hotel Collect properties only.

EXPEDIA_VIRTUAL_CARD

Expedia collects payment by Expedia Virtual Card. This is for use for Expedia Collect properties only. You can retrieve payment information using the Payments API.

GUEST_CREDIT_CARD

Property collects payment by guest credit card. This is for use for Hotel Collect properties only, and you can retrieve payment information using the Payments API.

NONE

No payment instrument.

ReconciliationType
Enum

Type of reconciliation that has been performed on the reservation.

NameDescription
CANCEL

Reservation was cancelled.

MODIFY

Reservation was modified.

NO_SHOW

Reservation was marked as a no-show.

REFUND

Reservation was refunded.

ReconciliationTypeInput
Enum

Reconciliation type for the reservation.

NameDescription
CANCEL

Reservation was cancelled.

MODIFY

Reservation was modified.

NO_SHOW

Reservation was marked as a no-show.

REFUND

Reservation was refunded.

RemittanceType
Enum

Remittance type of the reservation.

NameDescription
GROSS

Gross remittance type.

NET

Net remittance type.

RemittanceTypeInput
Enum

Remittance type of the reservation.

NameDescription
GROSS

Gross remittance type.

NET

Net remittance type.

Reservation
Object

Reservation details.

FieldDescription
accessibilityTextNot nullable.

Accessibility requests made by the guest for the reservation.

Type: Array of non nullable String
adultCountNot nullable.

Count for all adult guests associated with the reservation.

Type: Int
amounts

Amounts associated with the reservation.

Type: ReservationAmounts
bedTypes

Bed type of the reservation.

Type: String
businessModelNot nullable.

Entity that collects payment for the reservation.

Type: BusinessModel
checkInDateNot nullable.

Check-in date (format: YYYY-MM-DD) of the reservation.

Type: Date
checkOutDateNot nullable.

Checkout date (format: YYYY-MM-DD) of the reservation.

Type: Date
childAges

Ages of children associated with the reservation.

Type: Array of non nullable Int
childCountNot nullable.

Count for all child guests associated with the reservation.

Type: Int
creationDateTimeNot nullable.

Date amd time when the reservation was created (format: yyyy-MM-dd'T'HH:mm:ss.SSSX, in UTC timezone).

Type: String
idNot nullable.

Expedia ID of the reservation.

Type: ID
isReconciledNot nullable.

Whether the reservation has been reconciled.

Type: Boolean
lastUpdatedDateTimeNot nullable.

Date and time when the reservation was last updated (format: yyyy-MM-dd'T'HH:mm:ss.SSSX, in UTC timezone).

Type: String
multiRoomText

Text that is displayed to guests if there is a multi-room booking associated with the reservation.

Type: String
paymentNot nullable.

Payment details associated with the reservation.

Type: Payment
petCount

Count of pets associated with the reservation.

Type: Int
primaryGuestNot nullable.

Guest who made the reservation.

Type: Guest
propertyIdNot nullable.

Expedia ID for the property.

Type: ID
rateIds

Unique identifiers for the rates associated with the reservation.

Type: Array of non nullable IdNode
reconciliationType

Type of reconciliation that has been performed on the reservation, if any.

Type: ReconciliationType
remittanceType

Remittance type of the reservation. Defaults to null.

Type: RemittanceType
reservationIdsNot nullable.

IDs for the reservation(s), each corresponding to a different source associated with the reservation.

Type: Array of non nullable IdNode
smokingTypeNot nullable.

Whether smoking is allowed for the reservation.

Type: String
sourceNot nullable.

Source of the reservation.

Type: String
specialRequest

Text that is displayed to guests if there is a special request associated with the reservation.

Type: String
statusNot nullable.

Current status of the reservation.

Type: ReservationStatus
supplierOperatingModel

Supplier's operating model.

Type: SupplierOperatingModelType
tidsCode

Travel Industry Designator Service (TIDS) code that allows a reservation to be recognized by industry suppliers.

Type: Int
totalGuestCountNot nullable.

Number of guests associated with the reservation.

Type: Int
unitIds

Known IDs for the unit/room in the source system(s). IDs that are returned depend on where the property was onboarded:

  • If the property was onboarded onto Vrbo, three IDs are returned: the partner's (external ID), Vrbo's (Vrbo internal ID), and Expedia's (EID).
  • If the property was onboarded onto Expedia, only the Expedia ID is included in the response.
Type: Array of non nullable IdNode
valueAddedPromotions

Value add promotion(s) used to book the reservation.

Type: Array of non nullable ReservationValueAddedPromotion
ReservationAmounts
Object

Amounts associated with the reservation.

FieldDescription
nightlyPayments

Detailed list of payments associated with the reservation.

Type: ReservationNightlyPayments
ReservationDailyAmount
Object

Reservation amount that applies to a specific stay date.

FieldDescription
amountNot nullable.

Amount value.

Type: Money
dateNot nullable.

Amount date (format: yyyy-MM-dd), such as 2025-01-30.

Type: Date
descriptionNot nullable.

Description associated to the amount.

Type: String
percent

Percentage of amount (when applicable), expressed as a fraction of 1 (such as 0.12 for 12%).

Type: Float
typeNot nullable.

Amount type (BASE, DISCOUNT, TAX, GUESS_PAYMENT, PAYOUT, and so on).

Type: String
ReservationNightlyPayments
Object

Nightly payments associated with the reservation.

FieldDescription
cancellationAmountsNot nullable.

Cancellation amounts for the reservation.

Type: Array of non nullable ReservationPerStayAmount
dailyAmountsNot nullable.

Reservation amounts for a specific stay date.

Type: Array of non nullable ReservationDailyAmount
perStayAmountsNot nullable.

Reservation amounts that apply to the whole stay.

Type: Array of non nullable ReservationPerStayAmount
ReservationPerStayAmount
Object

Reservation amount that applies to the whole stay.

FieldDescription
amountNot nullable.

Amount value.

Type: Money
descriptionNot nullable.

Description associated to the amount.

Type: String
percent

Percentage of amount (when applicable), expressed as a fraction of 1 (such as 0.12 for 12%).

Type: Float
typeNot nullable.

Amount type (BASE, DISCOUNT, TAX, GUESS_PAYMENT, PAYOUT, and so on).

Type: String
ReservationStatus
Enum

Current status of the reservation.

NameDescription
BOOKED

Reservation is booked and confirmed.

CANCELLED

Reservation is cancelled.

ReservationStatusInput
Enum

Current status of the reservation.

NameDescription
BOOKED

Reservation is booked and confirmed.

CANCELLED

Reservation is cancelled.

ReservationValueAddedPromotion
Object

Value add promotion(s) used to book the reservation.

FieldDescription
descriptionNot nullable.

Description of the value add promotion.

Type: String
idNot nullable.

ID of the promotion.

Type: String
ReservationValueAddedPromotionInput
InputObject

Value added promotion(s) used to book the reservation.

FieldDescription
descriptionNot nullable.

Description of the promotion.

Type: String
idNot nullable.

ID of the promotion.

Type: String
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.

SupplierLoyaltyPlanInfo
Object

Details about the frequent traveler reward program.

FieldDescription
membershipNumberNot nullable.

Traveler's membership number.

Type: Int
planCodeNot nullable.

Reward program code.

Type: String
SupplierLoyaltyPlanInfoInput
InputObject

Details about the frequent traveler reward program.

FieldDescription
membershipNumberNot nullable.

Traveler's membership number.

Type: Int
planCodeNot nullable.

Reward program code.

Type: String
SupplierOperatingModelInput
Enum

Supplier's operating model.

NameDescription
AGENCY

Partner operates on an agency model.

MERCHANT

Partner operates on a merchant model.

SupplierOperatingModelType
Enum

Type of supplier operating model used for the reservation.

NameDescription
AGENCY

Partner operates on an agency model.

MERCHANT

Partner operates on a merchant model.