Mercedes.Agency.Orchestration.API

<back to all web services

MotabilityInflightPricingRequest

InFlightPricing
Requires Authentication
The following routes are available for this service:
POST/v1/motabilityinflightpricingMotability Pricing Inflight Pricing for supplied Order GuidsThis endpoint is used for fetch motability orders only for inflight pricing. The original request is being made on Agency API and a list of orders from database is passed to agency orch. This is to fetch addditional information such as the vehicles details e.g Prices and Offers data
import 'package:servicestack/servicestack.dart';

class OrderOffer implements IConvertible
{
    int? Id;
    int? OfferTypeId;
    String? OfferTypeDescription;
    String? OfferId;
    String? OfferDescription;
    double? Net;
    double? VAT;
    double? Gross;
    bool? GovernmentGrant;
    String? PromoCode;
    String? Expiry;
    bool? AffectsPrice;
    int? Product;
    String? ParentId;
    DateTime? CreationDate;
    String? ProductTypeDescription;
    String? ProductTypeNegativeDescription;
    bool? CertificateRequired;

    OrderOffer({this.Id,this.OfferTypeId,this.OfferTypeDescription,this.OfferId,this.OfferDescription,this.Net,this.VAT,this.Gross,this.GovernmentGrant,this.PromoCode,this.Expiry,this.AffectsPrice,this.Product,this.ParentId,this.CreationDate,this.ProductTypeDescription,this.ProductTypeNegativeDescription,this.CertificateRequired});
    OrderOffer.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        OfferTypeId = json['OfferTypeId'];
        OfferTypeDescription = json['OfferTypeDescription'];
        OfferId = json['OfferId'];
        OfferDescription = json['OfferDescription'];
        Net = JsonConverters.toDouble(json['Net']);
        VAT = JsonConverters.toDouble(json['VAT']);
        Gross = JsonConverters.toDouble(json['Gross']);
        GovernmentGrant = json['GovernmentGrant'];
        PromoCode = json['PromoCode'];
        Expiry = json['Expiry'];
        AffectsPrice = json['AffectsPrice'];
        Product = json['Product'];
        ParentId = json['ParentId'];
        CreationDate = JsonConverters.fromJson(json['CreationDate'],'DateTime',context!);
        ProductTypeDescription = json['ProductTypeDescription'];
        ProductTypeNegativeDescription = json['ProductTypeNegativeDescription'];
        CertificateRequired = json['CertificateRequired'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'OfferTypeId': OfferTypeId,
        'OfferTypeDescription': OfferTypeDescription,
        'OfferId': OfferId,
        'OfferDescription': OfferDescription,
        'Net': Net,
        'VAT': VAT,
        'Gross': Gross,
        'GovernmentGrant': GovernmentGrant,
        'PromoCode': PromoCode,
        'Expiry': Expiry,
        'AffectsPrice': AffectsPrice,
        'Product': Product,
        'ParentId': ParentId,
        'CreationDate': JsonConverters.toJson(CreationDate,'DateTime',context!),
        'ProductTypeDescription': ProductTypeDescription,
        'ProductTypeNegativeDescription': ProductTypeNegativeDescription,
        'CertificateRequired': CertificateRequired
    };

    getTypeName() => "OrderOffer";
    TypeContext? context = _ctx;
}

class OutrightPurchase implements IConvertible
{
    bool? IsOutrightPurchase;
    String? Reference;
    double? DiscountRate;
    String? Bm7NST;
    bool? IsBackOrder;
    bool? IsCOPConverter;

    OutrightPurchase({this.IsOutrightPurchase,this.Reference,this.DiscountRate,this.Bm7NST,this.IsBackOrder,this.IsCOPConverter});
    OutrightPurchase.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        IsOutrightPurchase = json['IsOutrightPurchase'];
        Reference = json['Reference'];
        DiscountRate = JsonConverters.toDouble(json['DiscountRate']);
        Bm7NST = json['Bm7NST'];
        IsBackOrder = json['IsBackOrder'];
        IsCOPConverter = json['IsCOPConverter'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'IsOutrightPurchase': IsOutrightPurchase,
        'Reference': Reference,
        'DiscountRate': DiscountRate,
        'Bm7NST': Bm7NST,
        'IsBackOrder': IsBackOrder,
        'IsCOPConverter': IsCOPConverter
    };

    getTypeName() => "OutrightPurchase";
    TypeContext? context = _ctx;
}

class MotabilityAdvancePayment implements IConvertible
{
    String? AdvancePaymentRentalType;
    double? AdvancePaymentValueGross;
    double? AdvancePaymentValueVAT;
    double? AdvancePaymentValueNet;

    MotabilityAdvancePayment({this.AdvancePaymentRentalType,this.AdvancePaymentValueGross,this.AdvancePaymentValueVAT,this.AdvancePaymentValueNet});
    MotabilityAdvancePayment.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        AdvancePaymentRentalType = json['AdvancePaymentRentalType'];
        AdvancePaymentValueGross = JsonConverters.toDouble(json['AdvancePaymentValueGross']);
        AdvancePaymentValueVAT = JsonConverters.toDouble(json['AdvancePaymentValueVAT']);
        AdvancePaymentValueNet = JsonConverters.toDouble(json['AdvancePaymentValueNet']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'AdvancePaymentRentalType': AdvancePaymentRentalType,
        'AdvancePaymentValueGross': AdvancePaymentValueGross,
        'AdvancePaymentValueVAT': AdvancePaymentValueVAT,
        'AdvancePaymentValueNet': AdvancePaymentValueNet
    };

    getTypeName() => "MotabilityAdvancePayment";
    TypeContext? context = _ctx;
}

class InflightPricingOrder implements IConvertible
{
    String? Guid;
    String? Vin;
    int? AdvanceRentalPaymentType;
    List<OrderOffer>? Offer = [];
    OutrightPurchase? OutrightPurchase;
    MotabilityAdvancePayment? MotabilityAdvancePayment;

    InflightPricingOrder({this.Guid,this.Vin,this.AdvanceRentalPaymentType,this.Offer,this.OutrightPurchase,this.MotabilityAdvancePayment});
    InflightPricingOrder.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Guid = json['Guid'];
        Vin = json['Vin'];
        AdvanceRentalPaymentType = json['AdvanceRentalPaymentType'];
        Offer = JsonConverters.fromJson(json['Offer'],'List<OrderOffer>',context!);
        OutrightPurchase = JsonConverters.fromJson(json['OutrightPurchase'],'OutrightPurchase',context!);
        MotabilityAdvancePayment = JsonConverters.fromJson(json['MotabilityAdvancePayment'],'MotabilityAdvancePayment',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Guid': Guid,
        'Vin': Vin,
        'AdvanceRentalPaymentType': AdvanceRentalPaymentType,
        'Offer': JsonConverters.toJson(Offer,'List<OrderOffer>',context!),
        'OutrightPurchase': JsonConverters.toJson(OutrightPurchase,'OutrightPurchase',context!),
        'MotabilityAdvancePayment': JsonConverters.toJson(MotabilityAdvancePayment,'MotabilityAdvancePayment',context!)
    };

    getTypeName() => "InflightPricingOrder";
    TypeContext? context = _ctx;
}

class InflightPricingOrderRequest implements IConvertible
{
    List<String>? InvalidFormatGuids = [];
    List<String>? OrderNotFoundGuids = [];
    List<InflightPricingOrder>? InflightPricingOrders = [];
    bool? IsMotability;

    InflightPricingOrderRequest({this.InvalidFormatGuids,this.OrderNotFoundGuids,this.InflightPricingOrders,this.IsMotability});
    InflightPricingOrderRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        InvalidFormatGuids = JsonConverters.fromJson(json['InvalidFormatGuids'],'List<String>',context!);
        OrderNotFoundGuids = JsonConverters.fromJson(json['OrderNotFoundGuids'],'List<String>',context!);
        InflightPricingOrders = JsonConverters.fromJson(json['InflightPricingOrders'],'List<InflightPricingOrder>',context!);
        IsMotability = json['IsMotability'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'InvalidFormatGuids': JsonConverters.toJson(InvalidFormatGuids,'List<String>',context!),
        'OrderNotFoundGuids': JsonConverters.toJson(OrderNotFoundGuids,'List<String>',context!),
        'InflightPricingOrders': JsonConverters.toJson(InflightPricingOrders,'List<InflightPricingOrder>',context!),
        'IsMotability': IsMotability
    };

    getTypeName() => "InflightPricingOrderRequest";
    TypeContext? context = _ctx;
}

class MotabilityInflightPricingOrderRequest extends InflightPricingOrderRequest implements IConvertible
{
    List<String>? OrderVehicleWithNoMotabilityDiscount = [];

    MotabilityInflightPricingOrderRequest({this.OrderVehicleWithNoMotabilityDiscount});
    MotabilityInflightPricingOrderRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        OrderVehicleWithNoMotabilityDiscount = JsonConverters.fromJson(json['OrderVehicleWithNoMotabilityDiscount'],'List<String>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'OrderVehicleWithNoMotabilityDiscount': JsonConverters.toJson(OrderVehicleWithNoMotabilityDiscount,'List<String>',context!)
    });

    getTypeName() => "MotabilityInflightPricingOrderRequest";
    TypeContext? context = _ctx;
}

class SalesforcePrice implements IConvertible
{
    String? Id;
    String? Description;
    double? Net;
    double? VAT;
    double? Gross;
    String? Product;

    SalesforcePrice({this.Id,this.Description,this.Net,this.VAT,this.Gross,this.Product});
    SalesforcePrice.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Description = json['Description'];
        Net = JsonConverters.toDouble(json['Net']);
        VAT = JsonConverters.toDouble(json['VAT']);
        Gross = JsonConverters.toDouble(json['Gross']);
        Product = json['Product'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Description': Description,
        'Net': Net,
        'VAT': VAT,
        'Gross': Gross,
        'Product': Product
    };

    getTypeName() => "SalesforcePrice";
    TypeContext? context = _ctx;
}

class SalesforceTotalPrice implements IConvertible
{
    double? Net;
    double? VAT;
    double? Gross;

    SalesforceTotalPrice({this.Net,this.VAT,this.Gross});
    SalesforceTotalPrice.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Net = JsonConverters.toDouble(json['Net']);
        VAT = JsonConverters.toDouble(json['VAT']);
        Gross = JsonConverters.toDouble(json['Gross']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Net': Net,
        'VAT': VAT,
        'Gross': Gross
    };

    getTypeName() => "SalesforceTotalPrice";
    TypeContext? context = _ctx;
}

class SalesforceOffer implements IConvertible
{
    String? Id;
    String? Description;
    double? Net;
    double? VAT;
    double? Gross;
    String? Expiry;
    String? Product;
    bool? RequiresCertification;

    SalesforceOffer({this.Id,this.Description,this.Net,this.VAT,this.Gross,this.Expiry,this.Product,this.RequiresCertification});
    SalesforceOffer.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Description = json['Description'];
        Net = JsonConverters.toDouble(json['Net']);
        VAT = JsonConverters.toDouble(json['VAT']);
        Gross = JsonConverters.toDouble(json['Gross']);
        Expiry = json['Expiry'];
        Product = json['Product'];
        RequiresCertification = json['RequiresCertification'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Description': Description,
        'Net': Net,
        'VAT': VAT,
        'Gross': Gross,
        'Expiry': Expiry,
        'Product': Product,
        'RequiresCertification': RequiresCertification
    };

    getTypeName() => "SalesforceOffer";
    TypeContext? context = _ctx;
}

class SalesforceOffers implements IConvertible
{
    List<SalesforceOffer>? Personalised = [];
    List<SalesforceOffer>? NonDiscretionary = [];
    List<SalesforceOffer>? NonCampaign = [];
    List<SalesforceOffer>? OutrightPurchaseDiscount = [];
    List<SalesforceOffer>? MotabilityDiscount = [];
    List<SalesforceOffer>? IntegratedProducts = [];

    SalesforceOffers({this.Personalised,this.NonDiscretionary,this.NonCampaign,this.OutrightPurchaseDiscount,this.MotabilityDiscount,this.IntegratedProducts});
    SalesforceOffers.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Personalised = JsonConverters.fromJson(json['Personalised'],'List<SalesforceOffer>',context!);
        NonDiscretionary = JsonConverters.fromJson(json['NonDiscretionary'],'List<SalesforceOffer>',context!);
        NonCampaign = JsonConverters.fromJson(json['NonCampaign'],'List<SalesforceOffer>',context!);
        OutrightPurchaseDiscount = JsonConverters.fromJson(json['OutrightPurchaseDiscount'],'List<SalesforceOffer>',context!);
        MotabilityDiscount = JsonConverters.fromJson(json['MotabilityDiscount'],'List<SalesforceOffer>',context!);
        IntegratedProducts = JsonConverters.fromJson(json['IntegratedProducts'],'List<SalesforceOffer>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Personalised': JsonConverters.toJson(Personalised,'List<SalesforceOffer>',context!),
        'NonDiscretionary': JsonConverters.toJson(NonDiscretionary,'List<SalesforceOffer>',context!),
        'NonCampaign': JsonConverters.toJson(NonCampaign,'List<SalesforceOffer>',context!),
        'OutrightPurchaseDiscount': JsonConverters.toJson(OutrightPurchaseDiscount,'List<SalesforceOffer>',context!),
        'MotabilityDiscount': JsonConverters.toJson(MotabilityDiscount,'List<SalesforceOffer>',context!),
        'IntegratedProducts': JsonConverters.toJson(IntegratedProducts,'List<SalesforceOffer>',context!)
    };

    getTypeName() => "SalesforceOffers";
    TypeContext? context = _ctx;
}

class SalesforceOutrightPurchase implements IConvertible
{
    bool? IsOutrightPurchase;
    String? Reference;
    double? DiscountPercentage;
    String? ModelId;

    SalesforceOutrightPurchase({this.IsOutrightPurchase,this.Reference,this.DiscountPercentage,this.ModelId});
    SalesforceOutrightPurchase.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        IsOutrightPurchase = json['IsOutrightPurchase'];
        Reference = json['Reference'];
        DiscountPercentage = JsonConverters.toDouble(json['DiscountPercentage']);
        ModelId = json['ModelId'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'IsOutrightPurchase': IsOutrightPurchase,
        'Reference': Reference,
        'DiscountPercentage': DiscountPercentage,
        'ModelId': ModelId
    };

    getTypeName() => "SalesforceOutrightPurchase";
    TypeContext? context = _ctx;
}

class VehicleInflightPrice implements IConvertible
{
    String? Guid;
    String? Status;
    bool? Success;
    List<SalesforcePrice>? Prices = [];
    SalesforceTotalPrice? TotalOTRFees;
    SalesforceTotalPrice? TotalOTRPrice;
    SalesforceTotalPrice? TotalActualPrice;
    SalesforceOffers? Offers;
    SalesforceOutrightPurchase? OutrightPurchase;
    MotabilityAdvancePayment? Motability;

    VehicleInflightPrice({this.Guid,this.Status,this.Success,this.Prices,this.TotalOTRFees,this.TotalOTRPrice,this.TotalActualPrice,this.Offers,this.OutrightPurchase,this.Motability});
    VehicleInflightPrice.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Guid = json['Guid'];
        Status = json['Status'];
        Success = json['Success'];
        Prices = JsonConverters.fromJson(json['Prices'],'List<SalesforcePrice>',context!);
        TotalOTRFees = JsonConverters.fromJson(json['TotalOTRFees'],'SalesforceTotalPrice',context!);
        TotalOTRPrice = JsonConverters.fromJson(json['TotalOTRPrice'],'SalesforceTotalPrice',context!);
        TotalActualPrice = JsonConverters.fromJson(json['TotalActualPrice'],'SalesforceTotalPrice',context!);
        Offers = JsonConverters.fromJson(json['Offers'],'SalesforceOffers',context!);
        OutrightPurchase = JsonConverters.fromJson(json['OutrightPurchase'],'SalesforceOutrightPurchase',context!);
        Motability = JsonConverters.fromJson(json['Motability'],'MotabilityAdvancePayment',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Guid': Guid,
        'Status': Status,
        'Success': Success,
        'Prices': JsonConverters.toJson(Prices,'List<SalesforcePrice>',context!),
        'TotalOTRFees': JsonConverters.toJson(TotalOTRFees,'SalesforceTotalPrice',context!),
        'TotalOTRPrice': JsonConverters.toJson(TotalOTRPrice,'SalesforceTotalPrice',context!),
        'TotalActualPrice': JsonConverters.toJson(TotalActualPrice,'SalesforceTotalPrice',context!),
        'Offers': JsonConverters.toJson(Offers,'SalesforceOffers',context!),
        'OutrightPurchase': JsonConverters.toJson(OutrightPurchase,'SalesforceOutrightPurchase',context!),
        'Motability': JsonConverters.toJson(Motability,'MotabilityAdvancePayment',context!)
    };

    getTypeName() => "VehicleInflightPrice";
    TypeContext? context = _ctx;
}

class InflightPricingResponse implements IConvertible
{
    List<VehicleInflightPrice>? VehiclesInflightPrices = [];

    InflightPricingResponse({this.VehiclesInflightPrices});
    InflightPricingResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        VehiclesInflightPrices = JsonConverters.fromJson(json['VehiclesInflightPrices'],'List<VehicleInflightPrice>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'VehiclesInflightPrices': JsonConverters.toJson(VehiclesInflightPrices,'List<VehicleInflightPrice>',context!)
    };

    getTypeName() => "InflightPricingResponse";
    TypeContext? context = _ctx;
}

// @ApiResponse(Description="In Flight pricing generated", StatusCode=200)
class MotabilityInflightPricingRequest extends MotabilityInflightPricingOrderRequest implements IPost, IConvertible
{
    MotabilityInflightPricingRequest();
    MotabilityInflightPricingRequest.fromJson(Map<String, dynamic> json) : super.fromJson(json);
    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson();
    getTypeName() => "MotabilityInflightPricingRequest";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'prod_api_agency_orch_mb_dhc.rapp_customers.co.uk', types: <String, TypeInfo> {
    'OrderOffer': TypeInfo(TypeOf.Class, create:() => OrderOffer()),
    'OutrightPurchase': TypeInfo(TypeOf.Class, create:() => OutrightPurchase()),
    'MotabilityAdvancePayment': TypeInfo(TypeOf.Class, create:() => MotabilityAdvancePayment()),
    'InflightPricingOrder': TypeInfo(TypeOf.Class, create:() => InflightPricingOrder()),
    'List<OrderOffer>': TypeInfo(TypeOf.Class, create:() => <OrderOffer>[]),
    'InflightPricingOrderRequest': TypeInfo(TypeOf.Class, create:() => InflightPricingOrderRequest()),
    'List<InflightPricingOrder>': TypeInfo(TypeOf.Class, create:() => <InflightPricingOrder>[]),
    'MotabilityInflightPricingOrderRequest': TypeInfo(TypeOf.Class, create:() => MotabilityInflightPricingOrderRequest()),
    'SalesforcePrice': TypeInfo(TypeOf.Class, create:() => SalesforcePrice()),
    'SalesforceTotalPrice': TypeInfo(TypeOf.Class, create:() => SalesforceTotalPrice()),
    'SalesforceOffer': TypeInfo(TypeOf.Class, create:() => SalesforceOffer()),
    'SalesforceOffers': TypeInfo(TypeOf.Class, create:() => SalesforceOffers()),
    'List<SalesforceOffer>': TypeInfo(TypeOf.Class, create:() => <SalesforceOffer>[]),
    'SalesforceOutrightPurchase': TypeInfo(TypeOf.Class, create:() => SalesforceOutrightPurchase()),
    'VehicleInflightPrice': TypeInfo(TypeOf.Class, create:() => VehicleInflightPrice()),
    'List<SalesforcePrice>': TypeInfo(TypeOf.Class, create:() => <SalesforcePrice>[]),
    'InflightPricingResponse': TypeInfo(TypeOf.Class, create:() => InflightPricingResponse()),
    'List<VehicleInflightPrice>': TypeInfo(TypeOf.Class, create:() => <VehicleInflightPrice>[]),
    'MotabilityInflightPricingRequest': TypeInfo(TypeOf.Class, create:() => MotabilityInflightPricingRequest()),
});

Dart MotabilityInflightPricingRequest DTOs

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

HTTP + OTHER

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

POST /v1/motabilityinflightpricing HTTP/1.1 
Host: prod-api-agency-orch-mb-dhc.rapp-customers.co.uk 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"OrderVehicleWithNoMotabilityDiscount":["00000000000000000000000000000000"],"InvalidFormatGuids":["String"],"OrderNotFoundGuids":["00000000000000000000000000000000"],"InflightPricingOrders":[{"Guid":"00000000000000000000000000000000","Vin":"String","AdvanceRentalPaymentType":0,"Offer":[{"Id":0,"OfferTypeId":0,"OfferTypeDescription":"String","OfferId":"String","OfferDescription":"String","Net":0,"VAT":0,"Gross":0,"GovernmentGrant":false,"PromoCode":"String","Expiry":"String","AffectsPrice":false,"Product":0,"ParentId":"String","CreationDate":"\/Date(-62135596800000-0000)\/","ProductTypeDescription":"String","ProductTypeNegativeDescription":"String","CertificateRequired":false}],"OutrightPurchase":{"IsOutrightPurchase":false,"Reference":"String","DiscountRate":0,"Bm7NST":"String","IsBackOrder":false,"IsCOPConverter":false},"MotabilityAdvancePayment":{"AdvancePaymentRentalType":"String","AdvancePaymentValueGross":0,"AdvancePaymentValueVAT":0,"AdvancePaymentValueNet":0}}],"IsMotability":false}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"VehiclesInflightPrices":[{"Guid":"String","Status":"String","Success":false,"Prices":[{"Id":"String","Description":"String","Net":0,"VAT":0,"Gross":0,"Product":"String"}],"TotalOTRFees":{"Net":0,"VAT":0,"Gross":0},"TotalOTRPrice":{"Net":0,"VAT":0,"Gross":0},"TotalActualPrice":{"Net":0,"VAT":0,"Gross":0},"Offers":{"Personalised":[{"Id":"String","Description":"String","Net":0,"VAT":0,"Gross":0,"Expiry":"String","Product":"String","RequiresCertification":false}],"NonDiscretionary":[{"Id":"String","Description":"String","Net":0,"VAT":0,"Gross":0,"Expiry":"String","Product":"String","RequiresCertification":false}],"NonCampaign":[{"Id":"String","Description":"String","Net":0,"VAT":0,"Gross":0,"Expiry":"String","Product":"String","RequiresCertification":false}],"OutrightPurchaseDiscount":[{"Id":"String","Description":"String","Net":0,"VAT":0,"Gross":0,"Expiry":"String","Product":"String","RequiresCertification":false}],"MotabilityDiscount":[{"Id":"String","Description":"String","Net":0,"VAT":0,"Gross":0,"Expiry":"String","Product":"String","RequiresCertification":false}],"IntegratedProducts":[{"Id":"String","Description":"String","Net":0,"VAT":0,"Gross":0,"Expiry":"String","Product":"String","RequiresCertification":false}]},"OutrightPurchase":{"IsOutrightPurchase":false,"Reference":"String","DiscountPercentage":0,"ModelId":"String"},"Motability":{"AdvancePaymentRentalType":"String","AdvancePaymentValueGross":0,"AdvancePaymentValueVAT":0,"AdvancePaymentValueNet":0}}]}