Testing and Certification

This guide helps you test and certify that all required integration features are working. You can use it on your own for testing, and once you are confident in the results, the Partner Integrations team will review your readiness.

Instructions

To use this guide, make sure you have access to the Partner Portal. The Deals feature is required, so create a deal using the portal. After the deal is approved by a test property, use the deal code to send requests. This guide includes a series of scenarios to test all Channels Plus API features.

Test Scenarios

This outlines the use cases that a partner must successfully complete in order to achieve certification for the Channels Plus Channel API.

The purpose of this endpoint is to allow the partner to retrieve a list of properties on Channels Plus within a certain lat, long & radius boundary that matches their search criteria.

Use Case

Sample Request and Response

Call the get properties endpoint with mandatory elements only to retrieve a list of properties within the default radius of a lat/long boundary for a stay of more than 1 night. For this scenario use just the total adults and children for the entire reservation.

Call the get properties endpoint with mandatory elements only to retrieve a list of properties within the default radius of a lat/long boundary for a stay of more than 1 night. For this scenario use just the total adults and children for the entire reservation. Request for the second page of this response.

Call the get properties endpoint with mandatory elements only to retrieve a list of properties within the default radius of a lat/long boundary for a stay of more than 1 night. For this scenario provide a breakdown of adult & child occupancy for a 2 room stay.

Call the get properties endpoint with mandatory elements only to retrieve a list of properties within a specified radius of a lat/long boundary for a stay of more than 1 night. For this scenario use just the total adults and children for the entire reservation.

Call the get properties endpoint with mandatory elements only to retrieve a list of properties within the default radius of a lat/long boundary for a stay of more than 1 night. For this scenario use just the total adults and children for the entire reservation. Additionally specify a deal code and set the deal only flag to receive rates that are part of a deal only.

Call the get properties endpoint with an invalid lat/long and receive an error.

The purpose of this endpoint is to allow the partner to retrieve a list of room rates on Channels Plus for a specific property.

Use Case

Sample Request and Response

Call the get property endpoint with mandatory elements only to retrieve a list of room rates at the property for a stay of more than 1 night. For this scenario use just the total adults and children for the entire reservation.

Call the get property endpoint with mandatory elements only to retrieve a list of room rates at the property for a stay of more than 1 night. For this scenario provide a breakdown of adult & child occupancy for a 2 room stay.

Call the get property endpoint with mandatory elements only to retrieve a list of room rates at the property for a stay of more than 1 night. For this scenario use just the total adults and children for the entire reservation. Additionally specify a deal code to receive rates that are part of the deal only.

Call the get property endpoint with an invalid propertyID and receive an error.

{ "errors": [ { "code": "PropertyNotFoundError", "message": "property with spid=invalid not found" } ] }

The purpose of this endpoint is to allow the partner to temporarily lock a reservation so the inventory is not booked by another Channels Plus Channel.

Use Case

Sample Request and Response

Call the lock a reservation endpoint with a valid array of room rate bookings. Do not set the deal code and deal flag.

Call the lock a reservation endpoint with a valid array of room rate bookings. Set the deal code and deal flag.

Call the lock a reservation endpoint with an invalid room rate UUID and receive an error.

{ "errors": [ { "code": "RoomRateNotFoundError", "message": "Some room rates in roomRateUuids=[invalid] not found" } ] }

Call the lock a reservation endpoint with a valid array of room rate bookings. Set the netInvoicing to true.

The purpose of this endpoint is to allow the partner to confirm a temporarily locked reservation so the inventory is not booked by another non-Channels Plus Channel.

Use Case

Sample Request and Response

Call the confirm a reservation endpoint with a credit card payment type with valid card type, card metadata and guest information

Call the confirm a reservation endpoint with a virtual credit card payment type with valid card type, card metadata and guest information

Call the confirm a reservation endpoint with an valid reservation UUID that has now timed out.

{ "errors": [ { "code": "ReservationNotFoundError", "message": "pending reservation not found" } ] }

Call the confirm a reservation endpoint with an invalid reservation UUID.

{ "errors": [ { "code": "ReservationNotFoundError", "message": "pending reservation not found" } ] }

The purpose of this endpoint is to allow the partner to modify the guest details on a confirmed reservation.

Use Case

Sample Request and Response

Call the modify a reservation endpoint with a valid reservation UUID and valid guest details.

Call the modify a reservation endpoint with a valid reservation UUID for a reservation that has already checked in.

Call the modify a reservation endpoint with an invalid reservation UUID.

{ "errors": [ { "code": "ReservationRoomRateNotFoundError", "message": "reservation room rate not found" } ] }

The purpose of this endpoint is to allow the partner to cancel a confirmed reservation within the cancellable period.

Use Case

Sample Request and Response

Call the cancel a reservation endpoint with a valid reservation UUID.

Call the cancel a reservation endpoint with an invalid reservation UUID.

Call the cancel a reservation endpoint with a valid reservation UUID for a reservation that is no longer in a free cancellation period.

{ "errors": [ { "code": "OutsideCancellationPeriodError", "message": "cannot cancel outside of cancellation period", "meta": { "traceToken": "56992735-037f-49eb-8a55-6042bc8f9650" } } ] }

Final Steps

If you are using this guide as a testing checklist and are now ready to begin certification, please contact the Partner Integrations team to confirm your readiness. If you are already in the certification process, complete the form provided via email, ensuring that all required information is accurately included for final review.

Last updated