---
title: "Updates the booking with requested changes."
method: PATCH
path: "/bookings/{id}"
tags: ["bookings"]
---

# Updates the booking with requested changes.

`PATCH /bookings/{id}`

Certain changes are only allowed while the booking is in the negotiating state.
Dealers, owners, renters and admins all have different access level on what can be changed.
This often results in a recalculation of the booking total.

## Path parameters

- `id` integer, required

## Request body

- BookingUpdateRequest
  - `addons` ItemRequest[]
    - `count` integer
    - `id` integer
    - `name` string
    - `original_tax_rate_id` integer
    - `price` integer
  - `auto_assign_group` boolean
  - `auto_insurance_type` string
  - `bundle_id` string
  - `cancel_policy` string
  - `checkout_questions` object[] — DBMSISlice is a []string with database conversion methods
  - `decline_reason` string
  - `delivery` BookingDelivery
    - `actual` number, double
    - `departure` number, double
    - `estimated` number, double
    - `estimated_fee` integer
    - `renter_comment` string
    - `return` number, double
    - `stationary` boolean
    - `suggested_fee` integer
  - `delivery_usage_item_id` integer
  - `deposit_percentage` number, double
  - `destination` string
  - `destination_lat` number, double
  - `destination_lng` number, double
  - `details` unknown
  - `discount_code` string
  - `dropoff` BookingDropoff
    - `city` string
    - `country` string
    - `delivery` boolean
    - `lat` number, double
    - `lng` number, double
    - `state` string
    - `street` string
    - `street_etc` string
    - `zip` string
  - `final_payment_due_days` integer
  - `from` string
  - `from_time` integer
  - `generator` BookingGenerator
    - `actual` number, double
    - `departure` number, double
    - `estimated` number, double
    - `estimated_fee` integer
    - `return` number, double
    - `suggested_fee` integer
  - `generator_usage_item_id` integer
  - `include_coachnet` boolean
  - `insurance_coverage` string
  - `insurance_plan_id` integer
  - `location_id` integer
  - `loyalty_credit_issued` boolean
  - `loyalty_rewards_eligible` boolean
  - `message` string
  - `mileage` BookingMileage
    - `actual` number, double
    - `departure` number, double
    - `estimated` number, double
    - `estimated_fee` integer
    - `return` number, double
    - `suggested_fee` integer
  - `mileage_usage_item_id` integer
  - `minimum_deposit` integer
  - `occupancy` Occupancy
    - `adults` integer
    - `children` integer
    - `infants` integer
  - `owner_fee_percentage` number, double — admin token only
  - `pets` integer
  - `pickup` BookingPickup
    - `city` string
    - `country` string
    - `delivery` boolean
    - `lat` number, double
    - `lng` number, double
    - `state` string
    - `street` string
    - `street_etc` string
    - `zip` string
  - `read` boolean
  - `recalculate` boolean
  - `rental_charge_card_id` integer
  - `rental_id` integer
  - `renter_age` integer
  - `renter_fee_percentage` number, double
  - `renter_id` integer
  - `require_insurance` boolean
  - `security_deposit` integer
  - `security_deposit_card_id` integer
  - `security_deposit_due_days` integer
  - `skip_addons` boolean
  - `stripe_token` string
  - `to` string
  - `to_time` integer
  - `travel_to_states` string[]
  - `travelers` integer
  - `trip_credits_disabled` boolean
  - `update_location_address` boolean
  - `user_notice_acknowledged_ids` integer[]
  - `waive_service_fee` boolean

## Response `200`

HTTP status code 200 and rental model

- Booking — A booking is a reservation that references the renter, owner, and rental vehicle with a defined start and stop date A booking is what we're all about
  - `abandoned` boolean
  - `addons` BookingItem[]
    - `_deleted` boolean — special flag for handling batch update/delete
    - `booking_id` integer
    - `coachnet_item` boolean
    - `consigned_pay_amount` integer
    - `count` integer
    - `created` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
      - `Time` string, date-time
      - `Valid` boolean
    - `daily` boolean
    - `deferred` boolean
    - `deferred_total` integer, nullable
    - `deleted_at` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
      - `Time` string, date-time
      - `Valid` boolean
    - `delivery` boolean
    - `description` string
    - `discount_amount` integer
    - `generator` boolean
    - `id` integer
    - `image_url` string
    - `maximum_price` integer, nullable
    - `mileage` boolean
    - `minimum_price` integer, nullable
    - `name` string
    - `original_consigned_pay_pct` number, double — consigned owner support
    - `original_tax_rate_id` integer
    - `other_claim` boolean
    - `outdoorsy_item` boolean
    - `parent_item_id` integer
    - `parent_item_type` string
    - `percent` number, double
    - `percent_type` string
    - `position` integer
    - `premium_amount` integer
    - `premium_total` integer
    - `price` integer
    - `rental_amount` boolean — mutation modifiers
    - `required` boolean
    - `tax_amount` integer
    - `tax_description` string
    - `tax_name` string
    - `tax_rate` number, double
    - `tax_rates` BookingTaxRate[]
      - `booking_id` integer
      - `created` string
      - `deleted` boolean
      - `id` integer
      - `object_id` integer
      - `object_type` string
      - `payable_to` string
      - `source` string
      - `state` string
      - `tax_amount` integer
      - `tax_description` string
      - `tax_name` string
      - `tax_rate` number, double
      - `tax_rate_id` integer
      - `updated` string
      - `zip_code` string
    - `total` integer
    - `updated` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
      - `Time` string, date-time
      - `Valid` boolean
  - `adults` integer
  - `affirm_details` AffirmDetails
    - `amount` integer
    - `charge_id` string
    - `checkout_token` string
    - `status` string
    - `user_id` string
  - `affirm_total` integer — Dynamically calculated. Not stored in DB
  - `applicable_tos_version` string
  - `attention` AttentionItem[]
    - `data` AttentionItemData
      - `auto_expires` boolean
      - `completed_at` string
      - `confirmation_message` string
      - `conversation_first_message` integer
      - `created_at` string
      - `daily` boolean
      - `description` string
      - `expires_at` string
      - `from` string
      - `group_item_details` Proposal[]
        - `action` string
        - `booking_id` integer
        - `created` string
        - `daily_changes` DailyChange[]
          - `date` string
          - `price` integer
          - `rules` unknown[]
            - unknown
        - `details` unknown
        - `dry_create` boolean
        - `future_booking` unknown
        - `id` integer
        - `note` string
        - `object_id` integer
        - `object_type` string
        - `owner_acknowledged` string
        - `owner_id` integer
        - `renter_acknowledged` string
        - `renter_dismissed` string
        - `status` string
        - `updated` string
        - `user_notice_events` NoticeResponse[]
          - `guest_acknowledgement_text` string
          - `guest_need_to_acknowledge` boolean
          - `guest_user_text` string
          - `host_acknowledgement_text` string
          - `host_help_url` string
          - `host_need_to_acknowledge` boolean
          - `host_user_text` string
          - `id` integer
          - `name` string
        - `user_notices_acknowledged` integer[]
      - `id` integer
      - `message` string
      - `name` string
      - `price` integer
      - `quantity` integer
      - `rental_amount` integer
      - `to` string
      - `total` integer
    - `is_actionable` boolean
    - `type` string
  - `auto_assign_group` boolean, nullable
  - `auto_insurance_type` string
  - `bid_id` integer
  - `block_discount_code` boolean
  - `booked` string — Not Mutable
  - `booking_agent` string
  - `booking_color` string, nullable
  - `booking_token` string
  - `bundle_id` string — calculated field that holds the result of whether the rental has this assigned if not, will look at the user/owner
  - `calculated_day_price` integer
  - `calculated_total_paid` integer
  - `campaign` string — dealer only
  - `campground_booking_url` string — Contains the booking id so ember can call /bookings/:id/default-selections
  - `campground_data` SiblingBookingCampgroundData
    - `external_campsite_id` string
    - `external_id` string
    - `site_name` string
    - `source` string
    - `status` string
  - `can_add_ending_generator_values` boolean
  - `can_add_ending_mileage_values` boolean
  - `can_add_starting_generator_values` boolean
  - `can_add_starting_mileage_values` boolean
  - `can_add_trip_protection` boolean — CanAddTransaction is used to check if the guest can add a trip protection
  - `can_apply_credits` boolean
  - `can_cancel_trip_protection` boolean — CanCancelTripProtection is used to check if the guest can cancel a trip protection
  - `can_charge_overage_fees` boolean
  - `can_file_claim` boolean
  - `can_generate_weather_quote` boolean
  - `can_manage_security_deposit` boolean
  - `can_manage_tax_rates` boolean — used by dashboard to disable tax editing
  - `can_renter_review` boolean
  - `can_renter_review_until` string
  - `can_see_contract` boolean
  - `can_suggest_date_change` boolean
  - `can_suggest_delivery_change` boolean
  - `cancel_metadata` CancelMetadata — CancelMetadata is stored as JSONB and contains structured cancellation information for analytics and tracking Fields: reason_value, penalty_category, timestamp, reason_metadata
  - `cancel_policy` string
  - `cancel_reason` string
  - `canceled` string
  - `cancellation_cutoff_date` string
  - `cancellation_refund_breakdown` CancellationRefundBreakdown — It captures the full component split computed by getRefundPayoutInputs so that the host dashboard can display a detailed breakdown without having to re-derive the numbers.
    - `cancellation_policy` string
    - `gross_owner_payout` integer
    - `is_cutoff_cancellation` boolean
    - `is_grace_period` boolean
    - `is_standardized_policy` boolean
    - `net_owner_payout` integer
    - `non_refundable_rif` integer
    - `other_items_amount` integer
    - `owner_fee` integer
    - `owner_fee_base` integer
    - `owner_fee_percentage` number, double
    - `penalty_percentage` number, double
    - `refund_percentage` number, double
    - `refundable_rif` integer
    - `rental_amount` integer
    - `rental_tax` integer
    - `rental_tax_payable_to` string
    - `renter_refund_amount` integer
    - `service_fee` integer
    - `service_fee_tax` integer
    - `total_rif` integer
  - `cancellation_refund_percentage` number, double
  - `cc_fee_percentage` number, double — Copied rental data - don't want rental changes to affect this booking
  - `checkin_stamp` string — Internal
  - `checkout_questions` object[] — DBMSISlice is a []string with database conversion methods
  - `checkout_stamp` string
  - `checkout_steps_id` integer
  - `children` integer
  - `coachnet_id` integer
  - `coachnet_premium` integer
  - `consignment` BookingConsignment
    - `keep_amt_cc_fee` integer
    - `keep_amt_insurance_fee` integer
    - `keep_pct_cc_fee` number, double
    - `keep_pct_insurance_fee` number, double
    - `pay_amt_total` integer
    - `pay_pct_generator` number, double
    - `pay_pct_mileage` number, double — Consigned owner support - copied rental data
    - `payout_id` ConsignedPayout
      - `bookings` Booking[]
      - `consigned_owner_id` integer
      - `created` string
      - `from` string
      - `id` integer
      - `items` ConsignedPayoutItem[]
        - `consigned_payout_id` ConsignedPayout — recursive
        - `created` string
        - `description` string
        - `id` integer
        - `name` string
        - `total` integer
        - `updated` string
      - `message` string
      - `owner_id` integer
      - `paid_date` string
      - `rental_id` integer
      - `status` string
      - `to` string
      - `total` integer
      - `updated` string
  - `conversation_id` integer
  - `created` string
  - `created_by_id` integer
  - `created_stamp` string
  - `custom_insurance_text` string, nullable
  - `dealer_minimum_days` integer — used to display information if a booking is below the dealers minimum days
  - `decline_reason` string
  - `default_insurance_coverage` string
  - `deliverable_campground` ExternalCampground
    - `available_for_dates` boolean — Fields calculated post search
    - `calculated_day_price` integer
    - `campground_catalog` CampgroundCatalog
      - `activity_features` CampgroundActivityFeature[]
        - `feature` string
        - `name` string
      - `amenities_categories` CampgroundAmenitiesCategory[]
        - `id` string
        - `name` string
      - `processed_amenities` object
      - `scenery_features` CampgroundSceneryFeature[]
        - `feature` string
        - `name` string
    - `campsite_category_ids` integer[]
    - `check_in_time` string — Check in / Check out times
    - `check_out_time` string
    - `description` string
    - `email` string — Contact information
    - `id` integer
    - `images` Image[]
      - `best` boolean
      - `category` Category
        - `name` string
        - `slug` string
      - `description` string
      - `id` integer
      - `position` integer
      - `primary` boolean
      - `rental_id` integer
      - `skip_enhance` boolean
      - `status` string
      - `tags` string
      - `url` string
      - `video` boolean
    - `is_odn` boolean — Flags
    - `is_site_available` boolean
    - `locale` Locale
      - `base_currency` string
      - `date_format` string
      - `distance_unit` string
      - `language` string
      - `length_unit` string
      - `liquid_unit` string
      - `time_format` string
      - `timezone` string
      - `weight_unit` string
    - `location` integer
    - `lowest_price` integer
    - `name` string
    - `odn_id` string
    - `phone` string
    - `presentment_currency` string — Currency
    - `primary_image_url` string
    - `reviews_num` integer
    - `score` number, double — Ratings and reviews
    - `settlement_currency` string
    - `site_map_image_url` string
    - `slug` string
    - `unavailable` boolean
    - `vacation_package_slug` string
    - `website_url` string — Links and Images
  - `delivery` BookingDelivery
    - `actual` number, double
    - `departure` number, double
    - `estimated` number, double
    - `estimated_fee` integer
    - `renter_comment` string
    - `return` number, double
    - `stationary` boolean
    - `suggested_fee` integer
  - `delivery_item` BookingItem
    - `_deleted` boolean — special flag for handling batch update/delete
    - `booking_id` integer
    - `coachnet_item` boolean
    - `consigned_pay_amount` integer
    - `count` integer
    - `created` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
      - `Time` string, date-time
      - `Valid` boolean
    - `daily` boolean
    - `deferred` boolean
    - `deferred_total` integer, nullable
    - `deleted_at` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
      - `Time` string, date-time
      - `Valid` boolean
    - `delivery` boolean
    - `description` string
    - `discount_amount` integer
    - `generator` boolean
    - `id` integer
    - `image_url` string
    - `maximum_price` integer, nullable
    - `mileage` boolean
    - `minimum_price` integer, nullable
    - `name` string
    - `original_consigned_pay_pct` number, double — consigned owner support
    - `original_tax_rate_id` integer
    - `other_claim` boolean
    - `outdoorsy_item` boolean
    - `parent_item_id` integer
    - `parent_item_type` string
    - `percent` number, double
    - `percent_type` string
    - `position` integer
    - `premium_amount` integer
    - `premium_total` integer
    - `price` integer
    - `rental_amount` boolean — mutation modifiers
    - `required` boolean
    - `tax_amount` integer
    - `tax_description` string
    - `tax_name` string
    - `tax_rate` number, double
    - `tax_rates` BookingTaxRate[]
      - `booking_id` integer
      - `created` string
      - `deleted` boolean
      - `id` integer
      - `object_id` integer
      - `object_type` string
      - `payable_to` string
      - `source` string
      - `state` string
      - `tax_amount` integer
      - `tax_description` string
      - `tax_name` string
      - `tax_rate` number, double
      - `tax_rate_id` integer
      - `updated` string
      - `zip_code` string
    - `total` integer
    - `updated` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
      - `Time` string, date-time
      - `Valid` boolean
  - `delivery_usage_item` unknown
  - `delivery_usage_item_id` integer
  - `deposit_percentage` number, double
  - `destination` string
  - `destination_lat` number, double
  - `destination_lng` number, double
  - `details` unknown
  - `device_id` string
  - `discount_code` string — Copied discount code data, not allowed in request data.
  - `discount_code_amount` integer
  - `discount_code_applied_to` string
  - `discount_code_message` string
  - `display_insurance` string
  - `display_source` string
  - `display_status` string
  - `display_status_style` string
  - `documents` BookingDocuments
    - `claims_form` string
    - `contract` string
    - `departure_form` string
    - `departure_form_checklist` string
    - `esign_receipt` string
    - `insurance_binder` string
    - `pre_arrival_checklist` string
    - `protection_packages` string
    - `receipt` string
    - `return_form` string
  - `dropoff` BookingDropoff
    - `city` string
    - `country` string
    - `delivery` boolean
    - `lat` number, double
    - `lng` number, double
    - `state` string
    - `street` string
    - `street_etc` string
    - `zip` string
  - `duration` integer
  - `esign_enabled` boolean
  - `esign_pending` boolean
  - `expire_reason` string
  - `express_checkout_id` integer
  - `external` boolean, nullable
  - `external_gift_card_details` ExternalGiftCardDetails
    - `alocated_amount` integer
    - `card_number` string
    - `converted_amount` integer
    - `pin_verivied` boolean
    - `provider` string
    - `refund_amount` integer
    - `refund_converted_amount` integer
    - `refund_req_ref` string
    - `request_ref` string
  - `external_gift_card_details_v2` ExternalGiftCardDetails[]
    - `alocated_amount` integer
    - `card_number` string
    - `converted_amount` integer
    - `pin_verivied` boolean
    - `provider` string
    - `refund_amount` integer
    - `refund_converted_amount` integer
    - `refund_req_ref` string
    - `request_ref` string
  - `fees_locked` boolean
  - `fees_total` integer
  - `final_payment_due_days` integer
  - `followup_archived` boolean
  - `formatted` BookingDisplayFormatted
    - `insurance` BookingInsuranceFormatted
      - `action` string
      - `description` string
      - `title` string
      - `warning` string
  - `formatted_total_overage_fee` string
  - `fraudulent` boolean
  - `free_cancellation_available` boolean
  - `free_cancellation_period` integer
  - `from` string
  - `from_time` integer
  - `fx_fee_paid` integer
  - `generator` BookingGenerator
    - `actual` number, double
    - `departure` number, double
    - `estimated` number, double
    - `estimated_fee` integer
    - `return` number, double
    - `suggested_fee` integer
  - `generator_item` BookingItem
    - `_deleted` boolean — special flag for handling batch update/delete
    - `booking_id` integer
    - `coachnet_item` boolean
    - `consigned_pay_amount` integer
    - `count` integer
    - `created` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
      - `Time` string, date-time
      - `Valid` boolean
    - `daily` boolean
    - `deferred` boolean
    - `deferred_total` integer, nullable
    - `deleted_at` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
      - `Time` string, date-time
      - `Valid` boolean
    - `delivery` boolean
    - `description` string
    - `discount_amount` integer
    - `generator` boolean
    - `id` integer
    - `image_url` string
    - `maximum_price` integer, nullable
    - `mileage` boolean
    - `minimum_price` integer, nullable
    - `name` string
    - `original_consigned_pay_pct` number, double — consigned owner support
    - `original_tax_rate_id` integer
    - `other_claim` boolean
    - `outdoorsy_item` boolean
    - `parent_item_id` integer
    - `parent_item_type` string
    - `percent` number, double
    - `percent_type` string
    - `position` integer
    - `premium_amount` integer
    - `premium_total` integer
    - `price` integer
    - `rental_amount` boolean — mutation modifiers
    - `required` boolean
    - `tax_amount` integer
    - `tax_description` string
    - `tax_name` string
    - `tax_rate` number, double
    - `tax_rates` BookingTaxRate[]
      - `booking_id` integer
      - `created` string
      - `deleted` boolean
      - `id` integer
      - `object_id` integer
      - `object_type` string
      - `payable_to` string
      - `source` string
      - `state` string
      - `tax_amount` integer
      - `tax_description` string
      - `tax_name` string
      - `tax_rate` number, double
      - `tax_rate_id` integer
      - `updated` string
      - `zip_code` string
    - `total` integer
    - `updated` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
      - `Time` string, date-time
      - `Valid` boolean
  - `generator_usage_item` unknown
  - `generator_usage_item_id` integer
  - `grace_period_ends_at` string
  - `handoff_summary` BookingHandoff
    - `id` string — ID is the type used throughout the system to identify a unique object. It properly handles marshaling for both json and sql databases. It properly handles null values in the database as well.
    - `owner_departure_complete` boolean — Completed bool `json:"completed" db:"completed"`
    - `owner_departure_eligible` boolean
    - `owner_departure_photo_count` integer
    - `owner_departure_signature_timestamp` string
    - `owner_return_complete` boolean
    - `owner_return_eligible` boolean
    - `owner_return_photo_count` integer
    - `owner_return_signature_timestamp` string
    - `renter_departure_complete` boolean
    - `renter_departure_eligible` boolean
    - `renter_departure_photo_count` integer
    - `renter_departure_signature_timestamp` string
    - `renter_return_complete` boolean
    - `renter_return_eligible` boolean
    - `renter_return_photo_count` integer
    - `renter_return_signature_timestamp` string
  - `has_approved_drivers` boolean
  - `has_setup_intent_enabled` boolean
  - `hold_sales_tax` boolean
  - `house_rules` string
  - `id` integer
  - `import_id` string
  - `imported` boolean — owner only
  - `include_coachnet` boolean
  - `infants` integer
  - `initial_duration` integer
  - `instamatch` boolean, nullable
  - `instant_book` boolean
  - `insurance` string
  - `insurance_approved` boolean
  - `insurance_approved_timestamp` string
  - `insurance_approved_updated_timestamp` string
  - `insurance_bundle` unknown
  - `insurance_claim_filed` boolean
  - `insurance_coverage` string
  - `insurance_plan_id` Plan
    - `allow_unregistered` boolean
    - `approved_vehicle_types` string[] — DBStringSlice is a []string with database conversion methods
    - `bundle_required` boolean
    - `claims_number` string
    - `comp_policy_url` string
    - `comprehensive_coverage` boolean
    - `comprehensive_maximum` string
    - `country` string
    - `created` string
    - `created_by_id` integer, nullable
    - `dealer_only` boolean
    - `hidden` boolean
    - `id` integer — The fields below are returned in the minimum response when this insurance plan is an element inside a rental
    - `insurance_address_1` string
    - `insurance_city` string
    - `insurance_end_date` string
    - `insurance_name` string
    - `insurance_plan_override` PlanOverride
      - `created` string
      - `dealer_owned_owner_fee_percentage` number, double
      - `dealer_owned_renter_fee_percentage` number, double
      - `id` integer
      - `insurance_plan_id` Plan — recursive
      - `owner_fee_percentage` number, double
      - `owner_id` integer
      - `renter_fee_percentage` number, double
      - `updated` string
    - `insurance_policy_number` string
    - `insurance_start_date` string
    - `insurance_state` string
    - `insurance_zip` string
    - `insured_address_1` string
    - `insured_city` string
    - `insured_name` string
    - `insured_state` string
    - `insured_zip` string
    - `label` string
    - `last_updated_by_id` integer, nullable
    - `liability_coverage` boolean
    - `liability_maximum` string
    - `liability_policy_url` string
    - `locality` string
    - `minimum_daily_fee` integer
    - `minimum_year` integer
    - `owner_comprehensive_deductible` string
    - `owner_fee_percentage` number, double
    - `owner_liability_deductible` string
    - `owner_liability_maximum` string
    - `rental_category` string
    - `renter_comprehensive_deductible` string
    - `renter_fee_percentage` number, double
    - `renter_liability_deductible` string
    - `renter_liability_maximum` string
    - `requires_driver_verification` boolean
    - `tiered` boolean
    - `updated` string
  - `insurance_renter_adjustable` boolean
  - `internal_notes` string
  - `is_request_less_than_minimum_days` boolean
  - `is_within_grace_period` boolean
  - `items` BookingItem[] — Items, calculations, payouts and fees
    - `_deleted` boolean — special flag for handling batch update/delete
    - `booking_id` integer
    - `coachnet_item` boolean
    - `consigned_pay_amount` integer
    - `count` integer
    - `created` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
      - `Time` string, date-time
      - `Valid` boolean
    - `daily` boolean
    - `deferred` boolean
    - `deferred_total` integer, nullable
    - `deleted_at` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
      - `Time` string, date-time
      - `Valid` boolean
    - `delivery` boolean
    - `description` string
    - `discount_amount` integer
    - `generator` boolean
    - `id` integer
    - `image_url` string
    - `maximum_price` integer, nullable
    - `mileage` boolean
    - `minimum_price` integer, nullable
    - `name` string
    - `original_consigned_pay_pct` number, double — consigned owner support
    - `original_tax_rate_id` integer
    - `other_claim` boolean
    - `outdoorsy_item` boolean
    - `parent_item_id` integer
    - `parent_item_type` string
    - `percent` number, double
    - `percent_type` string
    - `position` integer
    - `premium_amount` integer
    - `premium_total` integer
    - `price` integer
    - `rental_amount` boolean — mutation modifiers
    - `required` boolean
    - `tax_amount` integer
    - `tax_description` string
    - `tax_name` string
    - `tax_rate` number, double
    - `tax_rates` BookingTaxRate[]
      - `booking_id` integer
      - `created` string
      - `deleted` boolean
      - `id` integer
      - `object_id` integer
      - `object_type` string
      - `payable_to` string
      - `source` string
      - `state` string
      - `tax_amount` integer
      - `tax_description` string
      - `tax_name` string
      - `tax_rate` number, double
      - `tax_rate_id` integer
      - `updated` string
      - `zip_code` string
    - `total` integer
    - `updated` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
      - `Time` string, date-time
      - `Valid` boolean
  - `locale` BookingLocale
    - `base_currency` string
    - `distance_unit` string
  - `location_id` integer
  - `locked` boolean
  - `loyalty_credit_issued` boolean
  - `loyalty_rewards_eligible` boolean
  - `medium` string
  - `metadata` unknown
  - `mileage` BookingMileage
    - `actual` number, double
    - `departure` number, double
    - `estimated` number, double
    - `estimated_fee` integer
    - `return` number, double
    - `suggested_fee` integer
  - `mileage_item` BookingItem
    - `_deleted` boolean — special flag for handling batch update/delete
    - `booking_id` integer
    - `coachnet_item` boolean
    - `consigned_pay_amount` integer
    - `count` integer
    - `created` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
      - `Time` string, date-time
      - `Valid` boolean
    - `daily` boolean
    - `deferred` boolean
    - `deferred_total` integer, nullable
    - `deleted_at` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
      - `Time` string, date-time
      - `Valid` boolean
    - `delivery` boolean
    - `description` string
    - `discount_amount` integer
    - `generator` boolean
    - `id` integer
    - `image_url` string
    - `maximum_price` integer, nullable
    - `mileage` boolean
    - `minimum_price` integer, nullable
    - `name` string
    - `original_consigned_pay_pct` number, double — consigned owner support
    - `original_tax_rate_id` integer
    - `other_claim` boolean
    - `outdoorsy_item` boolean
    - `parent_item_id` integer
    - `parent_item_type` string
    - `percent` number, double
    - `percent_type` string
    - `position` integer
    - `premium_amount` integer
    - `premium_total` integer
    - `price` integer
    - `rental_amount` boolean — mutation modifiers
    - `required` boolean
    - `tax_amount` integer
    - `tax_description` string
    - `tax_name` string
    - `tax_rate` number, double
    - `tax_rates` BookingTaxRate[]
      - `booking_id` integer
      - `created` string
      - `deleted` boolean
      - `id` integer
      - `object_id` integer
      - `object_type` string
      - `payable_to` string
      - `source` string
      - `state` string
      - `tax_amount` integer
      - `tax_description` string
      - `tax_name` string
      - `tax_rate` number, double
      - `tax_rate_id` integer
      - `updated` string
      - `zip_code` string
    - `total` integer
    - `updated` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
      - `Time` string, date-time
      - `Valid` boolean
  - `mileage_usage_item` unknown
  - `mileage_usage_item_id` integer
  - `minimum_deposit` integer
  - `missing_data` string[]
  - `missing_requirements` object
  - `mutual_cancellation` boolean
  - `non_refundable_total` integer — NonRefundableTotal is the total amount that cannot be refunded to the renter. Trip Insurance that has been started is an example of something that would be added to this total
  - `offer_affirm` boolean
  - `offer_insurance` boolean
  - `offer_paypal_pay_later` boolean
  - `offer_roadside` boolean
  - `original_booking_source` string
  - `original_day_price` integer
  - `original_security_deposit` integer
  - `original_security_deposit_v2` integer
  - `original_service_fee` integer — renter only
  - `outdoorsy_fee` integer
  - `outdoorsy_remitted_taxes` integer
  - `overage_fee_collected` boolean
  - `overage_fee_expired` boolean
  - `overage_fee_section_display` boolean
  - `owner_addon_total` integer — Sum of all addons (booking items from rental_item parent_item_type)
  - `owner_approval_attempted` boolean, nullable
  - `owner_approved` boolean
  - `owner_approved_at` string
  - `owner_archived` boolean
  - `owner_credits_applied` integer
  - `owner_did_review` boolean
  - `owner_fee` integer
  - `owner_fee_aggregate_percentage` number, double — aggregate percentage for all owner fee services that we apply - for UI purpouses
  - `owner_fee_minimum_enforced` boolean — Owner fee minimum enforced
  - `owner_fee_minimum_per_night` integer — Owner fee minimum per night
  - `owner_fee_on_renter_cancellation` integer — Cancellation payout details - populated for owner/admin when status is renter_cancelled Enables the host dashboard cancellation payout breakdown modal (MP-4959)
  - `owner_fee_percentage` number, double
  - `owner_fee_percentage_record` number, double
  - `owner_fees` BookingItem[]
    - `_deleted` boolean — special flag for handling batch update/delete
    - `booking_id` integer
    - `coachnet_item` boolean
    - `consigned_pay_amount` integer
    - `count` integer
    - `created` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
      - `Time` string, date-time
      - `Valid` boolean
    - `daily` boolean
    - `deferred` boolean
    - `deferred_total` integer, nullable
    - `deleted_at` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
      - `Time` string, date-time
      - `Valid` boolean
    - `delivery` boolean
    - `description` string
    - `discount_amount` integer
    - `generator` boolean
    - `id` integer
    - `image_url` string
    - `maximum_price` integer, nullable
    - `mileage` boolean
    - `minimum_price` integer, nullable
    - `name` string
    - `original_consigned_pay_pct` number, double — consigned owner support
    - `original_tax_rate_id` integer
    - `other_claim` boolean
    - `outdoorsy_item` boolean
    - `parent_item_id` integer
    - `parent_item_type` string
    - `percent` number, double
    - `percent_type` string
    - `position` integer
    - `premium_amount` integer
    - `premium_total` integer
    - `price` integer
    - `rental_amount` boolean — mutation modifiers
    - `required` boolean
    - `tax_amount` integer
    - `tax_description` string
    - `tax_name` string
    - `tax_rate` number, double
    - `tax_rates` BookingTaxRate[]
      - `booking_id` integer
      - `created` string
      - `deleted` boolean
      - `id` integer
      - `object_id` integer
      - `object_type` string
      - `payable_to` string
      - `source` string
      - `state` string
      - `tax_amount` integer
      - `tax_description` string
      - `tax_name` string
      - `tax_rate` number, double
      - `tax_rate_id` integer
      - `updated` string
      - `zip_code` string
    - `total` integer
    - `updated` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
      - `Time` string, date-time
      - `Valid` boolean
  - `owner_id` integer
  - `owner_insurance_claim_filed` boolean
  - `owner_insurance_fee_total` integer
  - `owner_integrations_fee` integer, nullable
  - `owner_payout` integer
  - `owner_payout_adjustment` integer
  - `owner_payout_with_claim_adjustments` integer — OwnerPayout + Claim adjustments if any
  - `owner_read` boolean
  - `owner_summary` unknown
  - `owner_total` integer
  - `owner_total_without_tax` integer — OwnerTotal - Tax (subtotal)
  - `parent_booking_id` integer, nullable
  - `partner_app` PartnerApp — partner app
    - `app_id` string
    - `app_name` string
    - `created` string
    - `default_app` boolean
    - `enabled` boolean
    - `id` integer
    - `owner_lead_fee_percentage` number, double
    - `owner_lead_only_fee_percentage` number, double
    - `partner` Partner
      - `active` boolean
      - `apps` PartnerApp[]
      - `created` string
      - `id` integer
      - `name` string
      - `slug` string
      - `updated` string
    - `renter_lead_fee_percentage` number, double
    - `renter_lead_only_fee_percentage` number, double
    - `updated` string
  - `payment_processor` PaymentProcessor — Typically this object is composed into a struct, but embedded into the same table using the `db:",embed"` struct tag.
    - `country` string
    - `external_processor` string
    - `external_processor_id` string
    - `name` string
  - `payout_actual_transfer_amount` integer — booking transfers summary
  - `pending_transactions` PendingTransaction[]
    - `amount` integer
    - `attempts` integer
    - `booking_id` integer
    - `brand` string
    - `card_id` integer
    - `created` string
    - `description` string
    - `display_type` string
    - `due` string
    - `id` integer
    - `last_four` string
    - `original_charge_id` integer
    - `payment_intent_id` string
    - `status` string
    - `type` string
    - `zendesk_ticket_id` integer
  - `personal_insurance_verification` boolean
  - `personal_insurance_verification_status` string
  - `pets` integer
  - `pickup` BookingPickup
    - `city` string
    - `country` string
    - `delivery` boolean
    - `lat` number, double
    - `lng` number, double
    - `state` string
    - `street` string
    - `street_etc` string
    - `zip` string
  - `premium_total` integer
  - `prep_fee_item` BookingItem
    - `_deleted` boolean — special flag for handling batch update/delete
    - `booking_id` integer
    - `coachnet_item` boolean
    - `consigned_pay_amount` integer
    - `count` integer
    - `created` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
      - `Time` string, date-time
      - `Valid` boolean
    - `daily` boolean
    - `deferred` boolean
    - `deferred_total` integer, nullable
    - `deleted_at` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
      - `Time` string, date-time
      - `Valid` boolean
    - `delivery` boolean
    - `description` string
    - `discount_amount` integer
    - `generator` boolean
    - `id` integer
    - `image_url` string
    - `maximum_price` integer, nullable
    - `mileage` boolean
    - `minimum_price` integer, nullable
    - `name` string
    - `original_consigned_pay_pct` number, double — consigned owner support
    - `original_tax_rate_id` integer
    - `other_claim` boolean
    - `outdoorsy_item` boolean
    - `parent_item_id` integer
    - `parent_item_type` string
    - `percent` number, double
    - `percent_type` string
    - `position` integer
    - `premium_amount` integer
    - `premium_total` integer
    - `price` integer
    - `rental_amount` boolean — mutation modifiers
    - `required` boolean
    - `tax_amount` integer
    - `tax_description` string
    - `tax_name` string
    - `tax_rate` number, double
    - `tax_rates` BookingTaxRate[]
      - `booking_id` integer
      - `created` string
      - `deleted` boolean
      - `id` integer
      - `object_id` integer
      - `object_type` string
      - `payable_to` string
      - `source` string
      - `state` string
      - `tax_amount` integer
      - `tax_description` string
      - `tax_name` string
      - `tax_rate` number, double
      - `tax_rate_id` integer
      - `updated` string
      - `zip_code` string
    - `total` integer
    - `updated` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
      - `Time` string, date-time
      - `Valid` boolean
  - `presentment_currency` string
  - `processor_name` string
  - `proposals` Proposal[]
    - `action` string
    - `booking_id` integer
    - `created` string
    - `daily_changes` DailyChange[]
      - `date` string
      - `price` integer
      - `rules` unknown[]
        - unknown
    - `details` unknown
    - `dry_create` boolean
    - `future_booking` unknown
    - `id` integer
    - `note` string
    - `object_id` integer
    - `object_type` string
    - `owner_acknowledged` string
    - `owner_id` integer
    - `renter_acknowledged` string
    - `renter_dismissed` string
    - `status` string
    - `updated` string
    - `user_notice_events` NoticeResponse[]
      - `guest_acknowledgement_text` string
      - `guest_need_to_acknowledge` boolean
      - `guest_user_text` string
      - `host_acknowledgement_text` string
      - `host_help_url` string
      - `host_need_to_acknowledge` boolean
      - `host_user_text` string
      - `id` integer
      - `name` string
    - `user_notices_acknowledged` integer[]
  - `provide_insurance_binder` boolean
  - `raf_waiver_summary` RAFWaiverSummary
    - `cancellation_amount` integer
    - `description` string
    - `popup_message` string
    - `referee_amount` integer
    - `referee_completed` boolean
    - `referer_user_id` integer
    - `referral_code` string
    - `referrer_completed` boolean
  - `reason` string, nullable
  - `referred_owner_paid` boolean
  - `referred_owner_payout_amount` integer
  - `referred_renter_paid` boolean
  - `referred_renter_payout_amount` integer
  - `refund_options` BookingRefundOptions
    - `allow_user_refund_method` boolean — return numbers for display but user may not be allowed to choose
    - `cash_amount` integer
    - `credit_amount` integer
    - `credit_source` object
    - `display_cash_amount` string
    - `display_credit_amount` string
    - `is_pending_cancellation` boolean
    - `non_refundable_percentage` number, double
    - `owner_payout_amount` integer — show admin what to expect for owner payout
    - `refund_percentage` number, double
  - `remainder_amount` integer
  - `remainder_due_date` string
  - `remaining_days_to_cancellation_cutoff` integer
  - `rental_amount_item` BookingItem
    - `_deleted` boolean — special flag for handling batch update/delete
    - `booking_id` integer
    - `coachnet_item` boolean
    - `consigned_pay_amount` integer
    - `count` integer
    - `created` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
      - `Time` string, date-time
      - `Valid` boolean
    - `daily` boolean
    - `deferred` boolean
    - `deferred_total` integer, nullable
    - `deleted_at` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
      - `Time` string, date-time
      - `Valid` boolean
    - `delivery` boolean
    - `description` string
    - `discount_amount` integer
    - `generator` boolean
    - `id` integer
    - `image_url` string
    - `maximum_price` integer, nullable
    - `mileage` boolean
    - `minimum_price` integer, nullable
    - `name` string
    - `original_consigned_pay_pct` number, double — consigned owner support
    - `original_tax_rate_id` integer
    - `other_claim` boolean
    - `outdoorsy_item` boolean
    - `parent_item_id` integer
    - `parent_item_type` string
    - `percent` number, double
    - `percent_type` string
    - `position` integer
    - `premium_amount` integer
    - `premium_total` integer
    - `price` integer
    - `rental_amount` boolean — mutation modifiers
    - `required` boolean
    - `tax_amount` integer
    - `tax_description` string
    - `tax_name` string
    - `tax_rate` number, double
    - `tax_rates` BookingTaxRate[]
      - `booking_id` integer
      - `created` string
      - `deleted` boolean
      - `id` integer
      - `object_id` integer
      - `object_type` string
      - `payable_to` string
      - `source` string
      - `state` string
      - `tax_amount` integer
      - `tax_description` string
      - `tax_name` string
      - `tax_rate` number, double
      - `tax_rate_id` integer
      - `updated` string
      - `zip_code` string
    - `total` integer
    - `updated` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
      - `Time` string, date-time
      - `Valid` boolean
  - `rental_charge_card_id` integer
  - `rental_id` integer
  - `rental_summary` unknown
  - `renter_age` integer
  - `renter_approved` boolean
  - `renter_approved_at` string
  - `renter_archived` boolean
  - `renter_can_waive_insurance` boolean
  - `renter_credits_applied` integer
  - `renter_destination_data` RenterDestinationData
    - `region` string
    - `spot_types` string[]
    - `stops` string[]
  - `renter_did_review` boolean
  - `renter_fee_percentage` number, double
  - `renter_fee_percentage_record` number, double
  - `renter_id` integer
  - `renter_insurance_claim_filed` boolean
  - `renter_insurance_fee_total` integer
  - `renter_payment_details` RenterPaymentDetails
    - `device_data` string
    - `ppi_id` integer
    - `processor_name` string
  - `renter_read` boolean
  - `renter_summary` unknown
  - `require_booking_time` boolean
  - `require_dmv_check` boolean
  - `require_drivers` boolean
  - `require_insurance` boolean
  - `require_renter_id_verification` boolean
  - `require_roadside` boolean
  - `reserve_amount` integer
  - `reserve_amount_after_credits` integer
  - `revenue_summary` RevenueSummary
    - `funds_held_by_outdoorsy` integer
    - `line_items` RevenueLineItem[]
      - `amount` integer
      - `name` string
    - `total` integer
  - `reviews` Review[]
    - `apply_credit` boolean — special incoming field, not stored in DB
    - `booking_id` integer
    - `booking_summary` BookingSummary
      - `from` string
      - `id` integer
      - `to` string
    - `can_edit` boolean
    - `can_edit_until` string
    - `cleanliness_score` number, double
    - `communication_score` number, double
    - `deleted` string, date-time — clocks.RfcTime was resulting in 0001-01-01 which I want to avoid. it should be null or a real date
    - `exclude_from_rating` boolean
    - `id` integer
    - `images` string[] — DBStringSlice is a []string with database conversion methods
    - `imported` boolean — used for imported reviews only
    - `listing_score` number, double
    - `mechanical_score` number, double
    - `name` string
    - `outdoorsy_only` boolean
    - `owner` ReviewOwner
      - `avatar_url` string
      - `first_name` string
      - `id` integer
      - `last_name` string
    - `owner_can_respond` boolean
    - `owner_response` OwnerResponseReview
      - `text` string
      - `timestamp` string
    - `published` boolean
    - `rental_id` integer
    - `rental_summary` RentalSummary
      - `campsite_summary` CampsiteSummary
        - `beds` integer
        - `campground_id` integer
        - `campground_name` string
        - `campground_sitemap_url` string
        - `display_campsite_type` string
        - `display_max_vehicle_length` string
        - `display_site_type` string
        - `is_odn` boolean
        - `rental_id` integer
        - `site_type` string
        - `sleeps` integer
        - `type` string
      - `disallow_movement` boolean
      - `display_type` string
      - `formatted_length` string
      - `id` integer
      - `interior_primary_image_url` string
      - `internal_id` string
      - `location` string
      - `name` string
      - `primary_image_url` string
      - `rental_category` string
      - `sleeps` integer
      - `slug` string
      - `stay_summary` StaySummary
        - `baths` integer
        - `bedrooms` integer
        - `beds` integer
        - `check_in_type` string
        - `display_stay_type` string
        - `location_description` string
        - `max_parking_spaces` integer
        - `parking_onsite` boolean
        - `rental_id` integer
        - `sleeps` integer
        - `type` string
      - `style` string
      - `type` string
    - `rental_tags` TagRental[]
      - `Created` string
      - `ID` integer
      - `Name` string
      - `Slug` string
      - `Updated` string
      - `position` integer
      - `usage_by_rental_count` integer
    - `review_images` ReviewImage[]
      - `created` string, date-time
      - `id` string — ID is the type used throughout the system to identify a unique object. It properly handles marshaling for both json and sql databases. It properly handles null values in the database as well.
      - `lat` number, double
      - `lng` number, double
      - `rental_id` string
      - `review_id` string
      - `reviewed` boolean
      - `reviewed_by` string
      - `status` string
      - `updated` string, date-time
      - `url` string
    - `reviewer` Reviewer
      - `avatar_url` string
      - `first_name` string
      - `id` integer
      - `last_name` string
    - `reviewer_id` integer
    - `score` number, double — Review Types
    - `source_page` string
    - `tags` Tag[] — Tags are saved on tag_rental_join
      - `allow_for_review` boolean
      - `created` string
      - `description` string
      - `id` integer
      - `name` string
      - `owner_user_id` integer, nullable
      - `position` integer
      - `slug` string
      - `updated` string
    - `text` string
    - `timestamp` string
    - `user_id` integer
    - `user_recommend` boolean
    - `value_score` number, double
  - `sd_post_trip_charges_data` unknown
  - `sd_post_trip_charges_enabled` boolean
  - `search_filters` SearchFilters
    - `festival_friendly` boolean
    - `make` string
    - `model` string[]
    - `pet_friendly` boolean
    - `smoking_allowed` boolean
    - `tailgate_friendly` boolean
    - `towing_capacity` integer
    - `towing_vehicle_make` string
    - `towing_vehicle_model` string
    - `towing_vehicle_year` integer
    - `travelers` integer
    - `year_max` integer
    - `year_min` integer
  - `security_deposit` integer
  - `security_deposit_card_id` integer
  - `security_deposit_claimed_amount` integer
  - `security_deposit_due_date` string
  - `security_deposit_due_days` integer
  - `security_deposit_payout_amount` integer
  - `security_deposit_refund_amount` integer
  - `security_deposit_remaining` integer
  - `security_deposit_reversable` integer
  - `security_deposit_status` string
  - `service_fee` integer
  - `service_fee_tax_rates` BookingTaxRate[]
    - `booking_id` integer
    - `created` string
    - `deleted` boolean
    - `id` integer
    - `object_id` integer
    - `object_type` string
    - `payable_to` string
    - `source` string
    - `state` string
    - `tax_amount` integer
    - `tax_description` string
    - `tax_name` string
    - `tax_rate` number, double
    - `tax_rate_id` integer
    - `updated` string
    - `zip_code` string
  - `services` BookingService[]
    - `booking_id` integer
    - `bundle_id` string, nullable
    - `category` string
    - `charge_to` string
    - `created` string
    - `daily` boolean
    - `dealer_flat_split` integer
    - `dealer_percent_split` number, double
    - `dealer_split_type` string
    - `deleted_at` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
      - `Time` string, date-time
      - `Valid` boolean
    - `description` string
    - `discount_amount` integer
    - `external_reference_id` string
    - `fee_locked` boolean
    - `id` integer
    - `is_taxable` boolean — IsTaxable determines whether this service is taxable. This is defaulted to the service's IsTaxable field on BookingService create
    - `last_service_log` unknown
    - `lock_on_booking_status` string
    - `minimum_price` integer
    - `missing_fields` object
    - `name` string
    - `payable_to` string
    - `percent` number, double
    - `percent_type` string
    - `policy_start_date` string
    - `premium_amount` integer — PremiumAmount is the daily rate
    - `premium_total` integer — PremiumTotal is what we pay to the dealer
    - `prevent_delete` boolean
    - `price` integer
    - `quantity` integer
    - `required` boolean
    - `revision` integer
    - `roamly_weather_quote` unknown
    - `service_data` unknown
    - `service_id` integer
    - `tax_amount` integer
    - `tax_rates` BookingTaxRate[]
      - `booking_id` integer
      - `created` string
      - `deleted` boolean
      - `id` integer
      - `object_id` integer
      - `object_type` string
      - `payable_to` string
      - `source` string
      - `state` string
      - `tax_amount` integer
      - `tax_description` string
      - `tax_name` string
      - `tax_rate` number, double
      - `tax_rate_id` integer
      - `updated` string
      - `zip_code` string
    - `total` integer — Total is the full amount of what the renter pays (total + premium total) - does not include taxes
    - `updated` string
    - `variant_price` integer — Calculated price considering pricing variant
  - `session_id` string
  - `sibling_booking_group_id` integer, nullable
  - `sibling_bookings_totals` SiblingTotals — SiblingTotals is a struct to send the totals for combined sibling bookings
    - `addons` integer
    - `damage_protection` integer
    - `delivery_fee` integer
    - `discounts` integer
    - `external_campground_fee` integer
    - `generator` integer
    - `insurance_coverage` integer
    - `mileage` integer
    - `owner_fees` integer
    - `pet_fees` integer
    - `roadside_assistance` integer
    - `roamly_weather_protection` integer
    - `security_deposit_waiver` integer
    - `service_fees` integer
    - `taxes` integer
    - `total` integer
    - `trip_protection` integer
  - `siblings` SiblingBookings — SiblingBookings an associated RV booking and campsite booking
    - `rental_campsite` SiblingBooking — SiblingBooking embedded struct to get around Booking struct issues where we only render the first instance in the response then simply render the booking ID. See `func (b *Booking) ResponseElementData(options objx.Map)` for more details.
      - `abandoned` boolean
      - `addons` BookingItem[]
        - `_deleted` boolean — special flag for handling batch update/delete
        - `booking_id` integer
        - `coachnet_item` boolean
        - `consigned_pay_amount` integer
        - `count` integer
        - `created` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
          - `Time` string, date-time
          - `Valid` boolean
        - `daily` boolean
        - `deferred` boolean
        - `deferred_total` integer, nullable
        - `deleted_at` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
          - `Time` string, date-time
          - `Valid` boolean
        - `delivery` boolean
        - `description` string
        - `discount_amount` integer
        - `generator` boolean
        - `id` integer
        - `image_url` string
        - `maximum_price` integer, nullable
        - `mileage` boolean
        - `minimum_price` integer, nullable
        - `name` string
        - `original_consigned_pay_pct` number, double — consigned owner support
        - `original_tax_rate_id` integer
        - `other_claim` boolean
        - `outdoorsy_item` boolean
        - `parent_item_id` integer
        - `parent_item_type` string
        - `percent` number, double
        - `percent_type` string
        - `position` integer
        - `premium_amount` integer
        - `premium_total` integer
        - `price` integer
        - `rental_amount` boolean — mutation modifiers
        - `required` boolean
        - `tax_amount` integer
        - `tax_description` string
        - `tax_name` string
        - `tax_rate` number, double
        - `tax_rates` BookingTaxRate[]
          - `booking_id` integer
          - `created` string
          - `deleted` boolean
          - `id` integer
          - `object_id` integer
          - `object_type` string
          - `payable_to` string
          - `source` string
          - `state` string
          - `tax_amount` integer
          - `tax_description` string
          - `tax_name` string
          - `tax_rate` number, double
          - `tax_rate_id` integer
          - `updated` string
          - `zip_code` string
        - `total` integer
        - `updated` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
          - `Time` string, date-time
          - `Valid` boolean
      - `adults` integer
      - `affirm_details` AffirmDetails
        - `amount` integer
        - `charge_id` string
        - `checkout_token` string
        - `status` string
        - `user_id` string
      - `affirm_total` integer — Dynamically calculated. Not stored in DB
      - `applicable_tos_version` string
      - `attention` AttentionItem[]
        - `data` AttentionItemData
          - `auto_expires` boolean
          - `completed_at` string
          - `confirmation_message` string
          - `conversation_first_message` integer
          - `created_at` string
          - `daily` boolean
          - `description` string
          - `expires_at` string
          - `from` string
          - `group_item_details` Proposal[]
            - `action` string
            - `booking_id` integer
            - `created` string
            - `daily_changes` DailyChange[]
              - …
            - `details` unknown
            - `dry_create` boolean
            - `future_booking` unknown
            - `id` integer
            - `note` string
            - `object_id` integer
            - `object_type` string
            - `owner_acknowledged` string
            - `owner_id` integer
            - `renter_acknowledged` string
            - `renter_dismissed` string
            - `status` string
            - `updated` string
            - `user_notice_events` NoticeResponse[]
              - …
            - `user_notices_acknowledged` integer[]
          - `id` integer
          - `message` string
          - `name` string
          - `price` integer
          - `quantity` integer
          - `rental_amount` integer
          - `to` string
          - `total` integer
        - `is_actionable` boolean
        - `type` string
      - `auto_assign_group` boolean, nullable
      - `auto_insurance_type` string
      - `bid_id` integer
      - `block_discount_code` boolean
      - `booked` string — Not Mutable
      - `booking_agent` string
      - `booking_color` string, nullable
      - `booking_token` string
      - `bundle_id` string — calculated field that holds the result of whether the rental has this assigned if not, will look at the user/owner
      - `calculated_day_price` integer
      - `calculated_total_paid` integer
      - `campaign` string — dealer only
      - `campground_booking_url` string — Contains the booking id so ember can call /bookings/:id/default-selections
      - `campground_data` SiblingBookingCampgroundData
        - `external_campsite_id` string
        - `external_id` string
        - `site_name` string
        - `source` string
        - `status` string
      - `can_add_ending_generator_values` boolean
      - `can_add_ending_mileage_values` boolean
      - `can_add_starting_generator_values` boolean
      - `can_add_starting_mileage_values` boolean
      - `can_add_trip_protection` boolean — CanAddTransaction is used to check if the guest can add a trip protection
      - `can_apply_credits` boolean
      - `can_cancel_trip_protection` boolean — CanCancelTripProtection is used to check if the guest can cancel a trip protection
      - `can_charge_overage_fees` boolean
      - `can_file_claim` boolean
      - `can_generate_weather_quote` boolean
      - `can_manage_security_deposit` boolean
      - `can_manage_tax_rates` boolean — used by dashboard to disable tax editing
      - `can_renter_review` boolean
      - `can_renter_review_until` string
      - `can_see_contract` boolean
      - `can_suggest_date_change` boolean
      - `can_suggest_delivery_change` boolean
      - `cancel_metadata` CancelMetadata — CancelMetadata is stored as JSONB and contains structured cancellation information for analytics and tracking Fields: reason_value, penalty_category, timestamp, reason_metadata
      - `cancel_policy` string
      - `cancel_reason` string
      - `canceled` string
      - `cancellation_cutoff_date` string
      - `cancellation_refund_breakdown` CancellationRefundBreakdown — It captures the full component split computed by getRefundPayoutInputs so that the host dashboard can display a detailed breakdown without having to re-derive the numbers.
        - `cancellation_policy` string
        - `gross_owner_payout` integer
        - `is_cutoff_cancellation` boolean
        - `is_grace_period` boolean
        - `is_standardized_policy` boolean
        - `net_owner_payout` integer
        - `non_refundable_rif` integer
        - `other_items_amount` integer
        - `owner_fee` integer
        - `owner_fee_base` integer
        - `owner_fee_percentage` number, double
        - `penalty_percentage` number, double
        - `refund_percentage` number, double
        - `refundable_rif` integer
        - `rental_amount` integer
        - `rental_tax` integer
        - `rental_tax_payable_to` string
        - `renter_refund_amount` integer
        - `service_fee` integer
        - `service_fee_tax` integer
        - `total_rif` integer
      - `cancellation_refund_percentage` number, double
      - `cc_fee_percentage` number, double — Copied rental data - don't want rental changes to affect this booking
      - `checkin_stamp` string — Internal
      - `checkout_questions` object[] — DBMSISlice is a []string with database conversion methods
      - `checkout_stamp` string
      - `checkout_steps_id` integer
      - `children` integer
      - `coachnet_id` integer
      - `coachnet_premium` integer
      - `consignment` BookingConsignment
        - `keep_amt_cc_fee` integer
        - `keep_amt_insurance_fee` integer
        - `keep_pct_cc_fee` number, double
        - `keep_pct_insurance_fee` number, double
        - `pay_amt_total` integer
        - `pay_pct_generator` number, double
        - `pay_pct_mileage` number, double — Consigned owner support - copied rental data
        - `payout_id` ConsignedPayout
          - `bookings` Booking[]
          - `consigned_owner_id` integer
          - `created` string
          - `from` string
          - `id` integer
          - `items` ConsignedPayoutItem[]
            - `consigned_payout_id` ConsignedPayout — recursive
            - `created` string
            - `description` string
            - `id` integer
            - `name` string
            - `total` integer
            - `updated` string
          - `message` string
          - `owner_id` integer
          - `paid_date` string
          - `rental_id` integer
          - `status` string
          - `to` string
          - `total` integer
          - `updated` string
      - `conversation_id` integer
      - `created` string
      - `created_by_id` integer
      - `created_stamp` string
      - `custom_insurance_text` string, nullable
      - `dealer_minimum_days` integer — used to display information if a booking is below the dealers minimum days
      - `decline_reason` string
      - `default_insurance_coverage` string
      - `deliverable_campground` ExternalCampground
        - `available_for_dates` boolean — Fields calculated post search
        - `calculated_day_price` integer
        - `campground_catalog` CampgroundCatalog
          - `activity_features` CampgroundActivityFeature[]
            - `feature` string
            - `name` string
          - `amenities_categories` CampgroundAmenitiesCategory[]
            - `id` string
            - `name` string
          - `processed_amenities` object
          - `scenery_features` CampgroundSceneryFeature[]
            - `feature` string
            - `name` string
        - `campsite_category_ids` integer[]
        - `check_in_time` string — Check in / Check out times
        - `check_out_time` string
        - `description` string
        - `email` string — Contact information
        - `id` integer
        - `images` Image[]
          - `best` boolean
          - `category` Category
            - `name` string
            - `slug` string
          - `description` string
          - `id` integer
          - `position` integer
          - `primary` boolean
          - `rental_id` integer
          - `skip_enhance` boolean
          - `status` string
          - `tags` string
          - `url` string
          - `video` boolean
        - `is_odn` boolean — Flags
        - `is_site_available` boolean
        - `locale` Locale
          - `base_currency` string
          - `date_format` string
          - `distance_unit` string
          - `language` string
          - `length_unit` string
          - `liquid_unit` string
          - `time_format` string
          - `timezone` string
          - `weight_unit` string
        - `location` integer
        - `lowest_price` integer
        - `name` string
        - `odn_id` string
        - `phone` string
        - `presentment_currency` string — Currency
        - `primary_image_url` string
        - `reviews_num` integer
        - `score` number, double — Ratings and reviews
        - `settlement_currency` string
        - `site_map_image_url` string
        - `slug` string
        - `unavailable` boolean
        - `vacation_package_slug` string
        - `website_url` string — Links and Images
      - `delivery` BookingDelivery
        - `actual` number, double
        - `departure` number, double
        - `estimated` number, double
        - `estimated_fee` integer
        - `renter_comment` string
        - `return` number, double
        - `stationary` boolean
        - `suggested_fee` integer
      - `delivery_item` BookingItem
        - `_deleted` boolean — special flag for handling batch update/delete
        - `booking_id` integer
        - `coachnet_item` boolean
        - `consigned_pay_amount` integer
        - `count` integer
        - `created` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
          - `Time` string, date-time
          - `Valid` boolean
        - `daily` boolean
        - `deferred` boolean
        - `deferred_total` integer, nullable
        - `deleted_at` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
          - `Time` string, date-time
          - `Valid` boolean
        - `delivery` boolean
        - `description` string
        - `discount_amount` integer
        - `generator` boolean
        - `id` integer
        - `image_url` string
        - `maximum_price` integer, nullable
        - `mileage` boolean
        - `minimum_price` integer, nullable
        - `name` string
        - `original_consigned_pay_pct` number, double — consigned owner support
        - `original_tax_rate_id` integer
        - `other_claim` boolean
        - `outdoorsy_item` boolean
        - `parent_item_id` integer
        - `parent_item_type` string
        - `percent` number, double
        - `percent_type` string
        - `position` integer
        - `premium_amount` integer
        - `premium_total` integer
        - `price` integer
        - `rental_amount` boolean — mutation modifiers
        - `required` boolean
        - `tax_amount` integer
        - `tax_description` string
        - `tax_name` string
        - `tax_rate` number, double
        - `tax_rates` BookingTaxRate[]
          - `booking_id` integer
          - `created` string
          - `deleted` boolean
          - `id` integer
          - `object_id` integer
          - `object_type` string
          - `payable_to` string
          - `source` string
          - `state` string
          - `tax_amount` integer
          - `tax_description` string
          - `tax_name` string
          - `tax_rate` number, double
          - `tax_rate_id` integer
          - `updated` string
          - `zip_code` string
        - `total` integer
        - `updated` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
          - `Time` string, date-time
          - `Valid` boolean
      - `delivery_usage_item` unknown
      - `delivery_usage_item_id` integer
      - `deposit_percentage` number, double
      - `destination` string
      - `destination_lat` number, double
      - `destination_lng` number, double
      - `details` unknown
      - `device_id` string
      - `discount_code` string — Copied discount code data, not allowed in request data.
      - `discount_code_amount` integer
      - `discount_code_applied_to` string
      - `discount_code_message` string
      - `display_insurance` string
      - `display_source` string
      - `display_status` string
      - `display_status_style` string
      - `documents` BookingDocuments
        - `claims_form` string
        - `contract` string
        - `departure_form` string
        - `departure_form_checklist` string
        - `esign_receipt` string
        - `insurance_binder` string
        - `pre_arrival_checklist` string
        - `protection_packages` string
        - `receipt` string
        - `return_form` string
      - `dropoff` BookingDropoff
        - `city` string
        - `country` string
        - `delivery` boolean
        - `lat` number, double
        - `lng` number, double
        - `state` string
        - `street` string
        - `street_etc` string
        - `zip` string
      - `duration` integer
      - `esign_enabled` boolean
      - `esign_pending` boolean
      - `expire_reason` string
      - `express_checkout_id` integer
      - `external` boolean, nullable
      - `external_gift_card_details` ExternalGiftCardDetails
        - `alocated_amount` integer
        - `card_number` string
        - `converted_amount` integer
        - `pin_verivied` boolean
        - `provider` string
        - `refund_amount` integer
        - `refund_converted_amount` integer
        - `refund_req_ref` string
        - `request_ref` string
      - `external_gift_card_details_v2` ExternalGiftCardDetails[]
        - `alocated_amount` integer
        - `card_number` string
        - `converted_amount` integer
        - `pin_verivied` boolean
        - `provider` string
        - `refund_amount` integer
        - `refund_converted_amount` integer
        - `refund_req_ref` string
        - `request_ref` string
      - `fees_locked` boolean
      - `fees_total` integer
      - `final_payment_due_days` integer
      - `followup_archived` boolean
      - `formatted` BookingDisplayFormatted
        - `insurance` BookingInsuranceFormatted
          - `action` string
          - `description` string
          - `title` string
          - `warning` string
      - `formatted_total_overage_fee` string
      - `fraudulent` boolean
      - `free_cancellation_available` boolean
      - `free_cancellation_period` integer
      - `from` string
      - `from_time` integer
      - `fx_fee_paid` integer
      - `generator` BookingGenerator
        - `actual` number, double
        - `departure` number, double
        - `estimated` number, double
        - `estimated_fee` integer
        - `return` number, double
        - `suggested_fee` integer
      - `generator_item` BookingItem
        - `_deleted` boolean — special flag for handling batch update/delete
        - `booking_id` integer
        - `coachnet_item` boolean
        - `consigned_pay_amount` integer
        - `count` integer
        - `created` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
          - `Time` string, date-time
          - `Valid` boolean
        - `daily` boolean
        - `deferred` boolean
        - `deferred_total` integer, nullable
        - `deleted_at` NullTime — NullTime represents a time.Time that may be null. NullTime implements the sql.Scanner interface so it can be used as a scan destination, similar to sql.NullString.
          - `Time` string, date-time
          - `Valid` boolean
        - `delivery` boolean
        - `description` string
        - `discount_amount` integer
        - `generator` boolean
        - `id` integer
        - `image_url` string
        - `maximum_price` integer, nullable
- … truncated; see the full OpenAPI document linked below

## Other responses

- `400` — Invalid input or state means you're bad
- `401` — Unauthorized error
- `404` — Not found error
- `default` — An unknown, unexpected error.

---

[API](https://skmtc.net/outdoorsy/apis/outdoorsy-api-documentation.md) · [All operations](https://skmtc.net/outdoorsy/apis/outdoorsy-api-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/outdoorsy/outdoorsy-api-documentation/versions/f0cf8f605ea0/schema)
