Skip to main content

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.

requestIdstring

Request correlation id

transactions object[]

Provider transaction audit records when settings.auditTransactions is true.

  • Array [
  • idstring

    Transaction id

    connectionCodestring

    Connection code that produced this exchange

    requeststring

    Outbound request body (as sent to the provider)

    responsestring

    Inbound response body (as received from the provider)

    durationinteger<int32>

    Round-trip duration in milliseconds

    httpUrlstring

    Provider URL that was called

    httpStatusCodeinteger<int32>

    HTTP status code (0 when transport failed before a status)

    httpResponseHeaders object

    Selected response headers from the provider call

    property name*string
  • ]
  • errors object[]
  • Array [
  • codestring

    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]

    Example: ERR_CODE_CONNECTION_DATA_MISSING
    typestring

    Error 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]

    Example: ERR_TYPE_PROVIDER
    descriptionstring

    Human-readable error description

    connectionCodestring

    Connection code associated with the error (if applicable)

    Example: testb-conn-1876
    additionalData 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).

    property name*string
  • ]
  • warnings object[]
  • Array [
  • codestring

    Warning code identifier

    Example: WARN_CODE_NONE
    descriptionstring

    Human-readable warning description

    Example: No markup configured for connection; selling price uses provider gross/suggested
    connectionCodestring

    Connection code associated with the warning

    Example: testb-conn-1876
    additionalData 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)
    property name*string
  • ]
  • debugData object[]

    Debug type/value pairs when enabled

  • Array [
  • typestring

    Remark type

    valuestring

    Remark value

  • ]
  • optionQuote object

    Quote/prebooking option (OptionQuote proto). No hotel or rooms — keep those from search.

    optionRefIdstring

    Option reference ID to pass to book (may differ from search id)

    statusstring

    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]

    Default value: STATUS_TYPE_OK
    price 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.

    netnumber<float>

    Provider cost (what the agency pays the supplier).

    currencystring

    Currency code

    bindingboolean

    Provider binding flag. When true the provider gross/suggested is the minimum selling price and must be respected (cannot be sold below it).

    suggestednumber<float>

    Provider suggested retail / minimum selling price (preserved from provider, not overwritten by markup).

    grossnumber<float>

    Provider retail price before any org markup (falls back to net when the provider does not send a suggested price).

    markupGrossnumber<float>

    Customer selling price = provider gross + org margin. Equals the provider gross when no margin is configured.

    markupNetnumber<float>

    Provider net cost plus the org margin amount (mandatory field).

    markupCurrencystring

    Currency of the markup (usually same as currency)

    markupBindingboolean

    Indicates if the markup price must be respected (mandatory field).

    marginAmountnumber<float>

    Org margin amount applied on provider gross (markupGross - gross).

    marginPercentnumber<float>

    Effective margin percentage applied on provider gross.

    marginTypestring

    Type of margin applied - FIXED or PERCENTAGE

    acceptVCardboolean

    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

  • Array [
  • typestring

    Legacy provider-specific label (may duplicate code); prefer code and category for new clients

    descriptionstring

    Human-readable description from the provider

    mandatoryboolean

    Whether the surcharge is mandatory

    includedboolean

    When true, the amount is already included in the option total; when false, typically due at property

    categorySurchargeCategory (string)

    High-level grouping for a surcharge line

    Possible values: [SURCHARGE_CATEGORY_UNSPECIFIED, TAX, FEE, DEPOSIT, OTHER]

    codestring

    Stable semantic code (e.g. property_fee, mandatory_tax). See surcharge vocabulary in docs.

    Example: property_fee
    price 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.

    netnumber<float>

    Provider cost (what the agency pays the supplier).

    currencystring

    Currency code

    bindingboolean

    Provider binding flag. When true the provider gross/suggested is the minimum selling price and must be respected (cannot be sold below it).

    suggestednumber<float>

    Provider suggested retail / minimum selling price (preserved from provider, not overwritten by markup).

    grossnumber<float>

    Provider retail price before any org markup (falls back to net when the provider does not send a suggested price).

    markupGrossnumber<float>

    Customer selling price = provider gross + org margin. Equals the provider gross when no margin is configured.

    markupNetnumber<float>

    Provider net cost plus the org margin amount (mandatory field).

    markupCurrencystring

    Currency of the markup (usually same as currency)

    markupBindingboolean

    Indicates if the markup price must be respected (mandatory field).

    marginAmountnumber<float>

    Org margin amount applied on provider gross (markupGross - gross).

    marginPercentnumber<float>

    Effective margin percentage applied on provider gross.

    marginTypestring

    Type of margin applied - FIXED or PERCENTAGE

  • ]
  • cancelPolicy object

    Cancellation policy

    refundableboolean

    Whether the booking is refundable

    cancelPenalties object[]

    Cancellation penalties

  • Array [
  • currencystring

    Currency code

    deadlinestring<date-time>

    Cancellation deadline

    hoursBeforeinteger<int32>

    Hours before check-in

    penaltyTypestring

    Penalty calculation type from wire (IMPORT / NIGHTS / PERCENT). Present on real search/quote cancelPenalties (e.g. G2 E2E captures).

    Possible values: [IMPORT, NIGHTS, PERCENT]

    valuenumber<float>

    Penalty amount

  • ]
  • remarks object[]

    Additional remarks

  • Array [
  • typestring

    Remark type

    valuestring

    Remark value

  • ]
  • quote_idstring

    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.

    Example: 550e8400-e29b-41d4-a716-446655440001
    QuoteResponse
    {
    "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"
    }