POST | /v1/VehicleWithOptimal | Get Vehicle by Vin and a more optimal option if available |
---|
export class GetVehicleWithOptimalRequest
{
public VehicleIdentifier: string;
public IncludeAllocatedToBackOrder: boolean;
public Gssn: string;
public IsOneAdmin: boolean;
public MotabilityPricingId?: number;
public constructor(init?: Partial<GetVehicleWithOptimalRequest>) { (Object as any).assign(this, init); }
}
export class Model
{
public Id: number;
public Description?: string;
public DisplayName?: string;
public ImageUrlSmall?: string;
public ImageUrlMedium?: string;
public ImageUrlLarge?: string;
public Specialist: boolean;
public Priority: number;
public ExcludeFromOnlineShowroomFilters?: boolean;
public constructor(init?: Partial<Model>) { (Object as any).assign(this, init); }
}
export class BodyStyle
{
public Id: number;
public Description?: string;
public Models?: Model[];
public constructor(init?: Partial<BodyStyle>) { (Object as any).assign(this, init); }
}
export class Brand
{
public Id: number;
public Description?: string;
public DisplayName?: string;
public BodyStyles?: BodyStyle[];
public constructor(init?: Partial<Brand>) { (Object as any).assign(this, init); }
}
export class Engine
{
public Id?: number;
public Badge: string;
public constructor(init?: Partial<Engine>) { (Object as any).assign(this, init); }
}
export class Media
{
public NoImage: boolean;
public MainImageUrl: string;
public constructor(init?: Partial<Media>) { (Object as any).assign(this, init); }
}
export enum OfferPriceProductType
{
LIST_PRICE = 'LIST_PRICE',
NUMBER_PLATE_FEE = 'NUMBER_PLATE_FEE',
DELIVERY_CHARGE = 'DELIVERY_CHARGE',
FUEL_CHARGE = 'FUEL_CHARGE',
MANUFACTURER_OFFER = 'MANUFACTURER_OFFER',
PERSONALISED_MONEYOFFER = 'PERSONALISED_MONEYOFFER',
PERSONALISED_NONMONEYOFFER = 'PERSONALISED_NONMONEYOFFER',
PERSONALISED_NONMONEYOFFER_NEG = 'PERSONALISED_NONMONEYOFFER_NEG',
SERVICE = 'SERVICE',
SERVICE_NEG = 'SERVICE_NEG',
GOVERNMENT_GRANT = 'GOVERNMENT_GRANT',
OUTRIGHT_PURCHASE_DISCOUNT = 'OUTRIGHT_PURCHASE_DISCOUNT',
VIP_OFFER = 'VIP_OFFER',
WALLBOX_OFFER = 'WALLBOX_OFFER',
WALLBOX_OFFER_NEG = 'WALLBOX_OFFER_NEG',
ROAD_FUND_LICENCE = 'ROAD_FUND_LICENCE',
FIRST_REGISTRATION_FEE = 'FIRST_REGISTRATION_FEE',
NOT_FOUND = 'NOT_FOUND',
ACCESSORY_OFFER = 'ACCESSORY_OFFER',
ACCESSORY_OFFER_NEG = 'ACCESSORY_OFFER_NEG',
MOTABILITY_DISCOUNT = 'MOTABILITY_DISCOUNT',
}
export class Price
{
public Id: string;
public Description: string;
public Net: number;
public VAT: number;
public Gross: number;
public Product: OfferPriceProductType;
public constructor(init?: Partial<Price>) { (Object as any).assign(this, init); }
}
export class RetailerOpeningTime
{
public Day: string;
public OpenFrom: string;
public OpenTo: string;
public Special: string;
public constructor(init?: Partial<RetailerOpeningTime>) { (Object as any).assign(this, init); }
}
export class RetailerOpeningTimes
{
public New: RetailerOpeningTime[] = [];
public Used: RetailerOpeningTime[] = [];
public constructor(init?: Partial<RetailerOpeningTimes>) { (Object as any).assign(this, init); }
}
export class Retailer
{
public Id: number;
public GssnId: string;
public Description: string;
public Street: string;
public City: string;
public Postcode: string;
public GoogleMapPostcode: string;
public Phone: string;
public Fax: string;
public Email: string;
public Website: string;
public RetailerGroupId: string;
public RetailerGroupName: string;
public IsOnline: boolean;
public IsNewCarRetailer: boolean;
public IsUsedCarRetailer: boolean;
public IsCentralRetailer: boolean;
public ChatEnabled: boolean;
public TradeInEnabled: boolean;
public smart: boolean;
public DisplayPhoneNumberNew: string;
public DisplayPhoneNumberUsed: string;
public Latitude: number;
public Longitude: number;
public smartDescription: string;
public smartWebsite: string;
public smartPhone: string;
public LegacyId: string;
public Agent: boolean;
public MarketAreaId: number;
public DigitalLoungeParentGssnId?: string;
public SendLeadsToDigitalLoungeParent: boolean;
public OpeningTimes?: RetailerOpeningTimes;
public constructor(init?: Partial<Retailer>) { (Object as any).assign(this, init); }
}
export class VehicleConsumption
{
public Id: number;
public Lkm: number;
public Mpg: number;
public constructor(init?: Partial<VehicleConsumption>) { (Object as any).assign(this, init); }
}
export class Equipment
{
public Id: number;
public Code?: string;
public Description?: string;
public constructor(init?: Partial<Equipment>) { (Object as any).assign(this, init); }
}
export class Equipmentv2 extends Equipment
{
public Importance: number;
public IsAdditional: boolean;
public constructor(init?: Partial<Equipmentv2>) { super(init); (Object as any).assign(this, init); }
}
export class VehicleEquipmentCategory
{
public Order: number;
public Code?: string;
public Description?: string;
public Equipment?: Equipmentv2[];
public constructor(init?: Partial<VehicleEquipmentCategory>) { (Object as any).assign(this, init); }
}
export class VehicleEmissionClass
{
public Colour?: string;
public Rating?: string;
public constructor(init?: Partial<VehicleEmissionClass>) { (Object as any).assign(this, init); }
}
export class VehicleAttribute
{
public Description?: string;
public Value?: string;
public constructor(init?: Partial<VehicleAttribute>) { (Object as any).assign(this, init); }
}
export class VehicleIntegratedServiceCareOption
{
public OptionCode?: string;
public BM7NST?: string;
public FullModelYear?: string;
public IntegratedProductType?: string;
public CustomerDescription?: string;
public OneAgentProductType?: string;
public constructor(init?: Partial<VehicleIntegratedServiceCareOption>) { (Object as any).assign(this, init); }
}
export class VehicleDetailDto
{
public BodyStyle: string;
public Vin: string;
public Description: string;
public Colour: string;
public ColourCode: string;
public ColourDescription: string;
public ColourGroup: string;
public Model: string;
public CommissionNumber: string;
public BrandId?: number;
public Brand: Brand;
public Engine: Engine;
public EngineBadge: string;
public Media: Media;
public Line: string;
public UpholsteryCode: string;
public UpholsteryType: string;
public Upholstery: string;
public UpholsteryDescription: string;
public AvailablePackages: string[] = [];
public Packages: string[] = [];
public P11D: number;
public PortArrivalDate?: string;
public Prices: Price[] = [];
public TransmissionType: string;
public FuelType: string;
public VehicleClass: string;
public ProductRange: string;
public VehicleType: string;
public Emission?: number;
public IsAvailableOnline: boolean;
public UnderOffer: boolean;
public IsExcluded: boolean;
public IsSellable: boolean;
public OnHold: boolean;
public ElectricConsumption?: number;
public ElectricRange?: number;
public ImageUrl: string;
public Baumuster: string;
public Retailer: Retailer;
public Bm7NST: string;
public OTR: number;
public ActualPrice: number;
public IsDisplayStock: boolean;
public DisplayRetailerId?: number;
public DisplayRetailer: string;
public DisplayRetailerGssnId: string;
public DisplayRetailerMarketAreaId: string;
public IsSmartDisplayRetailer: boolean;
public IsSpecialistCar: boolean;
public Age?: number;
public Secured: boolean;
public IsHOBackOrderAccountVehicle: boolean;
public IsAllocatedToBackOrder: boolean;
public UsageCode: string;
public EmissionCombined?: number;
public NormalisedEmissionDirective?: string;
public HasMildHybridEquipmentCode: boolean;
public RetailPriceExVat: number;
public RetailPrice_IncVAT: number;
public RetailPrice_ExVAT: number;
public ModelId: number;
public VID?: string;
public ProductionDate?: string;
public FullModelYearCode?: string;
public ChassisNumber?: string;
public EligibleForIntegratedServiceCare: boolean;
public AccountType?: string;
public ConsumptionCombined?: VehicleConsumption;
public ConsumptionExtraUrban?: VehicleConsumption;
public ConsumptionUrban?: VehicleConsumption;
public WltpFuelConsumptionCombined?: VehicleConsumption;
public WltpFuelConsumptionExtraHigh?: VehicleConsumption;
public WltpFuelConsumptionHigh?: VehicleConsumption;
public WltpFuelConsumptionLow?: VehicleConsumption;
public WltpFuelConsumptionMedium?: VehicleConsumption;
public Equipment?: Equipmentv2[];
public EquipmentCategories?: VehicleEquipmentCategory[];
public EnergyEfficiencyClass?: VehicleEmissionClass;
public VehicleData?: VehicleAttribute[];
public IntegratedServiceCareOptions: VehicleIntegratedServiceCareOption[] = [];
public IspVehicleCustomerDescriptions?: string[];
public constructor(init?: Partial<VehicleDetailDto>) { (Object as any).assign(this, init); }
}
export class VehicleError
{
public Field: string;
public Message: string;
public constructor(init?: Partial<VehicleError>) { (Object as any).assign(this, init); }
}
export class GetVehicleResponse
{
public Vehicle: VehicleDetailDto;
public Errors: VehicleError[] = [];
public constructor(init?: Partial<GetVehicleResponse>) { (Object as any).assign(this, init); }
}
export class GetVehicleWithOptimalResponse extends GetVehicleResponse
{
public OptimumVehicle: VehicleDetailDto;
public constructor(init?: Partial<GetVehicleWithOptimalResponse>) { super(init); (Object as any).assign(this, init); }
}
TypeScript GetVehicleWithOptimalRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=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 } ] }