For years I’ve used Gravity Forms with Square payments plugin to collect ticket ordering information. One customer reported this error in a screenshot. When submitting the order, it appeared as a form validation error:
“Credit Card Payment: Card nonce already used with a different idempotency key; please request new nonce”
What does this mean and what can I do about it? I’m not sure if this resulted in a transaction because the customer gave me only a screenshot without much context.
I’ve been able to track that this validation error coincides with the user’s card actually getting charged. This has led to several complaints of duplicate charges because the user sees the cryptic error and then tries again. And on the second time it seems to consistently work where it charges the card and confirmations successful payment. I then have to refund the first charge when this happens.
I have been having the same issue. It’s quite frustrating as users do not realize the payment still processed and they are purchasing twice, making me refund the second purchase. Has anyone come up with a solution?
I’m also having major issues with the nonce error. Here’s my setup.
Gravity Forms & Gravity Square Add-on
Form is embedded on Beaver Builder Page Builder page.
We’ve removed all additional/extraneous scripts etc from the page, and only running ReCaptcha v3. Caching has been removed from page at site and server level.
Get the error in one of 2 ways shown below but happens so often we’re going to be forced to look at alternative approach soon.
“Invalid square nonce” or “Card nonce already used with a different idempotency key; please request new nonce.”
Of note: This client has 14 locations, the online payment the one we manage.
The log seems to only show this error
2024-06-04 16:04:33.129009 - ERROR → GF_Square::maybe_renew_token() : empty or corrupt auth data for sandbox mode;
The rest look like this.
2024-06-04 16:04:32.987073 - DEBUG → GF_Square_API::fetch_locations(): Retrieved 14 location(s).
Any possible way to make sense of this? I’d love a solution.