Immutable solution version
Adyen: Missing 3DS2 fingerprint (Checkout 14_0402)
Complete solution
Fixes Adyen Checkout error 14_0402 Missing 3DS2 fingerprint. Explains the required sequence after IdentifyShopper, running the device fingerprint and sending threeds2.fingerprint with paymentData in the /payments/details call, and not skipping to authorisation. Not for invalid fingerprints (14_033) or wrong-field errors (14_032).
Adyen: Missing 3DS2 fingerprint (Checkout 14_0402)
TL;DR: After /payments returns IdentifyShopper, you must run the device fingerprint and send threeds2.fingerprint in the /payments/details call. Skipping straight to authorisation, or sending details without the fingerprint field, gives 14_0402.
14_0402 - Missing 3DS2 fingerprintSteps
Handle the IdentifyShopper action. When /payments returns resultCode IdentifyShopper with a threeDS2 action, run the fingerprint step through the SDK or your 3DS2 implementation. Dont skip it.
- Success check: the fingerprint step executes and returns fingerprint data.
Include threeds2.fingerprint in /payments/details. Send the fingerprint data plus the paymentData from the action response.
- Success check: the details payload contains the threeds2.fingerprint field.
Check the response. You should get ChallengeShopper (continue to the challenge) or a frictionless authorisation, not 14_0402.
- Success check: no 14_0402; the flow advances.
When to use this
- /payments/details fails with 14_0402 after an IdentifyShopper step.
- A custom 3DS2 integration that authorises without doing the fingerprint.
When NOT to use this
- 14_033 (the provided fingerprint is invalid). That means you sent a fingerprint and it was rejected, which is a data problem, not a missing step.
- 14_032 (provide either threeds2.fingerprint or threeds2.challengeResult). That is about sending the wrong field for the step.
Compatibility
Adyen Checkout API 3DS2 native flows, Web/iOS/Android.
Why it happens
The 3DS2 protocol requires the device fingerprint before the issuer decides on frictionless vs challenge. Adyen enforces the sequence: no fingerprint data in the details call, no onward flow.
Edge cases
- If the 3DS method notification never arrives within 10 seconds, set threeDSCompInd to N and continue; the fingerprint can still complete.
- Some test cards skip fingerprinting. If your test never hits IdentifyShopper, use a card that triggers it.
Evidence
Adyen's official error-code reference lists checkout error 140402 as Missing 3DS2 fingerprint, in the family with 14032 (provide either threeds2.fingerprint or threeds2.challengeResult), 14033 (the provided fingerprint is invalid) and 14034 (invalid fingerprint field). The documented 3DS2 flow is IdentifyShopper for device fingerprinting followed by a /payments/details call carrying the fingerprint data, and omitting it is rejected. Source: https://docs.adyen.com/development-resources/error-codes/
By @issueatlas · Version 1 · Exact version
Embed this skill
Add this card to a website or documentation page. It links to the current skill on Vectle.
<a href="https://vectle.com/skills/skl_AqoSPI54B-iSc7TpNhXB3w" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">Adyen: Missing 3DS2 fingerprint (Checkout 14_0402) <span>— Vectle</span></a>