MBOnlineCreditApplicationService

<back to all web services

CreateOCAv2Request

The following routes are available for this service:
PUT/CreateOCAv2/
import 'package:servicestack/servicestack.dart';

// @DataContract
class CreateOCAv2RequestResponse implements IConvertible
{
    // @DataMember
    String? Code;

    // @DataMember
    String? Message;

    // @DataMember
    int? URN;

    CreateOCAv2RequestResponse({this.Code,this.Message,this.URN});
    CreateOCAv2RequestResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Code = json['Code'];
        Message = json['Message'];
        URN = json['URN'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Code': Code,
        'Message': Message,
        'URN': URN
    };

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

class GeneralDetailsv2 implements IConvertible
{
    String? OCAApprovalNumber;
    String? EnquiryDateTime;
    int? Brand;
    String? CustomerReferenceNumber;
    String? CustomerType;
    String? SourceofBusiness;
    String? TagURL;
    int? RequestSource;
    String? FormID;
    String? ProposalCreated;
    String? LoadFullData;
    String? ProposalNumber;
    String? POSSystem;

    GeneralDetailsv2({this.OCAApprovalNumber,this.EnquiryDateTime,this.Brand,this.CustomerReferenceNumber,this.CustomerType,this.SourceofBusiness,this.TagURL,this.RequestSource,this.FormID,this.ProposalCreated,this.LoadFullData,this.ProposalNumber,this.POSSystem});
    GeneralDetailsv2.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        OCAApprovalNumber = json['OCAApprovalNumber'];
        EnquiryDateTime = json['EnquiryDateTime'];
        Brand = json['Brand'];
        CustomerReferenceNumber = json['CustomerReferenceNumber'];
        CustomerType = json['CustomerType'];
        SourceofBusiness = json['SourceofBusiness'];
        TagURL = json['TagURL'];
        RequestSource = json['RequestSource'];
        FormID = json['FormID'];
        ProposalCreated = json['ProposalCreated'];
        LoadFullData = json['LoadFullData'];
        ProposalNumber = json['ProposalNumber'];
        POSSystem = json['POSSystem'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'OCAApprovalNumber': OCAApprovalNumber,
        'EnquiryDateTime': EnquiryDateTime,
        'Brand': Brand,
        'CustomerReferenceNumber': CustomerReferenceNumber,
        'CustomerType': CustomerType,
        'SourceofBusiness': SourceofBusiness,
        'TagURL': TagURL,
        'RequestSource': RequestSource,
        'FormID': FormID,
        'ProposalCreated': ProposalCreated,
        'LoadFullData': LoadFullData,
        'ProposalNumber': ProposalNumber,
        'POSSystem': POSSystem
    };

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

class FinanceDetailsv2 implements IConvertible
{
    String? FinancialProduct;
    String? CampaignCode;
    String? PhoenixFinanceProductCode;
    String? Fixed;
    String? FleetNonFleet;
    String? RFLCover;
    int? Duration;
    double? PaymentRentalAmount;
    double? RentalAmountExcVAT;
    String? AdvanceArrears;
    int? AnnualMileage;
    double? ExcessMileageRate;
    double? CustomerDepositContribution;
    double? RetailerDepositContribution;
    double? RetailerDepositContributionNet;
    double? ManufacturerDepositContribution;
    double? ManufacturerDepositContributionNet;
    double? TotalDepositContribution;
    double? LumpSum;
    double? CostForCredit;
    double? PurchaseActivationFee;
    double? TotalAmountPayable;
    double? FixedInterestRate;
    double? RepresentativeAPR;
    String? TrueFlatRate;
    String? RVReferenceNumber;
    double? OptionalPurchasePayment;
    double? AdvancedRentalAmount;
    String? NumberofAdvanceRentals;
    String? PaymentProfile;
    String? RandMIncluded;
    String? RandMLevel;
    String? ProductType;
    String? Frequency;
    String? PauseType;
    double? EqualsFinance;
    double? AcceptanceFee;

    FinanceDetailsv2({this.FinancialProduct,this.CampaignCode,this.PhoenixFinanceProductCode,this.Fixed,this.FleetNonFleet,this.RFLCover,this.Duration,this.PaymentRentalAmount,this.RentalAmountExcVAT,this.AdvanceArrears,this.AnnualMileage,this.ExcessMileageRate,this.CustomerDepositContribution,this.RetailerDepositContribution,this.RetailerDepositContributionNet,this.ManufacturerDepositContribution,this.ManufacturerDepositContributionNet,this.TotalDepositContribution,this.LumpSum,this.CostForCredit,this.PurchaseActivationFee,this.TotalAmountPayable,this.FixedInterestRate,this.RepresentativeAPR,this.TrueFlatRate,this.RVReferenceNumber,this.OptionalPurchasePayment,this.AdvancedRentalAmount,this.NumberofAdvanceRentals,this.PaymentProfile,this.RandMIncluded,this.RandMLevel,this.ProductType,this.Frequency,this.PauseType,this.EqualsFinance,this.AcceptanceFee});
    FinanceDetailsv2.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        FinancialProduct = json['FinancialProduct'];
        CampaignCode = json['CampaignCode'];
        PhoenixFinanceProductCode = json['PhoenixFinanceProductCode'];
        Fixed = json['Fixed'];
        FleetNonFleet = json['FleetNonFleet'];
        RFLCover = json['RFLCover'];
        Duration = json['Duration'];
        PaymentRentalAmount = JsonConverters.toDouble(json['PaymentRentalAmount']);
        RentalAmountExcVAT = JsonConverters.toDouble(json['RentalAmountExcVAT']);
        AdvanceArrears = json['AdvanceArrears'];
        AnnualMileage = json['AnnualMileage'];
        ExcessMileageRate = JsonConverters.toDouble(json['ExcessMileageRate']);
        CustomerDepositContribution = JsonConverters.toDouble(json['CustomerDepositContribution']);
        RetailerDepositContribution = JsonConverters.toDouble(json['RetailerDepositContribution']);
        RetailerDepositContributionNet = JsonConverters.toDouble(json['RetailerDepositContributionNet']);
        ManufacturerDepositContribution = JsonConverters.toDouble(json['ManufacturerDepositContribution']);
        ManufacturerDepositContributionNet = JsonConverters.toDouble(json['ManufacturerDepositContributionNet']);
        TotalDepositContribution = JsonConverters.toDouble(json['TotalDepositContribution']);
        LumpSum = JsonConverters.toDouble(json['LumpSum']);
        CostForCredit = JsonConverters.toDouble(json['CostForCredit']);
        PurchaseActivationFee = JsonConverters.toDouble(json['PurchaseActivationFee']);
        TotalAmountPayable = JsonConverters.toDouble(json['TotalAmountPayable']);
        FixedInterestRate = JsonConverters.toDouble(json['FixedInterestRate']);
        RepresentativeAPR = JsonConverters.toDouble(json['RepresentativeAPR']);
        TrueFlatRate = json['TrueFlatRate'];
        RVReferenceNumber = json['RVReferenceNumber'];
        OptionalPurchasePayment = JsonConverters.toDouble(json['OptionalPurchasePayment']);
        AdvancedRentalAmount = JsonConverters.toDouble(json['AdvancedRentalAmount']);
        NumberofAdvanceRentals = json['NumberofAdvanceRentals'];
        PaymentProfile = json['PaymentProfile'];
        RandMIncluded = json['RandMIncluded'];
        RandMLevel = json['RandMLevel'];
        ProductType = json['ProductType'];
        Frequency = json['Frequency'];
        PauseType = json['PauseType'];
        EqualsFinance = JsonConverters.toDouble(json['EqualsFinance']);
        AcceptanceFee = JsonConverters.toDouble(json['AcceptanceFee']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'FinancialProduct': FinancialProduct,
        'CampaignCode': CampaignCode,
        'PhoenixFinanceProductCode': PhoenixFinanceProductCode,
        'Fixed': Fixed,
        'FleetNonFleet': FleetNonFleet,
        'RFLCover': RFLCover,
        'Duration': Duration,
        'PaymentRentalAmount': PaymentRentalAmount,
        'RentalAmountExcVAT': RentalAmountExcVAT,
        'AdvanceArrears': AdvanceArrears,
        'AnnualMileage': AnnualMileage,
        'ExcessMileageRate': ExcessMileageRate,
        'CustomerDepositContribution': CustomerDepositContribution,
        'RetailerDepositContribution': RetailerDepositContribution,
        'RetailerDepositContributionNet': RetailerDepositContributionNet,
        'ManufacturerDepositContribution': ManufacturerDepositContribution,
        'ManufacturerDepositContributionNet': ManufacturerDepositContributionNet,
        'TotalDepositContribution': TotalDepositContribution,
        'LumpSum': LumpSum,
        'CostForCredit': CostForCredit,
        'PurchaseActivationFee': PurchaseActivationFee,
        'TotalAmountPayable': TotalAmountPayable,
        'FixedInterestRate': FixedInterestRate,
        'RepresentativeAPR': RepresentativeAPR,
        'TrueFlatRate': TrueFlatRate,
        'RVReferenceNumber': RVReferenceNumber,
        'OptionalPurchasePayment': OptionalPurchasePayment,
        'AdvancedRentalAmount': AdvancedRentalAmount,
        'NumberofAdvanceRentals': NumberofAdvanceRentals,
        'PaymentProfile': PaymentProfile,
        'RandMIncluded': RandMIncluded,
        'RandMLevel': RandMLevel,
        'ProductType': ProductType,
        'Frequency': Frequency,
        'PauseType': PauseType,
        'EqualsFinance': EqualsFinance,
        'AcceptanceFee': AcceptanceFee
    };

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

class VehicleDetailsv2 implements IConvertible
{
    String? OnlineCode;
    String? ModelClass;
    String? ModelBody;
    String? ModelDerivative;
    double? TotalPrice;
    double? OTRPrice;
    String? VIN;
    String? RegNo;
    String? CommissionNumber;
    String? EngineNumber;
    int? CurrentMileage;
    String? MilesKilometers;
    String? FirstRegistrationDate;
    String? NewUsedFlag;
    List<ModelOptionDetailsv2>? NewVehicleModelOptionDetails;
    String? VID;
    String? Baumuster;
    double? VehiclePrice;
    double? TotalVAT;
    double? OLEVGrant;
    double? ExtrasTotalExcVAT;
    String? CombinedCO2;
    String? VehicleVATTickBox;
    String? FirstYearRFLIncluded;
    double? FirstYearRFLAmount;
    String? FirstRegFeeIncludedFlag;
    double? FirstRegFeeAmount;
    String? HighLowVEDSupplementFlag;
    String? LeaseRFLSubsequentYears;
    double? LeaseRFLSubsequentYearsAmount;

    VehicleDetailsv2({this.OnlineCode,this.ModelClass,this.ModelBody,this.ModelDerivative,this.TotalPrice,this.OTRPrice,this.VIN,this.RegNo,this.CommissionNumber,this.EngineNumber,this.CurrentMileage,this.MilesKilometers,this.FirstRegistrationDate,this.NewUsedFlag,this.NewVehicleModelOptionDetails,this.VID,this.Baumuster,this.VehiclePrice,this.TotalVAT,this.OLEVGrant,this.ExtrasTotalExcVAT,this.CombinedCO2,this.VehicleVATTickBox,this.FirstYearRFLIncluded,this.FirstYearRFLAmount,this.FirstRegFeeIncludedFlag,this.FirstRegFeeAmount,this.HighLowVEDSupplementFlag,this.LeaseRFLSubsequentYears,this.LeaseRFLSubsequentYearsAmount});
    VehicleDetailsv2.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        OnlineCode = json['OnlineCode'];
        ModelClass = json['ModelClass'];
        ModelBody = json['ModelBody'];
        ModelDerivative = json['ModelDerivative'];
        TotalPrice = JsonConverters.toDouble(json['TotalPrice']);
        OTRPrice = JsonConverters.toDouble(json['OTRPrice']);
        VIN = json['VIN'];
        RegNo = json['RegNo'];
        CommissionNumber = json['CommissionNumber'];
        EngineNumber = json['EngineNumber'];
        CurrentMileage = json['CurrentMileage'];
        MilesKilometers = json['MilesKilometers'];
        FirstRegistrationDate = json['FirstRegistrationDate'];
        NewUsedFlag = json['NewUsedFlag'];
        NewVehicleModelOptionDetails = JsonConverters.fromJson(json['NewVehicleModelOptionDetails'],'List<ModelOptionDetailsv2>',context!);
        VID = json['VID'];
        Baumuster = json['Baumuster'];
        VehiclePrice = JsonConverters.toDouble(json['VehiclePrice']);
        TotalVAT = JsonConverters.toDouble(json['TotalVAT']);
        OLEVGrant = JsonConverters.toDouble(json['OLEVGrant']);
        ExtrasTotalExcVAT = JsonConverters.toDouble(json['ExtrasTotalExcVAT']);
        CombinedCO2 = json['CombinedCO2'];
        VehicleVATTickBox = json['VehicleVATTickBox'];
        FirstYearRFLIncluded = json['FirstYearRFLIncluded'];
        FirstYearRFLAmount = JsonConverters.toDouble(json['FirstYearRFLAmount']);
        FirstRegFeeIncludedFlag = json['FirstRegFeeIncludedFlag'];
        FirstRegFeeAmount = JsonConverters.toDouble(json['FirstRegFeeAmount']);
        HighLowVEDSupplementFlag = json['HighLowVEDSupplementFlag'];
        LeaseRFLSubsequentYears = json['LeaseRFLSubsequentYears'];
        LeaseRFLSubsequentYearsAmount = JsonConverters.toDouble(json['LeaseRFLSubsequentYearsAmount']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'OnlineCode': OnlineCode,
        'ModelClass': ModelClass,
        'ModelBody': ModelBody,
        'ModelDerivative': ModelDerivative,
        'TotalPrice': TotalPrice,
        'OTRPrice': OTRPrice,
        'VIN': VIN,
        'RegNo': RegNo,
        'CommissionNumber': CommissionNumber,
        'EngineNumber': EngineNumber,
        'CurrentMileage': CurrentMileage,
        'MilesKilometers': MilesKilometers,
        'FirstRegistrationDate': FirstRegistrationDate,
        'NewUsedFlag': NewUsedFlag,
        'NewVehicleModelOptionDetails': JsonConverters.toJson(NewVehicleModelOptionDetails,'List<ModelOptionDetailsv2>',context!),
        'VID': VID,
        'Baumuster': Baumuster,
        'VehiclePrice': VehiclePrice,
        'TotalVAT': TotalVAT,
        'OLEVGrant': OLEVGrant,
        'ExtrasTotalExcVAT': ExtrasTotalExcVAT,
        'CombinedCO2': CombinedCO2,
        'VehicleVATTickBox': VehicleVATTickBox,
        'FirstYearRFLIncluded': FirstYearRFLIncluded,
        'FirstYearRFLAmount': FirstYearRFLAmount,
        'FirstRegFeeIncludedFlag': FirstRegFeeIncludedFlag,
        'FirstRegFeeAmount': FirstRegFeeAmount,
        'HighLowVEDSupplementFlag': HighLowVEDSupplementFlag,
        'LeaseRFLSubsequentYears': LeaseRFLSubsequentYears,
        'LeaseRFLSubsequentYearsAmount': LeaseRFLSubsequentYearsAmount
    };

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

class DeliveryDetailsv2 implements IConvertible
{
    String? DealerCode;
    String? DeliveryPreference;
    String? DeliveryDate;

    DeliveryDetailsv2({this.DealerCode,this.DeliveryPreference,this.DeliveryDate});
    DeliveryDetailsv2.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        DealerCode = json['DealerCode'];
        DeliveryPreference = json['DeliveryPreference'];
        DeliveryDate = json['DeliveryDate'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'DealerCode': DealerCode,
        'DeliveryPreference': DeliveryPreference,
        'DeliveryDate': DeliveryDate
    };

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

class ExistingVehicleDetailsv2 implements IConvertible
{
    String? TradeInFlag;
    String? TradeInIncludedInCalc;
    double? TradeInValue;
    double? TradeInValueNet;
    String? TradeInRegNo;
    String? TradeInVIN;
    int? TradeInMileage;
    String? TradeInCondition;
    String? SettlementFlag;
    String? SettlementIncludedInCalc;
    double? SettlementValue;
    double? SettlementValueNet;
    String? SettlementRegNo;
    String? SettlementVIN;
    int? SettlementMileage;

    ExistingVehicleDetailsv2({this.TradeInFlag,this.TradeInIncludedInCalc,this.TradeInValue,this.TradeInValueNet,this.TradeInRegNo,this.TradeInVIN,this.TradeInMileage,this.TradeInCondition,this.SettlementFlag,this.SettlementIncludedInCalc,this.SettlementValue,this.SettlementValueNet,this.SettlementRegNo,this.SettlementVIN,this.SettlementMileage});
    ExistingVehicleDetailsv2.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        TradeInFlag = json['TradeInFlag'];
        TradeInIncludedInCalc = json['TradeInIncludedInCalc'];
        TradeInValue = JsonConverters.toDouble(json['TradeInValue']);
        TradeInValueNet = JsonConverters.toDouble(json['TradeInValueNet']);
        TradeInRegNo = json['TradeInRegNo'];
        TradeInVIN = json['TradeInVIN'];
        TradeInMileage = json['TradeInMileage'];
        TradeInCondition = json['TradeInCondition'];
        SettlementFlag = json['SettlementFlag'];
        SettlementIncludedInCalc = json['SettlementIncludedInCalc'];
        SettlementValue = JsonConverters.toDouble(json['SettlementValue']);
        SettlementValueNet = JsonConverters.toDouble(json['SettlementValueNet']);
        SettlementRegNo = json['SettlementRegNo'];
        SettlementVIN = json['SettlementVIN'];
        SettlementMileage = json['SettlementMileage'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'TradeInFlag': TradeInFlag,
        'TradeInIncludedInCalc': TradeInIncludedInCalc,
        'TradeInValue': TradeInValue,
        'TradeInValueNet': TradeInValueNet,
        'TradeInRegNo': TradeInRegNo,
        'TradeInVIN': TradeInVIN,
        'TradeInMileage': TradeInMileage,
        'TradeInCondition': TradeInCondition,
        'SettlementFlag': SettlementFlag,
        'SettlementIncludedInCalc': SettlementIncludedInCalc,
        'SettlementValue': SettlementValue,
        'SettlementValueNet': SettlementValueNet,
        'SettlementRegNo': SettlementRegNo,
        'SettlementVIN': SettlementVIN,
        'SettlementMileage': SettlementMileage
    };

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

class InsuranceDetails implements IConvertible
{
    String? InterestedInFirstCoverFlag;

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

    fromMap(Map<String, dynamic> json) {
        InterestedInFirstCoverFlag = json['InterestedInFirstCoverFlag'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'InterestedInFirstCoverFlag': InterestedInFirstCoverFlag
    };

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

class AddressWithTimeLinev2 implements IConvertible
{
    String? AddressLine1;
    String? AddressLine2;
    String? AddressLine3;
    String? Town;
    String? County;
    String? Country;
    String? Postcode;
    String? Duration;
    String? DateStarted;
    String? TotalNumberOfMonths;

    AddressWithTimeLinev2({this.AddressLine1,this.AddressLine2,this.AddressLine3,this.Town,this.County,this.Country,this.Postcode,this.Duration,this.DateStarted,this.TotalNumberOfMonths});
    AddressWithTimeLinev2.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        AddressLine1 = json['AddressLine1'];
        AddressLine2 = json['AddressLine2'];
        AddressLine3 = json['AddressLine3'];
        Town = json['Town'];
        County = json['County'];
        Country = json['Country'];
        Postcode = json['Postcode'];
        Duration = json['Duration'];
        DateStarted = json['DateStarted'];
        TotalNumberOfMonths = json['TotalNumberOfMonths'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'AddressLine1': AddressLine1,
        'AddressLine2': AddressLine2,
        'AddressLine3': AddressLine3,
        'Town': Town,
        'County': County,
        'Country': Country,
        'Postcode': Postcode,
        'Duration': Duration,
        'DateStarted': DateStarted,
        'TotalNumberOfMonths': TotalNumberOfMonths
    };

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

class Address implements IConvertible
{
    String? AddressLine1;
    String? AddressLine2;
    String? AddressLine3;
    String? AddressLine4;
    String? AddressLine5;
    String? Postcode;

    Address({this.AddressLine1,this.AddressLine2,this.AddressLine3,this.AddressLine4,this.AddressLine5,this.Postcode});
    Address.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        AddressLine1 = json['AddressLine1'];
        AddressLine2 = json['AddressLine2'];
        AddressLine3 = json['AddressLine3'];
        AddressLine4 = json['AddressLine4'];
        AddressLine5 = json['AddressLine5'];
        Postcode = json['Postcode'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'AddressLine1': AddressLine1,
        'AddressLine2': AddressLine2,
        'AddressLine3': AddressLine3,
        'AddressLine4': AddressLine4,
        'AddressLine5': AddressLine5,
        'Postcode': Postcode
    };

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

class EmployerDetailsv2 implements IConvertible
{
    String? EmploymentType;
    String? EmployersName;
    String? Occupation;
    AddressWithTimeLinev2? EmployersAddress;

    EmployerDetailsv2({this.EmploymentType,this.EmployersName,this.Occupation,this.EmployersAddress});
    EmployerDetailsv2.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        EmploymentType = json['EmploymentType'];
        EmployersName = json['EmployersName'];
        Occupation = json['Occupation'];
        EmployersAddress = JsonConverters.fromJson(json['EmployersAddress'],'AddressWithTimeLinev2',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'EmploymentType': EmploymentType,
        'EmployersName': EmployersName,
        'Occupation': Occupation,
        'EmployersAddress': JsonConverters.toJson(EmployersAddress,'AddressWithTimeLinev2',context!)
    };

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

class CurrentEmploymentDetailsv2 implements IConvertible
{
    EmployerDetailsv2? EmployerDetails;
    String? MonthsAtEmployer;
    String? DateEmploymentCommenced;
    String? AnnualIncome;

    CurrentEmploymentDetailsv2({this.EmployerDetails,this.MonthsAtEmployer,this.DateEmploymentCommenced,this.AnnualIncome});
    CurrentEmploymentDetailsv2.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        EmployerDetails = JsonConverters.fromJson(json['EmployerDetails'],'EmployerDetailsv2',context!);
        MonthsAtEmployer = json['MonthsAtEmployer'];
        DateEmploymentCommenced = json['DateEmploymentCommenced'];
        AnnualIncome = json['AnnualIncome'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'EmployerDetails': JsonConverters.toJson(EmployerDetails,'EmployerDetailsv2',context!),
        'MonthsAtEmployer': MonthsAtEmployer,
        'DateEmploymentCommenced': DateEmploymentCommenced,
        'AnnualIncome': AnnualIncome
    };

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

class MarketingPreference implements IConvertible
{
    String? OptInMail;
    String? OptInTelephone;
    String? OptInEmail;
    String? OptInSMS;

    MarketingPreference({this.OptInMail,this.OptInTelephone,this.OptInEmail,this.OptInSMS});
    MarketingPreference.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        OptInMail = json['OptInMail'];
        OptInTelephone = json['OptInTelephone'];
        OptInEmail = json['OptInEmail'];
        OptInSMS = json['OptInSMS'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'OptInMail': OptInMail,
        'OptInTelephone': OptInTelephone,
        'OptInEmail': OptInEmail,
        'OptInSMS': OptInSMS
    };

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

class CreditApplicationIndividualV2 implements IConvertible
{
    String? Title;
    String? Initial;
    String? FirstName;
    String? Surname;
    String? DateofBirth;
    String? Gender;
    String? MaritalStatus;
    String? ResidentialStatus;
    AddressWithTimeLinev2? CurrentAddress;
    List<PreviousAddressv2>? PreviousAddresses;
    String? HomePhone;
    String? MobilePhone;
    String? WorkPhone;
    String? ContactAtWork;
    String? Email;
    String? BankSortCode;
    String? BankAccountNumber;
    String? BankAccountName;
    String? BankName;
    Address? BankAddress;
    String? BankPaymentType;
    String? DrivingLicenceNumber;
    CurrentEmploymentDetailsv2? CurrentEmploymentDetails;
    List<PreviousEmploymentv2>? PreviousEmploymentDetails;
    MarketingPreference? MarketingPreference;
    String? CreditCheckConsent;

    CreditApplicationIndividualV2({this.Title,this.Initial,this.FirstName,this.Surname,this.DateofBirth,this.Gender,this.MaritalStatus,this.ResidentialStatus,this.CurrentAddress,this.PreviousAddresses,this.HomePhone,this.MobilePhone,this.WorkPhone,this.ContactAtWork,this.Email,this.BankSortCode,this.BankAccountNumber,this.BankAccountName,this.BankName,this.BankAddress,this.BankPaymentType,this.DrivingLicenceNumber,this.CurrentEmploymentDetails,this.PreviousEmploymentDetails,this.MarketingPreference,this.CreditCheckConsent});
    CreditApplicationIndividualV2.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Title = json['Title'];
        Initial = json['Initial'];
        FirstName = json['FirstName'];
        Surname = json['Surname'];
        DateofBirth = json['DateofBirth'];
        Gender = json['Gender'];
        MaritalStatus = json['MaritalStatus'];
        ResidentialStatus = json['ResidentialStatus'];
        CurrentAddress = JsonConverters.fromJson(json['CurrentAddress'],'AddressWithTimeLinev2',context!);
        PreviousAddresses = JsonConverters.fromJson(json['PreviousAddresses'],'List<PreviousAddressv2>',context!);
        HomePhone = json['HomePhone'];
        MobilePhone = json['MobilePhone'];
        WorkPhone = json['WorkPhone'];
        ContactAtWork = json['ContactAtWork'];
        Email = json['Email'];
        BankSortCode = json['BankSortCode'];
        BankAccountNumber = json['BankAccountNumber'];
        BankAccountName = json['BankAccountName'];
        BankName = json['BankName'];
        BankAddress = JsonConverters.fromJson(json['BankAddress'],'Address',context!);
        BankPaymentType = json['BankPaymentType'];
        DrivingLicenceNumber = json['DrivingLicenceNumber'];
        CurrentEmploymentDetails = JsonConverters.fromJson(json['CurrentEmploymentDetails'],'CurrentEmploymentDetailsv2',context!);
        PreviousEmploymentDetails = JsonConverters.fromJson(json['PreviousEmploymentDetails'],'List<PreviousEmploymentv2>',context!);
        MarketingPreference = JsonConverters.fromJson(json['MarketingPreference'],'MarketingPreference',context!);
        CreditCheckConsent = json['CreditCheckConsent'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Title': Title,
        'Initial': Initial,
        'FirstName': FirstName,
        'Surname': Surname,
        'DateofBirth': DateofBirth,
        'Gender': Gender,
        'MaritalStatus': MaritalStatus,
        'ResidentialStatus': ResidentialStatus,
        'CurrentAddress': JsonConverters.toJson(CurrentAddress,'AddressWithTimeLinev2',context!),
        'PreviousAddresses': JsonConverters.toJson(PreviousAddresses,'List<PreviousAddressv2>',context!),
        'HomePhone': HomePhone,
        'MobilePhone': MobilePhone,
        'WorkPhone': WorkPhone,
        'ContactAtWork': ContactAtWork,
        'Email': Email,
        'BankSortCode': BankSortCode,
        'BankAccountNumber': BankAccountNumber,
        'BankAccountName': BankAccountName,
        'BankName': BankName,
        'BankAddress': JsonConverters.toJson(BankAddress,'Address',context!),
        'BankPaymentType': BankPaymentType,
        'DrivingLicenceNumber': DrivingLicenceNumber,
        'CurrentEmploymentDetails': JsonConverters.toJson(CurrentEmploymentDetails,'CurrentEmploymentDetailsv2',context!),
        'PreviousEmploymentDetails': JsonConverters.toJson(PreviousEmploymentDetails,'List<PreviousEmploymentv2>',context!),
        'MarketingPreference': JsonConverters.toJson(MarketingPreference,'MarketingPreference',context!),
        'CreditCheckConsent': CreditCheckConsent
    };

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

class CreditApplicationBusinessV2 implements IConvertible
{
    String? TypeOfBusiness;
    String? BusinessContactPosition;
    String? Title;
    String? Initial;
    String? FirstName;
    String? Surname;
    AddressWithTimeLinev2? CurrentHomeAddress;
    String? HomePhone;
    String? WorkPhone;
    String? MobilePhone;
    String? Email;
    String? CompanyName;
    String? CompanyRegistrationNumber;
    String? TradingAs;
    String? BusinessActivity;
    int? NumberOfEmployees;
    int? YearsTrading;
    String? Position;
    String? BankSortCode;
    String? BankAccountNumber;
    String? BankAccountName;
    String? BankName;
    Address? BankAddress;
    int? NumberofPartners;
    List<BusinessPartnerv2>? BusinessPartners;
    MarketingPreference? MarketingPreference;
    List<PreviousAddressv2>? PreviousAddresses;

    CreditApplicationBusinessV2({this.TypeOfBusiness,this.BusinessContactPosition,this.Title,this.Initial,this.FirstName,this.Surname,this.CurrentHomeAddress,this.HomePhone,this.WorkPhone,this.MobilePhone,this.Email,this.CompanyName,this.CompanyRegistrationNumber,this.TradingAs,this.BusinessActivity,this.NumberOfEmployees,this.YearsTrading,this.Position,this.BankSortCode,this.BankAccountNumber,this.BankAccountName,this.BankName,this.BankAddress,this.NumberofPartners,this.BusinessPartners,this.MarketingPreference,this.PreviousAddresses});
    CreditApplicationBusinessV2.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        TypeOfBusiness = json['TypeOfBusiness'];
        BusinessContactPosition = json['BusinessContactPosition'];
        Title = json['Title'];
        Initial = json['Initial'];
        FirstName = json['FirstName'];
        Surname = json['Surname'];
        CurrentHomeAddress = JsonConverters.fromJson(json['CurrentHomeAddress'],'AddressWithTimeLinev2',context!);
        HomePhone = json['HomePhone'];
        WorkPhone = json['WorkPhone'];
        MobilePhone = json['MobilePhone'];
        Email = json['Email'];
        CompanyName = json['CompanyName'];
        CompanyRegistrationNumber = json['CompanyRegistrationNumber'];
        TradingAs = json['TradingAs'];
        BusinessActivity = json['BusinessActivity'];
        NumberOfEmployees = json['NumberOfEmployees'];
        YearsTrading = json['YearsTrading'];
        Position = json['Position'];
        BankSortCode = json['BankSortCode'];
        BankAccountNumber = json['BankAccountNumber'];
        BankAccountName = json['BankAccountName'];
        BankName = json['BankName'];
        BankAddress = JsonConverters.fromJson(json['BankAddress'],'Address',context!);
        NumberofPartners = json['NumberofPartners'];
        BusinessPartners = JsonConverters.fromJson(json['BusinessPartners'],'List<BusinessPartnerv2>',context!);
        MarketingPreference = JsonConverters.fromJson(json['MarketingPreference'],'MarketingPreference',context!);
        PreviousAddresses = JsonConverters.fromJson(json['PreviousAddresses'],'List<PreviousAddressv2>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'TypeOfBusiness': TypeOfBusiness,
        'BusinessContactPosition': BusinessContactPosition,
        'Title': Title,
        'Initial': Initial,
        'FirstName': FirstName,
        'Surname': Surname,
        'CurrentHomeAddress': JsonConverters.toJson(CurrentHomeAddress,'AddressWithTimeLinev2',context!),
        'HomePhone': HomePhone,
        'WorkPhone': WorkPhone,
        'MobilePhone': MobilePhone,
        'Email': Email,
        'CompanyName': CompanyName,
        'CompanyRegistrationNumber': CompanyRegistrationNumber,
        'TradingAs': TradingAs,
        'BusinessActivity': BusinessActivity,
        'NumberOfEmployees': NumberOfEmployees,
        'YearsTrading': YearsTrading,
        'Position': Position,
        'BankSortCode': BankSortCode,
        'BankAccountNumber': BankAccountNumber,
        'BankAccountName': BankAccountName,
        'BankName': BankName,
        'BankAddress': JsonConverters.toJson(BankAddress,'Address',context!),
        'NumberofPartners': NumberofPartners,
        'BusinessPartners': JsonConverters.toJson(BusinessPartners,'List<BusinessPartnerv2>',context!),
        'MarketingPreference': JsonConverters.toJson(MarketingPreference,'MarketingPreference',context!),
        'PreviousAddresses': JsonConverters.toJson(PreviousAddresses,'List<PreviousAddressv2>',context!)
    };

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

class PaymentDetails implements IConvertible
{
    List<PaymentDetail>? paymentDetails;

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

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

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

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

class DiPDetails implements IConvertible
{
    String? DiPCustomerId;
    String? DiPTimestamp;
    String? DiPRequestID;
    String? DiPDecisionType;
    String? DiPPrimaryDecisionCode;
    String? DiPDecisionDescription;
    String? DipDecisionDescriptionCode;
    String? DipPrimaryDecisionReason;
    String? DiPPrimaryDecisionReasonDealerMessage;
    List<DiPReasons>? diPReasons;

    DiPDetails({this.DiPCustomerId,this.DiPTimestamp,this.DiPRequestID,this.DiPDecisionType,this.DiPPrimaryDecisionCode,this.DiPDecisionDescription,this.DipDecisionDescriptionCode,this.DipPrimaryDecisionReason,this.DiPPrimaryDecisionReasonDealerMessage,this.diPReasons});
    DiPDetails.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        DiPCustomerId = json['DiPCustomerId'];
        DiPTimestamp = json['DiPTimestamp'];
        DiPRequestID = json['DiPRequestID'];
        DiPDecisionType = json['DiPDecisionType'];
        DiPPrimaryDecisionCode = json['DiPPrimaryDecisionCode'];
        DiPDecisionDescription = json['DiPDecisionDescription'];
        DipDecisionDescriptionCode = json['DipDecisionDescriptionCode'];
        DipPrimaryDecisionReason = json['DipPrimaryDecisionReason'];
        DiPPrimaryDecisionReasonDealerMessage = json['DiPPrimaryDecisionReasonDealerMessage'];
        diPReasons = JsonConverters.fromJson(json['diPReasons'],'List<DiPReasons>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'DiPCustomerId': DiPCustomerId,
        'DiPTimestamp': DiPTimestamp,
        'DiPRequestID': DiPRequestID,
        'DiPDecisionType': DiPDecisionType,
        'DiPPrimaryDecisionCode': DiPPrimaryDecisionCode,
        'DiPDecisionDescription': DiPDecisionDescription,
        'DipDecisionDescriptionCode': DipDecisionDescriptionCode,
        'DipPrimaryDecisionReason': DipPrimaryDecisionReason,
        'DiPPrimaryDecisionReasonDealerMessage': DiPPrimaryDecisionReasonDealerMessage,
        'diPReasons': JsonConverters.toJson(diPReasons,'List<DiPReasons>',context!)
    };

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

// @DataContract
class CreateOCAv2Request implements IConvertible
{
    // @DataMember
    String? Username;

    // @DataMember
    String? Timestamp;

    // @DataMember
    String? Token;

    // @DataMember
    GeneralDetailsv2? GeneralDetails;

    // @DataMember
    FinanceDetailsv2? FinanceDetails;

    // @DataMember
    VehicleDetailsv2? VehicleDetails;

    // @DataMember
    DeliveryDetailsv2? DeliveryDetails;

    // @DataMember
    ExistingVehicleDetailsv2? ExistingVehicleDetails;

    // @DataMember
    InsuranceDetails? InsuranceDetails;

    // @DataMember
    CreditApplicationIndividualV2? CreditApplicationIndividual;

    // @DataMember
    CreditApplicationBusinessV2? CreditApplicationBusiness;

    // @DataMember
    PaymentDetails? PaymentDetails;

    // @DataMember
    List<NoteDetails>? Notes;

    // @DataMember
    DiPDetails? DiPDetails;

    CreateOCAv2Request({this.Username,this.Timestamp,this.Token,this.GeneralDetails,this.FinanceDetails,this.VehicleDetails,this.DeliveryDetails,this.ExistingVehicleDetails,this.InsuranceDetails,this.CreditApplicationIndividual,this.CreditApplicationBusiness,this.PaymentDetails,this.Notes,this.DiPDetails});
    CreateOCAv2Request.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Username = json['Username'];
        Timestamp = json['Timestamp'];
        Token = json['Token'];
        GeneralDetails = JsonConverters.fromJson(json['GeneralDetails'],'GeneralDetailsv2',context!);
        FinanceDetails = JsonConverters.fromJson(json['FinanceDetails'],'FinanceDetailsv2',context!);
        VehicleDetails = JsonConverters.fromJson(json['VehicleDetails'],'VehicleDetailsv2',context!);
        DeliveryDetails = JsonConverters.fromJson(json['DeliveryDetails'],'DeliveryDetailsv2',context!);
        ExistingVehicleDetails = JsonConverters.fromJson(json['ExistingVehicleDetails'],'ExistingVehicleDetailsv2',context!);
        InsuranceDetails = JsonConverters.fromJson(json['InsuranceDetails'],'InsuranceDetails',context!);
        CreditApplicationIndividual = JsonConverters.fromJson(json['CreditApplicationIndividual'],'CreditApplicationIndividualV2',context!);
        CreditApplicationBusiness = JsonConverters.fromJson(json['CreditApplicationBusiness'],'CreditApplicationBusinessV2',context!);
        PaymentDetails = JsonConverters.fromJson(json['PaymentDetails'],'PaymentDetails',context!);
        Notes = JsonConverters.fromJson(json['Notes'],'List<NoteDetails>',context!);
        DiPDetails = JsonConverters.fromJson(json['DiPDetails'],'DiPDetails',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Username': Username,
        'Timestamp': Timestamp,
        'Token': Token,
        'GeneralDetails': JsonConverters.toJson(GeneralDetails,'GeneralDetailsv2',context!),
        'FinanceDetails': JsonConverters.toJson(FinanceDetails,'FinanceDetailsv2',context!),
        'VehicleDetails': JsonConverters.toJson(VehicleDetails,'VehicleDetailsv2',context!),
        'DeliveryDetails': JsonConverters.toJson(DeliveryDetails,'DeliveryDetailsv2',context!),
        'ExistingVehicleDetails': JsonConverters.toJson(ExistingVehicleDetails,'ExistingVehicleDetailsv2',context!),
        'InsuranceDetails': JsonConverters.toJson(InsuranceDetails,'InsuranceDetails',context!),
        'CreditApplicationIndividual': JsonConverters.toJson(CreditApplicationIndividual,'CreditApplicationIndividualV2',context!),
        'CreditApplicationBusiness': JsonConverters.toJson(CreditApplicationBusiness,'CreditApplicationBusinessV2',context!),
        'PaymentDetails': JsonConverters.toJson(PaymentDetails,'PaymentDetails',context!),
        'Notes': JsonConverters.toJson(Notes,'List<NoteDetails>',context!),
        'DiPDetails': JsonConverters.toJson(DiPDetails,'DiPDetails',context!)
    };

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

class ModelOptionDetailsv2 implements IConvertible
{
    int? Seq;
    String? Type;
    String? Code;
    String? Description;
    double? Price;
    double? PriceGross;
    String? VATCategory;
    double? VATAmount;

    ModelOptionDetailsv2({this.Seq,this.Type,this.Code,this.Description,this.Price,this.PriceGross,this.VATCategory,this.VATAmount});
    ModelOptionDetailsv2.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Seq = json['Seq'];
        Type = json['Type'];
        Code = json['Code'];
        Description = json['Description'];
        Price = JsonConverters.toDouble(json['Price']);
        PriceGross = JsonConverters.toDouble(json['PriceGross']);
        VATCategory = json['VATCategory'];
        VATAmount = JsonConverters.toDouble(json['VATAmount']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Seq': Seq,
        'Type': Type,
        'Code': Code,
        'Description': Description,
        'Price': Price,
        'PriceGross': PriceGross,
        'VATCategory': VATCategory,
        'VATAmount': VATAmount
    };

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

class PreviousAddressv2 implements IConvertible
{
    int? Seq;
    AddressWithTimeLinev2? Address;

    PreviousAddressv2({this.Seq,this.Address});
    PreviousAddressv2.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'Seq': Seq,
        'Address': JsonConverters.toJson(Address,'AddressWithTimeLinev2',context!)
    };

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

class PreviousEmploymentv2 implements IConvertible
{
    int? Seq;
    EmployerDetailsv2? previousEmployment;

    PreviousEmploymentv2({this.Seq,this.previousEmployment});
    PreviousEmploymentv2.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'Seq': Seq,
        'previousEmployment': JsonConverters.toJson(previousEmployment,'EmployerDetailsv2',context!)
    };

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

class BusinessPartnerv2 implements IConvertible
{
    int? Seq;
    String? Title;
    String? Initial;
    String? FirstName;
    String? Surname;
    String? DateofBirth;
    String? Gender;
    String? MaritalStatus;
    String? ResidentialStatus;
    AddressWithTimeLinev2? CurrentAddress;
    List<PreviousAddressv2>? PreviousAddresses;
    String? HomePhone;
    String? MobilePhone;
    String? BusinessPhone;
    String? Relationship;
    String? Email;
    CurrentEmploymentDetailsv2? CurrentEmploymentDetails;
    List<PreviousEmploymentv2>? PreviousEmploymentDetails;
    String? PartnerType;

    BusinessPartnerv2({this.Seq,this.Title,this.Initial,this.FirstName,this.Surname,this.DateofBirth,this.Gender,this.MaritalStatus,this.ResidentialStatus,this.CurrentAddress,this.PreviousAddresses,this.HomePhone,this.MobilePhone,this.BusinessPhone,this.Relationship,this.Email,this.CurrentEmploymentDetails,this.PreviousEmploymentDetails,this.PartnerType});
    BusinessPartnerv2.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Seq = json['Seq'];
        Title = json['Title'];
        Initial = json['Initial'];
        FirstName = json['FirstName'];
        Surname = json['Surname'];
        DateofBirth = json['DateofBirth'];
        Gender = json['Gender'];
        MaritalStatus = json['MaritalStatus'];
        ResidentialStatus = json['ResidentialStatus'];
        CurrentAddress = JsonConverters.fromJson(json['CurrentAddress'],'AddressWithTimeLinev2',context!);
        PreviousAddresses = JsonConverters.fromJson(json['PreviousAddresses'],'List<PreviousAddressv2>',context!);
        HomePhone = json['HomePhone'];
        MobilePhone = json['MobilePhone'];
        BusinessPhone = json['BusinessPhone'];
        Relationship = json['Relationship'];
        Email = json['Email'];
        CurrentEmploymentDetails = JsonConverters.fromJson(json['CurrentEmploymentDetails'],'CurrentEmploymentDetailsv2',context!);
        PreviousEmploymentDetails = JsonConverters.fromJson(json['PreviousEmploymentDetails'],'List<PreviousEmploymentv2>',context!);
        PartnerType = json['PartnerType'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Seq': Seq,
        'Title': Title,
        'Initial': Initial,
        'FirstName': FirstName,
        'Surname': Surname,
        'DateofBirth': DateofBirth,
        'Gender': Gender,
        'MaritalStatus': MaritalStatus,
        'ResidentialStatus': ResidentialStatus,
        'CurrentAddress': JsonConverters.toJson(CurrentAddress,'AddressWithTimeLinev2',context!),
        'PreviousAddresses': JsonConverters.toJson(PreviousAddresses,'List<PreviousAddressv2>',context!),
        'HomePhone': HomePhone,
        'MobilePhone': MobilePhone,
        'BusinessPhone': BusinessPhone,
        'Relationship': Relationship,
        'Email': Email,
        'CurrentEmploymentDetails': JsonConverters.toJson(CurrentEmploymentDetails,'CurrentEmploymentDetailsv2',context!),
        'PreviousEmploymentDetails': JsonConverters.toJson(PreviousEmploymentDetails,'List<PreviousEmploymentv2>',context!),
        'PartnerType': PartnerType
    };

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

class PaymentDetail implements IConvertible
{
    int? Seq;
    String? PaymentType;
    double? AmountPaid;
    String? PaymentTransactionID;
    String? Description;
    String? PaymentDateTime;

    PaymentDetail({this.Seq,this.PaymentType,this.AmountPaid,this.PaymentTransactionID,this.Description,this.PaymentDateTime});
    PaymentDetail.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Seq = json['Seq'];
        PaymentType = json['PaymentType'];
        AmountPaid = JsonConverters.toDouble(json['AmountPaid']);
        PaymentTransactionID = json['PaymentTransactionID'];
        Description = json['Description'];
        PaymentDateTime = json['PaymentDateTime'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Seq': Seq,
        'PaymentType': PaymentType,
        'AmountPaid': AmountPaid,
        'PaymentTransactionID': PaymentTransactionID,
        'Description': Description,
        'PaymentDateTime': PaymentDateTime
    };

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

class NoteDetails implements IConvertible
{
    int? Seq;
    String? Note;

    NoteDetails({this.Seq,this.Note});
    NoteDetails.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Seq = json['Seq'];
        Note = json['Note'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Seq': Seq,
        'Note': Note
    };

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

class DiPReasons implements IConvertible
{
    int? DipReasonSeq;
    String? DipDecisionCode;
    String? DiPDecisionReason;
    String? DiPDealerMessage;

    DiPReasons({this.DipReasonSeq,this.DipDecisionCode,this.DiPDecisionReason,this.DiPDealerMessage});
    DiPReasons.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        DipReasonSeq = json['DipReasonSeq'];
        DipDecisionCode = json['DipDecisionCode'];
        DiPDecisionReason = json['DiPDecisionReason'];
        DiPDealerMessage = json['DiPDealerMessage'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'DipReasonSeq': DipReasonSeq,
        'DipDecisionCode': DipDecisionCode,
        'DiPDecisionReason': DiPDecisionReason,
        'DiPDealerMessage': DiPDealerMessage
    };

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

TypeContext _ctx = TypeContext(library: 'webservices.mbukdatabase.co.uk', types: <String, TypeInfo> {
    'CreateOCAv2RequestResponse': TypeInfo(TypeOf.Class, create:() => CreateOCAv2RequestResponse()),
    'GeneralDetailsv2': TypeInfo(TypeOf.Class, create:() => GeneralDetailsv2()),
    'FinanceDetailsv2': TypeInfo(TypeOf.Class, create:() => FinanceDetailsv2()),
    'VehicleDetailsv2': TypeInfo(TypeOf.Class, create:() => VehicleDetailsv2()),
    'List<ModelOptionDetailsv2>': TypeInfo(TypeOf.Class, create:() => <ModelOptionDetailsv2>[]),
    'ModelOptionDetailsv2': TypeInfo(TypeOf.Class, create:() => ModelOptionDetailsv2()),
    'DeliveryDetailsv2': TypeInfo(TypeOf.Class, create:() => DeliveryDetailsv2()),
    'ExistingVehicleDetailsv2': TypeInfo(TypeOf.Class, create:() => ExistingVehicleDetailsv2()),
    'InsuranceDetails': TypeInfo(TypeOf.Class, create:() => InsuranceDetails()),
    'AddressWithTimeLinev2': TypeInfo(TypeOf.Class, create:() => AddressWithTimeLinev2()),
    'Address': TypeInfo(TypeOf.Class, create:() => Address()),
    'EmployerDetailsv2': TypeInfo(TypeOf.Class, create:() => EmployerDetailsv2()),
    'CurrentEmploymentDetailsv2': TypeInfo(TypeOf.Class, create:() => CurrentEmploymentDetailsv2()),
    'MarketingPreference': TypeInfo(TypeOf.Class, create:() => MarketingPreference()),
    'CreditApplicationIndividualV2': TypeInfo(TypeOf.Class, create:() => CreditApplicationIndividualV2()),
    'List<PreviousAddressv2>': TypeInfo(TypeOf.Class, create:() => <PreviousAddressv2>[]),
    'PreviousAddressv2': TypeInfo(TypeOf.Class, create:() => PreviousAddressv2()),
    'List<PreviousEmploymentv2>': TypeInfo(TypeOf.Class, create:() => <PreviousEmploymentv2>[]),
    'PreviousEmploymentv2': TypeInfo(TypeOf.Class, create:() => PreviousEmploymentv2()),
    'CreditApplicationBusinessV2': TypeInfo(TypeOf.Class, create:() => CreditApplicationBusinessV2()),
    'List<BusinessPartnerv2>': TypeInfo(TypeOf.Class, create:() => <BusinessPartnerv2>[]),
    'BusinessPartnerv2': TypeInfo(TypeOf.Class, create:() => BusinessPartnerv2()),
    'PaymentDetails': TypeInfo(TypeOf.Class, create:() => PaymentDetails()),
    'List<PaymentDetail>': TypeInfo(TypeOf.Class, create:() => <PaymentDetail>[]),
    'PaymentDetail': TypeInfo(TypeOf.Class, create:() => PaymentDetail()),
    'DiPDetails': TypeInfo(TypeOf.Class, create:() => DiPDetails()),
    'List<DiPReasons>': TypeInfo(TypeOf.Class, create:() => <DiPReasons>[]),
    'DiPReasons': TypeInfo(TypeOf.Class, create:() => DiPReasons()),
    'CreateOCAv2Request': TypeInfo(TypeOf.Class, create:() => CreateOCAv2Request()),
    'List<NoteDetails>': TypeInfo(TypeOf.Class, create:() => <NoteDetails>[]),
    'NoteDetails': TypeInfo(TypeOf.Class, create:() => NoteDetails()),
});

Dart CreateOCAv2Request DTOs

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

HTTP + XML

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

PUT /CreateOCAv2/ HTTP/1.1 
Host: webservices.mbukdatabase.co.uk 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<CreateOCAv2Request xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.servicestack.net/types">
  <CreditApplicationBusiness xmlns:d2p1="http://schemas.datacontract.org/2004/07/MBOnlineCreditApplicationService.BusinessLib.DomainClasses">
    <d2p1:BankAccountName>String</d2p1:BankAccountName>
    <d2p1:BankAccountNumber>String</d2p1:BankAccountNumber>
    <d2p1:BankAddress>
      <d2p1:AddressLine1>String</d2p1:AddressLine1>
      <d2p1:AddressLine2>String</d2p1:AddressLine2>
      <d2p1:AddressLine3>String</d2p1:AddressLine3>
      <d2p1:AddressLine4>String</d2p1:AddressLine4>
      <d2p1:AddressLine5>String</d2p1:AddressLine5>
      <d2p1:Postcode>String</d2p1:Postcode>
    </d2p1:BankAddress>
    <d2p1:BankName>String</d2p1:BankName>
    <d2p1:BankSortCode>String</d2p1:BankSortCode>
    <d2p1:BusinessActivity>String</d2p1:BusinessActivity>
    <d2p1:BusinessContactPosition>String</d2p1:BusinessContactPosition>
    <d2p1:BusinessPartners>
      <d2p1:BusinessPartnerv2>
        <d2p1:BusinessPhone>String</d2p1:BusinessPhone>
        <d2p1:CurrentAddress>
          <d2p1:AddressLine1>String</d2p1:AddressLine1>
          <d2p1:AddressLine2>String</d2p1:AddressLine2>
          <d2p1:AddressLine3>String</d2p1:AddressLine3>
          <d2p1:Country>String</d2p1:Country>
          <d2p1:County>String</d2p1:County>
          <d2p1:DateStarted>String</d2p1:DateStarted>
          <d2p1:Duration>String</d2p1:Duration>
          <d2p1:Postcode>String</d2p1:Postcode>
          <d2p1:TotalNumberOfMonths>String</d2p1:TotalNumberOfMonths>
          <d2p1:Town>String</d2p1:Town>
        </d2p1:CurrentAddress>
        <d2p1:CurrentEmploymentDetails>
          <d2p1:AnnualIncome>String</d2p1:AnnualIncome>
          <d2p1:DateEmploymentCommenced>String</d2p1:DateEmploymentCommenced>
          <d2p1:EmployerDetails>
            <d2p1:EmployersAddress>
              <d2p1:AddressLine1>String</d2p1:AddressLine1>
              <d2p1:AddressLine2>String</d2p1:AddressLine2>
              <d2p1:AddressLine3>String</d2p1:AddressLine3>
              <d2p1:Country>String</d2p1:Country>
              <d2p1:County>String</d2p1:County>
              <d2p1:DateStarted>String</d2p1:DateStarted>
              <d2p1:Duration>String</d2p1:Duration>
              <d2p1:Postcode>String</d2p1:Postcode>
              <d2p1:TotalNumberOfMonths>String</d2p1:TotalNumberOfMonths>
              <d2p1:Town>String</d2p1:Town>
            </d2p1:EmployersAddress>
            <d2p1:EmployersName>String</d2p1:EmployersName>
            <d2p1:EmploymentType>String</d2p1:EmploymentType>
            <d2p1:Occupation>String</d2p1:Occupation>
          </d2p1:EmployerDetails>
          <d2p1:MonthsAtEmployer>String</d2p1:MonthsAtEmployer>
        </d2p1:CurrentEmploymentDetails>
        <d2p1:DateofBirth>String</d2p1:DateofBirth>
        <d2p1:Email>String</d2p1:Email>
        <d2p1:FirstName>String</d2p1:FirstName>
        <d2p1:Gender>String</d2p1:Gender>
        <d2p1:HomePhone>String</d2p1:HomePhone>
        <d2p1:Initial>String</d2p1:Initial>
        <d2p1:MaritalStatus>String</d2p1:MaritalStatus>
        <d2p1:MobilePhone>String</d2p1:MobilePhone>
        <d2p1:PartnerType>String</d2p1:PartnerType>
        <d2p1:PreviousAddresses>
          <d2p1:PreviousAddressv2>
            <d2p1:Address>
              <d2p1:AddressLine1>String</d2p1:AddressLine1>
              <d2p1:AddressLine2>String</d2p1:AddressLine2>
              <d2p1:AddressLine3>String</d2p1:AddressLine3>
              <d2p1:Country>String</d2p1:Country>
              <d2p1:County>String</d2p1:County>
              <d2p1:DateStarted>String</d2p1:DateStarted>
              <d2p1:Duration>String</d2p1:Duration>
              <d2p1:Postcode>String</d2p1:Postcode>
              <d2p1:TotalNumberOfMonths>String</d2p1:TotalNumberOfMonths>
              <d2p1:Town>String</d2p1:Town>
            </d2p1:Address>
            <d2p1:Seq>0</d2p1:Seq>
          </d2p1:PreviousAddressv2>
        </d2p1:PreviousAddresses>
        <d2p1:PreviousEmploymentDetails>
          <d2p1:PreviousEmploymentv2>
            <d2p1:Seq>0</d2p1:Seq>
            <d2p1:previousEmployment>
              <d2p1:EmployersAddress>
                <d2p1:AddressLine1>String</d2p1:AddressLine1>
                <d2p1:AddressLine2>String</d2p1:AddressLine2>
                <d2p1:AddressLine3>String</d2p1:AddressLine3>
                <d2p1:Country>String</d2p1:Country>
                <d2p1:County>String</d2p1:County>
                <d2p1:DateStarted>String</d2p1:DateStarted>
                <d2p1:Duration>String</d2p1:Duration>
                <d2p1:Postcode>String</d2p1:Postcode>
                <d2p1:TotalNumberOfMonths>String</d2p1:TotalNumberOfMonths>
                <d2p1:Town>String</d2p1:Town>
              </d2p1:EmployersAddress>
              <d2p1:EmployersName>String</d2p1:EmployersName>
              <d2p1:EmploymentType>String</d2p1:EmploymentType>
              <d2p1:Occupation>String</d2p1:Occupation>
            </d2p1:previousEmployment>
          </d2p1:PreviousEmploymentv2>
        </d2p1:PreviousEmploymentDetails>
        <d2p1:Relationship>String</d2p1:Relationship>
        <d2p1:ResidentialStatus>String</d2p1:ResidentialStatus>
        <d2p1:Seq>0</d2p1:Seq>
        <d2p1:Surname>String</d2p1:Surname>
        <d2p1:Title>String</d2p1:Title>
      </d2p1:BusinessPartnerv2>
    </d2p1:BusinessPartners>
    <d2p1:CompanyName>String</d2p1:CompanyName>
    <d2p1:CompanyRegistrationNumber>String</d2p1:CompanyRegistrationNumber>
    <d2p1:CurrentHomeAddress>
      <d2p1:AddressLine1>String</d2p1:AddressLine1>
      <d2p1:AddressLine2>String</d2p1:AddressLine2>
      <d2p1:AddressLine3>String</d2p1:AddressLine3>
      <d2p1:Country>String</d2p1:Country>
      <d2p1:County>String</d2p1:County>
      <d2p1:DateStarted>String</d2p1:DateStarted>
      <d2p1:Duration>String</d2p1:Duration>
      <d2p1:Postcode>String</d2p1:Postcode>
      <d2p1:TotalNumberOfMonths>String</d2p1:TotalNumberOfMonths>
      <d2p1:Town>String</d2p1:Town>
    </d2p1:CurrentHomeAddress>
    <d2p1:Email>String</d2p1:Email>
    <d2p1:FirstName>String</d2p1:FirstName>
    <d2p1:HomePhone>String</d2p1:HomePhone>
    <d2p1:Initial>String</d2p1:Initial>
    <d2p1:MarketingPreference>
      <d2p1:OptInEmail>String</d2p1:OptInEmail>
      <d2p1:OptInMail>String</d2p1:OptInMail>
      <d2p1:OptInSMS>String</d2p1:OptInSMS>
      <d2p1:OptInTelephone>String</d2p1:OptInTelephone>
    </d2p1:MarketingPreference>
    <d2p1:MobilePhone>String</d2p1:MobilePhone>
    <d2p1:NumberOfEmployees>0</d2p1:NumberOfEmployees>
    <d2p1:NumberofPartners>0</d2p1:NumberofPartners>
    <d2p1:Position>String</d2p1:Position>
    <d2p1:PreviousAddresses>
      <d2p1:PreviousAddressv2>
        <d2p1:Address>
          <d2p1:AddressLine1>String</d2p1:AddressLine1>
          <d2p1:AddressLine2>String</d2p1:AddressLine2>
          <d2p1:AddressLine3>String</d2p1:AddressLine3>
          <d2p1:Country>String</d2p1:Country>
          <d2p1:County>String</d2p1:County>
          <d2p1:DateStarted>String</d2p1:DateStarted>
          <d2p1:Duration>String</d2p1:Duration>
          <d2p1:Postcode>String</d2p1:Postcode>
          <d2p1:TotalNumberOfMonths>String</d2p1:TotalNumberOfMonths>
          <d2p1:Town>String</d2p1:Town>
        </d2p1:Address>
        <d2p1:Seq>0</d2p1:Seq>
      </d2p1:PreviousAddressv2>
    </d2p1:PreviousAddresses>
    <d2p1:Surname>String</d2p1:Surname>
    <d2p1:Title>String</d2p1:Title>
    <d2p1:TradingAs>String</d2p1:TradingAs>
    <d2p1:TypeOfBusiness>String</d2p1:TypeOfBusiness>
    <d2p1:WorkPhone>String</d2p1:WorkPhone>
    <d2p1:YearsTrading>0</d2p1:YearsTrading>
  </CreditApplicationBusiness>
  <CreditApplicationIndividual xmlns:d2p1="http://schemas.datacontract.org/2004/07/MBOnlineCreditApplicationService.BusinessLib.DomainClasses">
    <d2p1:BankAccountName>String</d2p1:BankAccountName>
    <d2p1:BankAccountNumber>String</d2p1:BankAccountNumber>
    <d2p1:BankAddress>
      <d2p1:AddressLine1>String</d2p1:AddressLine1>
      <d2p1:AddressLine2>String</d2p1:AddressLine2>
      <d2p1:AddressLine3>String</d2p1:AddressLine3>
      <d2p1:AddressLine4>String</d2p1:AddressLine4>
      <d2p1:AddressLine5>String</d2p1:AddressLine5>
      <d2p1:Postcode>String</d2p1:Postcode>
    </d2p1:BankAddress>
    <d2p1:BankName>String</d2p1:BankName>
    <d2p1:BankPaymentType>String</d2p1:BankPaymentType>
    <d2p1:BankSortCode>String</d2p1:BankSortCode>
    <d2p1:ContactAtWork>String</d2p1:ContactAtWork>
    <d2p1:CreditCheckConsent>String</d2p1:CreditCheckConsent>
    <d2p1:CurrentAddress>
      <d2p1:AddressLine1>String</d2p1:AddressLine1>
      <d2p1:AddressLine2>String</d2p1:AddressLine2>
      <d2p1:AddressLine3>String</d2p1:AddressLine3>
      <d2p1:Country>String</d2p1:Country>
      <d2p1:County>String</d2p1:County>
      <d2p1:DateStarted>String</d2p1:DateStarted>
      <d2p1:Duration>String</d2p1:Duration>
      <d2p1:Postcode>String</d2p1:Postcode>
      <d2p1:TotalNumberOfMonths>String</d2p1:TotalNumberOfMonths>
      <d2p1:Town>String</d2p1:Town>
    </d2p1:CurrentAddress>
    <d2p1:CurrentEmploymentDetails>
      <d2p1:AnnualIncome>String</d2p1:AnnualIncome>
      <d2p1:DateEmploymentCommenced>String</d2p1:DateEmploymentCommenced>
      <d2p1:EmployerDetails>
        <d2p1:EmployersAddress>
          <d2p1:AddressLine1>String</d2p1:AddressLine1>
          <d2p1:AddressLine2>String</d2p1:AddressLine2>
          <d2p1:AddressLine3>String</d2p1:AddressLine3>
          <d2p1:Country>String</d2p1:Country>
          <d2p1:County>String</d2p1:County>
          <d2p1:DateStarted>String</d2p1:DateStarted>
          <d2p1:Duration>String</d2p1:Duration>
          <d2p1:Postcode>String</d2p1:Postcode>
          <d2p1:TotalNumberOfMonths>String</d2p1:TotalNumberOfMonths>
          <d2p1:Town>String</d2p1:Town>
        </d2p1:EmployersAddress>
        <d2p1:EmployersName>String</d2p1:EmployersName>
        <d2p1:EmploymentType>String</d2p1:EmploymentType>
        <d2p1:Occupation>String</d2p1:Occupation>
      </d2p1:EmployerDetails>
      <d2p1:MonthsAtEmployer>String</d2p1:MonthsAtEmployer>
    </d2p1:CurrentEmploymentDetails>
    <d2p1:DateofBirth>String</d2p1:DateofBirth>
    <d2p1:DrivingLicenceNumber>String</d2p1:DrivingLicenceNumber>
    <d2p1:Email>String</d2p1:Email>
    <d2p1:FirstName>String</d2p1:FirstName>
    <d2p1:Gender>String</d2p1:Gender>
    <d2p1:HomePhone>String</d2p1:HomePhone>
    <d2p1:Initial>String</d2p1:Initial>
    <d2p1:MaritalStatus>String</d2p1:MaritalStatus>
    <d2p1:MarketingPreference>
      <d2p1:OptInEmail>String</d2p1:OptInEmail>
      <d2p1:OptInMail>String</d2p1:OptInMail>
      <d2p1:OptInSMS>String</d2p1:OptInSMS>
      <d2p1:OptInTelephone>String</d2p1:OptInTelephone>
    </d2p1:MarketingPreference>
    <d2p1:MobilePhone>String</d2p1:MobilePhone>
    <d2p1:PreviousAddresses>
      <d2p1:PreviousAddressv2>
        <d2p1:Address>
          <d2p1:AddressLine1>String</d2p1:AddressLine1>
          <d2p1:AddressLine2>String</d2p1:AddressLine2>
          <d2p1:AddressLine3>String</d2p1:AddressLine3>
          <d2p1:Country>String</d2p1:Country>
          <d2p1:County>String</d2p1:County>
          <d2p1:DateStarted>String</d2p1:DateStarted>
          <d2p1:Duration>String</d2p1:Duration>
          <d2p1:Postcode>String</d2p1:Postcode>
          <d2p1:TotalNumberOfMonths>String</d2p1:TotalNumberOfMonths>
          <d2p1:Town>String</d2p1:Town>
        </d2p1:Address>
        <d2p1:Seq>0</d2p1:Seq>
      </d2p1:PreviousAddressv2>
    </d2p1:PreviousAddresses>
    <d2p1:PreviousEmploymentDetails>
      <d2p1:PreviousEmploymentv2>
        <d2p1:Seq>0</d2p1:Seq>
        <d2p1:previousEmployment>
          <d2p1:EmployersAddress>
            <d2p1:AddressLine1>String</d2p1:AddressLine1>
            <d2p1:AddressLine2>String</d2p1:AddressLine2>
            <d2p1:AddressLine3>String</d2p1:AddressLine3>
            <d2p1:Country>String</d2p1:Country>
            <d2p1:County>String</d2p1:County>
            <d2p1:DateStarted>String</d2p1:DateStarted>
            <d2p1:Duration>String</d2p1:Duration>
            <d2p1:Postcode>String</d2p1:Postcode>
            <d2p1:TotalNumberOfMonths>String</d2p1:TotalNumberOfMonths>
            <d2p1:Town>String</d2p1:Town>
          </d2p1:EmployersAddress>
          <d2p1:EmployersName>String</d2p1:EmployersName>
          <d2p1:EmploymentType>String</d2p1:EmploymentType>
          <d2p1:Occupation>String</d2p1:Occupation>
        </d2p1:previousEmployment>
      </d2p1:PreviousEmploymentv2>
    </d2p1:PreviousEmploymentDetails>
    <d2p1:ResidentialStatus>String</d2p1:ResidentialStatus>
    <d2p1:Surname>String</d2p1:Surname>
    <d2p1:Title>String</d2p1:Title>
    <d2p1:WorkPhone>String</d2p1:WorkPhone>
  </CreditApplicationIndividual>
  <DeliveryDetails xmlns:d2p1="http://schemas.datacontract.org/2004/07/MBOnlineCreditApplicationService.BusinessLib.DomainClasses">
    <d2p1:DealerCode>String</d2p1:DealerCode>
    <d2p1:DeliveryDate>String</d2p1:DeliveryDate>
    <d2p1:DeliveryPreference>String</d2p1:DeliveryPreference>
  </DeliveryDetails>
  <DiPDetails xmlns:d2p1="http://schemas.datacontract.org/2004/07/MBOnlineCreditApplicationService.BusinessLib.DomainClasses">
    <d2p1:DiPCustomerId>String</d2p1:DiPCustomerId>
    <d2p1:DiPDecisionDescription>String</d2p1:DiPDecisionDescription>
    <d2p1:DiPDecisionType>String</d2p1:DiPDecisionType>
    <d2p1:DiPPrimaryDecisionCode>String</d2p1:DiPPrimaryDecisionCode>
    <d2p1:DiPPrimaryDecisionReasonDealerMessage>String</d2p1:DiPPrimaryDecisionReasonDealerMessage>
    <d2p1:DiPRequestID>String</d2p1:DiPRequestID>
    <d2p1:DiPTimestamp>String</d2p1:DiPTimestamp>
    <d2p1:DipDecisionDescriptionCode>String</d2p1:DipDecisionDescriptionCode>
    <d2p1:DipPrimaryDecisionReason>String</d2p1:DipPrimaryDecisionReason>
    <d2p1:diPReasons>
      <d2p1:DiPReasons>
        <d2p1:DiPDealerMessage>String</d2p1:DiPDealerMessage>
        <d2p1:DiPDecisionReason>String</d2p1:DiPDecisionReason>
        <d2p1:DipDecisionCode>String</d2p1:DipDecisionCode>
        <d2p1:DipReasonSeq>0</d2p1:DipReasonSeq>
      </d2p1:DiPReasons>
    </d2p1:diPReasons>
  </DiPDetails>
  <ExistingVehicleDetails xmlns:d2p1="http://schemas.datacontract.org/2004/07/MBOnlineCreditApplicationService.BusinessLib.DomainClasses">
    <d2p1:SettlementFlag>String</d2p1:SettlementFlag>
    <d2p1:SettlementIncludedInCalc>String</d2p1:SettlementIncludedInCalc>
    <d2p1:SettlementMileage>0</d2p1:SettlementMileage>
    <d2p1:SettlementRegNo>String</d2p1:SettlementRegNo>
    <d2p1:SettlementVIN>String</d2p1:SettlementVIN>
    <d2p1:SettlementValue>0</d2p1:SettlementValue>
    <d2p1:SettlementValueNet>0</d2p1:SettlementValueNet>
    <d2p1:TradeInCondition>String</d2p1:TradeInCondition>
    <d2p1:TradeInFlag>String</d2p1:TradeInFlag>
    <d2p1:TradeInIncludedInCalc>String</d2p1:TradeInIncludedInCalc>
    <d2p1:TradeInMileage>0</d2p1:TradeInMileage>
    <d2p1:TradeInRegNo>String</d2p1:TradeInRegNo>
    <d2p1:TradeInVIN>String</d2p1:TradeInVIN>
    <d2p1:TradeInValue>0</d2p1:TradeInValue>
    <d2p1:TradeInValueNet>0</d2p1:TradeInValueNet>
  </ExistingVehicleDetails>
  <FinanceDetails xmlns:d2p1="http://schemas.datacontract.org/2004/07/MBOnlineCreditApplicationService.BusinessLib.DomainClasses">
    <d2p1:AcceptanceFee>0</d2p1:AcceptanceFee>
    <d2p1:AdvanceArrears>String</d2p1:AdvanceArrears>
    <d2p1:AdvancedRentalAmount>0</d2p1:AdvancedRentalAmount>
    <d2p1:AnnualMileage>0</d2p1:AnnualMileage>
    <d2p1:CampaignCode>String</d2p1:CampaignCode>
    <d2p1:CostForCredit>0</d2p1:CostForCredit>
    <d2p1:CustomerDepositContribution>0</d2p1:CustomerDepositContribution>
    <d2p1:Duration>0</d2p1:Duration>
    <d2p1:EqualsFinance>0</d2p1:EqualsFinance>
    <d2p1:ExcessMileageRate>0</d2p1:ExcessMileageRate>
    <d2p1:FinancialProduct>String</d2p1:FinancialProduct>
    <d2p1:Fixed>String</d2p1:Fixed>
    <d2p1:FixedInterestRate>0</d2p1:FixedInterestRate>
    <d2p1:FleetNonFleet>String</d2p1:FleetNonFleet>
    <d2p1:Frequency>String</d2p1:Frequency>
    <d2p1:LumpSum>0</d2p1:LumpSum>
    <d2p1:ManufacturerDepositContribution>0</d2p1:ManufacturerDepositContribution>
    <d2p1:ManufacturerDepositContributionNet>0</d2p1:ManufacturerDepositContributionNet>
    <d2p1:NumberofAdvanceRentals>String</d2p1:NumberofAdvanceRentals>
    <d2p1:OptionalPurchasePayment>0</d2p1:OptionalPurchasePayment>
    <d2p1:PauseType>String</d2p1:PauseType>
    <d2p1:PaymentProfile>String</d2p1:PaymentProfile>
    <d2p1:PaymentRentalAmount>0</d2p1:PaymentRentalAmount>
    <d2p1:PhoenixFinanceProductCode>String</d2p1:PhoenixFinanceProductCode>
    <d2p1:ProductType>String</d2p1:ProductType>
    <d2p1:PurchaseActivationFee>0</d2p1:PurchaseActivationFee>
    <d2p1:RFLCover>String</d2p1:RFLCover>
    <d2p1:RVReferenceNumber>String</d2p1:RVReferenceNumber>
    <d2p1:RandMIncluded>String</d2p1:RandMIncluded>
    <d2p1:RandMLevel>String</d2p1:RandMLevel>
    <d2p1:RentalAmountExcVAT>0</d2p1:RentalAmountExcVAT>
    <d2p1:RepresentativeAPR>0</d2p1:RepresentativeAPR>
    <d2p1:RetailerDepositContribution>0</d2p1:RetailerDepositContribution>
    <d2p1:RetailerDepositContributionNet>0</d2p1:RetailerDepositContributionNet>
    <d2p1:TotalAmountPayable>0</d2p1:TotalAmountPayable>
    <d2p1:TotalDepositContribution>0</d2p1:TotalDepositContribution>
    <d2p1:TrueFlatRate>String</d2p1:TrueFlatRate>
  </FinanceDetails>
  <GeneralDetails xmlns:d2p1="http://schemas.datacontract.org/2004/07/MBOnlineCreditApplicationService.BusinessLib.DomainClasses">
    <d2p1:Brand>0</d2p1:Brand>
    <d2p1:CustomerReferenceNumber>String</d2p1:CustomerReferenceNumber>
    <d2p1:CustomerType>String</d2p1:CustomerType>
    <d2p1:EnquiryDateTime>String</d2p1:EnquiryDateTime>
    <d2p1:FormID>String</d2p1:FormID>
    <d2p1:LoadFullData>String</d2p1:LoadFullData>
    <d2p1:OCAApprovalNumber>String</d2p1:OCAApprovalNumber>
    <d2p1:POSSystem>String</d2p1:POSSystem>
    <d2p1:ProposalCreated>String</d2p1:ProposalCreated>
    <d2p1:ProposalNumber>String</d2p1:ProposalNumber>
    <d2p1:RequestSource>0</d2p1:RequestSource>
    <d2p1:SourceofBusiness>String</d2p1:SourceofBusiness>
    <d2p1:TagURL>String</d2p1:TagURL>
  </GeneralDetails>
  <InsuranceDetails xmlns:d2p1="http://schemas.datacontract.org/2004/07/MBOnlineCreditApplicationService.BusinessLib.DomainClasses">
    <d2p1:InterestedInFirstCoverFlag>String</d2p1:InterestedInFirstCoverFlag>
  </InsuranceDetails>
  <Notes xmlns:d2p1="http://schemas.datacontract.org/2004/07/MBOnlineCreditApplicationService.BusinessLib.DomainClasses">
    <d2p1:NoteDetails>
      <d2p1:Note>String</d2p1:Note>
      <d2p1:Seq>0</d2p1:Seq>
    </d2p1:NoteDetails>
  </Notes>
  <PaymentDetails xmlns:d2p1="http://schemas.datacontract.org/2004/07/MBOnlineCreditApplicationService.BusinessLib.DomainClasses">
    <d2p1:paymentDetails>
      <d2p1:PaymentDetail>
        <d2p1:AmountPaid>0</d2p1:AmountPaid>
        <d2p1:Description>String</d2p1:Description>
        <d2p1:PaymentDateTime>String</d2p1:PaymentDateTime>
        <d2p1:PaymentTransactionID>String</d2p1:PaymentTransactionID>
        <d2p1:PaymentType>String</d2p1:PaymentType>
        <d2p1:Seq>0</d2p1:Seq>
      </d2p1:PaymentDetail>
    </d2p1:paymentDetails>
  </PaymentDetails>
  <Timestamp>String</Timestamp>
  <Token>String</Token>
  <Username>String</Username>
  <VehicleDetails xmlns:d2p1="http://schemas.datacontract.org/2004/07/MBOnlineCreditApplicationService.BusinessLib.DomainClasses">
    <d2p1:Baumuster>String</d2p1:Baumuster>
    <d2p1:CombinedCO2>String</d2p1:CombinedCO2>
    <d2p1:CommissionNumber>String</d2p1:CommissionNumber>
    <d2p1:CurrentMileage>0</d2p1:CurrentMileage>
    <d2p1:EngineNumber>String</d2p1:EngineNumber>
    <d2p1:ExtrasTotalExcVAT>0</d2p1:ExtrasTotalExcVAT>
    <d2p1:FirstRegFeeAmount>0</d2p1:FirstRegFeeAmount>
    <d2p1:FirstRegFeeIncludedFlag>String</d2p1:FirstRegFeeIncludedFlag>
    <d2p1:FirstRegistrationDate>String</d2p1:FirstRegistrationDate>
    <d2p1:FirstYearRFLAmount>0</d2p1:FirstYearRFLAmount>
    <d2p1:FirstYearRFLIncluded>String</d2p1:FirstYearRFLIncluded>
    <d2p1:HighLowVEDSupplementFlag>String</d2p1:HighLowVEDSupplementFlag>
    <d2p1:LeaseRFLSubsequentYears>String</d2p1:LeaseRFLSubsequentYears>
    <d2p1:LeaseRFLSubsequentYearsAmount>0</d2p1:LeaseRFLSubsequentYearsAmount>
    <d2p1:MilesKilometers>String</d2p1:MilesKilometers>
    <d2p1:ModelBody>String</d2p1:ModelBody>
    <d2p1:ModelClass>String</d2p1:ModelClass>
    <d2p1:ModelDerivative>String</d2p1:ModelDerivative>
    <d2p1:NewUsedFlag>String</d2p1:NewUsedFlag>
    <d2p1:NewVehicleModelOptionDetails>
      <d2p1:ModelOptionDetailsv2>
        <d2p1:Code>String</d2p1:Code>
        <d2p1:Description>String</d2p1:Description>
        <d2p1:Price>0</d2p1:Price>
        <d2p1:PriceGross>0</d2p1:PriceGross>
        <d2p1:Seq>0</d2p1:Seq>
        <d2p1:Type>String</d2p1:Type>
        <d2p1:VATAmount>0</d2p1:VATAmount>
        <d2p1:VATCategory>String</d2p1:VATCategory>
      </d2p1:ModelOptionDetailsv2>
    </d2p1:NewVehicleModelOptionDetails>
    <d2p1:OLEVGrant>0</d2p1:OLEVGrant>
    <d2p1:OTRPrice>0</d2p1:OTRPrice>
    <d2p1:OnlineCode>String</d2p1:OnlineCode>
    <d2p1:RegNo>String</d2p1:RegNo>
    <d2p1:TotalPrice>0</d2p1:TotalPrice>
    <d2p1:TotalVAT>0</d2p1:TotalVAT>
    <d2p1:VID>String</d2p1:VID>
    <d2p1:VIN>String</d2p1:VIN>
    <d2p1:VehiclePrice>0</d2p1:VehiclePrice>
    <d2p1:VehicleVATTickBox>String</d2p1:VehicleVATTickBox>
  </VehicleDetails>
</CreateOCAv2Request>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<CreateOCAv2RequestResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.servicestack.net/types">
  <Code>String</Code>
  <Message>String</Message>
  <URN>0</URN>
</CreateOCAv2RequestResponse>