POST | /v1/oneAdmin/order | Creates an order for a selected vehicle via the Agency API | This 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
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 }