Mercedes.Agency.Orchestration.API

<back to all web services

GetVehicleWithOptimalRequest

Vehicle
Requires Authentication
The following routes are available for this service:
POST/v1/VehicleWithOptimalGet Vehicle by Vin and a more optimal option if available
import Foundation
import ServiceStack

public class GetVehicleWithOptimalRequest : Codable
{
    public var vehicleIdentifier:String
    public var includeAllocatedToBackOrder:Bool
    public var gssn:String
    public var isOneAdmin:Bool
    public var motabilityPricingId:Int?

    required public init(){}
}

public class GetVehicleWithOptimalResponse : GetVehicleResponse
{
    public var optimumVehicle:VehicleDetailDto

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case optimumVehicle
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        optimumVehicle = try container.decodeIfPresent(VehicleDetailDto.self, forKey: .optimumVehicle)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if optimumVehicle != nil { try container.encode(optimumVehicle, forKey: .optimumVehicle) }
    }
}

public class GetVehicleResponse : Codable
{
    public var vehicle:VehicleDetailDto
    public var errors:[VehicleError] = []

    required public init(){}
}

public class VehicleDetailDto : Codable
{
    public var bodyStyle:String
    public var vin:String
    public var Description:String
    public var colour:String
    public var colourCode:String
    public var colourDescription:String
    public var colourGroup:String
    public var model:String
    public var commissionNumber:String
    public var brandId:Int?
    public var brand:Brand
    public var engine:Engine
    public var engineBadge:String
    public var media:Media
    public var line:String
    public var upholsteryCode:String
    public var upholsteryType:String
    public var upholstery:String
    public var upholsteryDescription:String
    public var availablePackages:[String] = []
    public var packages:[String] = []
    public var p11D:Double
    public var portArrivalDate:Date?
    public var prices:[Price] = []
    public var transmissionType:String
    public var fuelType:String
    public var vehicleClass:String
    public var productRange:String
    public var vehicleType:String
    public var emission:Double?
    public var isAvailableOnline:Bool
    public var underOffer:Bool
    public var isExcluded:Bool
    public var isSellable:Bool
    public var onHold:Bool
    public var electricConsumption:Double?
    public var electricRange:Double?
    public var imageUrl:String
    public var baumuster:String
    public var retailer:Retailer
    public var bm7NST:String
    public var otr:Double
    public var actualPrice:Double
    public var isDisplayStock:Bool
    public var displayRetailerId:Int?
    public var displayRetailer:String
    public var displayRetailerGssnId:String
    public var displayRetailerMarketAreaId:String
    public var isSmartDisplayRetailer:Bool
    public var isSpecialistCar:Bool
    public var age:Int?
    public var secured:Bool
    public var isHOBackOrderAccountVehicle:Bool
    public var isAllocatedToBackOrder:Bool
    public var usageCode:String
    public var emissionCombined:Double?
    public var normalisedEmissionDirective:String
    public var hasMildHybridEquipmentCode:Bool
    public var retailPriceExVat:Double
    public var retailPrice_IncVAT:Double
    public var retailPrice_ExVAT:Double
    public var modelId:Int
    public var vid:String
    public var productionDate:String
    public var fullModelYearCode:String
    public var chassisNumber:String
    public var eligibleForIntegratedServiceCare:Bool
    public var accountType:String
    public var consumptionCombined:VehicleConsumption
    public var consumptionExtraUrban:VehicleConsumption
    public var consumptionUrban:VehicleConsumption
    public var wltpFuelConsumptionCombined:VehicleConsumption
    public var wltpFuelConsumptionExtraHigh:VehicleConsumption
    public var wltpFuelConsumptionHigh:VehicleConsumption
    public var wltpFuelConsumptionLow:VehicleConsumption
    public var wltpFuelConsumptionMedium:VehicleConsumption
    public var equipment:[Equipmentv2]
    public var equipmentCategories:[VehicleEquipmentCategory]
    public var energyEfficiencyClass:VehicleEmissionClass
    public var vehicleData:[VehicleAttribute]
    public var integratedServiceCareOptions:[VehicleIntegratedServiceCareOption] = []
    public var ispVehicleCustomerDescriptions:[String]

    required public init(){}
}

public class Brand : Codable
{
    public var id:Int
    public var Description:String
    public var displayName:String
    public var bodyStyles:[BodyStyle]

    required public init(){}
}

public class BodyStyle : Codable
{
    public var id:Int
    public var Description:String
    public var models:[Model]

    required public init(){}
}

public class Model : Codable
{
    public var id:Int
    public var Description:String
    public var displayName:String
    public var imageUrlSmall:String
    public var imageUrlMedium:String
    public var imageUrlLarge:String
    public var specialist:Bool
    public var priority:Int
    public var excludeFromOnlineShowroomFilters:Bool?

    required public init(){}
}

public class Engine : Codable
{
    public var id:Int?
    public var badge:String

    required public init(){}
}

public class Media : Codable
{
    public var noImage:Bool
    public var mainImageUrl:String

    required public init(){}
}

public class Price : Codable
{
    public var id:String
    public var Description:String
    public var net:Double
    public var vat:Double
    public var gross:Double
    public var product:OfferPriceProductType

    required public init(){}
}

public enum OfferPriceProductType : String, Codable
{
    case LIST_PRICE
    case NUMBER_PLATE_FEE
    case DELIVERY_CHARGE
    case FUEL_CHARGE
    case MANUFACTURER_OFFER
    case PERSONALISED_MONEYOFFER
    case PERSONALISED_NONMONEYOFFER
    case PERSONALISED_NONMONEYOFFER_NEG
    case SERVICE
    case SERVICE_NEG
    case GOVERNMENT_GRANT
    case OUTRIGHT_PURCHASE_DISCOUNT
    case VIP_OFFER
    case WALLBOX_OFFER
    case WALLBOX_OFFER_NEG
    case ROAD_FUND_LICENCE
    case FIRST_REGISTRATION_FEE
    case NOT_FOUND
    case ACCESSORY_OFFER
    case ACCESSORY_OFFER_NEG
    case MOTABILITY_DISCOUNT
}

public class Retailer : Codable
{
    public var id:Int
    public var gssnId:String
    public var Description:String
    public var street:String
    public var city:String
    public var postcode:String
    public var googleMapPostcode:String
    public var phone:String
    public var fax:String
    public var email:String
    public var website:String
    public var retailerGroupId:String
    public var retailerGroupName:String
    public var isOnline:Bool
    public var isNewCarRetailer:Bool
    public var isUsedCarRetailer:Bool
    public var isCentralRetailer:Bool
    public var chatEnabled:Bool
    public var tradeInEnabled:Bool
    public var smart:Bool
    public var displayPhoneNumberNew:String
    public var displayPhoneNumberUsed:String
    public var latitude:Double
    public var longitude:Double
    public var smartDescription:String
    public var smartWebsite:String
    public var smartPhone:String
    public var legacyId:String
    public var agent:Bool
    public var marketAreaId:Int
    public var digitalLoungeParentGssnId:String
    public var sendLeadsToDigitalLoungeParent:Bool
    public var openingTimes:RetailerOpeningTimes

    required public init(){}
}

public class RetailerOpeningTimes : Codable
{
    public var `new`:[RetailerOpeningTime] = []
    public var used:[RetailerOpeningTime] = []

    required public init(){}
}

public class RetailerOpeningTime : Codable
{
    public var day:String
    public var openFrom:String
    public var openTo:String
    public var special:String

    required public init(){}
}

public class VehicleConsumption : Codable
{
    public var id:Int
    public var lkm:Double
    public var mpg:Double

    required public init(){}
}

public class Equipmentv2 : Equipment
{
    public var importance:Int
    public var isAdditional:Bool

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case importance
        case isAdditional
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        importance = try container.decodeIfPresent(Int.self, forKey: .importance)
        isAdditional = try container.decodeIfPresent(Bool.self, forKey: .isAdditional)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if importance != nil { try container.encode(importance, forKey: .importance) }
        if isAdditional != nil { try container.encode(isAdditional, forKey: .isAdditional) }
    }
}

public class Equipment : Codable
{
    public var id:Int
    public var code:String
    public var Description:String

    required public init(){}
}

public class VehicleEquipmentCategory : Codable
{
    public var order:Int
    public var code:String
    public var Description:String
    public var equipment:[Equipmentv2]

    required public init(){}
}

public class VehicleEmissionClass : Codable
{
    public var colour:String
    public var rating:String

    required public init(){}
}

public class VehicleAttribute : Codable
{
    public var Description:String
    public var value:String

    required public init(){}
}

public class VehicleIntegratedServiceCareOption : Codable
{
    public var optionCode:String
    public var bM7NST:String
    public var fullModelYear:String
    public var integratedProductType:String
    public var customerDescription:String
    public var oneAgentProductType:String

    required public init(){}
}

public class VehicleError : Codable
{
    public var field:String
    public var message:String

    required public init(){}
}


Swift GetVehicleWithOptimalRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /v1/VehicleWithOptimal HTTP/1.1 
Host: prod-api-agency-orch-mb-dhc.rapp-customers.co.uk 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	VehicleIdentifier: String,
	IncludeAllocatedToBackOrder: False,
	Gssn: String,
	IsOneAdmin: False,
	MotabilityPricingId: 0
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	OptimumVehicle: 
	{
		BodyStyle: String,
		Vin: String,
		Description: String,
		Colour: String,
		ColourCode: String,
		ColourDescription: String,
		ColourGroup: String,
		Model: String,
		CommissionNumber: String,
		BrandId: 0,
		Brand: 
		{
			Id: 0,
			Description: String,
			DisplayName: String,
			BodyStyles: 
			[
				{
					Id: 0,
					Description: String,
					Models: 
					[
						{
							Id: 0,
							Description: String,
							DisplayName: String,
							ImageUrlSmall: String,
							ImageUrlMedium: String,
							ImageUrlLarge: String,
							Specialist: False,
							Priority: 0,
							ExcludeFromOnlineShowroomFilters: False
						}
					]
				}
			]
		},
		Engine: 
		{
			Id: 0,
			Badge: String
		},
		EngineBadge: String,
		Media: 
		{
			NoImage: False,
			MainImageUrl: String
		},
		Line: String,
		UpholsteryCode: String,
		UpholsteryType: String,
		Upholstery: String,
		UpholsteryDescription: String,
		AvailablePackages: 
		[
			String
		],
		Packages: 
		[
			String
		],
		P11D: 0,
		PortArrivalDate: 0001-01-01,
		Prices: 
		[
			{
				Id: String,
				Description: String,
				Net: 0,
				VAT: 0,
				Gross: 0,
				Product: LIST_PRICE
			}
		],
		TransmissionType: String,
		FuelType: String,
		VehicleClass: String,
		ProductRange: String,
		VehicleType: String,
		Emission: 0,
		IsAvailableOnline: False,
		UnderOffer: False,
		IsExcluded: False,
		IsSellable: False,
		OnHold: False,
		ElectricConsumption: 0,
		ElectricRange: 0,
		ImageUrl: String,
		Baumuster: String,
		Retailer: 
		{
			Id: 0,
			GssnId: String,
			Description: String,
			Street: String,
			City: String,
			Postcode: String,
			GoogleMapPostcode: String,
			Phone: String,
			Fax: String,
			Email: String,
			Website: String,
			RetailerGroupId: String,
			RetailerGroupName: String,
			IsOnline: False,
			IsNewCarRetailer: False,
			IsUsedCarRetailer: False,
			IsCentralRetailer: False,
			ChatEnabled: False,
			TradeInEnabled: False,
			smart: False,
			DisplayPhoneNumberNew: String,
			DisplayPhoneNumberUsed: String,
			Latitude: 0,
			Longitude: 0,
			smartDescription: String,
			smartWebsite: String,
			smartPhone: String,
			LegacyId: String,
			Agent: False,
			MarketAreaId: 0,
			DigitalLoungeParentGssnId: String,
			SendLeadsToDigitalLoungeParent: False,
			OpeningTimes: 
			{
				New: 
				[
					{
						Day: String,
						OpenFrom: String,
						OpenTo: String,
						Special: String
					}
				],
				Used: 
				[
					{
						Day: String,
						OpenFrom: String,
						OpenTo: String,
						Special: String
					}
				]
			}
		},
		Bm7NST: String,
		OTR: 0,
		ActualPrice: 0,
		IsDisplayStock: False,
		DisplayRetailerId: 0,
		DisplayRetailer: String,
		DisplayRetailerGssnId: String,
		DisplayRetailerMarketAreaId: String,
		IsSmartDisplayRetailer: False,
		IsSpecialistCar: False,
		Age: 0,
		Secured: False,
		IsHOBackOrderAccountVehicle: False,
		IsAllocatedToBackOrder: False,
		UsageCode: String,
		EmissionCombined: 0,
		NormalisedEmissionDirective: String,
		HasMildHybridEquipmentCode: False,
		RetailPriceExVat: 0,
		RetailPrice_IncVAT: 0,
		RetailPrice_ExVAT: 0,
		ModelId: 0,
		VID: String,
		ProductionDate: String,
		FullModelYearCode: String,
		ChassisNumber: String,
		EligibleForIntegratedServiceCare: False,
		AccountType: String,
		ConsumptionCombined: 
		{
			Id: 0,
			Lkm: 0,
			Mpg: 0
		},
		ConsumptionExtraUrban: 
		{
			Id: 0,
			Lkm: 0,
			Mpg: 0
		},
		ConsumptionUrban: 
		{
			Id: 0,
			Lkm: 0,
			Mpg: 0
		},
		WltpFuelConsumptionCombined: 
		{
			Id: 0,
			Lkm: 0,
			Mpg: 0
		},
		WltpFuelConsumptionExtraHigh: 
		{
			Id: 0,
			Lkm: 0,
			Mpg: 0
		},
		WltpFuelConsumptionHigh: 
		{
			Id: 0,
			Lkm: 0,
			Mpg: 0
		},
		WltpFuelConsumptionLow: 
		{
			Id: 0,
			Lkm: 0,
			Mpg: 0
		},
		WltpFuelConsumptionMedium: 
		{
			Id: 0,
			Lkm: 0,
			Mpg: 0
		},
		Equipment: 
		[
			{
				Importance: 0,
				IsAdditional: False,
				Id: 0,
				Code: String,
				Description: String
			}
		],
		EquipmentCategories: 
		[
			{
				Order: 0,
				Code: String,
				Description: String,
				Equipment: 
				[
					{
						Importance: 0,
						IsAdditional: False,
						Id: 0,
						Code: String,
						Description: String
					}
				]
			}
		],
		EnergyEfficiencyClass: 
		{
			Colour: String,
			Rating: String
		},
		VehicleData: 
		[
			{
				Description: String,
				Value: String
			}
		],
		IntegratedServiceCareOptions: 
		[
			{
				OptionCode: String,
				BM7NST: String,
				FullModelYear: String,
				IntegratedProductType: String,
				CustomerDescription: String,
				OneAgentProductType: String
			}
		],
		IspVehicleCustomerDescriptions: 
		[
			String
		]
	},
	Vehicle: 
	{
		BodyStyle: String,
		Vin: String,
		Description: String,
		Colour: String,
		ColourCode: String,
		ColourDescription: String,
		ColourGroup: String,
		Model: String,
		CommissionNumber: String,
		BrandId: 0,
		Brand: 
		{
			Id: 0,
			Description: String,
			DisplayName: String,
			BodyStyles: 
			[
				{
					Id: 0,
					Description: String,
					Models: 
					[
						{
							Id: 0,
							Description: String,
							DisplayName: String,
							ImageUrlSmall: String,
							ImageUrlMedium: String,
							ImageUrlLarge: String,
							Specialist: False,
							Priority: 0,
							ExcludeFromOnlineShowroomFilters: False
						}
					]
				}
			]
		},
		Engine: 
		{
			Id: 0,
			Badge: String
		},
		EngineBadge: String,
		Media: 
		{
			NoImage: False,
			MainImageUrl: String
		},
		Line: String,
		UpholsteryCode: String,
		UpholsteryType: String,
		Upholstery: String,
		UpholsteryDescription: String,
		AvailablePackages: 
		[
			String
		],
		Packages: 
		[
			String
		],
		P11D: 0,
		PortArrivalDate: 0001-01-01,
		Prices: 
		[
			{
				Id: String,
				Description: String,
				Net: 0,
				VAT: 0,
				Gross: 0,
				Product: LIST_PRICE
			}
		],
		TransmissionType: String,
		FuelType: String,
		VehicleClass: String,
		ProductRange: String,
		VehicleType: String,
		Emission: 0,
		IsAvailableOnline: False,
		UnderOffer: False,
		IsExcluded: False,
		IsSellable: False,
		OnHold: False,
		ElectricConsumption: 0,
		ElectricRange: 0,
		ImageUrl: String,
		Baumuster: String,
		Retailer: 
		{
			Id: 0,
			GssnId: String,
			Description: String,
			Street: String,
			City: String,
			Postcode: String,
			GoogleMapPostcode: String,
			Phone: String,
			Fax: String,
			Email: String,
			Website: String,
			RetailerGroupId: String,
			RetailerGroupName: String,
			IsOnline: False,
			IsNewCarRetailer: False,
			IsUsedCarRetailer: False,
			IsCentralRetailer: False,
			ChatEnabled: False,
			TradeInEnabled: False,
			smart: False,
			DisplayPhoneNumberNew: String,
			DisplayPhoneNumberUsed: String,
			Latitude: 0,
			Longitude: 0,
			smartDescription: String,
			smartWebsite: String,
			smartPhone: String,
			LegacyId: String,
			Agent: False,
			MarketAreaId: 0,
			DigitalLoungeParentGssnId: String,
			SendLeadsToDigitalLoungeParent: False,
			OpeningTimes: 
			{
				New: 
				[
					{
						Day: String,
						OpenFrom: String,
						OpenTo: String,
						Special: String
					}
				],
				Used: 
				[
					{
						Day: String,
						OpenFrom: String,
						OpenTo: String,
						Special: String
					}
				]
			}
		},
		Bm7NST: String,
		OTR: 0,
		ActualPrice: 0,
		IsDisplayStock: False,
		DisplayRetailerId: 0,
		DisplayRetailer: String,
		DisplayRetailerGssnId: String,
		DisplayRetailerMarketAreaId: String,
		IsSmartDisplayRetailer: False,
		IsSpecialistCar: False,
		Age: 0,
		Secured: False,
		IsHOBackOrderAccountVehicle: False,
		IsAllocatedToBackOrder: False,
		UsageCode: String,
		EmissionCombined: 0,
		NormalisedEmissionDirective: String,
		HasMildHybridEquipmentCode: False,
		RetailPriceExVat: 0,
		RetailPrice_IncVAT: 0,
		RetailPrice_ExVAT: 0,
		ModelId: 0,
		VID: String,
		ProductionDate: String,
		FullModelYearCode: String,
		ChassisNumber: String,
		EligibleForIntegratedServiceCare: False,
		AccountType: String,
		ConsumptionCombined: 
		{
			Id: 0,
			Lkm: 0,
			Mpg: 0
		},
		ConsumptionExtraUrban: 
		{
			Id: 0,
			Lkm: 0,
			Mpg: 0
		},
		ConsumptionUrban: 
		{
			Id: 0,
			Lkm: 0,
			Mpg: 0
		},
		WltpFuelConsumptionCombined: 
		{
			Id: 0,
			Lkm: 0,
			Mpg: 0
		},
		WltpFuelConsumptionExtraHigh: 
		{
			Id: 0,
			Lkm: 0,
			Mpg: 0
		},
		WltpFuelConsumptionHigh: 
		{
			Id: 0,
			Lkm: 0,
			Mpg: 0
		},
		WltpFuelConsumptionLow: 
		{
			Id: 0,
			Lkm: 0,
			Mpg: 0
		},
		WltpFuelConsumptionMedium: 
		{
			Id: 0,
			Lkm: 0,
			Mpg: 0
		},
		Equipment: 
		[
			{
				Importance: 0,
				IsAdditional: False,
				Id: 0,
				Code: String,
				Description: String
			}
		],
		EquipmentCategories: 
		[
			{
				Order: 0,
				Code: String,
				Description: String,
				Equipment: 
				[
					{
						Importance: 0,
						IsAdditional: False,
						Id: 0,
						Code: String,
						Description: String
					}
				]
			}
		],
		EnergyEfficiencyClass: 
		{
			Colour: String,
			Rating: String
		},
		VehicleData: 
		[
			{
				Description: String,
				Value: String
			}
		],
		IntegratedServiceCareOptions: 
		[
			{
				OptionCode: String,
				BM7NST: String,
				FullModelYear: String,
				IntegratedProductType: String,
				CustomerDescription: String,
				OneAgentProductType: String
			}
		],
		IspVehicleCustomerDescriptions: 
		[
			String
		]
	},
	Errors: 
	[
		{
			Field: String,
			Message: String
		}
	]
}