Showing results for 
Search instead for 
Did you mean: 

eCheck Recurring Billing with AIM



I am using the "advanced integration method" with C# to process eCheck transactions. I can submit a single Echeck Request without any issues. Here is an example of the code I am using:


if (paymentMethod == "check")
// Default these to blank, we are not using them, but they are
// required to be passed to Auth.NET
var bankName = "";
var acctName = "";
var checkNum = "";

// Determine what checking account type to use
var achAcctType = AuthorizeNet.BankAccountType.Checking;
if (acctType == "savings")
achAcctType = AuthorizeNet.BankAccountType.Savings;

var anRequest = new AuthorizeNet.EcheckRequest(AuthorizeNet.EcheckType.WEB, totalAmt, routingNum, acctNum, achAcctType, bankName, acctName, checkNum);
anRequest.FirstName = firstName;
anRequest.LastName = lastName;
anRequest.Address = addres1;
anRequest.City = city;
anRequest.State = state;
anRequest.Phone = phone;
anRequest.Zip = zip;

var anGate = new AuthorizeNet.Gateway(apiLoginId, tranKey, isTestTrans);
// Submit trans
singleResponse = anGate.Send(anRequest);


What I would like to do is submit a recurring eCheck request for a specific day of the month. The merchant would like users to be able to choose either the 1st or the 15th of the month. I have been unable to find any method for doing this for eCheck.


How should I go about doing this using C#?





You need ARB for recurring billing


Thanks for the response.


I am using the following code to conduct ARB transactions for credit cards. Can I use a modified form of this code to process recurring billing for eCheck? If so, how?


var subRequest = AuthorizeNet.SubscriptionRequest.CreateMonthly(email, "site-sub", totalAmt);
subRequest.CardNumber = cardNumber;
subRequest.CardExpirationYear = int.Parse("20" + expYear); // Year is only two digits. Convert to four, e.g., YYYY.
subRequest.CardExpirationMonth = int.Parse(expMonth);
subRequest.CardCode = cvv;
var subAddress = new AuthorizeNet.Address();
subAddress.First = firstName;
subAddress.Last = lastName;
subAddress.Street = addres1;
subAddress.City = city;
subAddress.State = state;
subAddress.Phone = phone;
subAddress.Zip = zip;
subRequest.BillingAddress = subAddress;

subRequest.StartsOn = startsOn.Value;

var subGate = new AuthorizeNet.SubscriptionGateway(apiLoginId, tranKey, serviceMode);
subResponse = subGate.CreateSubscription(subRequest);



Looking thru the SDKs source files, it doesn't look like it support bank account, you would have to modify it yourselves.