{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/silvercar/main/json-schema/silvercar-admin-dealership-contract-response-schema.json", "title": "AdminDealershipContractResponse", "x-generated": "2026-10-14", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/silvercar-mob-api-openapi.yml#/components/schemas/AdminDealershipContractResponse", "type": "object", "required": [ "id", "actual_dropoff_at", "actual_pickup_at", "booked_by_name", "booked_car_detailed_description", "booking_application", "booking_channel", "capabilities", "confirmation_token", "contactless", "created_at", "credit_card_id", "customer", "daily_rate_override", "damage_inspections", "external_deposit_amount", "finished_by_name", "fuel", "ineligibility_reasons", "is_contract_eligible", "links", "location_sequence", "max_vehicle_swaps", "odometer", "program_minimum_age", "purchase_order", "repair_order", "scheduled_dropoff_at", "scheduled_pickup_at", "service_advisor_id", "service_advisor_name", "service_vehicle_id", "signed", "status", "updated_at", "vehicle_swaps_performed" ], "properties": { "id": { "type": "integer", "description": "database id of the contract" }, "actual_pickup_at": { "type": [ "string", "null" ], "format": "date-time" }, "actual_dropoff_at": { "type": [ "string", "null" ], "format": "date-time" }, "booked_car_detailed_description": { "type": "object", "properties": { "acriss_code": { "type": "string" }, "acriss_model_description": { "type": "string" }, "city_mpg": { "type": "string" }, "fuel_tank": { "type": "string" }, "hwy_mpg": { "type": "string" }, "luggage": { "type": "string" }, "make": { "type": "string" }, "model": { "type": "string" }, "passengers": { "type": "string" }, "style": { "type": "string" }, "type": { "type": "string" }, "year": { "type": "string" } } }, "booked_by_name": { "type": [ "string", "null" ] }, "booking_application": { "type": [ "string", "null" ], "description": "Client application type that created the reservation (e.g. web, iphone-appstore, scheduler)." }, "booking_channel": { "type": [ "string", "null" ], "description": "Partner integration source for the booking (e.g. mykaarma, xtime, redcap, toyota-oneapp) or dealerware for Dealerware-native bookings." }, "capabilities": { "type": "object", "required": [ "payments", "valet_moves" ], "properties": { "payments": { "type": "object", "required": [ "on_platform", "off_platform" ], "properties": { "on_platform": { "type": "boolean", "description": "Whether the contract allows on-platform payments." }, "off_platform": { "type": "boolean", "description": "Whether the contract allows off-platform payments." } } }, "valet_moves": { "type": "object", "required": [ "enabled" ], "properties": { "enabled": { "type": "boolean", "description": "Whether the contract dealership supports HopDrive Valet Moves controls." } } } } }, "confirmation_token": { "type": "string", "description": "also referred to as contract id" }, "contactless": { "type": "boolean", "description": "denotes whether or not the contract is a contactless contract" }, "credit_card_id": { "type": [ "integer", "null" ], "description": "ID of the credit card selected on the contract, or null when no card is selected." }, "customer": { "type": "object", "description": "Customer summary. A missing or soft-deleted customer results in a 404 response.", "required": [ "id", "full_name", "has_complete_profile", "permitted_to_rent" ], "properties": { "id": { "type": "integer" }, "full_name": { "type": "string", "description": "Customer name, masked as Deleted Customer for privacy-deleted customers." }, "has_complete_profile": { "type": "boolean" }, "permitted_to_rent": { "type": "boolean", "description": "Whether the customer is permitted to rent based on the active Do Not Rent list." } } }, "created_at": { "type": "string", "format": "date-time" }, "daily_rate_override": { "description": "The daily rate to charge for this contract, if different from the default rate for the vehicle", "type": "number" }, "damage_inspections": { "type": "array", "description": "Damage inspection statuses for the active car reservations on this contract.", "items": { "type": "object", "required": [ "vehicle_id", "status", "pdf_report_url" ], "properties": { "vehicle_id": { "type": "integer", "description": "The vehicle ID for the associated car reservation." }, "status": { "type": "string", "description": "The status of the associated damage inspection. Returns `not_inspected`\nwhen no damage inspection exists for that car reservation.\n" }, "pdf_report_url": { "type": [ "string", "null" ], "format": "uri", "description": "The URL for the attached damage inspection PDF report, if present.\nReturns `null` when no PDF report has been attached for that car reservation.\n" } } } }, "external_deposit_amount": { "type": [ "number", "null" ], "description": "The amount of the external deposit, if any, that was collected for this contract" }, "finished_by_name": { "type": [ "string", "null" ] }, "fuel": { "type": "object", "properties": { "starting_fuel_gallons": { "type": [ "number", "null" ], "description": "Fuel amount at the start of the contract in gallons" }, "starting_fuel_liters": { "type": [ "number", "null" ], "description": "Fuel amount at the start of the contract in liters" }, "ending_fuel_gallons": { "type": [ "number", "null" ], "description": "Fuel amount at the end of the contract in gallons" }, "ending_fuel_liters": { "type": [ "number", "null" ], "description": "Fuel amount at the end of the contract in liters" }, "starting_fuel_percentage": { "type": [ "number", "null" ], "format": "float", "description": "Starting fuel as a percentage of the tank capacity" }, "ending_fuel_percentage": { "type": [ "number", "null" ], "format": "float", "description": "Ending fuel as a percentage of the tank capacity" } } }, "location_sequence": { "type": "integer", "description": "sequence id of the contract for its location" }, "odometer": { "type": "object", "properties": { "starting_odometer_miles": { "type": [ "number", "null" ], "description": "Odometer reading at the start of the contract in miles" }, "starting_odometer_km": { "type": [ "number", "null" ], "description": "Odometer reading at the start of the contract in kilometers" }, "ending_odometer_miles": { "type": [ "number", "null" ], "description": "Odometer reading at the end of the contract in miles" }, "ending_odometer_km": { "type": [ "number", "null" ], "description": "Odometer reading at the end of the contract in kilometers" } } }, "purchase_order": { "type": [ "string", "null" ], "description": "The optional purchase order number associated with this contract" }, "repair_order": { "type": [ "string", "null" ], "description": "The optional repair order sent from a contract creation request" }, "service_vehicle_id": { "type": [ "string", "null" ], "description": "The optional service vehicle ID sent from a contract creation request" }, "service_vehicle_id_valid": { "type": "boolean", "description": "Whether the service vehicle ID is a valid VIN" }, "status": { "type": "string", "enum": [ "booked", "cancelled", "pending_agreement", "started", "finished", "no_showed" ] }, "scheduled_pickup_at": { "type": "string", "format": "date-time" }, "scheduled_dropoff_at": { "type": "string", "format": "date-time" }, "service_advisor_name": { "type": [ "string", "null" ] }, "service_advisor_id": { "type": [ "integer", "null" ] }, "signed": { "type": "boolean", "description": "denotes whether or not the required contract signatures are present" }, "updated_at": { "type": "string", "format": "date-time" }, "program_minimum_age": { "type": [ "integer", "null" ], "description": "The applicable minimum age requirement for drivers, including Drive Protection rules when enforced" }, "ineligibility_reasons": { "type": "object", "description": "Detailed information about why drivers may be ineligible for this contract", "properties": { "ineligible_drivers": { "type": "array", "description": "Array of drivers who do not meet the program requirements", "items": { "type": "object", "properties": { "customer_id": { "type": [ "integer", "null" ], "description": "The customer ID (null for additional drivers)" }, "is_primary_driver": { "type": "boolean", "description": "Whether this is the primary driver" }, "drivers_name": { "type": "string", "description": "The driver's full name" }, "born_on": { "type": "string", "format": "date", "description": "The driver's date of birth in YYYY-MM-DD format" }, "reason": { "type": "string", "description": "The reason for ineligibility" } } } } } }, "is_contract_eligible": { "type": "boolean", "description": "Whether the contract is eligible to start based on all eligibility checks" }, "max_vehicle_swaps": { "type": "integer", "description": "The maximum number of vehicle swaps that can be performed for this contract." }, "vehicle_swaps_performed": { "type": "integer", "description": "The number of vehicle swaps that have been performed for this contract." }, "links": { "type": "object", "properties": { "vehicle": { "$ref": "#/$defs/HypermediaLink" }, "fleet": { "$ref": "#/$defs/HypermediaLink" }, "customer": { "$ref": "#/$defs/HypermediaLink" }, "dealership": { "$ref": "#/$defs/HypermediaLink" } } } }, "$defs": { "HypermediaLink": { "type": "object", "properties": { "id": { "type": "integer", "description": "ID of the associated resource" }, "href": { "type": "string", "description": "Link to the associated resource" } } } } }