What I am sending
<?xml version="1.0" encoding="utf-8"?><createTransactionRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd"><merchantAuthentication><name>XXXXX</name><transactionKey>XXXXXX</transactionKey></merchantAuthentication><clientId>sdk-dotnet-1.9.3</clientId><transactionRequest><transactionType>authCaptureTransaction</transactionType><amount>7.45</amount><profile><customerProfileId>1914XXXXX</customerProfileId><paymentProfile><paymentProfileId>18276XXXX</paymentProfileId></paymentProfile></profile><order><invoiceNumber>86b87e40-9053-4f30-a</invoiceNumber><description /></order></transactionRequest></createTransactionRequest>
Response:
<?xml version="1.0" encoding="utf-8"?><createTransactionResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd"><messages><resultCode>Error</resultCode><message><code>E00142</code><text>RecurringBilling setting is a required field for recurring tokenized payment transactions.</text></message></messages><transactionResponse /></createTransactionResponse>
The integration I am setting up handles subscription-based payments, but does not use ARB.
This happens whenever I charge an amount against a profile where the credit card has expired, then try to rebill the same customer for the same amount, but with a different, valid credit card. The transaction fails on authCaptureTransaction as well as fails on a separate authorize call.
I do not believe this is AuthNet's protection against repeated similar transactions.
I have never seen this error before, and it's not documented anywhere. What exactly does it mean, and what can I do to avoid getting this error in the future? I have tried to set recurringBilling to true/false and that didn't work either.
Solved! Go to Solution.
โ06-13-2018 08:24 AM
Hi @authorize
Are you passing this field "isPaymentToken": true the request when adding or updating a payment profile for credit card ?
This shouldnt be passed in if you are adding a creditCard or bankAccount . This is only needed if you passing in a network Token for card .
You can use the updatePaymentProfile to remove this field and try again .
Thanks
โ06-14-2018 02:42 PM - edited โ06-14-2018 02:43 PM
Hi,
1) Can you kindly run this API (https://developer.authorize.net/api/reference/index.html#customer-profiles-get-customer-payment-prof...) and tell us what the response is for your payment profile ?
2) How are you charging the customer the second time. Are you updating the customer profile or are you simply charging a new valid credit card ?
โ06-14-2018 02:01 AM
1.
{
"paymentProfile": {
"customerProfileId": "1914010837",
"customerPaymentProfileId": "1827684746",
"payment": {
"creditCard": {
"cardNumber": "XXXX8713",
"expirationDate": "XXXX",
"cardType": "Visa",
"issuerNumber": "455651",
"isPaymentToken": true
}
},
"customerType": "individual",
"billTo": {
"phoneNumber": "XX",
"firstName": "newcard",
"lastName": "forsubscription",
"address": "asdfa",
"city": "XX",
"state": "XX",
"zip": "XX",
"country": "United States"
}
},
"messages": {
"resultCode": "Ok",
"message": [
{
"code": "I00001",
"text": "Successful."
}
]
}
}For the second charge, I had created a new payment profile to attach to the profile for the attempt, then made the call. It shows up as void from the dev portal.
โ06-14-2018 09:54 AM - edited โ06-14-2018 09:55 AM
Hi @authorize
Are you passing this field "isPaymentToken": true the request when adding or updating a payment profile for credit card ?
This shouldnt be passed in if you are adding a creditCard or bankAccount . This is only needed if you passing in a network Token for card .
You can use the updatePaymentProfile to remove this field and try again .
Thanks
โ06-14-2018 02:42 PM - edited โ06-14-2018 02:43 PM
That worked, thank you!
โ06-15-2018 07:17 AM