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
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}