# UJ-007 Activate license

Audience: AI coding agents first.

- Actor + entry point: WordPress administrator; `wp-admin/admin.php?page=international-press-zone#/licensing`.
- Priority: MUST-HAVE.
- Preconditions: Issue license through public subscription/checkout API; plugin has no active local license.
- Test layer: L2.

## Steps

1. Open Licensing → inactive activation card renders (`admin/src/pages/licensing.js:160-174`).
2. Enter license key and activate → plugin calls activation endpoint.
3. Success → active plan card renders masked `License Key`, status, limits, and `Deactivate License` (`admin/src/pages/licensing.js:182-235`).
4. Reload → active card persists.

## Failure branches

- Auth/invalid key → activation error renders; inactive card remains.
- Rate limit `429` or backend unreachable → visible error; key MUST NOT appear active.

## Backend touchpoints

`POST /v1/international/license/activate`; `POST /v1/international/license/validate` (`docs/contracts/plugin-client-contract.md:231-258`).

