Mercedes.VehicleManagement.API

<back to all web services

VehicleByCommissionNumberRequest

Vehicle
Requires Authentication
The following routes are available for this service:
GET/v1/{VehicleType}/Vehicle/{vehicleIdentifier}Get vehicle data by commission number
import Foundation
import ServiceStack

public class VehicleByCommissionNumberRequest : IGet, Codable
{
    public var vehicleIdentifier:String
    public var vehicleType:String

    required public init(){}
}

public class VehicleByCommissionNumberResponse : VehicleByIdentifierResponse
{
    public var vehicle:VehicleIdentifierData

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

    private enum CodingKeys : String, CodingKey {
        case vehicle
    }

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

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

public class VehicleByIdentifierResponse : Codable
{
    public var campaignOffers:[Offer] = []
    public var campaignPersonalisedOffers:[PersonalisedOffer] = []
    public var campaignOLEVGrantOffers:[Offer] = []
    public var campaignMessages:[Message] = []
    public var offerHistories:[OfferHistory]
    public var financeOffers:[FinanceOffer]

    required public init(){}
}

public class Offer : Codable
{
    public var id:Int
    public var offerType:String
    public var campaignName:String
    public var from:String
    public var to:String
    public var value:String
    public var net:Double?
    public var offerVehicle:OfferVehicle
    public var pending:Bool
    public var documentUrl:String
    public var personalised:Bool
    public var isPersonalisedMonetaryOffer:Bool
    public var campaignVIPDiscount:Bool
    public var offerValueNet:Double?

    required public init(){}
}

public class OfferVehicle : Codable
{
    public var retailPriceExVAT:String

    required public init(){}
}

public class PersonalisedOffer : Offer
{
    public var category:String
    public var Description:String
    public var reference:String

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

    private enum CodingKeys : String, CodingKey {
        case category
        case Description
        case reference
    }

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

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

public class Message : Codable
{
    public var id:Int
    public var vin:String
    public var campaignId:Int
    public var value:String
    public var campaignDescription:String
    public var from:String
    public var to:String
    public var documentUrl:String

    required public init(){}
}

public class OfferHistory : Codable
{
    public var id:Int
    public var auditType:String
    public var offerType:String
    public var source:String
    public var from:String
    public var to:String
    public var personalised:Bool
    public var value:String
    public var net:String
    public var vat:String
    public var Description:String
    public var vin:String
    public var gssn:String
    public var creation:String
    public var modified:String
    public var userId:String
    public var user:Int
    public var offerId:Int
    public var commissionNumber:String
    public var campaignId:Int?
    public var campaignDescription:String
    public var creationDate:Date
    public var isUsedCarOffer:Bool

    required public init(){}
}

public class FinanceOffer : Codable
{
    public var campaignDescription:String
    public var termsAndConditions:String
    public var label:String
    public var campaignId:Int
    public var documentUrl:String
    public var from:String
    public var id:Int
    public var to:String
    public var value:String
    public var vin:String
    public var enabled:Bool
    public var pending:Bool
    public var offerType:String

    required public init(){}
}

public class VehicleIdentifierData : VehicleData
{
    public var retailer:String
    public var hasMotabilityError:Bool
    public var equipment:[Equipment] = []

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

    private enum CodingKeys : String, CodingKey {
        case retailer
        case hasMotabilityError
        case equipment
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        retailer = try container.decodeIfPresent(String.self, forKey: .retailer)
        hasMotabilityError = try container.decodeIfPresent(Bool.self, forKey: .hasMotabilityError)
        equipment = try container.decodeIfPresent([Equipment].self, forKey: .equipment) ?? []
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if retailer != nil { try container.encode(retailer, forKey: .retailer) }
        if hasMotabilityError != nil { try container.encode(hasMotabilityError, forKey: .hasMotabilityError) }
        if equipment.count > 0 { try container.encode(equipment, forKey: .equipment) }
    }
}

public class VehicleData : VehicleDataBase
{
    public var engine:String

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

    private enum CodingKeys : String, CodingKey {
        case engine
    }

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

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

public class VehicleDataBase : Codable
{
    public var vin:String
    public var Description:String
    public var model:String
    public var otr:String
    public var retailPriceExVAT:String
    public var actualPrice:String
    public var fuelType:String
    public var transmission:String
    public var transmissionType:String
    public var colour:String
    public var colourCode:String
    public var colourDescription:String
    public var commissionNumber:String
    public var offerAvailable:Bool
    public var campaignDiscountOfferTotal:Int
    public var campaignDiscountOfferTotalCurrent:Int
    public var campaignDiscountOfferTotalPending:Int
    public var campaignServiceOfferTotal:Int
    public var campaignServiceOfferTotalCurrent:Int
    public var campaignServiceOfferTotalPending:Int
    public var campaignCustomOfferTotal:Int
    public var campaignPersonalisedOfferTotalCurrent:Int
    public var campaignPersonalisedOfferTotalPending:Int
    public var campaignPersonalisedOfferTotal:Int
    public var campaignCustomOfferTotalCurrent:Int
    public var campaignCustomOfferTotalPending:Int
    public var campaignOtherOfferTotal:Int
    public var campaignOtherOfferTotalCurrent:Int
    public var campaignOtherOfferTotalPending:Int
    public var retailerDiscountOfferTotal:Int
    public var retailerDiscountOfferTotalCurrent:Int
    public var retailerDiscountOfferTotalPending:Int
    public var retailerServiceOfferTotal:Int
    public var retailerServiceOfferTotalCurrent:Int
    public var retailerServiceOfferTotalPending:Int
    public var retailerCustomOfferTotal:Int
    public var retailerCustomOfferTotalCurrent:Int
    public var retailerCustomOfferTotalPending:Int
    public var retailerWarrantyOfferTotal:Int
    public var retailerWarrantyOfferTotalCurrent:Int
    public var retailerWarrantyOfferTotalPending:Int
    public var retailerOfferTotal:Int
    public var retailerOfferTotalCurrent:Int
    public var retailerOfferTotalPending:Int
    public var campaignOfferTotal:Int
    public var campaignOfferTotalCurrent:Int
    public var campaignOfferTotalPending:Int
    public var campaignAndOfferTotal:Int
    public var campaignAndOfferTotalCurrent:Int
    public var campaignAndOfferTotalPending:Int
    public var offerTotal:Int
    public var offerTotalCurrent:Int
    public var offerTotalPending:Int
    public var creation:String
    public var modified:String
    public var electricRange:Int
    public var electricConsumption:Int
    public var portArrivalDate:Date?
    public var daysSincePortArrival:Int?
    public var retailPriceIncVAT:Double
    public var bodyStyle:String
    public var upholstery:String
    public var upholsteryCode:String
    public var upholsteryType:String
    public var packageNames:[String] = []
    public var line:String
    public var currentRetailerOfferPrice:Double
    public var retailPrice:String
    public var vatQualifying:Bool
    public var retailerId:Int
    public var gssnId:String
    public var noImage:Bool
    public var imageUrl:String
    public var isAvailableOnline:Bool
    public var isBackOrdered:Bool
    public var creationDate:String
    public var maintenanceDate:String
    public var registrationNumber:String
    public var registrationDate:Date?
    public var mileage:Int?
    public var tradeInDate:Date?
    public var source:String
    public var vehicleType:String
    public var offerAmount:String
    public var offerExpiry:String
    public var activeOffers:[Int] = []
    public var campaignMessagesTotal:Int
    public var underOffer:Bool
    public var isDisplayStock:Bool
    public var displayRetailer:String
    public var displayRetailerGssnId:String
    public var location:String
    public var account:String
    public var accountType:String
    public var usageCode:String
    public var bm7NST:String
    public var isSellable:Bool
    public var secured:Bool
    public var specialist:Bool
    public var isMotabilityRetailer:Bool
    public var upholsteryDescription:String
    public var inBackOrderAccount:Bool
    public var fullModelYearCode:String
    public var productionDate:Date?
    public var baumuster:String
    public var isMotability:Bool
    public var pipAdvanceRentalGross:Double?
    public var wpmsAdvanceRentalGross:Double?
    public var ispVehicleCustomerDescriptions:[String]

    required public init(){}
}

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

    required public init(){}
}


Swift VehicleByCommissionNumberRequest DTOs

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

HTTP + XML

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

GET /v1/{VehicleType}/Vehicle/{vehicleIdentifier} HTTP/1.1 
Host: uat-api-vehicle-mgt-mb-dhc.rapp-customers.co.uk 
Accept: application/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<VehicleByCommissionNumberResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Mercedes.VehicleManagement.API.Shared.POCO">
  <CampaignMessages>
    <Message>
      <CampaignDescription>String</CampaignDescription>
      <CampaignId>0</CampaignId>
      <DocumentUrl>String</DocumentUrl>
      <From>String</From>
      <Id>0</Id>
      <To>String</To>
      <Value>String</Value>
      <Vin>String</Vin>
    </Message>
  </CampaignMessages>
  <CampaignOLEVGrantOffers>
    <Offer>
      <CampaignName>String</CampaignName>
      <CampaignVIPDiscount>false</CampaignVIPDiscount>
      <DocumentUrl>String</DocumentUrl>
      <From>String</From>
      <Id>0</Id>
      <IsPersonalisedMonetaryOffer>false</IsPersonalisedMonetaryOffer>
      <Net>0</Net>
      <OfferType>String</OfferType>
      <OfferValueNet>0</OfferValueNet>
      <OfferVehicle>
        <RetailPriceExVAT>String</RetailPriceExVAT>
      </OfferVehicle>
      <Pending>false</Pending>
      <Personalised>false</Personalised>
      <To>String</To>
      <Value>String</Value>
    </Offer>
  </CampaignOLEVGrantOffers>
  <CampaignOffers>
    <Offer>
      <CampaignName>String</CampaignName>
      <CampaignVIPDiscount>false</CampaignVIPDiscount>
      <DocumentUrl>String</DocumentUrl>
      <From>String</From>
      <Id>0</Id>
      <IsPersonalisedMonetaryOffer>false</IsPersonalisedMonetaryOffer>
      <Net>0</Net>
      <OfferType>String</OfferType>
      <OfferValueNet>0</OfferValueNet>
      <OfferVehicle>
        <RetailPriceExVAT>String</RetailPriceExVAT>
      </OfferVehicle>
      <Pending>false</Pending>
      <Personalised>false</Personalised>
      <To>String</To>
      <Value>String</Value>
    </Offer>
  </CampaignOffers>
  <CampaignPersonalisedOffers>
    <PersonalisedOffer>
      <CampaignName>String</CampaignName>
      <CampaignVIPDiscount>false</CampaignVIPDiscount>
      <DocumentUrl>String</DocumentUrl>
      <From>String</From>
      <Id>0</Id>
      <IsPersonalisedMonetaryOffer>false</IsPersonalisedMonetaryOffer>
      <Net>0</Net>
      <OfferType>String</OfferType>
      <OfferValueNet>0</OfferValueNet>
      <OfferVehicle>
        <RetailPriceExVAT>String</RetailPriceExVAT>
      </OfferVehicle>
      <Pending>false</Pending>
      <Personalised>false</Personalised>
      <To>String</To>
      <Value>String</Value>
      <Category>String</Category>
      <Description>String</Description>
      <Reference>String</Reference>
    </PersonalisedOffer>
  </CampaignPersonalisedOffers>
  <FinanceOffers>
    <FinanceOffer>
      <CampaignDescription>String</CampaignDescription>
      <CampaignId>0</CampaignId>
      <DocumentUrl>String</DocumentUrl>
      <Enabled>false</Enabled>
      <From>String</From>
      <Id>0</Id>
      <Label>String</Label>
      <OfferType>String</OfferType>
      <Pending>false</Pending>
      <TermsAndConditions>String</TermsAndConditions>
      <To>String</To>
      <Value>String</Value>
      <Vin>String</Vin>
    </FinanceOffer>
  </FinanceOffers>
  <OfferHistories>
    <OfferHistory>
      <AuditType>String</AuditType>
      <CampaignDescription>String</CampaignDescription>
      <CampaignId>0</CampaignId>
      <CommissionNumber>String</CommissionNumber>
      <Creation>String</Creation>
      <CreationDate>0001-01-01T00:00:00</CreationDate>
      <Description>String</Description>
      <From>String</From>
      <Gssn>String</Gssn>
      <Id>0</Id>
      <IsUsedCarOffer>false</IsUsedCarOffer>
      <Modified>String</Modified>
      <Net>String</Net>
      <OfferId>0</OfferId>
      <OfferType>String</OfferType>
      <Personalised>false</Personalised>
      <Source>String</Source>
      <To>String</To>
      <User>0</User>
      <UserId>String</UserId>
      <VAT>String</VAT>
      <Value>String</Value>
      <Vin>String</Vin>
    </OfferHistory>
  </OfferHistories>
  <Vehicle>
    <Account>String</Account>
    <AccountType>String</AccountType>
    <ActiveOffers xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:int>0</d3p1:int>
    </ActiveOffers>
    <ActualPrice>String</ActualPrice>
    <Baumuster>String</Baumuster>
    <Bm7NST>String</Bm7NST>
    <BodyStyle>String</BodyStyle>
    <CampaignAndOfferTotal>0</CampaignAndOfferTotal>
    <CampaignAndOfferTotalCurrent>0</CampaignAndOfferTotalCurrent>
    <CampaignAndOfferTotalPending>0</CampaignAndOfferTotalPending>
    <CampaignCustomOfferTotal>0</CampaignCustomOfferTotal>
    <CampaignCustomOfferTotalCurrent>0</CampaignCustomOfferTotalCurrent>
    <CampaignCustomOfferTotalPending>0</CampaignCustomOfferTotalPending>
    <CampaignDiscountOfferTotal>0</CampaignDiscountOfferTotal>
    <CampaignDiscountOfferTotalCurrent>0</CampaignDiscountOfferTotalCurrent>
    <CampaignDiscountOfferTotalPending>0</CampaignDiscountOfferTotalPending>
    <CampaignMessagesTotal>0</CampaignMessagesTotal>
    <CampaignOfferTotal>0</CampaignOfferTotal>
    <CampaignOfferTotalCurrent>0</CampaignOfferTotalCurrent>
    <CampaignOfferTotalPending>0</CampaignOfferTotalPending>
    <CampaignOtherOfferTotal>0</CampaignOtherOfferTotal>
    <CampaignOtherOfferTotalCurrent>0</CampaignOtherOfferTotalCurrent>
    <CampaignOtherOfferTotalPending>0</CampaignOtherOfferTotalPending>
    <CampaignPersonalisedOfferTotal>0</CampaignPersonalisedOfferTotal>
    <CampaignPersonalisedOfferTotalCurrent>0</CampaignPersonalisedOfferTotalCurrent>
    <CampaignPersonalisedOfferTotalPending>0</CampaignPersonalisedOfferTotalPending>
    <CampaignServiceOfferTotal>0</CampaignServiceOfferTotal>
    <CampaignServiceOfferTotalCurrent>0</CampaignServiceOfferTotalCurrent>
    <CampaignServiceOfferTotalPending>0</CampaignServiceOfferTotalPending>
    <Colour>String</Colour>
    <ColourCode>String</ColourCode>
    <ColourDescription>String</ColourDescription>
    <CommissionNumber>String</CommissionNumber>
    <Creation>String</Creation>
    <CreationDate>String</CreationDate>
    <CurrentRetailerOfferPrice>0</CurrentRetailerOfferPrice>
    <DaysSincePortArrival>0</DaysSincePortArrival>
    <Description>String</Description>
    <DisplayRetailer>String</DisplayRetailer>
    <DisplayRetailerGssnId>String</DisplayRetailerGssnId>
    <ElectricConsumption>0</ElectricConsumption>
    <ElectricRange>0</ElectricRange>
    <FuelType>String</FuelType>
    <FullModelYearCode>String</FullModelYearCode>
    <GssnId>String</GssnId>
    <ImageUrl>String</ImageUrl>
    <InBackOrderAccount>false</InBackOrderAccount>
    <IsAvailableOnline>false</IsAvailableOnline>
    <IsBackOrdered>false</IsBackOrdered>
    <IsDisplayStock>false</IsDisplayStock>
    <IsMotability>false</IsMotability>
    <IsMotabilityRetailer>false</IsMotabilityRetailer>
    <IsSellable>false</IsSellable>
    <IspVehicleCustomerDescriptions xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:string>String</d3p1:string>
    </IspVehicleCustomerDescriptions>
    <Line>String</Line>
    <Location>String</Location>
    <MaintenanceDate>String</MaintenanceDate>
    <Mileage>0</Mileage>
    <Model>String</Model>
    <Modified>String</Modified>
    <NoImage>false</NoImage>
    <OfferAmount>String</OfferAmount>
    <OfferAvailable>false</OfferAvailable>
    <OfferExpiry>String</OfferExpiry>
    <OfferTotal>0</OfferTotal>
    <OfferTotalCurrent>0</OfferTotalCurrent>
    <OfferTotalPending>0</OfferTotalPending>
    <Otr>String</Otr>
    <PackageNames xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:string>String</d3p1:string>
    </PackageNames>
    <PipAdvanceRentalGross>0</PipAdvanceRentalGross>
    <PortArrivalDate>0001-01-01T00:00:00</PortArrivalDate>
    <ProductionDate>0001-01-01T00:00:00</ProductionDate>
    <RegistrationDate>0001-01-01T00:00:00</RegistrationDate>
    <RegistrationNumber>String</RegistrationNumber>
    <RetailPrice>String</RetailPrice>
    <RetailPriceExVAT>String</RetailPriceExVAT>
    <RetailPriceIncVAT>0</RetailPriceIncVAT>
    <RetailerCustomOfferTotal>0</RetailerCustomOfferTotal>
    <RetailerCustomOfferTotalCurrent>0</RetailerCustomOfferTotalCurrent>
    <RetailerCustomOfferTotalPending>0</RetailerCustomOfferTotalPending>
    <RetailerDiscountOfferTotal>0</RetailerDiscountOfferTotal>
    <RetailerDiscountOfferTotalCurrent>0</RetailerDiscountOfferTotalCurrent>
    <RetailerDiscountOfferTotalPending>0</RetailerDiscountOfferTotalPending>
    <RetailerId>0</RetailerId>
    <RetailerOfferTotal>0</RetailerOfferTotal>
    <RetailerOfferTotalCurrent>0</RetailerOfferTotalCurrent>
    <RetailerOfferTotalPending>0</RetailerOfferTotalPending>
    <RetailerServiceOfferTotal>0</RetailerServiceOfferTotal>
    <RetailerServiceOfferTotalCurrent>0</RetailerServiceOfferTotalCurrent>
    <RetailerServiceOfferTotalPending>0</RetailerServiceOfferTotalPending>
    <RetailerWarrantyOfferTotal>0</RetailerWarrantyOfferTotal>
    <RetailerWarrantyOfferTotalCurrent>0</RetailerWarrantyOfferTotalCurrent>
    <RetailerWarrantyOfferTotalPending>0</RetailerWarrantyOfferTotalPending>
    <Secured>false</Secured>
    <Source>String</Source>
    <Specialist>false</Specialist>
    <TradeInDate>0001-01-01T00:00:00</TradeInDate>
    <Transmission>String</Transmission>
    <TransmissionType>String</TransmissionType>
    <UnderOffer>false</UnderOffer>
    <Upholstery>String</Upholstery>
    <UpholsteryCode>String</UpholsteryCode>
    <UpholsteryDescription>String</UpholsteryDescription>
    <UpholsteryType>String</UpholsteryType>
    <UsageCode>String</UsageCode>
    <VATQualifying>false</VATQualifying>
    <VehicleType>String</VehicleType>
    <Vin>String</Vin>
    <WpmsAdvanceRentalGross>0</WpmsAdvanceRentalGross>
    <Engine>String</Engine>
    <Equipment xmlns:d3p1="http://schemas.datacontract.org/2004/07/Mercedes.OS.Vehicle.Shared.POCO">
      <d3p1:Equipment>
        <d3p1:Code>String</d3p1:Code>
        <d3p1:Description>String</d3p1:Description>
        <d3p1:Id>0</d3p1:Id>
      </d3p1:Equipment>
    </Equipment>
    <HasMotabilityError>false</HasMotabilityError>
    <Retailer>String</Retailer>
  </Vehicle>
</VehicleByCommissionNumberResponse>