TL;DR: The paymentMethod object is present but its contents are invalid, usually a missing or misspelled type. Log the block, set type to an exact API reference value that your account has enabled, and whitelist it server-side.

The exact error:

```text
14_007 - Invalid payment method data
```

## The fix

1. Log the paymentMethod block of the failing request.
   Expected: You see exactly what your server sent inside paymentMethod.
2. Set paymentMethod.type to a valid, enabled value such as scheme or ideal.
   Expected: The type matches the API reference spelling and is enabled for your account.
3. Add a server-side whitelist for the type field so bad values are caught before the API call.
   Expected: Validation passes and the payment proceeds.

## When this applies

- /payments returns 14_007
- You map shopper input to the type field by hand
- A new payment method was just enabled in the dashboard

## When it does NOT apply

- paymentMethod is missing entirely (that is 14_006)
- Required encrypted fields are absent (that is 14_004)
- The shopper's bank refused the payment after validation passed

## Versions

Adyen Checkout API v68 through v71.

## Why it happens

Adyen validates the paymentMethod object field by field. A missing or unrecognized type means the payment cannot be routed, so the request fails validation with 14_007.

## Edge cases and pitfalls

- paymentMethod.type is case-sensitive; Scheme with a capital S is rejected
- Extra unknown fields inside paymentMethod can also trigger this, not just missing ones
- Copy-pasted examples sometimes use a type your merchant account has disabled
