Mercedes.Agency.Orchestration.API

<back to all web services

GetPricingDetailsRequest

Pricing
The following routes are available for this service:
POST/v1/pricingdetailsCreates a detailed pricing of a vehicle
import java.math.*
import java.util.*
import java.io.InputStream
import net.servicestack.client.*


open class GetPricingDetailsRequest : CreateOrderBase(), IPost
{
}

open class CreateOrderBase
{
    open var Source:Source? = null
    open var GssnId:String? = null
    open var AdditionalInformation:String? = null
    open var Cash:Boolean? = null
    open var Finance:Boolean? = null
    open var Customer:Customer? = null
    open var Vehicle:Vehicle? = null
    open var FinanceCriteria:FinanceCriteria? = null
    open var BackOrderGuid:UUID? = null
    open var TagUrl:String? = null
    open var OutrightPurchase:OutrightPurchase? = null
    open var Motability:Boolean? = null
    open var MotabilityPricingId:Int? = null
    open var FinanceApplicationReference:String? = null
    open var Specialist:Boolean? = null
    open var GasId:String? = null
    open var PersonalisedItemOfferIds:ArrayList<Int>? = null
    open var SuggestedVin:String? = null
    open var NonOptimumReason:String? = null
    open var MotabilityType:MotabilityType? = null
    open var EstimatedHandoverDate:String? = null
}

enum class Source(val value:Int)
{
    OnlineShowroom(1),
    OneAdmin(2),
}

open class Customer : SalesforceCustomer()
{
    open var ProfileId:UUID? = null
    open var Preferences:Preferences? = null
}

open class SalesforceCustomer : ICustomer
{
    override var CustomerId:String? = null
    override var IsCiam:Boolean? = null
    override var CompanyName:String? = null
    override var Title:String? = null
    override var Firstname:String? = null
    override var Surname:String? = null
    override var EmailAddress:String? = null
    override var Telephone:String? = null
    override var Address:Address? = null
    override var Mode:CustomerMode? = null
}

open class Address
{
    open var Property:String? = null
    open var Street:String? = null
    open var Town:String? = null
    open var County:String? = null
    open var Locality:String? = null
    open var Postcode:String? = null
}

enum class CustomerMode(val value:Int)
{
    Private(1),
    Business(2),
    Motability(3),
}

open class Preferences
{
    open var OptinEmail:Boolean? = null
    open var OptinPost:Boolean? = null
    open var OptinSMS:Boolean? = null
    open var OptinTelephone:Boolean? = null
}

open class Vehicle
{
    open var Vin:String? = null
}

open class FinanceCriteria
{
    open var Key:String? = null
    open var Name:String? = null
    open var Type:String? = null
    open var IsDefault:Boolean? = null
    open var Term:Term? = null
    open var Deposit:Deposit? = null
    open var Mileage:Mileage? = null
    open var AdvanceRentals:AdvanceRentals? = null
    open var IsPersonalised:Boolean? = null
    open var RegularPayment:String? = null
    open var PartExchange:String? = null
    open var Settlement:String? = null
    open var CustomerType:String? = null
    open var VehicleType:VehicleType? = null
}

open class Term
{
    open var Options:ArrayList<Option> = ArrayList<Option>()
}

open class Option
{
    open var IsDefault:Boolean? = null
    open var Value:Int? = null
}

open class Deposit
{
    open var Default:String? = null
}

open class Mileage
{
    open var Options:ArrayList<Option> = ArrayList<Option>()
}

open class AdvanceRentals
{
    open var Options:ArrayList<Option> = ArrayList<Option>()
}

enum class VehicleType
{
    Unassigned,
    New,
    Used,
}

open class OutrightPurchase
{
    open var IsOutrightPurchase:Boolean? = null
    open var Reference:String? = null
    open var DiscountRate:BigDecimal? = null
    open var Bm7NST:String? = null
    open var IsBackOrder:Boolean? = null
    open var IsCOPConverter:Boolean? = null
}

enum class MotabilityType(val value:Int)
{
    Pip(1),
    Wpms(2),
    Unassigned(3),
}

open class GetPricingDetailsResponse
{
    open var Price:Price? = 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,
}

Kotlin GetPricingDetailsRequest 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/pricingdetails HTTP/1.1 
Host: prod-api-agency-orch-mb-dhc.rapp-customers.co.uk 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	Source: OnlineShowroom,
	GssnId: String,
	AdditionalInformation: String,
	Cash: False,
	Finance: False,
	Customer: 
	{
		ProfileId: 00000000000000000000000000000000,
		Preferences: 
		{
			OptinEmail: False,
			OptinPost: False,
			OptinSMS: False,
			OptinTelephone: False
		},
		CustomerId: String,
		IsCiam: False,
		CompanyName: String,
		Title: String,
		Firstname: String,
		Surname: String,
		EmailAddress: String,
		Telephone: String,
		Address: 
		{
			Property: String,
			Street: String,
			Town: String,
			County: String,
			Locality: String,
			Postcode: String
		},
		Mode: Private
	},
	Vehicle: 
	{
		Vin: String
	},
	FinanceCriteria: 
	{
		Key: String,
		Name: String,
		Type: String,
		IsDefault: False,
		Term: 
		{
			Options: 
			[
				{
					IsDefault: False,
					Value: 0
				}
			]
		},
		Deposit: 
		{
			Default: String
		},
		Mileage: 
		{
			Options: 
			[
				{
					IsDefault: False,
					Value: 0
				}
			]
		},
		AdvanceRentals: 
		{
			Options: 
			[
				{
					IsDefault: False,
					Value: 0
				}
			]
		},
		IsPersonalised: False,
		RegularPayment: String,
		PartExchange: String,
		Settlement: String,
		CustomerType: String,
		VehicleType: UNASSIGNED
	},
	BackOrderGuid: 00000000000000000000000000000000,
	TagUrl: String,
	OutrightPurchase: 
	{
		IsOutrightPurchase: False,
		Reference: String,
		DiscountRate: 0,
		Bm7NST: String,
		IsBackOrder: False,
		IsCOPConverter: False
	},
	Motability: False,
	MotabilityPricingId: 0,
	FinanceApplicationReference: String,
	Specialist: False,
	GasId: String,
	PersonalisedItemOfferIds: 
	[
		0
	],
	SuggestedVin: String,
	NonOptimumReason: String,
	MotabilityType: PIP,
	EstimatedHandoverDate: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Price: 
	{
		Id: String,
		Description: String,
		Net: 0,
		VAT: 0,
		Gross: 0,
		Product: LIST_PRICE
	}
}