MBOnlineCreditApplicationService

<back to all web services

CreateOCARequest

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

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

    // @DataMember
    String? Message;

    // @DataMember
    int? URN;

    CreateOCARequestResponse({this.Code,this.Message,this.URN});
    CreateOCARequestResponse.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() => "CreateOCARequestResponse";
    TypeContext? context = _ctx;
}

class GeneralDetails implements IConvertible
{
    String? OCAApprovalNumber;
    String? EnquiryDateTime;
    int? Brand;
    String? CustomerReferenceNumber;
    String? CustomerType;
    String? SourceofBusiness;
    String? TagURL;
    int? RequestSource;
    String? FormID;

    GeneralDetails({this.OCAApprovalNumber,this.EnquiryDateTime,this.Brand,this.CustomerReferenceNumber,this.CustomerType,this.SourceofBusiness,this.TagURL,this.RequestSource,this.FormID});
    GeneralDetails.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'];
        return this;
    }

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

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

class FinanceDetails implements IConvertible
{
    String? FinancialProduct;
    int? Duration;
    double? PaymentRentalAmount;
    int? AnnualMileage;
    double? ExcessMileageRate;
    double? CustomerDepositContribution;
    double? RetailerDepositContribution;
    double? ManufacturerDepositContribution;
    double? TotalDepositContribution;
    double? CostForCredit;
    double? PurchaseActivationFee;
    double? TotalAmountPayable;
    double? FixedInterestRate;
    double? RepresentativeAPR;
    double? OptionalPurchasePayment;
    double? AdvancedRentalAmount;
    String? PaymentProfile;
    String? RandMIncluded;
    String? RandMLevel;
    String? ProductType;
    String? Frequency;
    String? PauseType;

    FinanceDetails({this.FinancialProduct,this.Duration,this.PaymentRentalAmount,this.AnnualMileage,this.ExcessMileageRate,this.CustomerDepositContribution,this.RetailerDepositContribution,this.ManufacturerDepositContribution,this.TotalDepositContribution,this.CostForCredit,this.PurchaseActivationFee,this.TotalAmountPayable,this.FixedInterestRate,this.RepresentativeAPR,this.OptionalPurchasePayment,this.AdvancedRentalAmount,this.PaymentProfile,this.RandMIncluded,this.RandMLevel,this.ProductType,this.Frequency,this.PauseType});
    FinanceDetails.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        FinancialProduct = json['FinancialProduct'];
        Duration = json['Duration'];
        PaymentRentalAmount = JsonConverters.toDouble(json['PaymentRentalAmount']);
        AnnualMileage = json['AnnualMileage'];
        ExcessMileageRate = JsonConverters.toDouble(json['ExcessMileageRate']);
        CustomerDepositContribution = JsonConverters.toDouble(json['CustomerDepositContribution']);
        RetailerDepositContribution = JsonConverters.toDouble(json['RetailerDepositContribution']);
        ManufacturerDepositContribution = JsonConverters.toDouble(json['ManufacturerDepositContribution']);
        TotalDepositContribution = JsonConverters.toDouble(json['TotalDepositContribution']);
        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']);
        OptionalPurchasePayment = JsonConverters.toDouble(json['OptionalPurchasePayment']);
        AdvancedRentalAmount = JsonConverters.toDouble(json['AdvancedRentalAmount']);
        PaymentProfile = json['PaymentProfile'];
        RandMIncluded = json['RandMIncluded'];
        RandMLevel = json['RandMLevel'];
        ProductType = json['ProductType'];
        Frequency = json['Frequency'];
        PauseType = json['PauseType'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'FinancialProduct': FinancialProduct,
        'Duration': Duration,
        'PaymentRentalAmount': PaymentRentalAmount,
        'AnnualMileage': AnnualMileage,
        'ExcessMileageRate': ExcessMileageRate,
        'CustomerDepositContribution': CustomerDepositContribution,
        'RetailerDepositContribution': RetailerDepositContribution,
        'ManufacturerDepositContribution': ManufacturerDepositContribution,
        'TotalDepositContribution': TotalDepositContribution,
        'CostForCredit': CostForCredit,
        'PurchaseActivationFee': PurchaseActivationFee,
        'TotalAmountPayable': TotalAmountPayable,
        'FixedInterestRate': FixedInterestRate,
        'RepresentativeAPR': RepresentativeAPR,
        'OptionalPurchasePayment': OptionalPurchasePayment,
        'AdvancedRentalAmount': AdvancedRentalAmount,
        'PaymentProfile': PaymentProfile,
        'RandMIncluded': RandMIncluded,
        'RandMLevel': RandMLevel,
        'ProductType': ProductType,
        'Frequency': Frequency,
        'PauseType': PauseType
    };

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

class VehicleDetails implements IConvertible
{
    String? OnlineCode;
    String? ModelClass;
    String? ModelBody;
    String? ModelDerivative;
    double? TotalPrice;
    double? OTRPrice;
    String? VIN;
    String? RegNo;
    int? CurrentMileage;
    String? FirstRegistrationDate;
    String? NewUsedFlag;
    List<ModelOptionDetails>? NewVehicleModelOptionDetails;

    VehicleDetails({this.OnlineCode,this.ModelClass,this.ModelBody,this.ModelDerivative,this.TotalPrice,this.OTRPrice,this.VIN,this.RegNo,this.CurrentMileage,this.FirstRegistrationDate,this.NewUsedFlag,this.NewVehicleModelOptionDetails});
    VehicleDetails.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'];
        CurrentMileage = json['CurrentMileage'];
        FirstRegistrationDate = json['FirstRegistrationDate'];
        NewUsedFlag = json['NewUsedFlag'];
        NewVehicleModelOptionDetails = JsonConverters.fromJson(json['NewVehicleModelOptionDetails'],'List<ModelOptionDetails>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'OnlineCode': OnlineCode,
        'ModelClass': ModelClass,
        'ModelBody': ModelBody,
        'ModelDerivative': ModelDerivative,
        'TotalPrice': TotalPrice,
        'OTRPrice': OTRPrice,
        'VIN': VIN,
        'RegNo': RegNo,
        'CurrentMileage': CurrentMileage,
        'FirstRegistrationDate': FirstRegistrationDate,
        'NewUsedFlag': NewUsedFlag,
        'NewVehicleModelOptionDetails': JsonConverters.toJson(NewVehicleModelOptionDetails,'List<ModelOptionDetails>',context!)
    };

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

class DeliveryDetails implements IConvertible
{
    String? DealerCode;
    String? DeliveryPreference;

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

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

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

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

class ExistingVehicleDetails implements IConvertible
{
    String? TradeInFlag;
    double? TradeInValue;
    String? TradeInRegNo;
    String? SettlementFlag;
    double? SettlementValue;
    String? SettlementRegNo;

    ExistingVehicleDetails({this.TradeInFlag,this.TradeInValue,this.TradeInRegNo,this.SettlementFlag,this.SettlementValue,this.SettlementRegNo});
    ExistingVehicleDetails.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        TradeInFlag = json['TradeInFlag'];
        TradeInValue = JsonConverters.toDouble(json['TradeInValue']);
        TradeInRegNo = json['TradeInRegNo'];
        SettlementFlag = json['SettlementFlag'];
        SettlementValue = JsonConverters.toDouble(json['SettlementValue']);
        SettlementRegNo = json['SettlementRegNo'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'TradeInFlag': TradeInFlag,
        'TradeInValue': TradeInValue,
        'TradeInRegNo': TradeInRegNo,
        'SettlementFlag': SettlementFlag,
        'SettlementValue': SettlementValue,
        'SettlementRegNo': SettlementRegNo
    };

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

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

    AddressWithTimeLine({this.AddressLine1,this.AddressLine2,this.AddressLine3,this.Town,this.County,this.Country,this.Postcode,this.Duration,this.DateStarted});
    AddressWithTimeLine.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'];
        return this;
    }

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

    getTypeName() => "AddressWithTimeLine";
    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 EmployerDetails implements IConvertible
{
    String? EmploymentType;
    String? EmployersName;
    String? Occupation;
    AddressWithTimeLine? EmployersAddress;

    EmployerDetails({this.EmploymentType,this.EmployersName,this.Occupation,this.EmployersAddress});
    EmployerDetails.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'],'AddressWithTimeLine',context!);
        return this;
    }

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

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

class CurrentEmploymentDetails implements IConvertible
{
    EmployerDetails? EmployerDetails;
    String? MonthsAtEmployer;
    String? DateEmploymentCommenced;
    String? AnnualIncome;

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

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

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

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

class CreditApplicationIndividual implements IConvertible
{
    String? Title;
    String? Initial;
    String? FirstName;
    String? Surname;
    String? DateofBirth;
    String? Gender;
    String? MaritalStatus;
    String? ResidentialStatus;
    AddressWithTimeLine? CurrentAddress;
    List<PreviousAddress>? PreviousAddresses;
    String? HomePhone;
    String? MobilePhone;
    String? WorkPhone;
    String? Email;
    String? BankSortCode;
    String? BankAccountNumber;
    String? BankAccountName;
    String? BankName;
    Address? BankAddress;
    String? DoNotEmail;
    String? DoNotMail;
    String? DoNotPhone;
    String? DoNotSMS;
    String? DrivingLicenceNumber;
    CurrentEmploymentDetails? CurrentEmploymentDetails;
    List<PreviousEmployment>? PreviousEmploymentDetails;

    CreditApplicationIndividual({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.Email,this.BankSortCode,this.BankAccountNumber,this.BankAccountName,this.BankName,this.BankAddress,this.DoNotEmail,this.DoNotMail,this.DoNotPhone,this.DoNotSMS,this.DrivingLicenceNumber,this.CurrentEmploymentDetails,this.PreviousEmploymentDetails});
    CreditApplicationIndividual.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'],'AddressWithTimeLine',context!);
        PreviousAddresses = JsonConverters.fromJson(json['PreviousAddresses'],'List<PreviousAddress>',context!);
        HomePhone = json['HomePhone'];
        MobilePhone = json['MobilePhone'];
        WorkPhone = json['WorkPhone'];
        Email = json['Email'];
        BankSortCode = json['BankSortCode'];
        BankAccountNumber = json['BankAccountNumber'];
        BankAccountName = json['BankAccountName'];
        BankName = json['BankName'];
        BankAddress = JsonConverters.fromJson(json['BankAddress'],'Address',context!);
        DoNotEmail = json['DoNotEmail'];
        DoNotMail = json['DoNotMail'];
        DoNotPhone = json['DoNotPhone'];
        DoNotSMS = json['DoNotSMS'];
        DrivingLicenceNumber = json['DrivingLicenceNumber'];
        CurrentEmploymentDetails = JsonConverters.fromJson(json['CurrentEmploymentDetails'],'CurrentEmploymentDetails',context!);
        PreviousEmploymentDetails = JsonConverters.fromJson(json['PreviousEmploymentDetails'],'List<PreviousEmployment>',context!);
        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,'AddressWithTimeLine',context!),
        'PreviousAddresses': JsonConverters.toJson(PreviousAddresses,'List<PreviousAddress>',context!),
        'HomePhone': HomePhone,
        'MobilePhone': MobilePhone,
        'WorkPhone': WorkPhone,
        'Email': Email,
        'BankSortCode': BankSortCode,
        'BankAccountNumber': BankAccountNumber,
        'BankAccountName': BankAccountName,
        'BankName': BankName,
        'BankAddress': JsonConverters.toJson(BankAddress,'Address',context!),
        'DoNotEmail': DoNotEmail,
        'DoNotMail': DoNotMail,
        'DoNotPhone': DoNotPhone,
        'DoNotSMS': DoNotSMS,
        'DrivingLicenceNumber': DrivingLicenceNumber,
        'CurrentEmploymentDetails': JsonConverters.toJson(CurrentEmploymentDetails,'CurrentEmploymentDetails',context!),
        'PreviousEmploymentDetails': JsonConverters.toJson(PreviousEmploymentDetails,'List<PreviousEmployment>',context!)
    };

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

class CreditApplicationBusiness implements IConvertible
{
    String? TypeOfBusiness;
    String? BusinessContactPosition;
    String? Title;
    String? Initial;
    String? FirstName;
    String? Surname;
    AddressWithTimeLine? CurrentHomeAddress;
    String? HomePhone;
    String? WorkPhone;
    String? MobilePhone;
    String? Email;
    String? DoNotEmail;
    String? DoNotMail;
    String? DoNotPhone;
    String? DoNotSMS;
    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<BusinessPartner>? BusinessPartners;

    CreditApplicationBusiness({this.TypeOfBusiness,this.BusinessContactPosition,this.Title,this.Initial,this.FirstName,this.Surname,this.CurrentHomeAddress,this.HomePhone,this.WorkPhone,this.MobilePhone,this.Email,this.DoNotEmail,this.DoNotMail,this.DoNotPhone,this.DoNotSMS,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});
    CreditApplicationBusiness.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'],'AddressWithTimeLine',context!);
        HomePhone = json['HomePhone'];
        WorkPhone = json['WorkPhone'];
        MobilePhone = json['MobilePhone'];
        Email = json['Email'];
        DoNotEmail = json['DoNotEmail'];
        DoNotMail = json['DoNotMail'];
        DoNotPhone = json['DoNotPhone'];
        DoNotSMS = json['DoNotSMS'];
        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<BusinessPartner>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'TypeOfBusiness': TypeOfBusiness,
        'BusinessContactPosition': BusinessContactPosition,
        'Title': Title,
        'Initial': Initial,
        'FirstName': FirstName,
        'Surname': Surname,
        'CurrentHomeAddress': JsonConverters.toJson(CurrentHomeAddress,'AddressWithTimeLine',context!),
        'HomePhone': HomePhone,
        'WorkPhone': WorkPhone,
        'MobilePhone': MobilePhone,
        'Email': Email,
        'DoNotEmail': DoNotEmail,
        'DoNotMail': DoNotMail,
        'DoNotPhone': DoNotPhone,
        'DoNotSMS': DoNotSMS,
        '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<BusinessPartner>',context!)
    };

    getTypeName() => "CreditApplicationBusiness";
    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 CreateOCARequest implements IConvertible
{
    // @DataMember
    String? Username;

    // @DataMember
    String? Timestamp;

    // @DataMember
    String? Token;

    // @DataMember
    GeneralDetails? GeneralDetails;

    // @DataMember
    FinanceDetails? FinanceDetails;

    // @DataMember
    VehicleDetails? VehicleDetails;

    // @DataMember
    DeliveryDetails? DeliveryDetails;

    // @DataMember
    ExistingVehicleDetails? ExistingVehicleDetails;

    // @DataMember
    CreditApplicationIndividual? CreditApplicationIndividual;

    // @DataMember
    CreditApplicationBusiness? CreditApplicationBusiness;

    // @DataMember
    PaymentDetails? PaymentDetails;

    // @DataMember
    DiPDetails? DiPDetails;

    CreateOCARequest({this.Username,this.Timestamp,this.Token,this.GeneralDetails,this.FinanceDetails,this.VehicleDetails,this.DeliveryDetails,this.ExistingVehicleDetails,this.CreditApplicationIndividual,this.CreditApplicationBusiness,this.PaymentDetails,this.DiPDetails});
    CreateOCARequest.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'],'GeneralDetails',context!);
        FinanceDetails = JsonConverters.fromJson(json['FinanceDetails'],'FinanceDetails',context!);
        VehicleDetails = JsonConverters.fromJson(json['VehicleDetails'],'VehicleDetails',context!);
        DeliveryDetails = JsonConverters.fromJson(json['DeliveryDetails'],'DeliveryDetails',context!);
        ExistingVehicleDetails = JsonConverters.fromJson(json['ExistingVehicleDetails'],'ExistingVehicleDetails',context!);
        CreditApplicationIndividual = JsonConverters.fromJson(json['CreditApplicationIndividual'],'CreditApplicationIndividual',context!);
        CreditApplicationBusiness = JsonConverters.fromJson(json['CreditApplicationBusiness'],'CreditApplicationBusiness',context!);
        PaymentDetails = JsonConverters.fromJson(json['PaymentDetails'],'PaymentDetails',context!);
        DiPDetails = JsonConverters.fromJson(json['DiPDetails'],'DiPDetails',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Username': Username,
        'Timestamp': Timestamp,
        'Token': Token,
        'GeneralDetails': JsonConverters.toJson(GeneralDetails,'GeneralDetails',context!),
        'FinanceDetails': JsonConverters.toJson(FinanceDetails,'FinanceDetails',context!),
        'VehicleDetails': JsonConverters.toJson(VehicleDetails,'VehicleDetails',context!),
        'DeliveryDetails': JsonConverters.toJson(DeliveryDetails,'DeliveryDetails',context!),
        'ExistingVehicleDetails': JsonConverters.toJson(ExistingVehicleDetails,'ExistingVehicleDetails',context!),
        'CreditApplicationIndividual': JsonConverters.toJson(CreditApplicationIndividual,'CreditApplicationIndividual',context!),
        'CreditApplicationBusiness': JsonConverters.toJson(CreditApplicationBusiness,'CreditApplicationBusiness',context!),
        'PaymentDetails': JsonConverters.toJson(PaymentDetails,'PaymentDetails',context!),
        'DiPDetails': JsonConverters.toJson(DiPDetails,'DiPDetails',context!)
    };

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

class ModelOptionDetails implements IConvertible
{
    int? Seq;
    String? Code;
    String? Description;
    double? Price;

    ModelOptionDetails({this.Seq,this.Code,this.Description,this.Price});
    ModelOptionDetails.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

class PreviousAddress implements IConvertible
{
    int? Seq;
    AddressWithTimeLine? Address;

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

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

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

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

class PreviousEmployment implements IConvertible
{
    int? Seq;
    EmployerDetails? previousEmployment;

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

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

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

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

class BusinessPartner implements IConvertible
{
    int? Seq;
    String? Title;
    String? Initial;
    String? FirstName;
    String? Surname;
    String? DateofBirth;
    String? Gender;
    String? MaritalStatus;
    String? ResidentialStatus;
    AddressWithTimeLine? CurrentAddress;
    List<PreviousAddress>? PreviousAddresses;
    String? HomePhone;
    String? MobilePhone;
    String? BusinessPhone;
    String? Relationship;
    String? Email;
    CurrentEmploymentDetails? CurrentEmploymentDetails;
    List<PreviousEmployment>? PreviousEmploymentDetails;
    String? PartnerType;

    BusinessPartner({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});
    BusinessPartner.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'],'AddressWithTimeLine',context!);
        PreviousAddresses = JsonConverters.fromJson(json['PreviousAddresses'],'List<PreviousAddress>',context!);
        HomePhone = json['HomePhone'];
        MobilePhone = json['MobilePhone'];
        BusinessPhone = json['BusinessPhone'];
        Relationship = json['Relationship'];
        Email = json['Email'];
        CurrentEmploymentDetails = JsonConverters.fromJson(json['CurrentEmploymentDetails'],'CurrentEmploymentDetails',context!);
        PreviousEmploymentDetails = JsonConverters.fromJson(json['PreviousEmploymentDetails'],'List<PreviousEmployment>',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,'AddressWithTimeLine',context!),
        'PreviousAddresses': JsonConverters.toJson(PreviousAddresses,'List<PreviousAddress>',context!),
        'HomePhone': HomePhone,
        'MobilePhone': MobilePhone,
        'BusinessPhone': BusinessPhone,
        'Relationship': Relationship,
        'Email': Email,
        'CurrentEmploymentDetails': JsonConverters.toJson(CurrentEmploymentDetails,'CurrentEmploymentDetails',context!),
        'PreviousEmploymentDetails': JsonConverters.toJson(PreviousEmploymentDetails,'List<PreviousEmployment>',context!),
        'PartnerType': PartnerType
    };

    getTypeName() => "BusinessPartner";
    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 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> {
    'CreateOCARequestResponse': TypeInfo(TypeOf.Class, create:() => CreateOCARequestResponse()),
    'GeneralDetails': TypeInfo(TypeOf.Class, create:() => GeneralDetails()),
    'FinanceDetails': TypeInfo(TypeOf.Class, create:() => FinanceDetails()),
    'VehicleDetails': TypeInfo(TypeOf.Class, create:() => VehicleDetails()),
    'List<ModelOptionDetails>': TypeInfo(TypeOf.Class, create:() => <ModelOptionDetails>[]),
    'ModelOptionDetails': TypeInfo(TypeOf.Class, create:() => ModelOptionDetails()),
    'DeliveryDetails': TypeInfo(TypeOf.Class, create:() => DeliveryDetails()),
    'ExistingVehicleDetails': TypeInfo(TypeOf.Class, create:() => ExistingVehicleDetails()),
    'AddressWithTimeLine': TypeInfo(TypeOf.Class, create:() => AddressWithTimeLine()),
    'Address': TypeInfo(TypeOf.Class, create:() => Address()),
    'EmployerDetails': TypeInfo(TypeOf.Class, create:() => EmployerDetails()),
    'CurrentEmploymentDetails': TypeInfo(TypeOf.Class, create:() => CurrentEmploymentDetails()),
    'CreditApplicationIndividual': TypeInfo(TypeOf.Class, create:() => CreditApplicationIndividual()),
    'List<PreviousAddress>': TypeInfo(TypeOf.Class, create:() => <PreviousAddress>[]),
    'PreviousAddress': TypeInfo(TypeOf.Class, create:() => PreviousAddress()),
    'List<PreviousEmployment>': TypeInfo(TypeOf.Class, create:() => <PreviousEmployment>[]),
    'PreviousEmployment': TypeInfo(TypeOf.Class, create:() => PreviousEmployment()),
    'CreditApplicationBusiness': TypeInfo(TypeOf.Class, create:() => CreditApplicationBusiness()),
    'List<BusinessPartner>': TypeInfo(TypeOf.Class, create:() => <BusinessPartner>[]),
    'BusinessPartner': TypeInfo(TypeOf.Class, create:() => BusinessPartner()),
    '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()),
    'CreateOCARequest': TypeInfo(TypeOf.Class, create:() => CreateOCARequest()),
});

Dart CreateOCARequest 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 /CreateOCA/ HTTP/1.1 
Host: webservices.mbukdatabase.co.uk 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<CreateOCARequest 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:BusinessPartner>
        <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: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: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:PreviousAddress>
            <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:Town>String</d2p1:Town>
            </d2p1:Address>
            <d2p1:Seq>0</d2p1:Seq>
          </d2p1:PreviousAddress>
        </d2p1:PreviousAddresses>
        <d2p1:PreviousEmploymentDetails>
          <d2p1:PreviousEmployment>
            <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:Town>String</d2p1:Town>
              </d2p1:EmployersAddress>
              <d2p1:EmployersName>String</d2p1:EmployersName>
              <d2p1:EmploymentType>String</d2p1:EmploymentType>
              <d2p1:Occupation>String</d2p1:Occupation>
            </d2p1:previousEmployment>
          </d2p1:PreviousEmployment>
        </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:BusinessPartner>
    </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:Town>String</d2p1:Town>
    </d2p1:CurrentHomeAddress>
    <d2p1:DoNotEmail>String</d2p1:DoNotEmail>
    <d2p1:DoNotMail>String</d2p1:DoNotMail>
    <d2p1:DoNotPhone>String</d2p1:DoNotPhone>
    <d2p1:DoNotSMS>String</d2p1:DoNotSMS>
    <d2p1:Email>String</d2p1:Email>
    <d2p1:FirstName>String</d2p1:FirstName>
    <d2p1:HomePhone>String</d2p1:HomePhone>
    <d2p1:Initial>String</d2p1:Initial>
    <d2p1:MobilePhone>String</d2p1:MobilePhone>
    <d2p1:NumberOfEmployees>0</d2p1:NumberOfEmployees>
    <d2p1:NumberofPartners>0</d2p1:NumberofPartners>
    <d2p1:Position>String</d2p1:Position>
    <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:BankSortCode>String</d2p1:BankSortCode>
    <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: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: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:DoNotEmail>String</d2p1:DoNotEmail>
    <d2p1:DoNotMail>String</d2p1:DoNotMail>
    <d2p1:DoNotPhone>String</d2p1:DoNotPhone>
    <d2p1:DoNotSMS>String</d2p1:DoNotSMS>
    <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:MobilePhone>String</d2p1:MobilePhone>
    <d2p1:PreviousAddresses>
      <d2p1:PreviousAddress>
        <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:Town>String</d2p1:Town>
        </d2p1:Address>
        <d2p1:Seq>0</d2p1:Seq>
      </d2p1:PreviousAddress>
    </d2p1:PreviousAddresses>
    <d2p1:PreviousEmploymentDetails>
      <d2p1:PreviousEmployment>
        <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:Town>String</d2p1:Town>
          </d2p1:EmployersAddress>
          <d2p1:EmployersName>String</d2p1:EmployersName>
          <d2p1:EmploymentType>String</d2p1:EmploymentType>
          <d2p1:Occupation>String</d2p1:Occupation>
        </d2p1:previousEmployment>
      </d2p1:PreviousEmployment>
    </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: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:SettlementRegNo>String</d2p1:SettlementRegNo>
    <d2p1:SettlementValue>0</d2p1:SettlementValue>
    <d2p1:TradeInFlag>String</d2p1:TradeInFlag>
    <d2p1:TradeInRegNo>String</d2p1:TradeInRegNo>
    <d2p1:TradeInValue>0</d2p1:TradeInValue>
  </ExistingVehicleDetails>
  <FinanceDetails xmlns:d2p1="http://schemas.datacontract.org/2004/07/MBOnlineCreditApplicationService.BusinessLib.DomainClasses">
    <d2p1:AdvancedRentalAmount>0</d2p1:AdvancedRentalAmount>
    <d2p1:AnnualMileage>0</d2p1:AnnualMileage>
    <d2p1:CostForCredit>0</d2p1:CostForCredit>
    <d2p1:CustomerDepositContribution>0</d2p1:CustomerDepositContribution>
    <d2p1:Duration>0</d2p1:Duration>
    <d2p1:ExcessMileageRate>0</d2p1:ExcessMileageRate>
    <d2p1:FinancialProduct>String</d2p1:FinancialProduct>
    <d2p1:FixedInterestRate>0</d2p1:FixedInterestRate>
    <d2p1:Frequency>String</d2p1:Frequency>
    <d2p1:ManufacturerDepositContribution>0</d2p1:ManufacturerDepositContribution>
    <d2p1:OptionalPurchasePayment>0</d2p1:OptionalPurchasePayment>
    <d2p1:PauseType>String</d2p1:PauseType>
    <d2p1:PaymentProfile>String</d2p1:PaymentProfile>
    <d2p1:PaymentRentalAmount>0</d2p1:PaymentRentalAmount>
    <d2p1:ProductType>String</d2p1:ProductType>
    <d2p1:PurchaseActivationFee>0</d2p1:PurchaseActivationFee>
    <d2p1:RandMIncluded>String</d2p1:RandMIncluded>
    <d2p1:RandMLevel>String</d2p1:RandMLevel>
    <d2p1:RepresentativeAPR>0</d2p1:RepresentativeAPR>
    <d2p1:RetailerDepositContribution>0</d2p1:RetailerDepositContribution>
    <d2p1:TotalAmountPayable>0</d2p1:TotalAmountPayable>
    <d2p1:TotalDepositContribution>0</d2p1:TotalDepositContribution>
  </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:OCAApprovalNumber>String</d2p1:OCAApprovalNumber>
    <d2p1:RequestSource>0</d2p1:RequestSource>
    <d2p1:SourceofBusiness>String</d2p1:SourceofBusiness>
    <d2p1:TagURL>String</d2p1:TagURL>
  </GeneralDetails>
  <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:CurrentMileage>0</d2p1:CurrentMileage>
    <d2p1:FirstRegistrationDate>String</d2p1:FirstRegistrationDate>
    <d2p1:ModelBody>String</d2p1:ModelBody>
    <d2p1:ModelClass>String</d2p1:ModelClass>
    <d2p1:ModelDerivative>String</d2p1:ModelDerivative>
    <d2p1:NewUsedFlag>String</d2p1:NewUsedFlag>
    <d2p1:NewVehicleModelOptionDetails>
      <d2p1:ModelOptionDetails>
        <d2p1:Code>String</d2p1:Code>
        <d2p1:Description>String</d2p1:Description>
        <d2p1:Price>0</d2p1:Price>
        <d2p1:Seq>0</d2p1:Seq>
      </d2p1:ModelOptionDetails>
    </d2p1:NewVehicleModelOptionDetails>
    <d2p1:OTRPrice>0</d2p1:OTRPrice>
    <d2p1:OnlineCode>String</d2p1:OnlineCode>
    <d2p1:RegNo>String</d2p1:RegNo>
    <d2p1:TotalPrice>0</d2p1:TotalPrice>
    <d2p1:VIN>String</d2p1:VIN>
  </VehicleDetails>
</CreateOCARequest>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

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