CDD Engine Web Service v2.14.0.0

<back to all web services

AllChecksOrderDataRequest

Requires Authentication
The following routes are available for this service:
POST/allchecks/submit/order
import 'package:servicestack/servicestack.dart';

class StandardOrderResponse implements IConvertible
{
    int? Status;
    String? CorrelationId;
    String? Message;

    StandardOrderResponse({this.Status,this.CorrelationId,this.Message});
    StandardOrderResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

class Partner implements IConvertible
{
    String? PartnerName;
    String? PartnerId;

    Partner({this.PartnerName,this.PartnerId});
    Partner.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

class Person implements IConvertible
{
    String? Title;
    String? FirstName;
    String? MiddleName;
    String? LastName;

    Person({this.Title,this.FirstName,this.MiddleName,this.LastName});
    Person.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Title = json['Title'];
        FirstName = json['FirstName'];
        MiddleName = json['MiddleName'];
        LastName = json['LastName'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Title': Title,
        'FirstName': FirstName,
        'MiddleName': MiddleName,
        'LastName': LastName
    };

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

class Contact extends Person implements IConvertible
{
    String? IdpGuid;
    String? TelephoneNumber;
    String? AltTelephoneNumber;
    String? Email;
    String? Position;
    String? PreferredContactMethod;
    String? PreferredContactBestTime;

    Contact({this.IdpGuid,this.TelephoneNumber,this.AltTelephoneNumber,this.Email,this.Position,this.PreferredContactMethod,this.PreferredContactBestTime});
    Contact.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        IdpGuid = json['IdpGuid'];
        TelephoneNumber = json['TelephoneNumber'];
        AltTelephoneNumber = json['AltTelephoneNumber'];
        Email = json['Email'];
        Position = json['Position'];
        PreferredContactMethod = json['PreferredContactMethod'];
        PreferredContactBestTime = json['PreferredContactBestTime'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'IdpGuid': IdpGuid,
        'TelephoneNumber': TelephoneNumber,
        'AltTelephoneNumber': AltTelephoneNumber,
        'Email': Email,
        'Position': Position,
        'PreferredContactMethod': PreferredContactMethod,
        'PreferredContactBestTime': PreferredContactBestTime
    });

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

class AuthorisedSigner extends Contact implements IConvertible
{
    DateTime? DateOfBirth;
    String? CountryCode;

    AuthorisedSigner({this.DateOfBirth,this.CountryCode});
    AuthorisedSigner.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

class OrderMeta implements IConvertible
{
    String? SourceSystem;
    String? SourceSystemIdentifier;
    String? Csr;
    String? UltimateParentId;
    String? OrderType;
    String? CustomerType;
    Partner? Partner;
    String? SellerCode;
    String? SellerEmail;
    String? SpecialInstructions;
    AuthorisedSigner? Contact;
    String? OfferDetails;
    DateTime? DateContractAccepted;
    bool? WorldpayBusinessFinanceInterest;
    bool? Sar;
    bool? HasSupportingFiles;

    OrderMeta({this.SourceSystem,this.SourceSystemIdentifier,this.Csr,this.UltimateParentId,this.OrderType,this.CustomerType,this.Partner,this.SellerCode,this.SellerEmail,this.SpecialInstructions,this.Contact,this.OfferDetails,this.DateContractAccepted,this.WorldpayBusinessFinanceInterest,this.Sar,this.HasSupportingFiles});
    OrderMeta.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        SourceSystem = json['SourceSystem'];
        SourceSystemIdentifier = json['SourceSystemIdentifier'];
        Csr = json['Csr'];
        UltimateParentId = json['UltimateParentId'];
        OrderType = json['OrderType'];
        CustomerType = json['CustomerType'];
        Partner = JsonConverters.fromJson(json['Partner'],'Partner',context!);
        SellerCode = json['SellerCode'];
        SellerEmail = json['SellerEmail'];
        SpecialInstructions = json['SpecialInstructions'];
        Contact = JsonConverters.fromJson(json['Contact'],'AuthorisedSigner',context!);
        OfferDetails = json['OfferDetails'];
        DateContractAccepted = JsonConverters.fromJson(json['DateContractAccepted'],'DateTime',context!);
        WorldpayBusinessFinanceInterest = json['WorldpayBusinessFinanceInterest'];
        Sar = json['Sar'];
        HasSupportingFiles = json['HasSupportingFiles'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'SourceSystem': SourceSystem,
        'SourceSystemIdentifier': SourceSystemIdentifier,
        'Csr': Csr,
        'UltimateParentId': UltimateParentId,
        'OrderType': OrderType,
        'CustomerType': CustomerType,
        'Partner': JsonConverters.toJson(Partner,'Partner',context!),
        'SellerCode': SellerCode,
        'SellerEmail': SellerEmail,
        'SpecialInstructions': SpecialInstructions,
        'Contact': JsonConverters.toJson(Contact,'AuthorisedSigner',context!),
        'OfferDetails': OfferDetails,
        'DateContractAccepted': JsonConverters.toJson(DateContractAccepted,'DateTime',context!),
        'WorldpayBusinessFinanceInterest': WorldpayBusinessFinanceInterest,
        'Sar': Sar,
        'HasSupportingFiles': HasSupportingFiles
    };

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

class Address implements IConvertible
{
    String? Address1;
    String? Address2;
    String? Address3;
    String? Postcode;
    String? City;
    String? State;
    String? Countrycode;

    Address({this.Address1,this.Address2,this.Address3,this.Postcode,this.City,this.State,this.Countrycode});
    Address.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Address1 = json['Address1'];
        Address2 = json['Address2'];
        Address3 = json['Address3'];
        Postcode = json['Postcode'];
        City = json['City'];
        State = json['State'];
        Countrycode = json['Countrycode'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Address1': Address1,
        'Address2': Address2,
        'Address3': Address3,
        'Postcode': Postcode,
        'City': City,
        'State': State,
        'Countrycode': Countrycode
    };

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

class MerchantAddress extends Address implements IConvertible
{
    String? AddressType;
    bool? IsCommercial;

    MerchantAddress({this.AddressType,this.IsCommercial});
    MerchantAddress.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        AddressType = json['AddressType'];
        IsCommercial = json['IsCommercial'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'AddressType': AddressType,
        'IsCommercial': IsCommercial
    });

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

class InvoiceContact extends Person implements IConvertible
{
    String? Email;
    String? Position;

    InvoiceContact({this.Email,this.Position});
    InvoiceContact.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        Email = json['Email'];
        Position = json['Position'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'Email': Email,
        'Position': Position
    });

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

class BankAccount implements IConvertible
{
    String? SortCode;
    String? AccountNumber;
    String? BankName;
    String? BankAccountName;
    String? SwiftCode;
    String? InternationalBankAccountNumber;

    BankAccount({this.SortCode,this.AccountNumber,this.BankName,this.BankAccountName,this.SwiftCode,this.InternationalBankAccountNumber});
    BankAccount.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        SortCode = json['SortCode'];
        AccountNumber = json['AccountNumber'];
        BankName = json['BankName'];
        BankAccountName = json['BankAccountName'];
        SwiftCode = json['SwiftCode'];
        InternationalBankAccountNumber = json['InternationalBankAccountNumber'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'SortCode': SortCode,
        'AccountNumber': AccountNumber,
        'BankName': BankName,
        'BankAccountName': BankAccountName,
        'SwiftCode': SwiftCode,
        'InternationalBankAccountNumber': InternationalBankAccountNumber
    };

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

class MerchantCategory implements IConvertible
{
    String? MerchantCategoryCode;
    String? MerchantCategoryDescription;
    String? DescriptionOfGoodsAndServices;

    MerchantCategory({this.MerchantCategoryCode,this.MerchantCategoryDescription,this.DescriptionOfGoodsAndServices});
    MerchantCategory.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'MerchantCategoryCode': MerchantCategoryCode,
        'MerchantCategoryDescription': MerchantCategoryDescription,
        'DescriptionOfGoodsAndServices': DescriptionOfGoodsAndServices
    };

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

class Financials implements IConvertible
{
    double? Annual;
    double? CardPercentage;
    double? CreditCardPercentage;
    double? AverageTransactionValue;
    double? CardNotPresentPercentage;

    Financials({this.Annual,this.CardPercentage,this.CreditCardPercentage,this.AverageTransactionValue,this.CardNotPresentPercentage});
    Financials.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Annual = JsonConverters.toDouble(json['Annual']);
        CardPercentage = JsonConverters.toDouble(json['CardPercentage']);
        CreditCardPercentage = JsonConverters.toDouble(json['CreditCardPercentage']);
        AverageTransactionValue = JsonConverters.toDouble(json['AverageTransactionValue']);
        CardNotPresentPercentage = JsonConverters.toDouble(json['CardNotPresentPercentage']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Annual': Annual,
        'CardPercentage': CardPercentage,
        'CreditCardPercentage': CreditCardPercentage,
        'AverageTransactionValue': AverageTransactionValue,
        'CardNotPresentPercentage': CardNotPresentPercentage
    };

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

class TradeAssociation implements IConvertible
{
    String? GroupName;
    String? MemberNumber;

    TradeAssociation({this.GroupName,this.MemberNumber});
    TradeAssociation.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

class PrincipalAddress extends Address implements IConvertible
{
    DateTime? StartDate;
    DateTime? EndDate;

    PrincipalAddress({this.StartDate,this.EndDate});
    PrincipalAddress.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

enum PositionType
{
    SoleTrader,
    Partner,
    Director,
    CompanySecretary,
    ChiefFinancialOfficer,
    Chairman,
    DesignatedBoardMember,
    Settlor,
    Treasurer,
    Trustee,
    ChiefExecutive,
    AuthorisedPersonWithConsent,
    NonExecutiveDirector,
    ContactPerson,
    Shareholder,
}

class Principal implements IConvertible
{
    String? Title;
    String? FirstName;
    String? MiddleName;
    String? LastName;
    DateTime? DateOfBirth;
    String? Nationality;
    List<PrincipalAddress>? HomeAddresses;
    double? OwnershipPercentage;
    PositionType? Position;
    bool? IsFinancialController;

    Principal({this.Title,this.FirstName,this.MiddleName,this.LastName,this.DateOfBirth,this.Nationality,this.HomeAddresses,this.OwnershipPercentage,this.Position,this.IsFinancialController});
    Principal.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Title = json['Title'];
        FirstName = json['FirstName'];
        MiddleName = json['MiddleName'];
        LastName = json['LastName'];
        DateOfBirth = JsonConverters.fromJson(json['DateOfBirth'],'DateTime',context!);
        Nationality = json['Nationality'];
        HomeAddresses = JsonConverters.fromJson(json['HomeAddresses'],'List<PrincipalAddress>',context!);
        OwnershipPercentage = JsonConverters.toDouble(json['OwnershipPercentage']);
        Position = JsonConverters.fromJson(json['Position'],'PositionType',context!);
        IsFinancialController = json['IsFinancialController'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Title': Title,
        'FirstName': FirstName,
        'MiddleName': MiddleName,
        'LastName': LastName,
        'DateOfBirth': JsonConverters.toJson(DateOfBirth,'DateTime',context!),
        'Nationality': Nationality,
        'HomeAddresses': JsonConverters.toJson(HomeAddresses,'List<PrincipalAddress>',context!),
        'OwnershipPercentage': OwnershipPercentage,
        'Position': JsonConverters.toJson(Position,'PositionType',context!),
        'IsFinancialController': IsFinancialController
    };

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

class Deposits implements IConvertible
{
    int? PerOfSalesWhereInitialDepositTaken;
    int? SizePerTotalValue;
    int? AvgTimeBeforeDeliveryDepositTaken;
    int? AvgTimeBeforeDeliveryBalanceTaken;

    Deposits({this.PerOfSalesWhereInitialDepositTaken,this.SizePerTotalValue,this.AvgTimeBeforeDeliveryDepositTaken,this.AvgTimeBeforeDeliveryBalanceTaken});
    Deposits.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        PerOfSalesWhereInitialDepositTaken = json['PerOfSalesWhereInitialDepositTaken'];
        SizePerTotalValue = json['SizePerTotalValue'];
        AvgTimeBeforeDeliveryDepositTaken = json['AvgTimeBeforeDeliveryDepositTaken'];
        AvgTimeBeforeDeliveryBalanceTaken = json['AvgTimeBeforeDeliveryBalanceTaken'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'PerOfSalesWhereInitialDepositTaken': PerOfSalesWhereInitialDepositTaken,
        'SizePerTotalValue': SizePerTotalValue,
        'AvgTimeBeforeDeliveryDepositTaken': AvgTimeBeforeDeliveryDepositTaken,
        'AvgTimeBeforeDeliveryBalanceTaken': AvgTimeBeforeDeliveryBalanceTaken
    };

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

class WarrantiesAndGuarantees implements IConvertible
{
    int? PercCardTurnover;
    int? AvgLengthInMonths;
    int? PercGoodsReturned;
    String? ThirdPartyProviders;

    WarrantiesAndGuarantees({this.PercCardTurnover,this.AvgLengthInMonths,this.PercGoodsReturned,this.ThirdPartyProviders});
    WarrantiesAndGuarantees.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        PercCardTurnover = json['PercCardTurnover'];
        AvgLengthInMonths = json['AvgLengthInMonths'];
        PercGoodsReturned = json['PercGoodsReturned'];
        ThirdPartyProviders = json['ThirdPartyProviders'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'PercCardTurnover': PercCardTurnover,
        'AvgLengthInMonths': AvgLengthInMonths,
        'PercGoodsReturned': PercGoodsReturned,
        'ThirdPartyProviders': ThirdPartyProviders
    };

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

class Prepayments implements IConvertible
{
    int? PercGoodsWherePaymentTakenPriorToDelivery;
    int? AvgDaysPaymentTakenInAdvance;

    Prepayments({this.PercGoodsWherePaymentTakenPriorToDelivery,this.AvgDaysPaymentTakenInAdvance});
    Prepayments.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

class MembershipsSubscriptionAndInsurancePremiums implements IConvertible
{
    int? PercCardTurnover;
    int? AvgLengthInMonths;
    double? MembershipCost;

    MembershipsSubscriptionAndInsurancePremiums({this.PercCardTurnover,this.AvgLengthInMonths,this.MembershipCost});
    MembershipsSubscriptionAndInsurancePremiums.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        PercCardTurnover = json['PercCardTurnover'];
        AvgLengthInMonths = json['AvgLengthInMonths'];
        MembershipCost = JsonConverters.toDouble(json['MembershipCost']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'PercCardTurnover': PercCardTurnover,
        'AvgLengthInMonths': AvgLengthInMonths,
        'MembershipCost': MembershipCost
    };

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

class GoodsAndServices implements IConvertible
{
    bool? GoodsProvidedByThirdParty;
    Deposits? Deposits;
    WarrantiesAndGuarantees? WarrantiesAndGuarantees;
    Prepayments? Prepayments;
    MembershipsSubscriptionAndInsurancePremiums? MembershipsSubscriptionAndInsurancePremiums;
    Address? StockHeldAtAnotherAddressLocation;

    GoodsAndServices({this.GoodsProvidedByThirdParty,this.Deposits,this.WarrantiesAndGuarantees,this.Prepayments,this.MembershipsSubscriptionAndInsurancePremiums,this.StockHeldAtAnotherAddressLocation});
    GoodsAndServices.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        GoodsProvidedByThirdParty = json['GoodsProvidedByThirdParty'];
        Deposits = JsonConverters.fromJson(json['Deposits'],'Deposits',context!);
        WarrantiesAndGuarantees = JsonConverters.fromJson(json['WarrantiesAndGuarantees'],'WarrantiesAndGuarantees',context!);
        Prepayments = JsonConverters.fromJson(json['Prepayments'],'Prepayments',context!);
        MembershipsSubscriptionAndInsurancePremiums = JsonConverters.fromJson(json['MembershipsSubscriptionAndInsurancePremiums'],'MembershipsSubscriptionAndInsurancePremiums',context!);
        StockHeldAtAnotherAddressLocation = JsonConverters.fromJson(json['StockHeldAtAnotherAddressLocation'],'Address',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'GoodsProvidedByThirdParty': GoodsProvidedByThirdParty,
        'Deposits': JsonConverters.toJson(Deposits,'Deposits',context!),
        'WarrantiesAndGuarantees': JsonConverters.toJson(WarrantiesAndGuarantees,'WarrantiesAndGuarantees',context!),
        'Prepayments': JsonConverters.toJson(Prepayments,'Prepayments',context!),
        'MembershipsSubscriptionAndInsurancePremiums': JsonConverters.toJson(MembershipsSubscriptionAndInsurancePremiums,'MembershipsSubscriptionAndInsurancePremiums',context!),
        'StockHeldAtAnotherAddressLocation': JsonConverters.toJson(StockHeldAtAnotherAddressLocation,'Address',context!)
    };

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

class AccessibilityOptions implements IConvertible
{
    bool? AudiotapeRequired;
    bool? LargePrintRequired;
    bool? UncontractedBrailleGrade1Required;
    bool? UncontractedBrailleGrade2Required;
    bool? NextGenerationTextRequired;

    AccessibilityOptions({this.AudiotapeRequired,this.LargePrintRequired,this.UncontractedBrailleGrade1Required,this.UncontractedBrailleGrade2Required,this.NextGenerationTextRequired});
    AccessibilityOptions.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        AudiotapeRequired = json['AudiotapeRequired'];
        LargePrintRequired = json['LargePrintRequired'];
        UncontractedBrailleGrade1Required = json['UncontractedBrailleGrade1Required'];
        UncontractedBrailleGrade2Required = json['UncontractedBrailleGrade2Required'];
        NextGenerationTextRequired = json['NextGenerationTextRequired'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'AudiotapeRequired': AudiotapeRequired,
        'LargePrintRequired': LargePrintRequired,
        'UncontractedBrailleGrade1Required': UncontractedBrailleGrade1Required,
        'UncontractedBrailleGrade2Required': UncontractedBrailleGrade2Required,
        'NextGenerationTextRequired': NextGenerationTextRequired
    };

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

class ClearingDetails implements IConvertible
{
    String? MerchantUrl;
    String? Telephone;
    String? Email;

    ClearingDetails({this.MerchantUrl,this.Telephone,this.Email});
    ClearingDetails.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'MerchantUrl': MerchantUrl,
        'Telephone': Telephone,
        'Email': Email
    };

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

enum CardType
{
    VisaDebit,
    VisaCredit,
    VisaCommercial,
    MastercardDebit,
    MastercardCredit,
    MastercardCommercial,
    MastercardWorldSignia,
    JcbCredit,
    JcbDebit,
    JcbCommercial,
    DinersDiscoverCredit,
    DinersDiscoverDebit,
    DinersDiscoverCommercial,
    Amex,
    ChinaUnionPayCredit,
    ChinaUnionPayDebit,
    ChinaUnionPayCommercial,
    VisaBusinessDebit,
    MastercardBusiness,
}

class RateChargePair implements IConvertible
{
    double? Percent;
    double? Cost;

    RateChargePair({this.Percent,this.Cost});
    RateChargePair.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

class CardCharge implements IConvertible
{
    CardType? CardType;
    RateChargePair? Purchase;
    RateChargePair? Refund;

    CardCharge({this.CardType,this.Purchase,this.Refund});
    CardCharge.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CardType = JsonConverters.fromJson(json['CardType'],'CardType',context!);
        Purchase = JsonConverters.fromJson(json['Purchase'],'RateChargePair',context!);
        Refund = JsonConverters.fromJson(json['Refund'],'RateChargePair',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CardType': JsonConverters.toJson(CardType,'CardType',context!),
        'Purchase': JsonConverters.toJson(Purchase,'RateChargePair',context!),
        'Refund': JsonConverters.toJson(Refund,'RateChargePair',context!)
    };

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

enum PremiumTransactionChargeType
{
    Magstripe,
    CnpMoto,
    Paper,
    PanKeyEntry,
    SecureEcom,
    NonSecureEcom,
    InterRegional,
    IntraRegional,
    NonAuth,
}

class PremiumTransactionCharge implements IConvertible
{
    PremiumTransactionChargeType? Type;
    RateChargePair? CreditCard;
    RateChargePair? DebitCard;

    PremiumTransactionCharge({this.Type,this.CreditCard,this.DebitCard});
    PremiumTransactionCharge.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Type = JsonConverters.fromJson(json['Type'],'PremiumTransactionChargeType',context!);
        CreditCard = JsonConverters.fromJson(json['CreditCard'],'RateChargePair',context!);
        DebitCard = JsonConverters.fromJson(json['DebitCard'],'RateChargePair',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Type': JsonConverters.toJson(Type,'PremiumTransactionChargeType',context!),
        'CreditCard': JsonConverters.toJson(CreditCard,'RateChargePair',context!),
        'DebitCard': JsonConverters.toJson(DebitCard,'RateChargePair',context!)
    };

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

class AdditionalTariff implements IConvertible
{
    String? Type;
    double? Cost;

    AdditionalTariff({this.Type,this.Cost});
    AdditionalTariff.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

class Rates implements IConvertible
{
    List<CardCharge>? CardCharges;
    List<PremiumTransactionCharge>? PremiumTransactionCharges;
    List<AdditionalTariff>? AdditionalTariffs;

    Rates({this.CardCharges,this.PremiumTransactionCharges,this.AdditionalTariffs});
    Rates.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CardCharges = JsonConverters.fromJson(json['CardCharges'],'List<CardCharge>',context!);
        PremiumTransactionCharges = JsonConverters.fromJson(json['PremiumTransactionCharges'],'List<PremiumTransactionCharge>',context!);
        AdditionalTariffs = JsonConverters.fromJson(json['AdditionalTariffs'],'List<AdditionalTariff>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CardCharges': JsonConverters.toJson(CardCharges,'List<CardCharge>',context!),
        'PremiumTransactionCharges': JsonConverters.toJson(PremiumTransactionCharges,'List<PremiumTransactionCharge>',context!),
        'AdditionalTariffs': JsonConverters.toJson(AdditionalTariffs,'List<AdditionalTariff>',context!)
    };

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

enum CurrencyCodeType
{
    GBP,
    EUR,
    USD,
    AED,
    AFN,
    ALL,
    AMD,
    ANG,
    AOA,
    ARS,
    AUD,
    AWG,
    AZN,
    BAM,
    BBD,
    BDT,
    BGN,
    BHD,
    BIF,
    BMD,
    BND,
    BOB,
    BRL,
    BSD,
    BTN,
    BWP,
    BYR,
    BZD,
    CAD,
    CDF,
    CHF,
    CLP,
    CNY,
    COP,
    COU,
    CRC,
    CUC,
    CUP,
    CVE,
    CZK,
    DJF,
    DKK,
    DOP,
    DZD,
    EEK,
    EGP,
    ERN,
    ETB,
    FJD,
    FKP,
    GEL,
    GHS,
    GIP,
    GMD,
    GNF,
    GTQ,
    GYD,
    HKD,
    HNL,
    HRK,
    HTG,
    HUF,
    IDR,
    ILS,
    INR,
    IQD,
    IRR,
    ISK,
    JMD,
    JOD,
    JPY,
    KES,
    KGS,
    KHR,
    KMF,
    KPW,
    KRW,
    KWD,
    KYD,
    KZT,
    LAK,
    LBP,
    LKR,
    LRD,
    LSL,
    LTL,
    LVL,
    LYD,
    MAD,
    MDL,
    MGA,
    MKD,
    MMK,
    MNT,
    MOP,
    MRO,
    MUR,
    MVR,
    MWK,
    MXN,
    MYR,
    MZN,
    NAD,
    NGN,
    NIO,
    NOK,
    NPR,
    NZD,
    OMR,
    PAB,
    PEN,
    PGK,
    PHP,
    PKR,
    PLN,
    PYG,
    QAR,
    RON,
    RSD,
    RUB,
    RWF,
    SAR,
    SBD,
    SCR,
    SDG,
    SEK,
    SGD,
    SHP,
    SLL,
    SOS,
    SRD,
    STD,
    SYP,
    SZL,
    THB,
    TJS,
    TMT,
    TND,
    TOP,
    TRY,
    TTD,
    TWD,
    TZS,
    UAH,
    UGX,
    UYU,
    UZS,
    VEF,
    VND,
    VUV,
    WST,
    YER,
    ZAR,
    ZMK,
    ZWL,
}

class TradingCurrency implements IConvertible
{
    List<CurrencyCodeType>? TransactionCurrencies;
    CurrencyCodeType? SettlementCurrency;
    String? SettlementBankSwift;
    String? SettlementBankIban;

    TradingCurrency({this.TransactionCurrencies,this.SettlementCurrency,this.SettlementBankSwift,this.SettlementBankIban});
    TradingCurrency.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        TransactionCurrencies = JsonConverters.fromJson(json['TransactionCurrencies'],'List<CurrencyCodeType>',context!);
        SettlementCurrency = JsonConverters.fromJson(json['SettlementCurrency'],'CurrencyCodeType',context!);
        SettlementBankSwift = json['SettlementBankSwift'];
        SettlementBankIban = json['SettlementBankIban'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'TransactionCurrencies': JsonConverters.toJson(TransactionCurrencies,'List<CurrencyCodeType>',context!),
        'SettlementCurrency': JsonConverters.toJson(SettlementCurrency,'CurrencyCodeType',context!),
        'SettlementBankSwift': SettlementBankSwift,
        'SettlementBankIban': SettlementBankIban
    };

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

class Acquiring implements IConvertible
{
    int? SettlementPeriod;
    String? FundingMode;
    Rates? Rates;
    List<TradingCurrency>? TradingCurrencies;

    Acquiring({this.SettlementPeriod,this.FundingMode,this.Rates,this.TradingCurrencies});
    Acquiring.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        SettlementPeriod = json['SettlementPeriod'];
        FundingMode = json['FundingMode'];
        Rates = JsonConverters.fromJson(json['Rates'],'Rates',context!);
        TradingCurrencies = JsonConverters.fromJson(json['TradingCurrencies'],'List<TradingCurrency>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'SettlementPeriod': SettlementPeriod,
        'FundingMode': FundingMode,
        'Rates': JsonConverters.toJson(Rates,'Rates',context!),
        'TradingCurrencies': JsonConverters.toJson(TradingCurrencies,'List<TradingCurrency>',context!)
    };

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

enum ProductFeeType
{
    HireCost,
    TransactionCost,
    ServiceFee,
    ManagedServiceSetup,
    ManagedServiceMonthly,
}

class ProductFee implements IConvertible
{
    ProductFeeType? Type;
    double? Cost;

    ProductFee({this.Type,this.Cost});
    ProductFee.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Type = JsonConverters.fromJson(json['Type'],'ProductFeeType',context!);
        Cost = JsonConverters.toDouble(json['Cost']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Type': JsonConverters.toJson(Type,'ProductFeeType',context!),
        'Cost': Cost
    };

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

class ProductOption implements IConvertible
{
    String? Type;
    String? Value;

    ProductOption({this.Type,this.Value});
    ProductOption.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

class Product implements IConvertible
{
    String? Name;
    String? Type;
    String? Variant;
    int? Quantity;
    List<ProductFee>? RelatedFees;
    List<ProductOption>? Options;

    Product({this.Name,this.Type,this.Variant,this.Quantity,this.RelatedFees,this.Options});
    Product.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Name = json['Name'];
        Type = json['Type'];
        Variant = json['Variant'];
        Quantity = json['Quantity'];
        RelatedFees = JsonConverters.fromJson(json['RelatedFees'],'List<ProductFee>',context!);
        Options = JsonConverters.fromJson(json['Options'],'List<ProductOption>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Name': Name,
        'Type': Type,
        'Variant': Variant,
        'Quantity': Quantity,
        'RelatedFees': JsonConverters.toJson(RelatedFees,'List<ProductFee>',context!),
        'Options': JsonConverters.toJson(Options,'List<ProductOption>',context!)
    };

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

class Subscription implements IConvertible
{
    String? Proposition;
    String? PricingPackage;
    int? Term;
    int? RenewalLength;
    Acquiring? Acquiring;
    List<Product>? Products;

    Subscription({this.Proposition,this.PricingPackage,this.Term,this.RenewalLength,this.Acquiring,this.Products});
    Subscription.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Proposition = json['Proposition'];
        PricingPackage = json['PricingPackage'];
        Term = json['Term'];
        RenewalLength = json['RenewalLength'];
        Acquiring = JsonConverters.fromJson(json['Acquiring'],'Acquiring',context!);
        Products = JsonConverters.fromJson(json['Products'],'List<Product>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Proposition': Proposition,
        'PricingPackage': PricingPackage,
        'Term': Term,
        'RenewalLength': RenewalLength,
        'Acquiring': JsonConverters.toJson(Acquiring,'Acquiring',context!),
        'Products': JsonConverters.toJson(Products,'List<Product>',context!)
    };

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

class OrderPayload implements IConvertible
{
    String? PartyId;
    String? ParentPartyId;
    String? LegalName;
    String? TradingName;
    String? PartyName;
    List<MerchantAddress>? Addresses;
    Contact? TradingContact;
    InvoiceContact? InvoiceContact;
    BankAccount? SettlementBankAccount;
    BankAccount? ChargesBankAccount;
    String? DirectDebitCorrespondenceEmail;
    String? WebsiteAddress;
    String? CompanyType;
    String? CompanyTypeOther;
    String? CompanyRegistrationNumber;
    String? CharityNumber;
    List<MerchantCategory>? MerchantCategories;
    String? VatNumber;
    DateTime? DateStartedTrading;
    DateTime? AnticipatedGoLiveDate;
    String? CountryOfIncorporation;
    String? RegionOfIncorporation;
    Financials? Financials;
    bool? NewToCards;
    TradeAssociation? TradeAssociation;
    List<Principal>? Principals;
    GoodsAndServices? GoodsAndServices;
    AccessibilityOptions? AccessibilityOptions;
    ClearingDetails? ClearingDetails;
    Acquiring? Acquiring;
    List<Subscription>? Subscriptions;
    List<OrderPayload>? Children;

    OrderPayload({this.PartyId,this.ParentPartyId,this.LegalName,this.TradingName,this.PartyName,this.Addresses,this.TradingContact,this.InvoiceContact,this.SettlementBankAccount,this.ChargesBankAccount,this.DirectDebitCorrespondenceEmail,this.WebsiteAddress,this.CompanyType,this.CompanyTypeOther,this.CompanyRegistrationNumber,this.CharityNumber,this.MerchantCategories,this.VatNumber,this.DateStartedTrading,this.AnticipatedGoLiveDate,this.CountryOfIncorporation,this.RegionOfIncorporation,this.Financials,this.NewToCards,this.TradeAssociation,this.Principals,this.GoodsAndServices,this.AccessibilityOptions,this.ClearingDetails,this.Acquiring,this.Subscriptions,this.Children});
    OrderPayload.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        PartyId = json['PartyId'];
        ParentPartyId = json['ParentPartyId'];
        LegalName = json['LegalName'];
        TradingName = json['TradingName'];
        PartyName = json['PartyName'];
        Addresses = JsonConverters.fromJson(json['Addresses'],'List<MerchantAddress>',context!);
        TradingContact = JsonConverters.fromJson(json['TradingContact'],'Contact',context!);
        InvoiceContact = JsonConverters.fromJson(json['InvoiceContact'],'InvoiceContact',context!);
        SettlementBankAccount = JsonConverters.fromJson(json['SettlementBankAccount'],'BankAccount',context!);
        ChargesBankAccount = JsonConverters.fromJson(json['ChargesBankAccount'],'BankAccount',context!);
        DirectDebitCorrespondenceEmail = json['DirectDebitCorrespondenceEmail'];
        WebsiteAddress = json['WebsiteAddress'];
        CompanyType = json['CompanyType'];
        CompanyTypeOther = json['CompanyTypeOther'];
        CompanyRegistrationNumber = json['CompanyRegistrationNumber'];
        CharityNumber = json['CharityNumber'];
        MerchantCategories = JsonConverters.fromJson(json['MerchantCategories'],'List<MerchantCategory>',context!);
        VatNumber = json['VatNumber'];
        DateStartedTrading = JsonConverters.fromJson(json['DateStartedTrading'],'DateTime',context!);
        AnticipatedGoLiveDate = JsonConverters.fromJson(json['AnticipatedGoLiveDate'],'DateTime',context!);
        CountryOfIncorporation = json['CountryOfIncorporation'];
        RegionOfIncorporation = json['RegionOfIncorporation'];
        Financials = JsonConverters.fromJson(json['Financials'],'Financials',context!);
        NewToCards = json['NewToCards'];
        TradeAssociation = JsonConverters.fromJson(json['TradeAssociation'],'TradeAssociation',context!);
        Principals = JsonConverters.fromJson(json['Principals'],'List<Principal>',context!);
        GoodsAndServices = JsonConverters.fromJson(json['GoodsAndServices'],'GoodsAndServices',context!);
        AccessibilityOptions = JsonConverters.fromJson(json['AccessibilityOptions'],'AccessibilityOptions',context!);
        ClearingDetails = JsonConverters.fromJson(json['ClearingDetails'],'ClearingDetails',context!);
        Acquiring = JsonConverters.fromJson(json['Acquiring'],'Acquiring',context!);
        Subscriptions = JsonConverters.fromJson(json['Subscriptions'],'List<Subscription>',context!);
        Children = JsonConverters.fromJson(json['Children'],'List<OrderPayload>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'PartyId': PartyId,
        'ParentPartyId': ParentPartyId,
        'LegalName': LegalName,
        'TradingName': TradingName,
        'PartyName': PartyName,
        'Addresses': JsonConverters.toJson(Addresses,'List<MerchantAddress>',context!),
        'TradingContact': JsonConverters.toJson(TradingContact,'Contact',context!),
        'InvoiceContact': JsonConverters.toJson(InvoiceContact,'InvoiceContact',context!),
        'SettlementBankAccount': JsonConverters.toJson(SettlementBankAccount,'BankAccount',context!),
        'ChargesBankAccount': JsonConverters.toJson(ChargesBankAccount,'BankAccount',context!),
        'DirectDebitCorrespondenceEmail': DirectDebitCorrespondenceEmail,
        'WebsiteAddress': WebsiteAddress,
        'CompanyType': CompanyType,
        'CompanyTypeOther': CompanyTypeOther,
        'CompanyRegistrationNumber': CompanyRegistrationNumber,
        'CharityNumber': CharityNumber,
        'MerchantCategories': JsonConverters.toJson(MerchantCategories,'List<MerchantCategory>',context!),
        'VatNumber': VatNumber,
        'DateStartedTrading': JsonConverters.toJson(DateStartedTrading,'DateTime',context!),
        'AnticipatedGoLiveDate': JsonConverters.toJson(AnticipatedGoLiveDate,'DateTime',context!),
        'CountryOfIncorporation': CountryOfIncorporation,
        'RegionOfIncorporation': RegionOfIncorporation,
        'Financials': JsonConverters.toJson(Financials,'Financials',context!),
        'NewToCards': NewToCards,
        'TradeAssociation': JsonConverters.toJson(TradeAssociation,'TradeAssociation',context!),
        'Principals': JsonConverters.toJson(Principals,'List<Principal>',context!),
        'GoodsAndServices': JsonConverters.toJson(GoodsAndServices,'GoodsAndServices',context!),
        'AccessibilityOptions': JsonConverters.toJson(AccessibilityOptions,'AccessibilityOptions',context!),
        'ClearingDetails': JsonConverters.toJson(ClearingDetails,'ClearingDetails',context!),
        'Acquiring': JsonConverters.toJson(Acquiring,'Acquiring',context!),
        'Subscriptions': JsonConverters.toJson(Subscriptions,'List<Subscription>',context!),
        'Children': JsonConverters.toJson(Children,'List<OrderPayload>',context!)
    };

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

class Order implements IConvertible
{
    OrderMeta? Meta;
    OrderPayload? Payload;

    Order({this.Meta,this.Payload});
    Order.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Meta = JsonConverters.fromJson(json['Meta'],'OrderMeta',context!);
        Payload = JsonConverters.fromJson(json['Payload'],'OrderPayload',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Meta': JsonConverters.toJson(Meta,'OrderMeta',context!),
        'Payload': JsonConverters.toJson(Payload,'OrderPayload',context!)
    };

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

class IdentityVerificationDocuments implements IConvertible
{
    String? documentId;
    String? authenticity;

    IdentityVerificationDocuments({this.documentId,this.authenticity});
    IdentityVerificationDocuments.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

class AllChecksOrderDataRequest implements IConvertible
{
    String? CorrelationId;
    Order? OrderJson;
    String? NapPartyId;
    String? LEID;
    String? OrderId;
    List<String>? PartyIndividuals;
    List<IdentityVerificationDocuments>? IdentityVerificationDocuments;

    AllChecksOrderDataRequest({this.CorrelationId,this.OrderJson,this.NapPartyId,this.LEID,this.OrderId,this.PartyIndividuals,this.IdentityVerificationDocuments});
    AllChecksOrderDataRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CorrelationId = json['CorrelationId'];
        OrderJson = JsonConverters.fromJson(json['OrderJson'],'Order',context!);
        NapPartyId = json['NapPartyId'];
        LEID = json['LEID'];
        OrderId = json['OrderId'];
        PartyIndividuals = JsonConverters.fromJson(json['PartyIndividuals'],'List<String>',context!);
        IdentityVerificationDocuments = JsonConverters.fromJson(json['IdentityVerificationDocuments'],'List<IdentityVerificationDocuments>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CorrelationId': CorrelationId,
        'OrderJson': JsonConverters.toJson(OrderJson,'Order',context!),
        'NapPartyId': NapPartyId,
        'LEID': LEID,
        'OrderId': OrderId,
        'PartyIndividuals': JsonConverters.toJson(PartyIndividuals,'List<String>',context!),
        'IdentityVerificationDocuments': JsonConverters.toJson(IdentityVerificationDocuments,'List<IdentityVerificationDocuments>',context!)
    };

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

class Address implements IConvertible
{
    String? Address1;
    String? Address2;
    String? Address3;
    String? Postcode;
    String? City;
    String? State;
    String? CountryCode;

    Address({this.Address1,this.Address2,this.Address3,this.Postcode,this.City,this.State,this.CountryCode});
    Address.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Address1 = json['Address1'];
        Address2 = json['Address2'];
        Address3 = json['Address3'];
        Postcode = json['Postcode'];
        City = json['City'];
        State = json['State'];
        CountryCode = json['CountryCode'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Address1': Address1,
        'Address2': Address2,
        'Address3': Address3,
        'Postcode': Postcode,
        'City': City,
        'State': State,
        'CountryCode': CountryCode
    };

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

TypeContext _ctx = TypeContext(library: 'wpcdd_featuretest_ws.worldpay.com', types: <String, TypeInfo> {
    'StandardOrderResponse': TypeInfo(TypeOf.Class, create:() => StandardOrderResponse()),
    'Partner': TypeInfo(TypeOf.Class, create:() => Partner()),
    'Person': TypeInfo(TypeOf.Class, create:() => Person()),
    'Contact': TypeInfo(TypeOf.Class, create:() => Contact()),
    'AuthorisedSigner': TypeInfo(TypeOf.Class, create:() => AuthorisedSigner()),
    'OrderMeta': TypeInfo(TypeOf.Class, create:() => OrderMeta()),
    'Address': TypeInfo(TypeOf.Class, create:() => Address()),
    'MerchantAddress': TypeInfo(TypeOf.Class, create:() => MerchantAddress()),
    'InvoiceContact': TypeInfo(TypeOf.Class, create:() => InvoiceContact()),
    'BankAccount': TypeInfo(TypeOf.Class, create:() => BankAccount()),
    'MerchantCategory': TypeInfo(TypeOf.Class, create:() => MerchantCategory()),
    'Financials': TypeInfo(TypeOf.Class, create:() => Financials()),
    'TradeAssociation': TypeInfo(TypeOf.Class, create:() => TradeAssociation()),
    'PrincipalAddress': TypeInfo(TypeOf.Class, create:() => PrincipalAddress()),
    'PositionType': TypeInfo(TypeOf.Enum, enumValues:PositionType.values),
    'Principal': TypeInfo(TypeOf.Class, create:() => Principal()),
    'List<PrincipalAddress>': TypeInfo(TypeOf.Class, create:() => <PrincipalAddress>[]),
    'Deposits': TypeInfo(TypeOf.Class, create:() => Deposits()),
    'WarrantiesAndGuarantees': TypeInfo(TypeOf.Class, create:() => WarrantiesAndGuarantees()),
    'Prepayments': TypeInfo(TypeOf.Class, create:() => Prepayments()),
    'MembershipsSubscriptionAndInsurancePremiums': TypeInfo(TypeOf.Class, create:() => MembershipsSubscriptionAndInsurancePremiums()),
    'GoodsAndServices': TypeInfo(TypeOf.Class, create:() => GoodsAndServices()),
    'AccessibilityOptions': TypeInfo(TypeOf.Class, create:() => AccessibilityOptions()),
    'ClearingDetails': TypeInfo(TypeOf.Class, create:() => ClearingDetails()),
    'CardType': TypeInfo(TypeOf.Enum, enumValues:CardType.values),
    'RateChargePair': TypeInfo(TypeOf.Class, create:() => RateChargePair()),
    'CardCharge': TypeInfo(TypeOf.Class, create:() => CardCharge()),
    'PremiumTransactionChargeType': TypeInfo(TypeOf.Enum, enumValues:PremiumTransactionChargeType.values),
    'PremiumTransactionCharge': TypeInfo(TypeOf.Class, create:() => PremiumTransactionCharge()),
    'AdditionalTariff': TypeInfo(TypeOf.Class, create:() => AdditionalTariff()),
    'Rates': TypeInfo(TypeOf.Class, create:() => Rates()),
    'List<CardCharge>': TypeInfo(TypeOf.Class, create:() => <CardCharge>[]),
    'List<PremiumTransactionCharge>': TypeInfo(TypeOf.Class, create:() => <PremiumTransactionCharge>[]),
    'List<AdditionalTariff>': TypeInfo(TypeOf.Class, create:() => <AdditionalTariff>[]),
    'CurrencyCodeType': TypeInfo(TypeOf.Enum, enumValues:CurrencyCodeType.values),
    'TradingCurrency': TypeInfo(TypeOf.Class, create:() => TradingCurrency()),
    'List<CurrencyCodeType>': TypeInfo(TypeOf.Class, create:() => <CurrencyCodeType>[]),
    'Acquiring': TypeInfo(TypeOf.Class, create:() => Acquiring()),
    'List<TradingCurrency>': TypeInfo(TypeOf.Class, create:() => <TradingCurrency>[]),
    'ProductFeeType': TypeInfo(TypeOf.Enum, enumValues:ProductFeeType.values),
    'ProductFee': TypeInfo(TypeOf.Class, create:() => ProductFee()),
    'ProductOption': TypeInfo(TypeOf.Class, create:() => ProductOption()),
    'Product': TypeInfo(TypeOf.Class, create:() => Product()),
    'List<ProductFee>': TypeInfo(TypeOf.Class, create:() => <ProductFee>[]),
    'List<ProductOption>': TypeInfo(TypeOf.Class, create:() => <ProductOption>[]),
    'Subscription': TypeInfo(TypeOf.Class, create:() => Subscription()),
    'List<Product>': TypeInfo(TypeOf.Class, create:() => <Product>[]),
    'OrderPayload': TypeInfo(TypeOf.Class, create:() => OrderPayload()),
    'List<MerchantAddress>': TypeInfo(TypeOf.Class, create:() => <MerchantAddress>[]),
    'List<MerchantCategory>': TypeInfo(TypeOf.Class, create:() => <MerchantCategory>[]),
    'List<Principal>': TypeInfo(TypeOf.Class, create:() => <Principal>[]),
    'List<Subscription>': TypeInfo(TypeOf.Class, create:() => <Subscription>[]),
    'List<OrderPayload>': TypeInfo(TypeOf.Class, create:() => <OrderPayload>[]),
    'Order': TypeInfo(TypeOf.Class, create:() => Order()),
    'IdentityVerificationDocuments': TypeInfo(TypeOf.Class, create:() => IdentityVerificationDocuments()),
    'AllChecksOrderDataRequest': TypeInfo(TypeOf.Class, create:() => AllChecksOrderDataRequest()),
    'List<IdentityVerificationDocuments>': TypeInfo(TypeOf.Class, create:() => <IdentityVerificationDocuments>[]),
});

Dart AllChecksOrderDataRequest DTOs

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

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

HTTP + JSON

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

POST /allchecks/submit/order HTTP/1.1 
Host: wpcdd-featuretest-ws.worldpay.com 
Accept: application/json
Content-Type: application/json
Content-Length: length

{"CorrelationId":"String","OrderJson":{"Meta":{"SourceSystem":"String","SourceSystemIdentifier":"String","Csr":"String","UltimateParentId":"String","OrderType":"String","CustomerType":"String","Partner":{"PartnerName":"String","PartnerId":"String"},"SellerCode":"String","SellerEmail":"String","SpecialInstructions":"String","Contact":{"DateOfBirth":"\/Date(-62135596800000-0000)\/","CountryCode":"String","IdpGuid":"00000000000000000000000000000000","TelephoneNumber":"String","AltTelephoneNumber":"String","Email":"String","Position":"String","PreferredContactMethod":"String","PreferredContactBestTime":"String","Title":"String","FirstName":"String","MiddleName":"String","LastName":"String"},"OfferDetails":"String","DateContractAccepted":"\/Date(-62135596800000-0000)\/","WorldpayBusinessFinanceInterest":false,"Sar":false,"HasSupportingFiles":false},"Payload":{"PartyId":"String","ParentPartyId":"String","LegalName":"String","TradingName":"String","PartyName":"String","TradingContact":{"IdpGuid":"00000000000000000000000000000000","TelephoneNumber":"String","AltTelephoneNumber":"String","Email":"String","Position":"String","PreferredContactMethod":"String","PreferredContactBestTime":"String","Title":"String","FirstName":"String","MiddleName":"String","LastName":"String"},"InvoiceContact":{"Email":"String","Position":"String","Title":"String","FirstName":"String","MiddleName":"String","LastName":"String"},"SettlementBankAccount":{"SortCode":"String","AccountNumber":"String","BankName":"String","BankAccountName":"String","SwiftCode":"String","InternationalBankAccountNumber":"String"},"ChargesBankAccount":{"SortCode":"String","AccountNumber":"String","BankName":"String","BankAccountName":"String","SwiftCode":"String","InternationalBankAccountNumber":"String"},"DirectDebitCorrespondenceEmail":"String","WebsiteAddress":"String","CompanyType":"String","CompanyTypeOther":"String","CompanyRegistrationNumber":"String","CharityNumber":"String","VatNumber":"String","DateStartedTrading":"\/Date(-62135596800000-0000)\/","AnticipatedGoLiveDate":"\/Date(-62135596800000-0000)\/","CountryOfIncorporation":"String","RegionOfIncorporation":"String","Financials":{"Annual":0,"CardPercentage":0,"CreditCardPercentage":0,"AverageTransactionValue":0,"CardNotPresentPercentage":0},"NewToCards":false,"TradeAssociation":{"GroupName":"String","MemberNumber":"String"},"GoodsAndServices":{"GoodsProvidedByThirdParty":false,"Deposits":{"PerOfSalesWhereInitialDepositTaken":0,"SizePerTotalValue":0,"AvgTimeBeforeDeliveryDepositTaken":0,"AvgTimeBeforeDeliveryBalanceTaken":0},"WarrantiesAndGuarantees":{"PercCardTurnover":0,"AvgLengthInMonths":0,"PercGoodsReturned":0,"ThirdPartyProviders":"String"},"Prepayments":{"PercGoodsWherePaymentTakenPriorToDelivery":0,"AvgDaysPaymentTakenInAdvance":0},"MembershipsSubscriptionAndInsurancePremiums":{"PercCardTurnover":0,"AvgLengthInMonths":0,"MembershipCost":0},"StockHeldAtAnotherAddressLocation":{"Address1":"String","Address2":"String","Address3":"String","Postcode":"String","City":"String","State":"String","CountryCode":"String"}},"AccessibilityOptions":{"AudiotapeRequired":false,"LargePrintRequired":false,"UncontractedBrailleGrade1Required":false,"UncontractedBrailleGrade2Required":false,"NextGenerationTextRequired":false},"ClearingDetails":{"MerchantUrl":"String","Telephone":"String","Email":"String"},"Acquiring":{"SettlementPeriod":0,"FundingMode":"String","Rates":{}}}},"NapPartyId":"String","LEID":"String","OrderId":"String","PartyIndividuals":["String"],"IdentityVerificationDocuments":[{"documentId":"String","authenticity":"String"}]}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"Status":0,"CorrelationId":"String","Message":"String"}