Billhighway Cloud API

<back to all web services

CoreChargeDonationRq

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

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

    CoreChargeGatewaySaleResponse({this.FailureType,this.IsDuplicate,this.IsSuccessful,this.ErrorCode,this.Message,this.GatewayId,this.ConfirmationNumber,this.NetworkTransactionId});
    CoreChargeGatewaySaleResponse.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() => "CoreChargeGatewaySaleResponse";
    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 CoreCreditCardChargeDetails implements IConvertible
{
    String? CardType;
    int? ExpMonth;
    int? ExpYear;
    String? Last4;
    CreditCardBillingAddressItem? Address;
    CreditCardChargeVerificationResult? VerificationResult;

    CoreCreditCardChargeDetails({this.CardType,this.ExpMonth,this.ExpYear,this.Last4,this.Address,this.VerificationResult});
    CoreCreditCardChargeDetails.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() => "CoreCreditCardChargeDetails";
    TypeContext? context = _ctx;
}

class CoreChargeDetails implements IConvertible
{
    String? PaymentType;
    int? Amount;
    String? IntegrationType;
    String? Currency;
    CoreCreditCardChargeDetails? CardDetails;

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

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

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

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

class CoreChargeDonationRs implements IConvertible
{
    String? TransactionId;
    int? StoredAccountId;
    int? NationalId;
    int? ChapterId;
    String? ChargeType;
    String? IntegrationType;
    int? ContextIntegrationPartnerId;
    int? CallerIntegrationPartnerId;
    CoreChargeGatewaySaleResponse? GatewayResponse;
    CoreChargeDetails? ChargeDetails;

    CoreChargeDonationRs({this.TransactionId,this.StoredAccountId,this.NationalId,this.ChapterId,this.ChargeType,this.IntegrationType,this.ContextIntegrationPartnerId,this.CallerIntegrationPartnerId,this.GatewayResponse,this.ChargeDetails});
    CoreChargeDonationRs.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'],'CoreChargeGatewaySaleResponse',context!);
        ChargeDetails = JsonConverters.fromJson(json['ChargeDetails'],'CoreChargeDetails',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,'CoreChargeGatewaySaleResponse',context!),
        'ChargeDetails': JsonConverters.toJson(ChargeDetails,'CoreChargeDetails',context!)
    };

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

class EventItem implements IConvertible
{
    String? CustomerFeeItemTypeId;
    String? Quantity;

    EventItem({this.CustomerFeeItemTypeId,this.Quantity});
    EventItem.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'CustomerFeeItemTypeId': CustomerFeeItemTypeId,
        'Quantity': Quantity
    };

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

class CoreChargeDonationRq implements IChargeRequest, IConvertible
{
    // @ApiMember(ParameterType="path")
    String? integrationType;

    int? NationalId;
    int? ChapterId;
    int? StoredAccountId;
    int? ContextIntegrationPartnerId;
    int? CallerIntegrationPartnerId;
    int? UserId;
    int? AuthenticationId;
    String? ChargeType;
    String? Token;
    // @ApiMember(Format="decimal", ParameterType="model")
    double? Amount;

    String? Description;
    int? CampaignId;
    int? CreatedById;
    int? TransactionId;
    String? PartnerReferenceId;
    List<EventItem>? EventItems;

    CoreChargeDonationRq({this.integrationType,this.NationalId,this.ChapterId,this.StoredAccountId,this.ContextIntegrationPartnerId,this.CallerIntegrationPartnerId,this.UserId,this.AuthenticationId,this.ChargeType,this.Token,this.Amount,this.Description,this.CampaignId,this.CreatedById,this.TransactionId,this.PartnerReferenceId,this.EventItems});
    CoreChargeDonationRq.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'];
        UserId = json['UserId'];
        AuthenticationId = json['AuthenticationId'];
        ChargeType = json['ChargeType'];
        Token = json['Token'];
        Amount = JsonConverters.toDouble(json['Amount']);
        Description = json['Description'];
        CampaignId = json['CampaignId'];
        CreatedById = json['CreatedById'];
        TransactionId = json['TransactionId'];
        PartnerReferenceId = json['PartnerReferenceId'];
        EventItems = JsonConverters.fromJson(json['EventItems'],'List<EventItem>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'integrationType': integrationType,
        'NationalId': NationalId,
        'ChapterId': ChapterId,
        'StoredAccountId': StoredAccountId,
        'ContextIntegrationPartnerId': ContextIntegrationPartnerId,
        'CallerIntegrationPartnerId': CallerIntegrationPartnerId,
        'UserId': UserId,
        'AuthenticationId': AuthenticationId,
        'ChargeType': ChargeType,
        'Token': Token,
        'Amount': Amount,
        'Description': Description,
        'CampaignId': CampaignId,
        'CreatedById': CreatedById,
        'TransactionId': TransactionId,
        'PartnerReferenceId': PartnerReferenceId,
        'EventItems': JsonConverters.toJson(EventItems,'List<EventItem>',context!)
    };

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

TypeContext _ctx = TypeContext(library: 'devapi.billhighway.com', types: <String, TypeInfo> {
    'CoreChargeGatewaySaleResponse': TypeInfo(TypeOf.Class, create:() => CoreChargeGatewaySaleResponse()),
    '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()),
    'CoreCreditCardChargeDetails': TypeInfo(TypeOf.Class, create:() => CoreCreditCardChargeDetails()),
    'CoreChargeDetails': TypeInfo(TypeOf.Class, create:() => CoreChargeDetails()),
    'CoreChargeDonationRs': TypeInfo(TypeOf.Class, create:() => CoreChargeDonationRs()),
    'EventItem': TypeInfo(TypeOf.Class, create:() => EventItem()),
    'CoreChargeDonationRq': TypeInfo(TypeOf.Class, create:() => CoreChargeDonationRq()),
    'List<EventItem>': TypeInfo(TypeOf.Class, create:() => <EventItem>[]),
});

Dart CoreChargeDonationRq DTOs

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

HTTP + XML

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

POST /integrations/api/{integrationType}/core/donationcharge HTTP/1.1 
Host: devapi.billhighway.com 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<CoreChargeDonationRq xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BH.CloudAPI.DTO.CoreCharges.Api.Request">
  <Amount>0</Amount>
  <AuthenticationId>0</AuthenticationId>
  <CallerIntegrationPartnerId>0</CallerIntegrationPartnerId>
  <CampaignId>0</CampaignId>
  <ChapterId>0</ChapterId>
  <ChargeType>String</ChargeType>
  <ContextIntegrationPartnerId>0</ContextIntegrationPartnerId>
  <CreatedById>0</CreatedById>
  <Description>String</Description>
  <EventItems xmlns:d2p1="http://schemas.datacontract.org/2004/07/BH.CloudAPI.DTO">
    <d2p1:EventItem>
      <d2p1:CustomerFeeItemTypeId>String</d2p1:CustomerFeeItemTypeId>
      <d2p1:Quantity>String</d2p1:Quantity>
    </d2p1:EventItem>
  </EventItems>
  <NationalId>0</NationalId>
  <PartnerReferenceId>String</PartnerReferenceId>
  <StoredAccountId>0</StoredAccountId>
  <Token>String</Token>
  <TransactionId>0</TransactionId>
  <UserId>0</UserId>
  <integrationType>String</integrationType>
</CoreChargeDonationRq>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<CoreChargeDonationRs xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BH.CloudAPI.DTO.CoreCharges.Api.Response">
  <CallerIntegrationPartnerId>0</CallerIntegrationPartnerId>
  <ChapterId>0</ChapterId>
  <ChargeDetails xmlns:d2p1="http://schemas.datacontract.org/2004/07/BH.CloudAPI.DTO.CoreCharges">
    <d2p1:Amount>0</d2p1:Amount>
    <d2p1:CardDetails>
      <d2p1:_x003C_Address_x003E_k__BackingField xmlns:d4p1="http://schemas.datacontract.org/2004/07/BH.CloudAPI.DTO.Charges.Api">
        <d4p1:Address1>String</d4p1:Address1>
        <d4p1:Address2>String</d4p1:Address2>
        <d4p1:Attributes xmlns:d5p1="http://schemas.datacontract.org/2004/07/BH.CloudAPI.DTO">
          <d5p1:AttributeItem>
            <d5p1:Name>String</d5p1:Name>
            <d5p1:Value>String</d5p1:Value>
          </d5p1:AttributeItem>
        </d4p1:Attributes>
        <d4p1:City>String</d4p1:City>
        <d4p1:Country>String</d4p1:Country>
        <d4p1:PostalCode>String</d4p1:PostalCode>
        <d4p1:Region>String</d4p1:Region>
      </d2p1:_x003C_Address_x003E_k__BackingField>
      <d2p1:_x003C_CardType_x003E_k__BackingField>String</d2p1:_x003C_CardType_x003E_k__BackingField>
      <d2p1:_x003C_ExpMonth_x003E_k__BackingField>0</d2p1:_x003C_ExpMonth_x003E_k__BackingField>
      <d2p1:_x003C_ExpYear_x003E_k__BackingField>0</d2p1:_x003C_ExpYear_x003E_k__BackingField>
      <d2p1:_x003C_Last4_x003E_k__BackingField>String</d2p1:_x003C_Last4_x003E_k__BackingField>
      <d2p1:_x003C_VerificationResult_x003E_k__BackingField xmlns:d4p1="http://schemas.datacontract.org/2004/07/BH.CloudAPI.DTO.Charges.Api">
        <d4p1:_x003C_AddressVerificationResult_x003E_k__BackingField>String</d4p1:_x003C_AddressVerificationResult_x003E_k__BackingField>
        <d4p1:_x003C_CvvVerificationResult_x003E_k__BackingField>String</d4p1:_x003C_CvvVerificationResult_x003E_k__BackingField>
        <d4p1:_x003C_NetworkVerificationAttempted_x003E_k__BackingField>false</d4p1:_x003C_NetworkVerificationAttempted_x003E_k__BackingField>
        <d4p1:_x003C_PostalCodeVerificationResult_x003E_k__BackingField>String</d4p1:_x003C_PostalCodeVerificationResult_x003E_k__BackingField>
      </d2p1:_x003C_VerificationResult_x003E_k__BackingField>
    </d2p1:CardDetails>
    <d2p1:Currency>String</d2p1:Currency>
    <d2p1:IntegrationType>String</d2p1:IntegrationType>
    <d2p1:PaymentType>String</d2p1:PaymentType>
  </ChargeDetails>
  <ChargeType>String</ChargeType>
  <ContextIntegrationPartnerId>0</ContextIntegrationPartnerId>
  <GatewayResponse xmlns:d2p1="http://schemas.datacontract.org/2004/07/BH.CloudAPI.DTO.CoreCharges">
    <d2p1:_x003C_ConfirmationNumber_x003E_k__BackingField>String</d2p1:_x003C_ConfirmationNumber_x003E_k__BackingField>
    <d2p1:_x003C_ErrorCode_x003E_k__BackingField>String</d2p1:_x003C_ErrorCode_x003E_k__BackingField>
    <d2p1:_x003C_FailureType_x003E_k__BackingField>String</d2p1:_x003C_FailureType_x003E_k__BackingField>
    <d2p1:_x003C_GatewayId_x003E_k__BackingField>0</d2p1:_x003C_GatewayId_x003E_k__BackingField>
    <d2p1:_x003C_IsDuplicate_x003E_k__BackingField>false</d2p1:_x003C_IsDuplicate_x003E_k__BackingField>
    <d2p1:_x003C_IsSuccessful_x003E_k__BackingField>false</d2p1:_x003C_IsSuccessful_x003E_k__BackingField>
    <d2p1:_x003C_Message_x003E_k__BackingField>String</d2p1:_x003C_Message_x003E_k__BackingField>
    <d2p1:_x003C_NetworkTransactionId_x003E_k__BackingField>String</d2p1:_x003C_NetworkTransactionId_x003E_k__BackingField>
  </GatewayResponse>
  <IntegrationType>String</IntegrationType>
  <NationalId>0</NationalId>
  <StoredAccountId>0</StoredAccountId>
  <TransactionId>String</TransactionId>
</CoreChargeDonationRs>