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

export enum Source
{
    OnlineShowroom = 1,
    OneAdmin = 2,
}

export class Address
{
    public Property: string;
    public Street: string;
    public Town: string;
    public County: string;
    public Locality: string;
    public Postcode: string;

    public constructor(init?: Partial<Address>) { (Object as any).assign(this, init); }
}

export enum CustomerMode
{
    Private = 1,
    Business = 2,
    Motability = 3,
}

export class SalesforceCustomer implements ICustomer
{
    public CustomerId: string;
    public IsCiam: boolean;
    public CompanyName: string;
    public Title: string;
    public Firstname: string;
    public Surname: string;
    public EmailAddress: string;
    public Telephone: string;
    public Address: Address;
    public Mode: CustomerMode;

    public constructor(init?: Partial<SalesforceCustomer>) { (Object as any).assign(this, init); }
}

export class Preferences
{
    public OptinEmail: boolean;
    public OptinPost: boolean;
    public OptinSMS: boolean;
    public OptinTelephone: boolean;

    public constructor(init?: Partial<Preferences>) { (Object as any).assign(this, init); }
}

export class Customer extends SalesforceCustomer
{
    public ProfileId?: string;
    public Preferences?: Preferences;

    public constructor(init?: Partial<Customer>) { super(init); (Object as any).assign(this, init); }
}

export class Vehicle
{
    public Vin?: string;

    public constructor(init?: Partial<Vehicle>) { (Object as any).assign(this, init); }
}

export class Option
{
    public IsDefault: boolean;
    public Value: number;

    public constructor(init?: Partial<Option>) { (Object as any).assign(this, init); }
}

export class Term
{
    public Options: Option[] = [];

    public constructor(init?: Partial<Term>) { (Object as any).assign(this, init); }
}

export class Deposit
{
    public Default: string;

    public constructor(init?: Partial<Deposit>) { (Object as any).assign(this, init); }
}

export class Mileage
{
    public Options: Option[] = [];

    public constructor(init?: Partial<Mileage>) { (Object as any).assign(this, init); }
}

export class AdvanceRentals
{
    public Options: Option[] = [];

    public constructor(init?: Partial<AdvanceRentals>) { (Object as any).assign(this, init); }
}

export enum VehicleType
{
    UNASSIGNED = 'UNASSIGNED',
    NEW = 'NEW',
    USED = 'USED',
}

export class FinanceCriteria
{
    public Key: string;
    public Name: string;
    public Type: string;
    public IsDefault: boolean;
    public Term: Term;
    public Deposit: Deposit;
    public Mileage: Mileage;
    public AdvanceRentals: AdvanceRentals;
    public IsPersonalised: boolean;
    public RegularPayment: string;
    public PartExchange: string;
    public Settlement: string;
    public CustomerType: string;
    public VehicleType: VehicleType;

    public constructor(init?: Partial<FinanceCriteria>) { (Object as any).assign(this, init); }
}

export class OutrightPurchase
{
    public IsOutrightPurchase: boolean;
    public Reference: string;
    public DiscountRate: number;
    public Bm7NST: string;
    public IsBackOrder: boolean;
    public IsCOPConverter: boolean;

    public constructor(init?: Partial<OutrightPurchase>) { (Object as any).assign(this, init); }
}

export enum MotabilityType
{
    PIP = 1,
    WPMS = 2,
    UNASSIGNED = 3,
}

export class CreateOrderBase
{
    public Source: Source;
    public GssnId: string;
    public AdditionalInformation: string;
    public Cash: boolean;
    public Finance: boolean;
    public Customer: Customer;
    public Vehicle: Vehicle;
    public FinanceCriteria: FinanceCriteria;
    public BackOrderGuid?: string;
    public TagUrl?: string;
    public OutrightPurchase?: OutrightPurchase;
    public Motability: boolean;
    public MotabilityPricingId?: number;
    public FinanceApplicationReference: string;
    public Specialist: boolean;
    public GasId: string;
    public PersonalisedItemOfferIds?: number[];
    public SuggestedVin?: string;
    public NonOptimumReason?: string;
    public MotabilityType: MotabilityType;
    public EstimatedHandoverDate: string;

    public constructor(init?: Partial<CreateOrderBase>) { (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 GetPricingDetailsResponse
{
    public Price: Price;

    public constructor(init?: Partial<GetPricingDetailsResponse>) { (Object as any).assign(this, init); }
}

export class GetPricingDetailsRequest extends CreateOrderBase implements IPost
{

    public constructor(init?: Partial<GetPricingDetailsRequest>) { super(init); (Object as any).assign(this, init); }
}

TypeScript 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
	}
}