{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/provecart-com/json-schema/provecart-com-booking-verify-in-schema.json",
  "title": "BookingVerifyIn",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/provecart-com-openapi.json#/components/schemas/BookingVerifyIn",
  "properties": {
    "mandate_id": {
      "type": "string",
      "title": "Mandate Id"
    },
    "merchant": {
      "$ref": "#/$defs/MerchantIn"
    },
    "travelers": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "title": "Travelers"
    },
    "legs": {
      "items": {
        "$ref": "#/$defs/BookingLegIn"
      },
      "type": "array",
      "title": "Legs"
    },
    "stays": {
      "items": {
        "$ref": "#/$defs/BookingStayIn"
      },
      "type": "array",
      "title": "Stays"
    },
    "fare": {
      "anyOf": [
        {
          "$ref": "#/$defs/BookingFareIn"
        },
        {
          "type": "null"
        }
      ]
    },
    "price": {
      "$ref": "#/$defs/BookingPriceIn"
    },
    "currency": {
      "type": "string",
      "title": "Currency",
      "default": "USD"
    },
    "previous_record_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Previous Record Id"
    },
    "booking_changed": {
      "type": "boolean",
      "title": "Booking Changed",
      "default": false
    }
  },
  "type": "object",
  "required": [
    "mandate_id",
    "merchant",
    "price"
  ],
  "$defs": {
    "BookingFareIn": {
      "properties": {
        "cabin": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Cabin"
        },
        "refundability": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Refundability"
        },
        "change_fee": {
          "anyOf": [
            {
              "type": "number",
              "minimum": 0.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Change Fee"
        },
        "fare_class": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Fare Class"
        }
      },
      "type": "object",
      "title": "BookingFareIn"
    },
    "BookingLegIn": {
      "properties": {
        "carrier": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Carrier"
        },
        "flight_number": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Flight Number"
        },
        "from_airport": {
          "type": "string",
          "title": "From Airport"
        },
        "to_airport": {
          "type": "string",
          "title": "To Airport"
        },
        "depart_at": {
          "type": "string",
          "title": "Depart At"
        },
        "arrive_at": {
          "type": "string",
          "title": "Arrive At"
        }
      },
      "type": "object",
      "required": [
        "from_airport",
        "to_airport",
        "depart_at",
        "arrive_at"
      ],
      "title": "BookingLegIn"
    },
    "BookingPriceIn": {
      "properties": {
        "total": {
          "type": "number",
          "minimum": 0.0,
          "title": "Total"
        },
        "base_fare": {
          "anyOf": [
            {
              "type": "number",
              "minimum": 0.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Base Fare"
        },
        "taxes": {
          "anyOf": [
            {
              "type": "number",
              "minimum": 0.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Taxes"
        },
        "carrier_fees": {
          "anyOf": [
            {
              "type": "number",
              "minimum": 0.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Carrier Fees"
        },
        "ancillaries": {
          "anyOf": [
            {
              "type": "number",
              "minimum": 0.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Ancillaries"
        }
      },
      "type": "object",
      "required": [
        "total"
      ],
      "title": "BookingPriceIn"
    },
    "BookingStayIn": {
      "properties": {
        "property_name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Property Name"
        },
        "room_type": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Room Type"
        },
        "occupancy": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Occupancy"
        },
        "bedding": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Bedding"
        },
        "check_in": {
          "type": "string",
          "title": "Check In"
        },
        "check_out": {
          "type": "string",
          "title": "Check Out"
        }
      },
      "type": "object",
      "required": [
        "check_in",
        "check_out"
      ],
      "title": "BookingStayIn"
    },
    "MerchantIn": {
      "properties": {
        "name": {
          "type": "string",
          "title": "Name"
        },
        "domain": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Domain"
        }
      },
      "type": "object",
      "required": [
        "name"
      ],
      "title": "MerchantIn"
    }
  }
}