| POST | /v1/CarConfiguratorStock | Validate and save a car configurator code for a vehicle search | This 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 |
|---|
export class KeyInformation
{
public BM7NST?: string;
public ConfigurationDate?: string;
public ModelYear?: string;
public HalfYear?: string;
public constructor(init?: Partial<KeyInformation>) { (Object as any).assign(this, init); }
}
export class EquipmentCache
{
public Code: string;
public Description: string;
public StandardFlag: string;
public Price: number;
public Category: string;
public Importance: string;
public constructor(init?: Partial<EquipmentCache>) { (Object as any).assign(this, init); }
}
export class OrderingOptions
{
public Interior?: string[];
public Exterior?: string[];
public Options?: string[];
public WheelOptions: EquipmentCache[] = [];
public TrimOptions: EquipmentCache[] = [];
public OptionCodes: EquipmentCache[] = [];
public constructor(init?: Partial<OrderingOptions>) { (Object as any).assign(this, init); }
}
export class CarConfiguratorResponse
{
public Name?: string;
public KeyInformation?: KeyInformation;
public OrderingOptions?: OrderingOptions;
public ResponseStatus: ResponseStatus;
public ConfiguratorCode?: string;
public constructor(init?: Partial<CarConfiguratorResponse>) { (Object as any).assign(this, init); }
}
export class BackOrderVehicleDetailsBrand
{
public Description?: string;
public constructor(init?: Partial<BackOrderVehicleDetailsBrand>) { (Object as any).assign(this, init); }
}
export class Engine
{
public Id: number;
public Badge?: string;
public CubicCapacity: number;
public Cyclinders: number;
public HorsePower?: string;
public Kw?: string;
public Selected: boolean;
public constructor(init?: Partial<Engine>) { (Object as any).assign(this, init); }
}
export class VehicleAuditDetails
{
public UserId?: string;
public Status: boolean;
public Notes?: string;
public CreationDate?: string;
public constructor(init?: Partial<VehicleAuditDetails>) { (Object as any).assign(this, init); }
}
export class RetailerService
{
public Id: number;
public Description?: string;
public Priority: boolean;
public constructor(init?: Partial<RetailerService>) { (Object as any).assign(this, init); }
}
export class RetailerServices
{
public New?: RetailerService[];
public Used?: RetailerService[];
public constructor(init?: Partial<RetailerServices>) { (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 District?: string;
public Postcode?: string;
public GoogleMapPostcode?: string;
public Phone?: string;
public Fax?: string;
public Email?: string;
public Website?: string;
public Latitude: number;
public Longitude: number;
public RetailerGroup_Id?: number;
public RetailerGroupId?: string;
public RetailerGroupName?: string;
public Distance: number;
public PaymentServiceGuid?: string;
public IsOnline?: boolean;
public IsNewCarRetailer?: boolean;
public IsUsedCarRetailer?: boolean;
public IsCentralRetailer: boolean;
public ChatEnabled: boolean;
public TradeInEnabled: boolean;
public DisplayPhoneNumberNew?: string;
public DisplayPhoneNumberUsed?: string;
public Services?: RetailerServices;
public smart: boolean;
public smartDescription?: string;
public smartWebsite?: string;
public smartEmail?: string;
public smartPhone?: string;
public AdditionalInformation?: string;
public LegacyId?: string;
public DriveTime: number;
public Agent: boolean;
public Port?: number;
public PortName?: string;
public MarketAreaId?: number;
public MarketAreaName?: string;
public MaintenanceDate?: string;
public MaintenanceSource?: string;
public STPAccountNumbers?: string;
public CampaignExcluded?: boolean;
public DigitalLoungeParentGssnId?: string;
public SendLeadsToDigitalLoungeParent: boolean;
public IsExcludedFromImport: boolean;
public OpeningTimes?: RetailerOpeningTimes;
public constructor(init?: Partial<Retailer>) { (Object as any).assign(this, init); }
}
export class Media
{
public ImageCount: number;
public MainImageUrl?: string;
public MainImageUrlMobile?: string;
public NoImage: boolean;
public ThreeSixtyDegreeImageUrls?: string[];
public ThreeSixtyDegreeMobileImageUrls?: string[];
public VehicleImageUrls?: string[];
public VehicleMobileImageUrls?: 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 Consumption
{
public Id: number;
public Lkm: number;
public Mpg: number;
public constructor(init?: Partial<Consumption>) { (Object as any).assign(this, init); }
}
export class EmissionClass
{
public Colour?: string;
public Rating?: string;
public constructor(init?: Partial<EmissionClass>) { (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 EquipmentCategoryv2
{
public Order: number;
public Code?: string;
public Description?: string;
public Equipment?: Equipmentv2[];
public constructor(init?: Partial<EquipmentCategoryv2>) { (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 IntegratedServiceCareOptions
{
public OptionCode?: string;
public BM7NST?: string;
public FullModelYear?: string;
public IntegratedProductType?: string;
public CustomerDescription?: string;
public OneAgentProductType?: string;
public constructor(init?: Partial<IntegratedServiceCareOptions>) { (Object as any).assign(this, init); }
}
export class BackOrderVehicleDetails implements IVehiclePrices, IVehiclePriceCollection, IImageUrl, IVehicleDetails
{
public Vin?: string;
public CommissionNumber?: string;
public Description?: string;
public ShortDescription?: string;
public ModelId: number;
public Model?: string;
public FullModelYearCode?: string;
public BrandId?: number;
public Brand?: BackOrderVehicleDetailsBrand;
public RetailerId: number;
public ImageUrl?: string;
public Colour?: string;
public ColourCode?: string;
public FuelType?: string;
public FuelTypeId: number;
public Transmission?: string;
public TransmissionType?: string;
public Engine?: Engine;
public EngineBadge?: string;
public Package?: string;
public Line?: string;
public Upholstery?: string;
public UpholsteryCode?: string;
public UsageCode?: string;
public Account?: string;
public AccountType?: string;
public NST?: string;
public Baumuster?: string;
public ElectricRange?: number;
public ElectricConsumption?: number;
public ActualPrice?: number;
public OTRPrice: number;
public RetailPriceExVat: number;
public P11D: number;
public VehicleType?: string;
public UpholsteryDescription?: string;
public UpholsteryType?: string;
public BodyStyle?: string;
public BodyStyleStyleCode?: string;
public BodyStyleStyleCodeElectric?: string;
public BodyStyleStyleCodeHybrid?: string;
public AvailablePackages?: string[];
public Mapped_Line?: number;
public Secured: boolean;
public Bm7NST?: string;
public IsAvailableOnline: boolean;
public IsSpecialistCar: boolean;
public IsSellable: boolean;
public UnderOffer: boolean;
public VehicleAuditDetails?: VehicleAuditDetails[];
public Retailer?: Retailer;
public Media?: Media;
public Emission?: number;
public ColourGroup?: string;
public VehicleClass?: string;
public ProductRange?: string;
public IsHOBackOrderAccountVehicle: boolean;
public IsAllocatedToBackOrder: boolean;
public InBackOrderAccount: boolean;
public DeliveryCharge: number;
public DeliveryChargeNet?: number;
public DeliveryChargeVAT?: number;
public Plates: number;
public PlatesNet?: number;
public PlatesVAT?: number;
public FuelCharge: number;
public FuelChargeNet?: number;
public FuelChargeVAT?: number;
public RetailPrice_ExVAT: number;
public RetailPrice_IncVAT: number;
public VED_Year1: number;
public VED_Year2: number;
public FirstRegFee: number;
public OTR_Value: number;
public OTR: number;
public Prices?: Price[];
public ProductionDate?: string;
public PortArrivalDate?: string;
public Location?: string;
public IsDisplayStock: boolean;
public DisplayRetailerId?: number;
public DisplayRetailer?: string;
public DisplayRetailerGssnId?: string;
public DisplayRetailerMarketAreaId?: number;
public IsSmartDisplayRetailer?: boolean;
public ColourDescription?: string;
public Creation?: string;
public Modified?: string;
public VATQualifyingNumber?: number;
public VATQualifying: boolean;
public CurrentRetailerOfferPrice: number;
public GssnId?: string;
public NoImage: boolean;
public RegistrationNumber?: string;
public RegistrationDate?: string;
public Mileage?: number;
public TradeInDate?: string;
public VID?: string;
public EmissionCombined?: string;
public EmissionDirective?: string;
public NormalisedEmissionDirective?: string;
public HasMildHybridEquipmentCode: boolean;
public Acceleration?: number;
public ChassisNumber?: string;
public NumberOfDoors?: string;
public NumberOfSeats?: string;
public SpecialInfo: boolean;
public EligibleForIntegratedServiceCare: boolean;
public ConsumptionCombined?: Consumption;
public ConsumptionExtraUrban?: Consumption;
public ConsumptionUrban?: Consumption;
public WltpFuelConsumptionCombined?: Consumption;
public WltpFuelConsumptionExtraHigh?: Consumption;
public WltpFuelConsumptionHigh?: Consumption;
public WltpFuelConsumptionLow?: Consumption;
public WltpFuelConsumptionMedium?: Consumption;
public EnergyEfficiencyClass?: EmissionClass;
public Equipment?: Equipmentv2[];
public EquipmentAdditional?: Equipment[];
public EquipmentCategories?: EquipmentCategoryv2[];
public VehicleData?: VehicleAttribute[];
public IntegratedServiceCareOptions?: IntegratedServiceCareOptions[];
public IspVehicleCustomerDescriptions?: string[];
public MarketingCode?: string;
public EligibleForMaTransfer: boolean;
public ConfirmedProductionDate?: string;
public ForecastedArrivalDate?: string;
public constructor(init?: Partial<BackOrderVehicleDetails>) { (Object as any).assign(this, init); }
}
export class Package
{
public Id: number;
public Description?: string;
public constructor(init?: Partial<Package>) { (Object as any).assign(this, init); }
}
export class BackOrderVehicleDetailsWithPackages extends BackOrderVehicleDetails implements IPackages
{
public Packages: Package[];
public PackageNames: string;
public constructor(init?: Partial<BackOrderVehicleDetailsWithPackages>) { super(init); (Object as any).assign(this, init); }
}
export class CarConfiguratorVehicle extends BackOrderVehicleDetailsWithPackages
{
public ModelYearCode?: string;
public HalfModelYearCode?: string;
public ActiveOffers: number[] = [];
public EligibleForMotability: boolean;
public NearestPort?: boolean;
public constructor(init?: Partial<CarConfiguratorVehicle>) { super(init); (Object as any).assign(this, init); }
}
export class CarConfiguratorStockMatch
{
public Vehicle: CarConfiguratorVehicle;
public IsSellable: boolean;
public VehicleWheels?: string;
public VehicleTrim?: string;
public VehicleAdditionalOptionCodes: string[] = [];
public FullModelYearDifferences: string[] = [];
public PaintDifferences: string[] = [];
public UpholsteryDifferences: string[] = [];
public WheelDifferences: string[] = [];
public TrimDifferences: string[] = [];
public EquipmentDifferences: string[] = [];
public Differences: string[] = [];
public ExactMatch: boolean;
public constructor(init?: Partial<CarConfiguratorStockMatch>) { (Object as any).assign(this, init); }
}
export class CarConfiguratorStockMatches
{
public SellableMatches: CarConfiguratorStockMatch[] = [];
public NonSellableMatches: CarConfiguratorStockMatch[] = [];
public constructor(init?: Partial<CarConfiguratorStockMatches>) { (Object as any).assign(this, init); }
}
export class CarConfiguratorStockResponse
{
public TotalVehicles: number;
public CarConfiguratorResponse: CarConfiguratorResponse;
public ExactMatches: CarConfiguratorStockMatches;
public CloseMatches: CarConfiguratorStockMatches;
public constructor(init?: Partial<CarConfiguratorStockResponse>) { (Object as any).assign(this, init); }
}
export class CarConfiguratorStockRequest implements IPost
{
/** @description The configurator code to search on */
// @ApiMember(Description="The configurator code to search on", IsRequired=true)
public ConfiguratorCode: string;
/** @description Whether to return sellable vehicles */
// @ApiMember(Description="Whether to return sellable vehicles")
public IsSellable?: boolean;
/** @description Whether to only get exact matches */
// @ApiMember(Description="Whether to only get exact matches")
public ExactMatch: boolean;
/** @description Whether to restrict vehicles response to a GSSN */
// @ApiMember(Description="Whether to restrict vehicles response to a GSSN")
public GSSN?: string;
public constructor(init?: Partial<CarConfiguratorStockRequest>) { (Object as any).assign(this, init); }
}
TypeScript CarConfiguratorStockRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=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":[{}]}}