
# Riattiva un autenticatore segnalato

`POST /v1/users/{user_id}/authenticators/{authenticator_id}:reactivate` · autorizzazione `user-credentials:write`

Riporta un autenticatore in stato `clone_suspected` (anomalia del contatore di firma della passkey) allo stato `active` per decisione di un amministratore; il contatore viene allineato all'ultimo valore e viene scritto un record di audit. Se l'autenticatore non è `clone_suspected`, la chiamata fallisce con `409`. La richiesta non prevede un corpo.

## Richiesta

| Parametro | In | Obbligatorio | Descrizione |
|---|---|---|---|
| `user_id` | path | sì | ID utente, con prefisso `usr_`. |
| `authenticator_id` | path | sì | ID autenticatore, con prefisso `cred_`. |

La richiesta non prevede un corpo.

## Risposta

`200 OK`. Il corpo è l'autenticatore aggiornato.

Quando la chiave non ha l'autorizzazione `users:read_pii`, `label` viene ridotto alle iniziali (`A. L.`).

```json
{
  "id": "cred_0a1b2c3d4e5f6g7h8j9k0m1n2p",
  "type": "webauthn",
  "role": "both",
  "label": "Laptop",
  "status": "active",
  "synced": true,
  "created_at": "2026-01-15T09:30:00Z",
  "last_used_at": "2026-02-01T08:00:00Z",
  "revoked_at": null,
  "revoked_by": null,
  "revoke_reason": null
}
```

`type`: `webauthn`, `totp`, `sms`, `email`, `push` · `role`: `first_factor`, `second_factor`, `both` · `status`: `pending`, `active`, `revoked`, `clone_suspected`

## Errori

Ogni errore è un corpo `application/problem+json` con un `code` stabile.

| HTTP | `code` | Quando |
|---|---|---|
| 409 | `conflict` | L'autenticatore non è nello stato `clone_suspected`. |
| 404 | `not_found` | L'utente o l'autenticatore non esistono in questo ambiente, l'autenticatore non appartiene a questo utente, oppure un ID è malformato. |
| 401 | `unauthenticated` | La chiave API manca, non è valida o è stata revocata. |
| 403 | `insufficient_permissions` | La chiave non ha l'autorizzazione `user-credentials:write`. |
| 429 | `rate_limited` | È stato superato il limite di frequenza; rispetta `Retry-After`. |
| 503 | `service_unavailable` | Una dipendenza non è temporaneamente disponibile; riprova più tardi. |

## Esempio

```bash
curl -X POST https://api.eu.keenauth.com/v1/users/usr_0a1b2c3d4e5f6g7h8j9k0m1n2p/authenticators/cred_0a1b2c3d4e5f6g7h8j9k0m1n2p:reactivate \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)"
```

## Dati personali

Questo endpoint contiene dati personali: credenziali. [Dati personali nelle API di KeenAuth](/docs/policies/personal-data) descrive cosa viene memorizzato, per quanto tempo viene conservato e come viene eliminato. Non inviare categorie particolari di dati personali (salute, dati biometrici, religione, opinioni politiche, orientamento sessuale) in nessun campo.
