Billhighway Cloud API

<back to all web services

BillMeLaterSubscription

import 'package:servicestack/servicestack.dart';

class ApiClientHeader implements IConvertible
{
    int? ClientId;
    String? Referrer;
    String? IpAddress;
    int? LoggedInUserId;
    int? GroupId;
    String? Task;
    String? Machine;
    String? Location;
    int? CreatedBy;
    int? CampaignId;
    double? ReCaptchaScore;

    ApiClientHeader({this.ClientId,this.Referrer,this.IpAddress,this.LoggedInUserId,this.GroupId,this.Task,this.Machine,this.Location,this.CreatedBy,this.CampaignId,this.ReCaptchaScore});
    ApiClientHeader.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ClientId = json['ClientId'];
        Referrer = json['Referrer'];
        IpAddress = json['IpAddress'];
        LoggedInUserId = json['LoggedInUserId'];
        GroupId = json['GroupId'];
        Task = json['Task'];
        Machine = json['Machine'];
        Location = json['Location'];
        CreatedBy = json['CreatedBy'];
        CampaignId = json['CampaignId'];
        ReCaptchaScore = JsonConverters.toDouble(json['ReCaptchaScore']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ClientId': ClientId,
        'Referrer': Referrer,
        'IpAddress': IpAddress,
        'LoggedInUserId': LoggedInUserId,
        'GroupId': GroupId,
        'Task': Task,
        'Machine': Machine,
        'Location': Location,
        'CreatedBy': CreatedBy,
        'CampaignId': CampaignId,
        'ReCaptchaScore': ReCaptchaScore
    };

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

class SubscriberFormField implements IConvertible
{
    String? Name;
    String? Value;

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

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

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

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

class SubscriptionParameters implements IConvertible
{
    int? FormTemplateID;
    int? SubscriptionInvoiceID;
    String? ClientSubscriberId;
    int? SignupTypeID;
    int? FrequencyID;
    bool? AutoRenew;
    int? CompanyID;
    int? UserID;
    int? ChapMemPayID;
    int? MemberSubscriptionInvID;
    List<SubscriberFormField>? Fields;
    int? CreatedBy;
    int? UpdatedBy;
    int? AptifyUpdateType;
    int? RenewedMemberSubscriptionInvID;
    int? ChapId;

    SubscriptionParameters({this.FormTemplateID,this.SubscriptionInvoiceID,this.ClientSubscriberId,this.SignupTypeID,this.FrequencyID,this.AutoRenew,this.CompanyID,this.UserID,this.ChapMemPayID,this.MemberSubscriptionInvID,this.Fields,this.CreatedBy,this.UpdatedBy,this.AptifyUpdateType,this.RenewedMemberSubscriptionInvID,this.ChapId});
    SubscriptionParameters.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        FormTemplateID = json['FormTemplateID'];
        SubscriptionInvoiceID = json['SubscriptionInvoiceID'];
        ClientSubscriberId = json['ClientSubscriberId'];
        SignupTypeID = json['SignupTypeID'];
        FrequencyID = json['FrequencyID'];
        AutoRenew = json['AutoRenew'];
        CompanyID = json['CompanyID'];
        UserID = json['UserID'];
        ChapMemPayID = json['ChapMemPayID'];
        MemberSubscriptionInvID = json['MemberSubscriptionInvID'];
        Fields = JsonConverters.fromJson(json['Fields'],'List<SubscriberFormField>',context!);
        CreatedBy = json['CreatedBy'];
        UpdatedBy = json['UpdatedBy'];
        AptifyUpdateType = json['AptifyUpdateType'];
        RenewedMemberSubscriptionInvID = json['RenewedMemberSubscriptionInvID'];
        ChapId = json['ChapId'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'FormTemplateID': FormTemplateID,
        'SubscriptionInvoiceID': SubscriptionInvoiceID,
        'ClientSubscriberId': ClientSubscriberId,
        'SignupTypeID': SignupTypeID,
        'FrequencyID': FrequencyID,
        'AutoRenew': AutoRenew,
        'CompanyID': CompanyID,
        'UserID': UserID,
        'ChapMemPayID': ChapMemPayID,
        'MemberSubscriptionInvID': MemberSubscriptionInvID,
        'Fields': JsonConverters.toJson(Fields,'List<SubscriberFormField>',context!),
        'CreatedBy': CreatedBy,
        'UpdatedBy': UpdatedBy,
        'AptifyUpdateType': AptifyUpdateType,
        'RenewedMemberSubscriptionInvID': RenewedMemberSubscriptionInvID,
        'ChapId': ChapId
    };

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

class CampaignInformation implements IConvertible
{
    int? CampaignId;
    String? CampaignName;
    double? Amount;
    String? ChapPayID;

    CampaignInformation({this.CampaignId,this.CampaignName,this.Amount,this.ChapPayID});
    CampaignInformation.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CampaignId = json['CampaignId'];
        CampaignName = json['CampaignName'];
        Amount = JsonConverters.toDouble(json['Amount']);
        ChapPayID = json['ChapPayID'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CampaignId': CampaignId,
        'CampaignName': CampaignName,
        'Amount': Amount,
        'ChapPayID': ChapPayID
    };

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

class BillMeLaterSubscription implements IConvertible
{
    ApiClientHeader? Header;
    SubscriptionParameters? SubscriptionInfo;
    List<CampaignInformation>? CampaignInfo;

    BillMeLaterSubscription({this.Header,this.SubscriptionInfo,this.CampaignInfo});
    BillMeLaterSubscription.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Header = JsonConverters.fromJson(json['Header'],'ApiClientHeader',context!);
        SubscriptionInfo = JsonConverters.fromJson(json['SubscriptionInfo'],'SubscriptionParameters',context!);
        CampaignInfo = JsonConverters.fromJson(json['CampaignInfo'],'List<CampaignInformation>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Header': JsonConverters.toJson(Header,'ApiClientHeader',context!),
        'SubscriptionInfo': JsonConverters.toJson(SubscriptionInfo,'SubscriptionParameters',context!),
        'CampaignInfo': JsonConverters.toJson(CampaignInfo,'List<CampaignInformation>',context!)
    };

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

class BillMeCloudServiceResponse implements IConvertible
{
    bool? IsDuplicate;
    bool? IsSuccessful;
    String? ErrorCode;
    String? Message;
    bool? IsError;

    BillMeCloudServiceResponse({this.IsDuplicate,this.IsSuccessful,this.ErrorCode,this.Message,this.IsError});
    BillMeCloudServiceResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        IsDuplicate = json['IsDuplicate'];
        IsSuccessful = json['IsSuccessful'];
        ErrorCode = json['ErrorCode'];
        Message = json['Message'];
        IsError = json['IsError'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'IsDuplicate': IsDuplicate,
        'IsSuccessful': IsSuccessful,
        'ErrorCode': ErrorCode,
        'Message': Message,
        'IsError': IsError
    };

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

class BillMePaymentResult extends BillMeCloudServiceResponse implements IConvertible
{
    int? TransactionRecordID;

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

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

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

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

TypeContext _ctx = TypeContext(library: 'devapi.billhighway.com', types: <String, TypeInfo> {
    'ApiClientHeader': TypeInfo(TypeOf.Class, create:() => ApiClientHeader()),
    'SubscriberFormField': TypeInfo(TypeOf.Class, create:() => SubscriberFormField()),
    'SubscriptionParameters': TypeInfo(TypeOf.Class, create:() => SubscriptionParameters()),
    'List<SubscriberFormField>': TypeInfo(TypeOf.Class, create:() => <SubscriberFormField>[]),
    'CampaignInformation': TypeInfo(TypeOf.Class, create:() => CampaignInformation()),
    'BillMeLaterSubscription': TypeInfo(TypeOf.Class, create:() => BillMeLaterSubscription()),
    'List<CampaignInformation>': TypeInfo(TypeOf.Class, create:() => <CampaignInformation>[]),
    'BillMeCloudServiceResponse': TypeInfo(TypeOf.Class, create:() => BillMeCloudServiceResponse()),
    'BillMePaymentResult': TypeInfo(TypeOf.Class, create:() => BillMePaymentResult()),
});

Dart BillMeLaterSubscription DTOs

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

HTTP + CSV

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

POST /csv/reply/BillMeLaterSubscription HTTP/1.1 
Host: devapi.billhighway.com 
Accept: text/csv
Content-Type: text/csv
Content-Length: length

{"Header":{"ClientId":0,"Referrer":"String","IpAddress":"String","LoggedInUserId":0,"GroupId":0,"Task":"String","Machine":"String","Location":"String","CreatedBy":0,"CampaignId":0,"ReCaptchaScore":0},"SubscriptionInfo":{"FormTemplateID":0,"SubscriptionInvoiceID":0,"ClientSubscriberId":"String","SignupTypeID":0,"FrequencyID":0,"AutoRenew":false,"CompanyID":0,"UserID":0,"ChapMemPayID":0,"MemberSubscriptionInvID":0,"Fields":[{"Name":"String","Value":"String"}],"CreatedBy":0,"UpdatedBy":0,"AptifyUpdateType":0,"RenewedMemberSubscriptionInvID":0,"ChapId":0},"CampaignInfo":[{"CampaignId":0,"CampaignName":"String","Amount":0,"ChapPayID":"String"}]}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"TransactionRecordID":0,"IsDuplicate":false,"IsSuccessful":false,"ErrorCode":"String","Message":"String","IsError":false}