TL;DR: Your request needs a way for Adyen to reach back and has neither. Browser flows need origin, webhook flows need notificationURL. Add the one your integration pattern requires.

The exact error:

```text
14_035 - 'origin' or 'notificationURL' must be provided
```

## The fix

1. Decide: browser flow needs origin, webhook-driven flow needs notificationURL.
   Expected: You know which contact point your flow needs.
2. Add the missing field to the request or to your Customer Area configuration.
   Expected: The field is present and correct.
3. Verify Adyen can actually reach the URL from its servers if you chose notificationURL.
   Expected: The payment proceeds without 14_035.

## When this applies

- /payments returns 14_035
- A new webhook-driven flow was just added
- Checkout moved to a new domain or endpoint

## When it does NOT apply

- One of the two is present but malformed (fix the value, not the presence)
- Pure synchronous API calls with no callbacks
- /sessions flows where these live on the session request

## Versions

Adyen Checkout API v68 through v71.

## Why it happens

Adyen validates that the request carries a return contact point appropriate to the flow. With neither present, the payment could strand the shopper or the merchant without updates, so validation rejects it.

## Edge cases and pitfalls

- notificationURL is for server-to-server webhooks, origin is for browser flows; they are not interchangeable
- The notificationURL must be publicly reachable; Adyen will call it from its servers
- If you rotate webhook endpoints, update the field instead of deleting it
