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
namespace Mercedes.Agency.API.Shared.Enums

open System
open System.IO
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations

    [<AllowNullLiteral>]
    type CreateOrderResponse() = 
        member val Guid:String = null with get,set
        member val Reference:String = null with get,set
        member val ResponseStatus:ResponseStatus = null with get,set
        member val BackOrderReference:String = null with get,set

    type Source =
        | OnlineShowroom = 1
        | OneAdmin = 2

    [<AllowNullLiteral>]
    type Address() = 
        member val Property:String = null with get,set
        member val Street:String = null with get,set
        member val Town:String = null with get,set
        member val County:String = null with get,set
        member val Locality:String = null with get,set
        member val Postcode:String = null with get,set

    type CustomerMode =
        | Private = 1
        | Business = 2
        | Motability = 3

    [<AllowNullLiteral>]
    type SalesforceCustomer() = 
        member val CustomerId:String = null with get,set
        member val IsCiam:Boolean = new Boolean() with get,set
        member val CompanyName:String = null with get,set
        member val Title:String = null with get,set
        member val Firstname:String = null with get,set
        member val Surname:String = null with get,set
        member val EmailAddress:String = null with get,set
        member val Telephone:String = null with get,set
        member val Address:Address = null with get,set
        member val Mode:CustomerMode = new CustomerMode() with get,set

    [<AllowNullLiteral>]
    type Preferences() = 
        member val OptinEmail:Boolean = new Boolean() with get,set
        member val OptinPost:Boolean = new Boolean() with get,set
        member val OptinSMS:Boolean = new Boolean() with get,set
        member val OptinTelephone:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type Customer() = 
        inherit SalesforceCustomer()
        member val ProfileId:Nullable<Guid> = new Nullable<Guid>() with get,set
        member val Preferences:Preferences = null with get,set

    [<AllowNullLiteral>]
    type Vehicle() = 
        member val Vin:String = null with get,set

    [<AllowNullLiteral>]
    type Option() = 
        member val IsDefault:Boolean = new Boolean() with get,set
        member val Value:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type Term() = 
        member val Options:ResizeArray<Option> = null with get,set

    [<AllowNullLiteral>]
    type Deposit() = 
        member val Default:String = null with get,set

    [<AllowNullLiteral>]
    type Mileage() = 
        member val Options:ResizeArray<Option> = null with get,set

    [<AllowNullLiteral>]
    type AdvanceRentals() = 
        member val Options:ResizeArray<Option> = null with get,set

    type VehicleType =
        | UNASSIGNED = 0
        | NEW = 1
        | USED = 2

    [<AllowNullLiteral>]
    type FinanceCriteria() = 
        member val Key:String = null with get,set
        member val Name:String = null with get,set
        member val Type:String = null with get,set
        member val IsDefault:Boolean = new Boolean() with get,set
        member val Term:Term = null with get,set
        member val Deposit:Deposit = null with get,set
        member val Mileage:Mileage = null with get,set
        member val AdvanceRentals:AdvanceRentals = null with get,set
        member val IsPersonalised:Boolean = new Boolean() with get,set
        member val RegularPayment:String = null with get,set
        member val PartExchange:String = null with get,set
        member val Settlement:String = null with get,set
        member val CustomerType:String = null with get,set
        member val VehicleType:VehicleType = new VehicleType() with get,set

    [<AllowNullLiteral>]
    type OutrightPurchase() = 
        member val IsOutrightPurchase:Boolean = new Boolean() with get,set
        member val Reference:String = null with get,set
        member val DiscountRate:Decimal = new Decimal() with get,set
        member val Bm7NST:String = null with get,set
        member val IsBackOrder:Boolean = new Boolean() with get,set
        member val IsCOPConverter:Boolean = new Boolean() with get,set

    type MotabilityType =
        | PIP = 1
        | WPMS = 2
        | UNASSIGNED = 3

    [<AllowNullLiteral>]
    type CreateOrderBase() = 
        member val Source:Source = new Source() with get,set
        member val GssnId:String = null with get,set
        member val AdditionalInformation:String = null with get,set
        member val Cash:Boolean = new Boolean() with get,set
        member val Finance:Boolean = new Boolean() with get,set
        member val Customer:Customer = null with get,set
        member val Vehicle:Vehicle = null with get,set
        member val FinanceCriteria:FinanceCriteria = null with get,set
        member val BackOrderGuid:Nullable<Guid> = new Nullable<Guid>() with get,set
        member val TagUrl:String = null with get,set
        member val OutrightPurchase:OutrightPurchase = null with get,set
        member val Motability:Boolean = new Boolean() with get,set
        member val MotabilityPricingId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val FinanceApplicationReference:String = null with get,set
        member val Specialist:Boolean = new Boolean() with get,set
        member val GasId:String = null with get,set
        member val PersonalisedItemOfferIds:Int32[] = null with get,set
        member val SuggestedVin:String = null with get,set
        member val NonOptimumReason:String = null with get,set
        member val MotabilityType:MotabilityType = new MotabilityType() with get,set
        member val EstimatedHandoverDate:String = null with get,set

    [<AllowNullLiteral>]
    type CreateOneAdminOrderRequest() = 
        inherit CreateOrderBase()
        interface IGet
        member val CustomerLocationId:Nullable<Int32> = new Nullable<Int32>() with get,set

F# 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
}