Using the sandbox to test your implementation
A sandbox is a controlled and isolated environment designed for developers to safely discover, test, and interact with an API without affecting production data. A sandbox environment can be used
- As a playground to learn about our connectivity APIs
- As an integrated testing environment when developing and testing their own API integrations
- As the environment for API certification purposes
To test your implementation of the reservation management, the following is provided:
- The Sandbox Data Management API, which enables you to set up test data
- A sandbox version of the Lodging Supply GraphQL API so you can exercise queries and mutations in the sandbox environment
The following workflows provide an overview of how you can use the sandbox environment to test reservations management (where you need reservations to be uploaded to your connectivity system).
Setting up sandbox data
To take advantage of the sandbox environment, you need to obtain sandbox credentials and set up sandbox data. You may want to review the Sandbox Data Management API's implementation details before beginning.
Obtain an access token so that you can run queries and mutations in the sandbox environment. Follow these instructions.
Create and configure a callback configuration in the sandbox environment so that you receive webhook notifications after creating sandbox reservations:
Create and configure a callback configuration.
Endpoint: https://api.sandbox.expediagroup.com/supply/lodging/graphql
Mutation: createNotificationCallbackConfig
- Example
1mutation {2 createNotificationCallbackConfig (3 input: {4 callbackUrl : "https://api.dev.testcallbackurl.com/vrbo/reservations/cancel",5 apiKey : "436132d7-21b0-467b-baa8-59fd8588a292",6 contactEmail: "partner@email.com",7 requestTimeoutSeconds: 108 }9 ) {10 callbackConfig {11 id12 callbackUrl13 secretExpirationDateTime14 requestTimeoutSeconds15 }16 secret17 }18}Subscribe to the
ReservationNotificationEvent
event type:Endpoint: https://api.sandbox.expediagroup.com/supply/lodging/graphql
Mutation: subscribeNotificationEventType
- Example
1mutation {2 subscribeNotificationEventType (3 input: {4 eventType: "ReservationNotificationEvent",5 callbackConfigId: "1969081f-8380-4dbd-9a19-c26fc1747b06"6 })7 {8 eventType9 callbackConfig {10 id11 callbackUrl12 requestTimeoutSeconds13 secretExpirationDateTime14 contactEmail15 }16 }17}
This page provides complete details on enabling notifications.
Create one or more sandbox properties, which will be used when creating reservations in the sandbox:
Endpoint: https://api.sandbox.expediagroup.com/supply/lodging-sandbox/graphql
Mutation: createProperty
- Example
1mutation {2 createProperty(3 input: {4 name: "TestProperty1",5 clientMutationId: "7809989",6 supplierUnitId: "492038520093"7 }8 ) {9 clientMutationId10 property {11 id12 name13 }14 }15}Create one or more reservations in the sandbox environment. Be sure to include
sendNotification: true
in the input so that a webhook notification is sent.Endpoint: https://api.sandbox.expediagroup.com/supply/lodging-sandbox/graphql
Mutation: createReservation
- Example
1mutation {2 createReservation(3 input: {4 propertyId: "TestProperty1",5 checkInDate: "2025-09-06",6 checkOutDate: "2025-09-10",7 businessModel: EXPEDIA_COLLECT,8 paymentInstrumentType: EXPEDIA_VIRTUAL_CARD,9 source: "Expedia",10 adultCount: 5,11 accessibilityText: [],12 childCount: 3,15 smokingType: "NONSMOKING",16 status: BOOKED,17 remittanceType: GROSS,18 sendNotification: true19 }20 ) {21 reservation {22 id23 }24 }25}After each reservation is created and saved in the sandbox environment, a webhook notification is sent (if
sendNotification: true
).- Example
1{2 "event_name": "ReservationNotificationEvent",3 "creation_time": "2025-03-27T15:05:23.851Z",4 "notification_id": "cef812c0-2ec6-478e-a3c1-474c5c59c333",5 "payload": {6 "property_id": "TestProperty1",7 "reservation_id": "54019572-3f50-477f-9c90-7374e64deae7",8 "action_type": "BOOKED",9 "confirmation_token": "dtd1RGhFa4khwEwaveO+3K7MyVoI4fkOwxJUsHzC0FhDaV4Bsu3k5BohMjiaZJDFnTg=",10 "property_source": "EXPEDIA_GROUP"11 }12}
New reservations
The following workflow describes how to retrieve reservations in the sandbox environment that can then be used to test your reservations management implementation.
Retrieve reservation details from the sandbox environment, including a token that can then be used to access the Payments API. Issue the request against your sandbox credentials.
Endpoint: https://api.sandbox.expediagroup.com/supply/lodging/graphql
Query: reservations
- Example
1query {2 property (3 id: "64250"4 ) {5 id6 name7 reservations(pageSize: 10) {8 totalCount9 edges {10 node {11 id12 checkInDate13 checkOutDate14 status15 payment {16 instrument {17 type18 token {19 value20 expirationDateTime21 }22 }23 }24 }25 }26 }27 }28}Retrieve credit card and Expedia Virtual Card (EVC) information for the reservation.
Endpoint: https://api.sandbox.expediagroup.com/supply/payments/graphql
Query: paymentInstrument
- Example
1query {2 paymentInstrument (token: "token_from_res_query") {3 ...on BankIssuedCard {4 customer {5 address {6 addressLines7 locality8 administrativeArea9 postalCode10 countryCode11 }12 fullName13 }14 expirationDate15 activationDate16 issuerName17 number18 type19 verificationNumber20 }21 }22}Confirm the notification.
Endpoint: https://api.sandbox.expediagroup.com/supply/lodging/graphql
Mutation: confirmReservationNotification
- Example
1mutation {2 confirmReservationNotification(3 input: {4 clientMutationId: "liaj8a500ad",5 propertyId: "64250",6 reservationId: "12345",7 confirmationToken: "LPtu3SI+ZovWJincjJrv9+GZUpln8ofYfrKhAaWQOBM=",8 confirmationCode: "59aoi9alje",9 actionType: "BOOKED"10 }11 ) {12 clientMutationId13 reservation {14 id15 }16 }17}Test your reservation management implementation by issuing query and mutation requests against the sandbox data.
Endpoint: https://api.sandbox.expediagroup.com/supply/lodging/graphql
Note that all reservation queries and mutations are supported as documented, except for the
property
query. Only theid
andname
fields are available on theProperty
type.Cleanup (delete) test data (properties and reservations) in the sandbox environment, as necessary.
Endpoint: https://api.sandbox.expediagroup.com/supply/lodging-sandbox/graphql
Mutations: deleteProperty and deletePropertyReservations
Modified reservations
This workflow assumes that the steps in New reservations above have been completed. In particular, if notifications are not confirmed, additional notifications are not sent when a reservation is modified.
Update one or more sandbox reservations, as necessary. Be sure to include
sendNotification: true
in the input so that a webhook notification is sent.Endpoint: https://api.sandbox.expediagroup.com/supply/lodging-sandbox/graphql
Mutation: updateReservation
After updating a reservation, a webhook notification (
ReservationNotificationEvent
) is sent to the sandbox callback URL, which includes the reservation ID and a confirmation token.- Example
1{2 "event_name":"ReservationNotificationEvent",3 "creation_time":"2024-07-10T09:49:08.297506452Z",4 "notification_id":"e85b23f3-5d13-412a-8a63-9a974373d0899",5 "payload": {6 "property_id": "64250",7 "reservation_id": "100000936",8 "confirmation_token": "tL9tLTvSXLiIcjWWb2W0h1PIytNTUHkpxtkvwNbrdLk=",9 "action_type": "MODIFIED",10 "property_source": "EXPEDIA_GROUP"11 }12}Retrieve reservations from the sandbox environment. Be sure to use the sandbox’s access token.
Endpoint: https://api.sandbox.expediagroup.com/supply/lodging/graphql
Query: reservations
- Example
1query {2 property(id: "64250") {3 id4 name5 reservations(pageSize: 10) {6 totalCount7 edges {8 node {9 id10 checkInDate11 checkOutDate12 status13 }14 }15 }16 }17}Confirm the notification.
Endpoint: https://api.sandbox.expediagroup.com/supply/lodging/graphql
Mutation: confirmReservationNotification
- Example
1mutation {2 confirmReservationNotification(3 input: {4 clientMutationId: "liaj8a500ad",5 propertyId: "64250",6 reservationId: "100000936",7 confirmationToken: "tL9tLTvSXLiIcjWWb2W0h1PIytNTUHkpxtkvwNbrdLk=",8 confirmationCode: "689oi9isakadl",9 actionType: "MODIFIED"10 }11 ) {12 clientMutationId13 reservation {14 id15 }16 }17}Cleanup (delete) test data (properties and reservations) in the sandbox environment, as necessary.
Endpoint: https://api.sandbox.expediagroup.com/supply/lodging-sandbox/graphql
Mutations: deleteProperty and deletePropertyReservations