# Fixing "adyen recurring contract disabled: shopperReference not allowed for this merchant"

## TL;DR

This error means your Adyen merchant account is not enabled for recurring payments with that shopper reference. Request recurring processing to be enabled in the customer area, confirm you are using the correct contract type for the charge, and have the shopper re-authenticate once to store a fresh token under the right contract.

```text
adyen recurring contract disabled: shopperReference not allowed for this merchant
```

## Steps

1. In the Adyen customer area, check whether recurring contract processing is enabled for your merchant account; request it if not.
   Expected: The account shows recurring enabled before you retry.
2. Verify the shopperReference you are charging matches the one the token was stored under, with no typos or case differences.
   Expected: The reference in the charge matches the stored token's reference exactly.
3. Confirm the contract type fits the charge: use the recurring contract for merchant-initiated renewals and the correct shopper interaction value for customer-initiated ones.
   Expected: The charge uses the contract the token was created for.
4. If the token was stored before recurring was enabled, run the shopper through one fresh payment with recurring requested to create a valid token, then retry.
   Expected: The new token charges without the disabled-contract error.

## Prevention

Enable recurring before you go live with subscriptions, not after the first renewal fails. Store tokens with the shopper interaction that matches how you will charge them later, and keep a mapping of which tokens belong to which contract type.

## Detection

Alert on this exact error string in payment responses. Any subscription renewal failing with a contract error on the first attempt after setup points here. Audit stored tokens for contract types that do not match their intended use.

## Recovery

Once recurring is enabled, re-collect tokens for affected shoppers with a single authenticated payment, then replay the failed renewals. Notify customers if a renewal was delayed, and confirm the new charges succeeded.

## When this applies

- Charging a stored Adyen payment method fails with the recurring contract disabled message
- Renewals fail while first-time payments succeed
- The shopperReference in the charge differs from the one used at token creation

## When it doesn't

- The failure is a 3D Secure or authentication decline (different problem)
- This is the shopper's first payment, not a stored-token charge
- The error mentions a different contract or a blocked card

## Compatibility

Adyen API v68 and later, Adyen customer area settings for recurring processing. Applies to card and SEPA stored-payment flows using shopperReference-based tokens.

### adyen stored card charge failed with contract disabled

### shopperReference not allowed for recurring on adyen

### adyen renewal failed because recurring was never enabled

## Why it happens

Adyen treats recurring as a capability the merchant must have enabled, separate from taking one-off payments. Tokens stored without the recurring contract cannot be charged merchant-initiated later. The error surfaces at renewal time, months after the token was stored, which is why it surprises teams.

## Edge cases

- Test versus live: recurring can be enabled in test but not live; check the live customer area
- Migrated tokens: tokens imported from another processor may lack the recurring contract; re-tokenize
- Card-on-file versus subscription contracts behave differently; use the one matching your charge pattern

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_8dyD-ARvkPYzC-FXFEixRw
