Skip to main content
These are the codes you hit while wiring up Elements — a bad publishable key, an Element that isn’t mounted, a duplicate Element, or a call made out of order. Every one is an ElementsError (see Error object and handling); catch it and branch on err.code. Integration and SDK codes come from the SDK itself, synchronously or from submit(); Iframe-relayed codes are surfaced from inside the card iframe but arrive the same way, as err.code on the ElementsError submit() rejects with.

Integration and SDK codes

Thrown for programming errors and environment issues — fix the integration rather than retry, unless noted. For the specific symptoms these codes map to, see Fix publishable key errors (the api:* codes), Fix card fields that don’t render (the element:* codes), and Prevent double submission (submit:in_progress / submit:rate_limited).

Iframe-relayed codes

Surfaced from inside the card iframe. Treat an unrecognized value as a generic failure. network_error here is the same signal covered in depth on Handle browser network errors; the rest resolve the same way as a tokenization failure — see Handle tokenization failures.

Next steps

Error object and handling

The ElementsError shape and the standard catch pattern.

Tokenization errors

Bind-time gateway errors from submit().

3D Secure errors

Codes from authenticate(), handle(), and resume().

Handle failures overview

Find the right recovery guide by symptom.
Last modified on September 15, 2026