Skip to main content

Party quotes

Quotes for a travel party that books several units together, with a preview of converting to group terms.

OperationEndpoint
List party quotesGET /group-sales/party-quotes
Quote a travel partyPOST /group-sales/party-quotes
Read a party quoteGET /group-sales/party-quotes/{id}
Book a party quotePOST /group-sales/party-quotes/{id}/book
Preview individual versus group termsPOST /group-sales/party-quotes/{id}/conversion-preview

List party quotes​

GET/group-sales/party-quotes

Response 200

Errors
StatusCodeMeaning
400invalid_requestThe request failed validation. The message names the first failing field; oms-ops and group surfaces also return every issue in details.
401unauthenticatedThe bearer token is missing, invalid, expired or minted for another purpose.
403scope_forbiddenThe token is scoped to an agency or an access scope; this surface requires an unscoped tenant token.
404group_sales_not_enabledGroup sales are not enabled for the tenant.
500internalUnexpected failure. Retry with the same Idempotency-Key.

Quote a travel party​

POST/group-sales/party-quotes

Headers: Idempotency-Key, plus X-Request-Id.

Request body

FieldTypeRequiredNotes
actorobjectyes
actor.channelstringmax 60 chars
actor.idstringyes1–200 chars
actor.namestringmax 200 chars
actor.rolestringyes1–100 chars
atstring (date-time)
attributesmap of string
currencystringyespattern ^[A-Z]{3}$
itemAttributesmap of string
leadContactobjectyes
leadContact.contactstringmax 320 chars
leadContact.namestringmax 200 chars
leadContact.refstringyes1–200 chars
namestringyes1–200 chars
payerobject
payer.contactstringmax 320 chars
payer.namestringmax 200 chars
payer.refstringyes1–200 chars
productobjectyes
product.attributesmap of string
product.departureRefstring1–200 chars
product.labelstringmax 200 chars
product.nightsintegeryes> 0
product.productIdstringyes1–200 chars
sharedRequestsobjectdefault {"notes":[]}
sharedRequests.adjacentUnitsboolean
sharedRequests.diningstringmax 200 chars
sharedRequests.notesarray of string
travelDatestringyespattern ^\d{4}-\d{2}-\d{2}$
unitsarray of objectyesat least 1
units[].categorystringyes1–60 chars
units[].guestsarray of objectyesat least 1
units[].guests[].ageBandstringyes1–40 chars
units[].guests[].idstringyes1–200 chars
units[].guests[].namestringyes1–200 chars
units[].labelstringmax 200 chars
units[].unitIdstringyes1–200 chars

Schema: apps/journeys/src/group-sales/contracts.ts (PartyQuoteRequestSchema)

Response 201

Errors
StatusCodeMeaning
400invalid_requestThe request failed validation. The message names the first failing field; oms-ops and group surfaces also return every issue in details.
401unauthenticatedThe bearer token is missing, invalid, expired or minted for another purpose.
403scope_forbiddenThe token is scoped to an agency or an access scope; this surface requires an unscoped tenant token.
404group_sales_not_enabledGroup sales are not enabled for the tenant.
409idempotency_in_progressA request with this Idempotency-Key is still running. Retry after the Retry-After interval.
422idempotency_key_reusedThe Idempotency-Key was used for a different request.
500internalUnexpected failure. Retry with the same Idempotency-Key.

Read a party quote​

GET/group-sales/party-quotes/{id}

Parameters

NameInRequiredNotes
idpathyes

Response 200

Errors
StatusCodeMeaning
400invalid_requestThe request failed validation. The message names the first failing field; oms-ops and group surfaces also return every issue in details.
401unauthenticatedThe bearer token is missing, invalid, expired or minted for another purpose.
403scope_forbiddenThe token is scoped to an agency or an access scope; this surface requires an unscoped tenant token.
404group_sales_not_enabledGroup sales are not enabled for the tenant.
500internalUnexpected failure. Retry with the same Idempotency-Key.

Book a party quote​

POST/group-sales/party-quotes/{id}/book

Creates one trip per unit and a travel party linking them.

Parameters

NameInRequiredNotes
idpathyes

Headers: Idempotency-Key, plus X-Request-Id.

Request body

FieldTypeRequiredNotes
actorobjectyes
actor.channelstringmax 60 chars
actor.idstringyes1–200 chars
actor.namestringmax 200 chars
actor.rolestringyes1–100 chars
expectedVersioninteger> 0

Schema: apps/journeys/src/group-sales/contracts.ts (BookPartyQuoteSchema)

Response 200

Errors
StatusCodeMeaning
400invalid_requestThe request failed validation. The message names the first failing field; oms-ops and group surfaces also return every issue in details.
401unauthenticatedThe bearer token is missing, invalid, expired or minted for another purpose.
403scope_forbiddenThe token is scoped to an agency or an access scope; this surface requires an unscoped tenant token.
404group_sales_not_enabledGroup sales are not enabled for the tenant.
409idempotency_in_progressA request with this Idempotency-Key is still running. Retry after the Retry-After interval.
422idempotency_key_reusedThe Idempotency-Key was used for a different request.
500internalUnexpected failure. Retry with the same Idempotency-Key.

Preview individual versus group terms​

POST/group-sales/party-quotes/{id}/conversion-preview

Parameters

NameInRequiredNotes
idpathyes

Headers: Idempotency-Key, plus X-Request-Id.

Request body

FieldTypeRequiredNotes
agreementTypestring1–60 chars
groupFarearray of object
groupFare[].categoryRefstringyes1–200 chars
groupFare[].groupFareMinorintegeryes> 0
groupRequestIdstring1–200 chars

Schema: apps/journeys/src/group-sales/contracts.ts (ConversionPreviewSchema)

Response 200

Errors
StatusCodeMeaning
400invalid_requestThe request failed validation. The message names the first failing field; oms-ops and group surfaces also return every issue in details.
401unauthenticatedThe bearer token is missing, invalid, expired or minted for another purpose.
403scope_forbiddenThe token is scoped to an agency or an access scope; this surface requires an unscoped tenant token.
404group_sales_not_enabledGroup sales are not enabled for the tenant.
409idempotency_in_progressA request with this Idempotency-Key is still running. Retry after the Retry-After interval.
422idempotency_key_reusedThe Idempotency-Key was used for a different request.
500internalUnexpected failure. Retry with the same Idempotency-Key.