Billhighway Cloud API

<back to all web services

HeldPaymentChargeRq

The following routes are available for this service:
POST/integrations/api/{integrationType}/heldpayment/charge
import 'package:servicestack/servicestack.dart';

class HeldPaymentGatewaySaleResponse implements IConvertible
{
    String? FailureType;
    bool? IsDuplicate;
    bool? IsSuccessful;
    String? ErrorCode;
    String? Message;
    int? GatewayId;
    String? ConfirmationNumber;
    String? NetworkTransactionId;

    HeldPaymentGatewaySaleResponse({this.FailureType,this.IsDuplicate,this.IsSuccessful,this.ErrorCode,this.Message,this.GatewayId,this.ConfirmationNumber,this.NetworkTransactionId});
    HeldPaymentGatewaySaleResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'FailureType': FailureType,
        'IsDuplicate': IsDuplicate,
        'IsSuccessful': IsSuccessful,
        'ErrorCode': ErrorCode,
        'Message': Message,
        'GatewayId': GatewayId,
        'ConfirmationNumber': ConfirmationNumber,
        'NetworkTransactionId': NetworkTransactionId
    };

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

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

    AttributeItem({this.Name,this.Value});
    AttributeItem.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() => "AttributeItem";
    TypeContext? context = _ctx;
}

class CreditCardBillingAddressItem implements IConvertible
{
    String? Address1;
    String? Address2;
    String? City;
    String? PostalCode;
    String? Region;
    String? Country;
    List<AttributeItem>? Attributes;

    CreditCardBillingAddressItem({this.Address1,this.Address2,this.City,this.PostalCode,this.Region,this.Country,this.Attributes});
    CreditCardBillingAddressItem.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Address1 = json['Address1'];
        Address2 = json['Address2'];
        City = json['City'];
        PostalCode = json['PostalCode'];
        Region = json['Region'];
        Country = json['Country'];
        Attributes = JsonConverters.fromJson(json['Attributes'],'List<AttributeItem>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Address1': Address1,
        'Address2': Address2,
        'City': City,
        'PostalCode': PostalCode,
        'Region': Region,
        'Country': Country,
        'Attributes': JsonConverters.toJson(Attributes,'List<AttributeItem>',context!)
    };

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

class CreditCardChargeVerificationResult implements IConvertible
{
    bool? NetworkVerificationAttempted;
    String? CvvVerificationResult;
    String? AddressVerificationResult;
    String? PostalCodeVerificationResult;

    CreditCardChargeVerificationResult({this.NetworkVerificationAttempted,this.CvvVerificationResult,this.AddressVerificationResult,this.PostalCodeVerificationResult});
    CreditCardChargeVerificationResult.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        NetworkVerificationAttempted = json['NetworkVerificationAttempted'];
        CvvVerificationResult = json['CvvVerificationResult'];
        AddressVerificationResult = json['AddressVerificationResult'];
        PostalCodeVerificationResult = json['PostalCodeVerificationResult'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'NetworkVerificationAttempted': NetworkVerificationAttempted,
        'CvvVerificationResult': CvvVerificationResult,
        'AddressVerificationResult': AddressVerificationResult,
        'PostalCodeVerificationResult': PostalCodeVerificationResult
    };

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

class HeldPaymentCreditCardChargeDetails implements IConvertible
{
    String? CardType;
    int? ExpMonth;
    int? ExpYear;
    String? Last4;
    CreditCardBillingAddressItem? Address;
    CreditCardChargeVerificationResult? VerificationResult;

    HeldPaymentCreditCardChargeDetails({this.CardType,this.ExpMonth,this.ExpYear,this.Last4,this.Address,this.VerificationResult});
    HeldPaymentCreditCardChargeDetails.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CardType = json['CardType'];
        ExpMonth = json['ExpMonth'];
        ExpYear = json['ExpYear'];
        Last4 = json['Last4'];
        Address = JsonConverters.fromJson(json['Address'],'CreditCardBillingAddressItem',context!);
        VerificationResult = JsonConverters.fromJson(json['VerificationResult'],'CreditCardChargeVerificationResult',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CardType': CardType,
        'ExpMonth': ExpMonth,
        'ExpYear': ExpYear,
        'Last4': Last4,
        'Address': JsonConverters.toJson(Address,'CreditCardBillingAddressItem',context!),
        'VerificationResult': JsonConverters.toJson(VerificationResult,'CreditCardChargeVerificationResult',context!)
    };

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

class AchChargeVerificationResult implements IConvertible
{
    bool? NetworkVerificationAttempted;
    String? Result;

    AchChargeVerificationResult({this.NetworkVerificationAttempted,this.Result});
    AchChargeVerificationResult.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

class HeldPaymentAchChargeDetails implements IConvertible
{
    String? AccountType;
    String? RoutingNumber;
    String? AccountNumberLast4;
    String? BankName;
    AchChargeVerificationResult? VerificationResult;

    HeldPaymentAchChargeDetails({this.AccountType,this.RoutingNumber,this.AccountNumberLast4,this.BankName,this.VerificationResult});
    HeldPaymentAchChargeDetails.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        AccountType = json['AccountType'];
        RoutingNumber = json['RoutingNumber'];
        AccountNumberLast4 = json['AccountNumberLast4'];
        BankName = json['BankName'];
        VerificationResult = JsonConverters.fromJson(json['VerificationResult'],'AchChargeVerificationResult',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'AccountType': AccountType,
        'RoutingNumber': RoutingNumber,
        'AccountNumberLast4': AccountNumberLast4,
        'BankName': BankName,
        'VerificationResult': JsonConverters.toJson(VerificationResult,'AchChargeVerificationResult',context!)
    };

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

class HeldPaymentChargeDetails implements IConvertible
{
    String? PaymentType;
    double? Amount;
    String? IntegrationType;
    String? Currency;
    HeldPaymentCreditCardChargeDetails? CardDetails;
    HeldPaymentAchChargeDetails? AchDetails;

    HeldPaymentChargeDetails({this.PaymentType,this.Amount,this.IntegrationType,this.Currency,this.CardDetails,this.AchDetails});
    HeldPaymentChargeDetails.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        PaymentType = json['PaymentType'];
        Amount = JsonConverters.toDouble(json['Amount']);
        IntegrationType = json['IntegrationType'];
        Currency = json['Currency'];
        CardDetails = JsonConverters.fromJson(json['CardDetails'],'HeldPaymentCreditCardChargeDetails',context!);
        AchDetails = JsonConverters.fromJson(json['AchDetails'],'HeldPaymentAchChargeDetails',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'PaymentType': PaymentType,
        'Amount': Amount,
        'IntegrationType': IntegrationType,
        'Currency': Currency,
        'CardDetails': JsonConverters.toJson(CardDetails,'HeldPaymentCreditCardChargeDetails',context!),
        'AchDetails': JsonConverters.toJson(AchDetails,'HeldPaymentAchChargeDetails',context!)
    };

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

class HeldPaymentChargeItem implements IConvertible
{
    String? Type;
    String? Description;
    double? Amount;
    String? ClientInvoiceId;
    int? ClientInvoiceOwnerTypeId;

    HeldPaymentChargeItem({this.Type,this.Description,this.Amount,this.ClientInvoiceId,this.ClientInvoiceOwnerTypeId});
    HeldPaymentChargeItem.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'Type': Type,
        'Description': Description,
        'Amount': Amount,
        'ClientInvoiceId': ClientInvoiceId,
        'ClientInvoiceOwnerTypeId': ClientInvoiceOwnerTypeId
    };

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

class HeldPaymentChargeRs implements IConvertible
{
    String? TransactionId;
    int? StoredAccountId;
    int? NationalId;
    int? ChapterId;
    String? ChargeType;
    String? IntegrationType;
    int? ContextIntegrationPartnerId;
    int? CallerIntegrationPartnerId;
    HeldPaymentGatewaySaleResponse? GatewayResponse;
    HeldPaymentChargeDetails? ChargeDetails;
    List<HeldPaymentChargeItem>? ChargeItems;

    HeldPaymentChargeRs({this.TransactionId,this.StoredAccountId,this.NationalId,this.ChapterId,this.ChargeType,this.IntegrationType,this.ContextIntegrationPartnerId,this.CallerIntegrationPartnerId,this.GatewayResponse,this.ChargeDetails,this.ChargeItems});
    HeldPaymentChargeRs.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        TransactionId = json['TransactionId'];
        StoredAccountId = json['StoredAccountId'];
        NationalId = json['NationalId'];
        ChapterId = json['ChapterId'];
        ChargeType = json['ChargeType'];
        IntegrationType = json['IntegrationType'];
        ContextIntegrationPartnerId = json['ContextIntegrationPartnerId'];
        CallerIntegrationPartnerId = json['CallerIntegrationPartnerId'];
        GatewayResponse = JsonConverters.fromJson(json['GatewayResponse'],'HeldPaymentGatewaySaleResponse',context!);
        ChargeDetails = JsonConverters.fromJson(json['ChargeDetails'],'HeldPaymentChargeDetails',context!);
        ChargeItems = JsonConverters.fromJson(json['ChargeItems'],'List<HeldPaymentChargeItem>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'TransactionId': TransactionId,
        'StoredAccountId': StoredAccountId,
        'NationalId': NationalId,
        'ChapterId': ChapterId,
        'ChargeType': ChargeType,
        'IntegrationType': IntegrationType,
        'ContextIntegrationPartnerId': ContextIntegrationPartnerId,
        'CallerIntegrationPartnerId': CallerIntegrationPartnerId,
        'GatewayResponse': JsonConverters.toJson(GatewayResponse,'HeldPaymentGatewaySaleResponse',context!),
        'ChargeDetails': JsonConverters.toJson(ChargeDetails,'HeldPaymentChargeDetails',context!),
        'ChargeItems': JsonConverters.toJson(ChargeItems,'List<HeldPaymentChargeItem>',context!)
    };

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

class HeldPaymentChargeRq implements IChargeRequest, IConvertible
{
    String? integrationType;
    int? NationalId;
    int? ChapterId;
    int? StoredAccountId;
    int? ContextIntegrationPartnerId;
    int? CallerIntegrationPartnerId;
    int? AuthenticationId;
    String? ChargeType;
    String? Token;
    double? Amount;
    String? Description;
    int? CreatedById;
    int? TransactionId;
    bool? StoreChargeAccount;
    List<HeldPaymentChargeItem>? ChargeItems;
    int? CreatedBy;

    HeldPaymentChargeRq({this.integrationType,this.NationalId,this.ChapterId,this.StoredAccountId,this.ContextIntegrationPartnerId,this.CallerIntegrationPartnerId,this.AuthenticationId,this.ChargeType,this.Token,this.Amount,this.Description,this.CreatedById,this.TransactionId,this.StoreChargeAccount,this.ChargeItems,this.CreatedBy});
    HeldPaymentChargeRq.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        integrationType = json['integrationType'];
        NationalId = json['NationalId'];
        ChapterId = json['ChapterId'];
        StoredAccountId = json['StoredAccountId'];
        ContextIntegrationPartnerId = json['ContextIntegrationPartnerId'];
        CallerIntegrationPartnerId = json['CallerIntegrationPartnerId'];
        AuthenticationId = json['AuthenticationId'];
        ChargeType = json['ChargeType'];
        Token = json['Token'];
        Amount = JsonConverters.toDouble(json['Amount']);
        Description = json['Description'];
        CreatedById = json['CreatedById'];
        TransactionId = json['TransactionId'];
        StoreChargeAccount = json['StoreChargeAccount'];
        ChargeItems = JsonConverters.fromJson(json['ChargeItems'],'List<HeldPaymentChargeItem>',context!);
        CreatedBy = json['CreatedBy'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'integrationType': integrationType,
        'NationalId': NationalId,
        'ChapterId': ChapterId,
        'StoredAccountId': StoredAccountId,
        'ContextIntegrationPartnerId': ContextIntegrationPartnerId,
        'CallerIntegrationPartnerId': CallerIntegrationPartnerId,
        'AuthenticationId': AuthenticationId,
        'ChargeType': ChargeType,
        'Token': Token,
        'Amount': Amount,
        'Description': Description,
        'CreatedById': CreatedById,
        'TransactionId': TransactionId,
        'StoreChargeAccount': StoreChargeAccount,
        'ChargeItems': JsonConverters.toJson(ChargeItems,'List<HeldPaymentChargeItem>',context!),
        'CreatedBy': CreatedBy
    };

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

TypeContext _ctx = TypeContext(library: 'devapi.billhighway.com', types: <String, TypeInfo> {
    'HeldPaymentGatewaySaleResponse': TypeInfo(TypeOf.Class, create:() => HeldPaymentGatewaySaleResponse()),
    'AttributeItem': TypeInfo(TypeOf.Class, create:() => AttributeItem()),
    'CreditCardBillingAddressItem': TypeInfo(TypeOf.Class, create:() => CreditCardBillingAddressItem()),
    'List<AttributeItem>': TypeInfo(TypeOf.Class, create:() => <AttributeItem>[]),
    'CreditCardChargeVerificationResult': TypeInfo(TypeOf.Class, create:() => CreditCardChargeVerificationResult()),
    'HeldPaymentCreditCardChargeDetails': TypeInfo(TypeOf.Class, create:() => HeldPaymentCreditCardChargeDetails()),
    'AchChargeVerificationResult': TypeInfo(TypeOf.Class, create:() => AchChargeVerificationResult()),
    'HeldPaymentAchChargeDetails': TypeInfo(TypeOf.Class, create:() => HeldPaymentAchChargeDetails()),
    'HeldPaymentChargeDetails': TypeInfo(TypeOf.Class, create:() => HeldPaymentChargeDetails()),
    'HeldPaymentChargeItem': TypeInfo(TypeOf.Class, create:() => HeldPaymentChargeItem()),
    'HeldPaymentChargeRs': TypeInfo(TypeOf.Class, create:() => HeldPaymentChargeRs()),
    'List<HeldPaymentChargeItem>': TypeInfo(TypeOf.Class, create:() => <HeldPaymentChargeItem>[]),
    'HeldPaymentChargeRq': TypeInfo(TypeOf.Class, create:() => HeldPaymentChargeRq()),
});

Dart HeldPaymentChargeRq 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 /integrations/api/{integrationType}/heldpayment/charge HTTP/1.1 
Host: devapi.billhighway.com 
Accept: application/json
Content-Type: application/json
Content-Length: length

{"integrationType":"String","NationalId":0,"ChapterId":0,"StoredAccountId":0,"ContextIntegrationPartnerId":0,"CallerIntegrationPartnerId":0,"AuthenticationId":0,"ChargeType":"String","Token":"String","Amount":0,"Description":"String","CreatedById":0,"TransactionId":0,"StoreChargeAccount":false,"ChargeItems":[{"Type":"String","Description":"String","Amount":0,"ClientInvoiceId":"String","ClientInvoiceOwnerTypeId":0}],"CreatedBy":0}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"TransactionId":"String","StoredAccountId":0,"NationalId":0,"ChapterId":0,"ChargeType":"String","IntegrationType":"String","ContextIntegrationPartnerId":0,"CallerIntegrationPartnerId":0,"GatewayResponse":{"FailureType":"String","IsDuplicate":false,"IsSuccessful":false,"ErrorCode":"String","Message":"String","GatewayId":0,"ConfirmationNumber":"String","NetworkTransactionId":"String"},"ChargeDetails":{"PaymentType":"String","Amount":0,"IntegrationType":"String","Currency":"String","CardDetails":{"CardType":"String","ExpMonth":0,"ExpYear":0,"Last4":"String","Address":{"Address1":"String","Address2":"String","City":"String","PostalCode":"String","Region":"String","Country":"String","Attributes":[{"Name":"String","Value":"String"}]},"VerificationResult":{"NetworkVerificationAttempted":false,"CvvVerificationResult":"String","AddressVerificationResult":"String","PostalCodeVerificationResult":"String"}},"AchDetails":{"AccountType":"String","RoutingNumber":"String","AccountNumberLast4":"String","BankName":"String","VerificationResult":{"NetworkVerificationAttempted":false,"Result":"String"}}},"ChargeItems":[{"Type":"String","Description":"String","Amount":0,"ClientInvoiceId":"String","ClientInvoiceOwnerTypeId":0}]}