QuoteResponse
Response containing quote details
auditData object
Audit metadata (AuditData proto). Real wire uses requestId + transactions[]
(see G2 E2E captures). There is no processTime field on this message.
Request correlation id
transactions object[]
Provider transaction audit records when settings.auditTransactions is true.
Transaction id
Connection code that produced this exchange
Outbound request body (as sent to the provider)
Inbound response body (as received from the provider)
Round-trip duration in milliseconds
Provider URL that was called
HTTP status code (0 when transport failed before a status)
httpResponseHeaders object
Selected response headers from the provider call
errors object[]
Error code identifier. Transient provider-side failures (integration unreachable, HTTP 502/503/504, connection error or open circuit breaker) are reported as ERR_CODE_BAD_RESPONSE.
Possible values: [ERR_CODE_NONE, ERR_CODE_UNKNOWN, ERR_CODE_CONNECTION_DATA_MISSING, ERR_CODE_BAD_RESPONSE, ERR_CODE_BAD_REQUEST, ERR_CODE_MISSING_FIELDS, ERR_CODE_CONFIGURATION]
ERR_CODE_CONNECTION_DATA_MISSINGError type category. Provider-side failures (including transient outages) are reported as ERR_TYPE_PROVIDER.
Possible values: [ERR_TYPE_NONE, ERR_TYPE_UNKNOWN, ERR_TYPE_CLIENT, ERR_TYPE_PROVIDER, ERR_TYPE_SERVICE]
ERR_TYPE_PROVIDERHuman-readable error description
Connection code associated with the error (if applicable)
testb-conn-1876additionalData object
Optional string map. When the aggregator recognizes the provider
message, it may set retryable and recommended_action
(restart_availability, requote_new_price,
verify_booking_then_restart, backoff_and_retry, fix_request).
warnings object[]
Warning code identifier
WARN_CODE_NONEHuman-readable warning description
No markup configured for connection; selling price uses provider gross/suggestedConnection code associated with the warning
testb-conn-1876additionalData object
Additional data providing context about the warning. For INFO_NO_MARKUP_CONFIGURED warnings, includes:
- warning_type: "INFO_NO_MARKUP_CONFIGURED"
- connection_code: The affected connection code For STAY_DATE_NORMALIZED warnings, includes:
- warning_type: "STAY_DATE_NORMALIZED"
- severity: "INFO"
- field: "checkIn" or "checkOut"
- received: original timestamp string
- used: civil date actually searched (YYYY-MM-DD)
debugData object[]
Debug type/value pairs when enabled
Remark type
Remark value
optionQuote object
Quote/prebooking option (OptionQuote proto). No hotel or rooms — keep those from search.
Option reference ID to pass to book (may differ from search id)
Quote availability status (StatusType proto). REST and MCP JSON use
STATUS_TYPE_OK (immediately bookable) or STATUS_TYPE_RQ (on request).
Do not expect short aliases OK / RQ.
Possible values: [STATUS_TYPE_OK, STATUS_TYPE_RQ]
STATUS_TYPE_OKprice object
Price information. Three independent prices coexist: provider cost (net), provider retail (gross/suggested), and the org selling price (markupGross). The org margin configured per connection is applied on top of the provider gross, never on net. When no margin is configured, markupGross equals the provider gross.
Provider cost (what the agency pays the supplier).
Currency code
Provider binding flag. When true the provider gross/suggested is the minimum selling price and must be respected (cannot be sold below it).
Provider suggested retail / minimum selling price (preserved from provider, not overwritten by markup).
Provider retail price before any org markup (falls back to net when the provider does not send a suggested price).
Customer selling price = provider gross + org margin. Equals the provider gross when no margin is configured.
Provider net cost plus the org margin amount (mandatory field).
Currency of the markup (usually same as currency)
Indicates if the markup price must be respected (mandatory field).
Org margin amount applied on provider gross (markupGross - gross).
Effective margin percentage applied on provider gross.
Type of margin applied - FIXED or PERCENTAGE
When true, the rate expects a Virtual Credit Card (paymentCard) at book.
Used with quote criteria.additionalData.paymentMode (DIRECT_ONLY rejects these rates).
surcharges object[]
Additional surcharges
Legacy provider-specific label (may duplicate code); prefer code and category for new clients
Human-readable description from the provider
Whether the surcharge is mandatory
When true, the amount is already included in the option total; when false, typically due at property
High-level grouping for a surcharge line
Possible values: [SURCHARGE_CATEGORY_UNSPECIFIED, TAX, FEE, DEPOSIT, OTHER]
Stable semantic code (e.g. property_fee, mandatory_tax). See surcharge vocabulary in docs.
property_feeprice object
Price information. Three independent prices coexist: provider cost (net), provider retail (gross/suggested), and the org selling price (markupGross). The org margin configured per connection is applied on top of the provider gross, never on net. When no margin is configured, markupGross equals the provider gross.
Provider cost (what the agency pays the supplier).
Currency code
Provider binding flag. When true the provider gross/suggested is the minimum selling price and must be respected (cannot be sold below it).
Provider suggested retail / minimum selling price (preserved from provider, not overwritten by markup).
Provider retail price before any org markup (falls back to net when the provider does not send a suggested price).
Customer selling price = provider gross + org margin. Equals the provider gross when no margin is configured.
Provider net cost plus the org margin amount (mandatory field).
Currency of the markup (usually same as currency)
Indicates if the markup price must be respected (mandatory field).
Org margin amount applied on provider gross (markupGross - gross).
Effective margin percentage applied on provider gross.
Type of margin applied - FIXED or PERCENTAGE
cancelPolicy object
Cancellation policy
Whether the booking is refundable
cancelPenalties object[]
Cancellation penalties
Currency code
Cancellation deadline
Hours before check-in
Penalty calculation type from wire (IMPORT / NIGHTS / PERCENT).
Present on real search/quote cancelPenalties (e.g. G2 E2E captures).
Possible values: [IMPORT, NIGHTS, PERCENT]
Penalty amount
remarks object[]
Additional remarks
Remark type
Remark value
Funnel tracking ID for this quote. Pass this value in input.quote_id to booking
to link the Search → Quote → Book flow in analytics.
Note: In JSON responses, this field appears as quoteId (camelCase) due to
Protobuf JSON mapping. See "JSON Field Naming Convention" in the API description.
550e8400-e29b-41d4-a716-446655440001{
"auditData": {
"requestId": "string",
"transactions": [
{
"id": "string",
"connectionCode": "string",
"request": "string",
"response": "string",
"duration": 0,
"httpUrl": "string",
"httpStatusCode": 0,
"httpResponseHeaders": {}
}
]
},
"errors": [
{
"code": "ERR_CODE_CONNECTION_DATA_MISSING",
"type": "ERR_TYPE_PROVIDER",
"description": "string",
"connectionCode": "testb-conn-1876",
"additionalData": {}
}
],
"warnings": [
{
"code": "WARN_CODE_NONE",
"description": "No markup configured for connection; selling price uses provider gross/suggested",
"connectionCode": "testb-conn-1876",
"additionalData": {
"warning_type": "INFO_NO_MARKUP_CONFIGURED",
"connection_code": "testb-conn-1876"
}
}
],
"debugData": [
{
"type": "string",
"value": "string"
}
],
"optionQuote": {
"optionRefId": "string",
"status": "STATUS_TYPE_OK",
"price": {
"net": 0,
"currency": "string",
"binding": true,
"suggested": 0,
"gross": 0,
"markupGross": 0,
"markupNet": 0,
"markupCurrency": "string",
"markupBinding": true,
"marginAmount": 0,
"marginPercent": 0,
"marginType": "string"
},
"acceptVCard": true,
"surcharges": [
{
"type": "string",
"description": "string",
"mandatory": true,
"included": true,
"category": "SURCHARGE_CATEGORY_UNSPECIFIED",
"code": "property_fee",
"price": {
"net": 0,
"currency": "string",
"binding": true,
"suggested": 0,
"gross": 0,
"markupGross": 0,
"markupNet": 0,
"markupCurrency": "string",
"markupBinding": true,
"marginAmount": 0,
"marginPercent": 0,
"marginType": "string"
}
}
],
"cancelPolicy": {
"refundable": true,
"cancelPenalties": [
{
"currency": "string",
"deadline": "2024-07-29T15:51:28.071Z",
"hoursBefore": 0,
"penaltyType": "IMPORT",
"value": 0
}
]
},
"remarks": [
{
"type": "string",
"value": "string"
}
]
},
"quote_id": "550e8400-e29b-41d4-a716-446655440001"
}