cancel
Showing results for 
Search instead for 
Did you mean: 

ARB Setup Returns False for Recurring Transaction

I'm using ARB to set up recurring transactions.  The setup goes through with a success code and I get a subscription id back.  Transaction #1 occurs, but when I query the Transaction using the SDK it says that recurring billing is false.  Looking at the Transaction in Authorize.net merchant area I can see the transaction and it says it is "1 of 9999" but the Recurring Transaction says "N".

 

Using the SDK & AuthorizeNetTD an app polls the batch lists & transactions periodically to check for recurring transactions that have posted. These transactions are being missed by the application since the recurring billing is returning as false.

 

Can someone review my XML and tell me what I'm missing?

 

Below is the XML I am sending to set up the recurring transaction (with private data X'd out of course)

 

<?xml version="1.0" encoding="utf-8"?><ARBCreateSubscriptionRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd"><merchantAuthentication><name>XXXXXX</name><transactionKey>XXXXX</transactionKey></merchantAuthentication><refId>96620111116</refId><subscription><name>YUGM Recurring Donation - biweekly</name><paymentSchedule><interval><length>14</length><unit>days</unit></interval><startDate>2011-11-17</startDate><totalOccurrences>9999</totalOccurrences></paymentSchedule><amount>1.02</amount><payment><creditCard><cardNumber>XXX4442</cardNumber><expirationDate>09/13</expirationDate></creditCard></payment><customer><id>966</id><email>xxx</email></customer><billTo><firstName>xxxx</firstName><lastName>xxx</lastName><address>xxx</address><city>xxx</city><state>xxx</state><zip>xxx</zip></billTo></subscription></ARBCreateSubscriptionRequest> 

 

Here's the response I logged regarding the setup (not raw, obviously): Authorize.net transation : refId:96620111116 | resultCode:Ok | code:I00001 | text:Successful. | subscriptionId:11438554

 

Here is the Transaction Response (I bolded the RecurringBilling at the end):

 

AuthorizeNetTD_Response Object ( [xml] => SimpleXMLElement Object ( [messages] => SimpleXMLElement Object ( [resultCode] => Ok [message] => SimpleXMLElement Object ( [code] => I00001 [text] => Successful. ) ) [transaction] => SimpleXMLElement Object ( [transId] => 3985501090 [submitTimeUTC] => 2011-11-17T10:31:54.95Z [submitTimeLocal] => 2011-11-17T03:31:54.95 [transactionType] => authCaptureTransaction [transactionStatus] => settledSuccessfully [responseCode] => 1 [responseReasonCode] => 1 [responseReasonDescription] => Approval [authCode] => 111728 [AVSResponse] => Y [batch] => SimpleXMLElement Object ( [batchId] => 172912945 [settlementTimeUTC] => 2011-11-18T07:15:37.27Z [settlementTimeLocal] => 2011-11-18T00:15:37.27 [settlementState] => settledSuccessfully ) [authAmount] => 1.02 [settleAmount] => 1.02 [taxExempt] => false [payment] => SimpleXMLElement Object ( [creditCard] => SimpleXMLElement Object ( [cardNumber] => XXXX4442 [expirationDate] => XXXX [cardType] => Visa ) ) [customer] => SimpleXMLElement Object ( [type] => individual [id] => 966 [email] => xxx ) [billTo] => SimpleXMLElement Object ( [firstName] => xxxxx [lastName] =>xxx [address] => xxx[city] => xxx [state] => WA [zip] => 98942-9464 ) [recurringBilling] => false ) ) [response] => OkI00001Successful.39855010902011-11-17T10:31:54.95Z2011-11-17T03:31:54.95authCaptureTransactionsettledSuccessfully11Approval111728Y1729129452011-11-18T07:15:37.27Z2011-11-18T00:15:37.27settledSuccessfully1.021.02falseXXXX4442XXXXVisaindividualXXXCorrect Email Name Address are All HereXXXfalse [xpath_xml] => SimpleXMLElement Object ( [messages] => SimpleXMLElement Object ( [resultCode] => Ok [message] => SimpleXMLElement Object ( [code] => I00001 [text] => Successful. ) ) [transaction] => SimpleXMLElement Object ( [transId] => 3985501090 [submitTimeUTC] => 2011-11-17T10:31:54.95Z [submitTimeLocal] => 2011-11-17T03:31:54.95 [transactionType] => authCaptureTransaction [transactionStatus] => settledSuccessfully [responseCode] => 1 [responseReasonCode] => 1 [responseReasonDescription] => Approval [authCode] => 111728 [AVSResponse] => Y [batch] => SimpleXMLElement Object ( [batchId] => 172912945 [settlementTimeUTC] => 2011-11-18T07:15:37.27Z [settlementTimeLocal] => 2011-11-18T00:15:37.27 [settlementState] => settledSuccessfully ) [authAmount] => 1.02 [settleAmount] => 1.02 [taxExempt] => false [payment] => SimpleXMLElement Object ( [creditCard] => SimpleXMLElement Object ( [cardNumber] => XXXX4442 [expirationDate] => XXXX [cardType] => Visa ) ) [customer] => SimpleXMLElement Object ( [type] => individual [id] => 966 [email] => xxx) [billTo] => SimpleXMLElement Object ( [firstName] => xxx [lastName] => xxx [address] => xxx [city] =>xxx [state] => WA [zip] => xxx ) [recurringBilling] => false ) ) )

 

Let me know if any other information would be useful.Thank you in advance.

 

DianeEnsey
Member
4 REPLIES 4

Recurring billing is a flag that Authorize,net sets to mark whether the information needs to be run through the AVS when the charge processes. Only the first charge after each subscription creation or update needs to be verified, so those ones are marked as not recurring; subsequent charges should be marked as recurring. I know that's not really what one would expect, but it is what it is.

 

Essentially, you need a different way of figuring out which transactions are ARB. Pass through some value, like for instance a description, that will tell you whether it's ARB or not. You'll just have to go through your existing subscriptions and either manually or programmatically update them to be the same way.

TJPride
Expert

Do you know why it is that  transactions created through the Authorize.net merchant account interface return "Y"?  

I'm not certain exactly what you are asking.  If you wondering why it returns "Y" instead of "true", there really isn't any particular reason.  The online interface simply returns Y or N instead of true or false.

No, just curious why it sets a transaction that is entered via Authorize.net's merchant account interface as Y or as true when it is returned in a batch transaction.  When recurring transactions are set up using ARB they are set as N or  false.

 

Going forward I'm adding an "RT" to the customer id, but I want to make sure all of the recurring transactions already occurring and that are showing as "true" when my app looks at the transaction, doesn't suddenly switch to "false"