We receive the error "A duplicate transaction has been submitted." on trying to create a customer profile using createCustomerProfileRequest
This happens when our customers have a credit card declined for AVS missmatch, but they try again in the next minute.
We don`t have any possibility from your API to set x_duplicate_window (on createCustomerProfileRequest) , just like we currently use on createCustomerProfileTransactionRequest
Please confirm this issue or suggest a solution; below you can see the two requests (on the first you can set the duplicate timeframe variable, on the second no posibility)
More info: we use your SDK and we first create a customer profile when a client wants to pay
Could you please re-attach the image or paste the raw text for your request and response. Looks like the image isn't loading and I need more details on your scenario from the request/response body.
The images doesn.t contain requests/responses, they only show the properties of the 2 requests I mentioned.
The problem request is:
[XmlRoot(Namespace = "AnetApi/xml/v1/schema/AnetApiSchema.xsd", IsNullable = false)]
[XmlType(AnonymousType = true, Namespace = "AnetApi/xml/v1/schema/AnetApiSchema.xsd")]
public class createCustomerProfileRequest : ANetApiRequest
public customerProfileType profile;
public validationModeEnum validationMode;
public bool validationModeSpecified;
In the above request there is no possibility of setting a property to specify the time interval in which the reponse should not be as "duplicated ..." . (I`m talking about a property like extraOptions from other request that we use where I can specify x_duplicate_window in seconds)
I did a test on the sandbox environment and was able to create the customer profile by changing the email address for the second immediate request. Let me talk to the team and get back to you about this behaviour.
But could you try to send the same request again, but only change the email address and let me know if it solves your issue temporarily ?
Meanwhile I shall check with team and get back to you.
You must include <validationMode>testMode</validationMode> to prevent a transaction from being attempted during the profile creating if you want to bypass the duplicate window.
And then follow it with a createCustomerProfileTransaction request to charge the customer if needed.
You can only use the extraOptions element with the createCustomerProfileTransaction request.
Let me know if this addresses your issue.
No, what you just said is actually wrong; because we used to create customer profiles with validationMode = false, and than a CustomerPaymentProfile was created for a DECLINED card. (and that is very bad)
As I understand from you:
"You can only use the extraOptions element with the createCustomerProfileTransaction request."
we will still receive duplicate transaction for createCustomerProfileRequest, because we cannot change the email as you suggested(it`s just absurd, we don`t want to make hacks on our side)
So, does AuthorizeNET have any plans to maybe fix this issue ?
We're getting reports of this happening when incorrect, then correct CVV is submitted (but I thought any field change is supposed to qualify a second attempt as different). Found this when looking for a solution for this as a known issue, and see the thread unfortunately went stale.
Is this fixed?
I just learned a few moments ago that the CVV is not checked against the previous transaction, so a cahnge of the CVV will still result in a duplicate transaction if all other details are the same and the second submission falls within that Duplicate Window (which defaults to 2 minutes)
Not sure if this will help you, but I came across this page while I was looking for answers to similar problems, and figured I would share in case it helps anyone else.
the Authorize.net reference here includes a list of all the fields that are checked as part of the duplicate transaction process: