Card nonce not found

In Sandbox the payment api works without issue.
In production, after I change the Application ID, Access Token, and URLs to both https://connect.squareup.com/v2/payments and https://js.squareup.com/v2/paymentform, I get the “Card nonce not found” error.
What is odd, is that this worked with no errors for 12 hours, and CC payments were completed without issue.
Nothing was changed on the website, it suddenly stopped working!?!
I’m pulling my hair out!
Any help is appreciated, Thank You!

OK, changing this from:
“source_id” => “cnon:card-nonce-ok”
to
“source_id” => $nonce
fixed my issue.
Not sure why this would suddenly make a difference…???

cnon:card-nonce-ok is not a valid card nonce in production, so you would get that error in production. It’s only valid in sandbox, so when you made the change to production URLs, it suddenly would throw that error.

Ahhh I see, I didn’t see that anywhere in the documentation.

Is there any difference between? :
“card_nonce” => $nonce
“source_id” => $nonce <–This is what I am currently using.
Which is the correct one?
I’ve seen both in two separate examples, on one forum page, and they too had no idea what the difference is. It was the ONLY place I’ve seen this mentioned, no where on square documentation, square forums or square stackoverflow.
Thank you

source_id is definitely the correct one. card_nonce was used in the deprecated Charge endpoint (Payments API has replaced this API, just linking for referencing but please do not use). If you attempted to use it with CreatePayment, it would fail due to missing the required source_id field. You can see the list of body parameters here: POST /v2/payments - Square API Reference