Mercedes.Agency.Orchestration.API

<back to all web services

CreateOneAdminOrderRequest

Order
Requires Authentication
The following routes are available for this service:
POST/v1/oneAdmin/orderCreates an order for a selected vehicle via the Agency APIThis endpoint is called from the OneAdmin portal to create a vehicle order. It builds the order request object for the Agency API before calling it to create the order. The information it retrieves and builds for the Agency API request include 1.) The customer. 2.) The vehicle. 3.) Ourright purchase. 4.) Motability. 5.) Offers applicable to the vehicle Validation is performed on the input data which includes checking for mandatory items: 1.} Customer details 2.) Vehicle Vin 3.) Agent 4.) GSSN Outlet Id 5.) Source 6.) Order Type 7.) Customer Location Id 8.) Estimated Handover Date
import java.math.*
import java.util.*
import java.io.InputStream
import net.servicestack.client.*


open class CreateOneAdminOrderRequest : CreateOrderBase(), IGet
{
    open var CustomerLocationId:Int? = null
}

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 CreateOrderResponse
{
    open var Guid:String? = null
    open var Reference:String? = null
    open var ResponseStatus:ResponseStatus? = null
    open var BackOrderReference:String? = null
}

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

{
	CustomerLocationId: 0,
	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

{
	Guid: String,
	Reference: String,
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	},
	BackOrderReference: String
}