Mercedes.Agency.Orchestration.API

<back to all web services

CarConfiguratorStockRequest

CarConfigurator
Requires Authentication
The following routes are available for this service:
POST/v1/CarConfiguratorStockValidate and save a car configurator code for a vehicle searchThis endpoint calls Agency API to validate and save a car configurator code. The code is validated and saved in the database and returns a response from a third party CCS which provides car configuration details. These get saved to open search and used to perform a vehicle search
import java.math.*
import java.util.*
import java.io.InputStream
import net.servicestack.client.*


open class CarConfiguratorStockRequest : IPost
{
    /**
    * The configurator code to search on
    */
    @ApiMember(Description="The configurator code to search on", IsRequired=true)
    open var ConfiguratorCode:String? = null

    /**
    * Whether to return sellable vehicles
    */
    @ApiMember(Description="Whether to return sellable vehicles")
    open var IsSellable:Boolean? = null

    /**
    * Whether to only get exact matches
    */
    @ApiMember(Description="Whether to only get exact matches")
    open var ExactMatch:Boolean? = null

    /**
    * Whether to restrict vehicles response to a GSSN
    */
    @ApiMember(Description="Whether to restrict vehicles response to a GSSN")
    open var GSSN:String? = null
}

open class CarConfiguratorStockResponse
{
    open var TotalVehicles:Int? = null
    open var CarConfiguratorResponse:CarConfiguratorResponse? = null
    open var ExactMatches:CarConfiguratorStockMatches? = null
    open var CloseMatches:CarConfiguratorStockMatches? = null
}

open class CarConfiguratorResponse
{
    open var Name:String? = null
    open var KeyInformation:KeyInformation? = null
    open var OrderingOptions:OrderingOptions? = null
    open var ResponseStatus:ResponseStatus? = null
    open var ConfiguratorCode:String? = null
}

open class KeyInformation
{
    open var BM7NST:String? = null
    open var ConfigurationDate:String? = null
    open var ModelYear:String? = null
    open var HalfYear:String? = null
}

open class OrderingOptions
{
    open var Interior:ArrayList<String>? = null
    open var Exterior:ArrayList<String>? = null
    open var Options:ArrayList<String>? = null
    open var WheelOptions:ArrayList<EquipmentCache> = ArrayList<EquipmentCache>()
    open var TrimOptions:ArrayList<EquipmentCache> = ArrayList<EquipmentCache>()
    open var OptionCodes:ArrayList<EquipmentCache> = ArrayList<EquipmentCache>()
}

open class EquipmentCache
{
    open var Code:String? = null
    open var Description:String? = null
    open var StandardFlag:String? = null
    open var Price:BigDecimal? = null
    open var Category:String? = null
    open var Importance:String? = null
}

open class CarConfiguratorStockMatches
{
    open var SellableMatches:ArrayList<CarConfiguratorStockMatch> = ArrayList<CarConfiguratorStockMatch>()
    open var NonSellableMatches:ArrayList<CarConfiguratorStockMatch> = ArrayList<CarConfiguratorStockMatch>()
}

open class CarConfiguratorStockMatch
{
    open var Vehicle:CarConfiguratorVehicle? = null
    open var IsSellable:Boolean? = null
    open var VehicleWheels:String? = null
    open var VehicleTrim:String? = null
    open var VehicleAdditionalOptionCodes:ArrayList<String> = ArrayList<String>()
    open var FullModelYearDifferences:ArrayList<String> = ArrayList<String>()
    open var PaintDifferences:ArrayList<String> = ArrayList<String>()
    open var UpholsteryDifferences:ArrayList<String> = ArrayList<String>()
    open var WheelDifferences:ArrayList<String> = ArrayList<String>()
    open var TrimDifferences:ArrayList<String> = ArrayList<String>()
    open var EquipmentDifferences:ArrayList<String> = ArrayList<String>()
    open var Differences:ArrayList<String> = ArrayList<String>()
    open var ExactMatch:Boolean? = null
}

open class CarConfiguratorVehicle : BackOrderVehicleDetailsWithPackages()
{
    open var ModelYearCode:String? = null
    open var HalfModelYearCode:String? = null
    open var ActiveOffers:ArrayList<Int> = ArrayList<Int>()
    open var EligibleForMotability:Boolean? = null
    open var NearestPort:Boolean? = null
}

open class BackOrderVehicleDetailsWithPackages : BackOrderVehicleDetails(), IPackages
{
    override var Packages:ArrayList<Package>? = null
    open var PackageNames:String? = null
}

open class BackOrderVehicleDetails : IVehiclePrices, IVehiclePriceCollection, IImageUrl, IVehicleDetails
{
    open var Vin:String? = null
    open var CommissionNumber:String? = null
    open var Description:String? = null
    open var ShortDescription:String? = null
    open var ModelId:Int? = null
    open var Model:String? = null
    open var FullModelYearCode:String? = null
    override var BrandId:Int? = null
    open var Brand:BackOrderVehicleDetailsBrand? = null
    open var RetailerId:Int? = null
    override var ImageUrl:String? = null
    open var Colour:String? = null
    open var ColourCode:String? = null
    open var FuelType:String? = null
    open var FuelTypeId:Int? = null
    open var Transmission:String? = null
    open var TransmissionType:String? = null
    open var Engine:Engine? = null
    open var EngineBadge:String? = null
    open var Package:String? = null
    open var Line:String? = null
    open var Upholstery:String? = null
    open var UpholsteryCode:String? = null
    open var UsageCode:String? = null
    open var Account:String? = null
    open var AccountType:String? = null
    open var NST:String? = null
    open var Baumuster:String? = null
    open var ElectricRange:BigDecimal? = null
    open var ElectricConsumption:BigDecimal? = null
    open var ActualPrice:BigDecimal? = null
    open var OTRPrice:BigDecimal? = null
    open var RetailPriceExVat:BigDecimal? = null
    open var P11D:BigDecimal? = null
    override var VehicleType:String? = null
    open var UpholsteryDescription:String? = null
    open var UpholsteryType:String? = null
    open var BodyStyle:String? = null
    open var BodyStyleStyleCode:String? = null
    open var BodyStyleStyleCodeElectric:String? = null
    open var BodyStyleStyleCodeHybrid:String? = null
    open var AvailablePackages:ArrayList<String>? = null
    open var Mapped_Line:Int? = null
    open var Secured:Boolean? = null
    open var Bm7NST:String? = null
    open var IsAvailableOnline:Boolean? = null
    open var IsSpecialistCar:Boolean? = null
    open var IsSellable:Boolean? = null
    open var UnderOffer:Boolean? = null
    open var VehicleAuditDetails:ArrayList<VehicleAuditDetails>? = null
    open var Retailer:Retailer? = null
    open var Media:Media? = null
    open var Emission:BigDecimal? = null
    open var ColourGroup:String? = null
    open var VehicleClass:String? = null
    open var ProductRange:String? = null
    open var IsHOBackOrderAccountVehicle:Boolean? = null
    open var IsAllocatedToBackOrder:Boolean? = null
    open var InBackOrderAccount:Boolean? = null
    override var DeliveryCharge:BigDecimal? = null
    override var DeliveryChargeNet:BigDecimal? = null
    override var DeliveryChargeVAT:BigDecimal? = null
    override var Plates:BigDecimal? = null
    override var PlatesNet:BigDecimal? = null
    override var PlatesVAT:BigDecimal? = null
    override var FuelCharge:BigDecimal? = null
    override var FuelChargeNet:BigDecimal? = null
    override var FuelChargeVAT:BigDecimal? = null
    override var RetailPrice_ExVAT:BigDecimal? = null
    override var RetailPrice_IncVAT:BigDecimal? = null
    override var VED_Year1:BigDecimal? = null
    override var VED_Year2:BigDecimal? = null
    override var FirstRegFee:BigDecimal? = null
    override var OTR_Value:BigDecimal? = null
    open var OTR:BigDecimal? = null
    override var Prices:ArrayList<Price>? = null
    open var ProductionDate:String? = null
    open var PortArrivalDate:Date? = null
    open var Location:String? = null
    open var IsDisplayStock:Boolean? = null
    open var DisplayRetailerId:Int? = null
    open var DisplayRetailer:String? = null
    open var DisplayRetailerGssnId:String? = null
    open var DisplayRetailerMarketAreaId:Int? = null
    open var IsSmartDisplayRetailer:Boolean? = null
    open var ColourDescription:String? = null
    open var Creation:Date? = null
    open var Modified:Date? = null
    open var VATQualifyingNumber:Int? = null
    open var VATQualifying:Boolean? = null
    open var CurrentRetailerOfferPrice:BigDecimal? = null
    open var GssnId:String? = null
    open var NoImage:Boolean? = null
    open var RegistrationNumber:String? = null
    open var RegistrationDate:Date? = null
    open var Mileage:Int? = null
    open var TradeInDate:Date? = null
    open var VID:String? = null
    open var EmissionCombined:String? = null
    open var EmissionDirective:String? = null
    open var NormalisedEmissionDirective:String? = null
    open var HasMildHybridEquipmentCode:Boolean? = null
    open var Acceleration:BigDecimal? = null
    override var ChassisNumber:String? = null
    override var NumberOfDoors:String? = null
    override var NumberOfSeats:String? = null
    override var SpecialInfo:Boolean? = null
    override var EligibleForIntegratedServiceCare:Boolean? = null
    override var ConsumptionCombined:Consumption? = null
    override var ConsumptionExtraUrban:Consumption? = null
    override var ConsumptionUrban:Consumption? = null
    override var WltpFuelConsumptionCombined:Consumption? = null
    override var WltpFuelConsumptionExtraHigh:Consumption? = null
    override var WltpFuelConsumptionHigh:Consumption? = null
    override var WltpFuelConsumptionLow:Consumption? = null
    override var WltpFuelConsumptionMedium:Consumption? = null
    override var EnergyEfficiencyClass:EmissionClass? = null
    override var Equipment:ArrayList<Equipmentv2>? = null
    override var EquipmentAdditional:ArrayList<Equipment>? = null
    override var EquipmentCategories:ArrayList<EquipmentCategoryv2>? = null
    override var VehicleData:ArrayList<VehicleAttribute>? = null
    override var IntegratedServiceCareOptions:ArrayList<IntegratedServiceCareOptions>? = null
    override var IspVehicleCustomerDescriptions:ArrayList<String>? = null
    open var MarketingCode:String? = null
    open var EligibleForMaTransfer:Boolean? = null
    open var ConfirmedProductionDate:String? = null
    open var ForecastedArrivalDate:String? = null
}

open class BackOrderVehicleDetailsBrand
{
    open var Description:String? = null
}

open class Engine
{
    open var Id:Int? = null
    open var Badge:String? = null
    open var CubicCapacity:Int? = null
    open var Cyclinders:Int? = null
    open var HorsePower:String? = null
    open var Kw:String? = null
    open var Selected:Boolean? = null
}

open class VehicleAuditDetails
{
    open var UserId:String? = null
    open var Status:Boolean? = null
    open var Notes:String? = null
    open var CreationDate:String? = null
}

open class Retailer
{
    open var Id:Int? = null
    open var GssnId:String? = null
    open var Description:String? = null
    open var Street:String? = null
    open var City:String? = null
    open var District:String? = null
    open var Postcode:String? = null
    open var GoogleMapPostcode:String? = null
    open var Phone:String? = null
    open var Fax:String? = null
    open var Email:String? = null
    open var Website:String? = null
    open var Latitude:Double? = null
    open var Longitude:Double? = null
    open var RetailerGroup_Id:Int? = null
    open var RetailerGroupId:String? = null
    open var RetailerGroupName:String? = null
    open var Distance:Double? = null
    open var PaymentServiceGuid:String? = null
    open var IsOnline:Boolean? = null
    open var IsNewCarRetailer:Boolean? = null
    open var IsUsedCarRetailer:Boolean? = null
    open var IsCentralRetailer:Boolean? = null
    open var ChatEnabled:Boolean? = null
    open var TradeInEnabled:Boolean? = null
    open var DisplayPhoneNumberNew:String? = null
    open var DisplayPhoneNumberUsed:String? = null
    open var Services:RetailerServices? = null
    open var smart:Boolean? = null
    open var smartDescription:String? = null
    open var smartWebsite:String? = null
    open var smartEmail:String? = null
    open var smartPhone:String? = null
    open var AdditionalInformation:String? = null
    open var LegacyId:String? = null
    open var DriveTime:BigDecimal? = null
    open var Agent:Boolean? = null
    open var Port:Int? = null
    open var PortName:String? = null
    open var MarketAreaId:Int? = null
    open var MarketAreaName:String? = null
    open var MaintenanceDate:String? = null
    open var MaintenanceSource:String? = null
    open var STPAccountNumbers:String? = null
    open var CampaignExcluded:Boolean? = null
    open var DigitalLoungeParentGssnId:String? = null
    open var SendLeadsToDigitalLoungeParent:Boolean? = null
    open var IsExcludedFromImport:Boolean? = null
    open var OpeningTimes:RetailerOpeningTimes? = null
}

open class RetailerServices
{
    open var New:ArrayList<RetailerService>? = null
    open var Used:ArrayList<RetailerService>? = null
}

open class RetailerService
{
    open var Id:Int? = null
    open var Description:String? = null
    open var Priority:Boolean? = null
}

open class RetailerOpeningTimes
{
    open var New:ArrayList<RetailerOpeningTime> = ArrayList<RetailerOpeningTime>()
    open var Used:ArrayList<RetailerOpeningTime> = ArrayList<RetailerOpeningTime>()
}

open class RetailerOpeningTime
{
    open var Day:String? = null
    open var OpenFrom:String? = null
    open var OpenTo:String? = null
    open var Special:String? = null
}

open class Media
{
    open var ImageCount:Int? = null
    open var MainImageUrl:String? = null
    open var MainImageUrlMobile:String? = null
    open var NoImage:Boolean? = null
    open var ThreeSixtyDegreeImageUrls:ArrayList<String>? = null
    open var ThreeSixtyDegreeMobileImageUrls:ArrayList<String>? = null
    open var VehicleImageUrls:ArrayList<String>? = null
    open var VehicleMobileImageUrls:ArrayList<String>? = null
}

open class Price
{
    open var Id:String? = null
    open var Description:String? = null
    open var Net:BigDecimal? = null
    open var VAT:BigDecimal? = null
    open var Gross:BigDecimal? = null
    open var Product:OfferPriceProductType? = null
}

enum class OfferPriceProductType
{
    ListPrice,
    NumberPlateFee,
    DeliveryCharge,
    FuelCharge,
    ManufacturerOffer,
    PersonalisedMoneyoffer,
    PersonalisedNonmoneyoffer,
    PersonalisedNonmoneyofferNeg,
    Service,
    ServiceNeg,
    GovernmentGrant,
    OutrightPurchaseDiscount,
    VipOffer,
    WallboxOffer,
    WallboxOfferNeg,
    RoadFundLicence,
    FirstRegistrationFee,
    NotFound,
    AccessoryOffer,
    AccessoryOfferNeg,
    MotabilityDiscount,
}

open class Consumption
{
    open var Id:Int? = null
    open var Lkm:BigDecimal? = null
    open var Mpg:BigDecimal? = null
}

open class EmissionClass
{
    open var Colour:String? = null
    open var Rating:String? = null
}

open class Equipmentv2 : Equipment()
{
    open var Importance:Int? = null
    open var IsAdditional:Boolean? = null
}

open class Equipment
{
    open var Id:Int? = null
    open var Code:String? = null
    open var Description:String? = null
}

open class EquipmentCategoryv2
{
    open var Order:Int? = null
    open var Code:String? = null
    open var Description:String? = null
    open var Equipment:ArrayList<Equipmentv2>? = null
}

open class VehicleAttribute
{
    open var Description:String? = null
    open var Value:String? = null
}

open class IntegratedServiceCareOptions
{
    open var OptionCode:String? = null
    open var BM7NST:String? = null
    open var FullModelYear:String? = null
    open var IntegratedProductType:String? = null
    open var CustomerDescription:String? = null
    open var OneAgentProductType:String? = null
}

open class Package
{
    open var Id:Int? = null
    open var Description:String? = null
}

Kotlin CarConfiguratorStockRequest DTOs

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

HTTP + OTHER

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

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

{"ConfiguratorCode":"String","IsSellable":false,"ExactMatch":false,"GSSN":"String"}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"TotalVehicles":4,"CarConfiguratorResponse":{"Name":"String","KeyInformation":{"BM7NST":"String","ConfigurationDate":"String","ModelYear":"String","HalfYear":"String"},"OrderingOptions":{"Interior":["String"],"Exterior":["String"],"Options":["String"],"WheelOptions":[{"Code":"String","Description":"String","StandardFlag":"String","Price":0,"Category":"String","Importance":"String"}],"TrimOptions":[{"Code":"String","Description":"String","StandardFlag":"String","Price":0,"Category":"String","Importance":"String"}],"OptionCodes":[{"Code":"String","Description":"String","StandardFlag":"String","Price":0,"Category":"String","Importance":"String"}]},"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}},"ConfiguratorCode":"String"},"ExactMatches":{"SellableMatches":[{}],"NonSellableMatches":[{}]},"CloseMatches":{"SellableMatches":[{}],"NonSellableMatches":[{}]}}