Mercedes.Agency.Orchestration.API

<back to all web services

CreateOrderRequest

Order
Requires Authentication
The following routes are available for this service:
POST/v1/orderCreates an order for a selected vehicle via the Agency APIThis endpoint is called from Online Showroom 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
using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using Mercedes.Agency.Orchestration.API.ServiceModel.Orders;
using Mercedes.Agency.Orchestration.API.Business.Poco;
using Mercedes.Agency.API.Shared.Enums;
using Mercedes.Agency.API.Shared.POCO;
using Mercedes.Agency.Orchestration.API.Clients.AgencyApi.Responses;

namespace Mercedes.Agency.API.Shared.POCO
{
    public partial class Address
    {
        public virtual string Property { get; set; }
        public virtual string Street { get; set; }
        public virtual string Town { get; set; }
        public virtual string County { get; set; }
        public virtual string Locality { get; set; }
        public virtual string Postcode { get; set; }
    }

    public partial class AdvanceRentals
    {
        public virtual List<Option> Options { get; set; } = [];
    }

    public partial class Customer
        : SalesforceCustomer
    {
        public virtual Guid? ProfileId { get; set; }
        public virtual Preferences Preferences { get; set; }
    }

    public partial class Deposit
    {
        public virtual string Default { get; set; }
    }

    public partial class FinanceCriteria
    {
        public virtual string Key { get; set; }
        public virtual string Name { get; set; }
        public virtual string Type { get; set; }
        public virtual bool IsDefault { get; set; }
        public virtual Term Term { get; set; }
        public virtual Deposit Deposit { get; set; }
        public virtual Mileage Mileage { get; set; }
        public virtual AdvanceRentals AdvanceRentals { get; set; }
        public virtual bool IsPersonalised { get; set; }
        public virtual string RegularPayment { get; set; }
        public virtual string PartExchange { get; set; }
        public virtual string Settlement { get; set; }
        public virtual string CustomerType { get; set; }
        public virtual VehicleType VehicleType { get; set; }
    }

    public partial class Mileage
    {
        public virtual List<Option> Options { get; set; } = [];
    }

    public partial class Option
    {
        public virtual bool IsDefault { get; set; }
        public virtual int Value { get; set; }
    }

    public partial class OutrightPurchase
    {
        public virtual bool IsOutrightPurchase { get; set; }
        public virtual string Reference { get; set; }
        public virtual decimal DiscountRate { get; set; }
        public virtual string Bm7NST { get; set; }
        public virtual bool IsBackOrder { get; set; }
        public virtual bool IsCOPConverter { get; set; }
    }

    public partial class Preferences
    {
        public virtual bool OptinEmail { get; set; }
        public virtual bool OptinPost { get; set; }
        public virtual bool OptinSMS { get; set; }
        public virtual bool OptinTelephone { get; set; }
    }

    public partial class SalesforceCustomer
        : ICustomer
    {
        public virtual string CustomerId { get; set; }
        public virtual bool IsCiam { get; set; }
        public virtual string CompanyName { get; set; }
        public virtual string Title { get; set; }
        public virtual string Firstname { get; set; }
        public virtual string Surname { get; set; }
        public virtual string EmailAddress { get; set; }
        public virtual string Telephone { get; set; }
        public virtual Address Address { get; set; }
        public virtual CustomerMode Mode { get; set; }
    }

    public partial class Term
    {
        public virtual List<Option> Options { get; set; } = [];
    }

    public partial class Vehicle
    {
        public virtual string Vin { get; set; }
    }

}

namespace Mercedes.Agency.Orchestration.API.Business.Poco
{
    public partial class CreateOrderBase
    {
        public virtual Source Source { get; set; }
        public virtual string GssnId { get; set; }
        public virtual string AdditionalInformation { get; set; }
        public virtual bool Cash { get; set; }
        public virtual bool Finance { get; set; }
        public virtual Customer Customer { get; set; }
        public virtual Vehicle Vehicle { get; set; }
        public virtual FinanceCriteria FinanceCriteria { get; set; }
        public virtual Guid? BackOrderGuid { get; set; }
        public virtual string TagUrl { get; set; }
        public virtual OutrightPurchase OutrightPurchase { get; set; }
        public virtual bool Motability { get; set; }
        public virtual int? MotabilityPricingId { get; set; }
        public virtual string FinanceApplicationReference { get; set; }
        public virtual bool Specialist { get; set; }
        public virtual string GasId { get; set; }
        public virtual int[] PersonalisedItemOfferIds { get; set; }
        public virtual string SuggestedVin { get; set; }
        public virtual string NonOptimumReason { get; set; }
        public virtual MotabilityType MotabilityType { get; set; }
        public virtual string EstimatedHandoverDate { get; set; }
    }

}

namespace Mercedes.Agency.Orchestration.API.Clients.AgencyApi.Responses
{
    public partial class CreateOrderResponse
    {
        public virtual string Guid { get; set; }
        public virtual string Reference { get; set; }
        public virtual ResponseStatus ResponseStatus { get; set; }
        public virtual string BackOrderReference { get; set; }
    }

}

namespace Mercedes.Agency.Orchestration.API.ServiceModel.Orders
{
    public partial class CreateOrderRequest
        : CreateOrderBase, IGet
    {
    }

}

C# CreateOrderRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /v1/order HTTP/1.1 
Host: prod-api-agency-orch-mb-dhc.rapp-customers.co.uk 
Accept: application/json
Content-Type: application/json
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: application/json
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"}