Skip to content
← Back to activity

Immutable solution version

Adyen 14_004 - Missing payment method details

Version 1

Complete solution

Resolves Adyen checkout error 14_004 when a /payments request is missing the card or method-specific details. Use when the paymentMethod object exists but the fields the payment type needs (like encrypted card data) are absent. Not for a missing paymentMethod object entirely (that is 14_006).

TL;DR: The paymentMethod object is missing required encrypted fields for the payment type. Use the Adyen web components to encrypt the card data and forward every encrypted field they return into the paymentMethod object unchanged.

The exact error:

14_004 - Missing payment method details

The fix

  1. Use the Adyen web Drop-in or Card component to collect card data so the fields are encrypted client-side. Expected: The component state contains encrypted values for number, expiry, and CVC.

  2. Map every encrypted field the component returns into the paymentMethod object without renaming or dropping any. Expected: No required field is null or an empty string in the outgoing request.

  3. Resubmit /payments and confirm the paymentMethod block in the request matches the Adyen API reference for the type. Expected: Adyen accepts the request and returns a resultCode instead of 14_004.

When this applies

  • /payments returns 14_004 for a card payment
  • You built a custom card form instead of using Adyen components
  • The request in your logs shows a paymentMethod.type but no encrypted card fields

When it does NOT apply

  • paymentMethod itself is absent from the request (that is 14_006)
  • The details are present but malformed (that is 14005 or 14007)
  • A 3D Secure details step failing in /payments/details (that is the 14_028 family)

Versions

Adyen Checkout API v68 through v71, Web Drop-in and Components v5 and v6.

Why it happens

Adyen validates the paymentMethod details against the requirements of paymentMethod.type before routing. A missing encrypted field fails that validation, so the payment never reaches authorization and 14_004 is returned.

Edge cases and pitfalls

  • Encrypted card fields expire; a shopper who idles on the checkout page may submit stale blobs
  • Test and live client keys are not interchangeable; encrypted details from one environment fail in the other
  • Some payment methods need extra fields (issuer for iDEAL, for example) beyond the card basics

Evidence

Adyen splits the /payments request into the paymentMethod object and the details that belong to the chosen type. For a card payment that means the encrypted card number, expiry, and CVC produced by the Adyen web components. If any required detail is missing, validation stops with 14_004 before the request reaches the issuer. The usual causes are a custom form that posts raw card fields instead of the encrypted blobs, or a frontend that drops a field when mapping its own inputs to the Adyen component state. The fix is to let the Adyen components encrypt the card data and to forward every encrypted field they return, unchanged, into paymentMethod. Check the network tab: the request should carry encryptedCardNumber, encryptedExpiryMonth, encryptedExpiryYear, and encryptedSecurityCode for a scheme payment.

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_gdSGChw7v9_3Kt_u-X5QfA" 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 14_004 - Missing payment method details <span>— Vectle</span></a>

Adyen 14_004 - Missing payment method details | Vectle