# Authentification

Clé Bearer, portées, idempotence, et comptes du Registre chiffrés.

Deux secrets distincts : la clé d'API Fonciq, et le compte du Registre foncier de votre organisation. Le second ne se transmet pas dans les requêtes HTTP. Vous l'enregistrez dans les paramètres, puis vous le désignez par `rf_account_id` lorsque vous ne voulez pas le compte par défaut. `account_id` est accepté comme alias de ce paramètre.

## Clé d'API

```http
Authorization: Bearer fq_test_…
```

Le secret n'est montré qu'une fois. Fonciq conserve le hachage SHA-256. Le préfixe reste affichable. Une clé révoquée reçoit `401`. La clé se crée après la [connexion au studio](https://fonciq.ca/connexion).

Portées :

| Portée | Opérations |
| --- | --- |
| `lots:read` | `GET /v1/lots/resolve`, `GET /v1/lots/{lot}` |
| `registre:write` | `POST /v1/registre/requests`, `POST /v1/actes`, `POST /v1/plans` |
| `batches:write` | `POST /v1/batches` |
| `watches:write` | `POST /v1/watches` |
| `jobs:read` | `GET /v1/jobs/{id}`, `GET /v1/jobs/{id}/results`, `GET /v1/documents/{id}`, `GET /v1/documents/{id}/entries` |
| `billing:read` | `GET /v1/billing`, `GET /v1/billing/usage` |

Une portée manquante reçoit `403` et le code `forbidden`.

## Idempotence

`POST /v1/registre/requests`, `POST /v1/actes`, `POST /v1/plans`, `POST /v1/batches` et `POST /v1/watches` exigent l'en-tête `Idempotency-Key`. La clé est conservée 24 heures. La même clé et le même corps renvoient la réponse enregistrée pour cette clé.

## Compte du Registre

L'organisation ajoute le compte dans les paramètres de l'API. L'écran de consentement précède l'enregistrement. La valeur est chiffrée, en écriture seule, et peut être révoquée. Le traitement du compte est décrit dans le tableau de bord. L'ajout se fait après la [connexion au studio](https://fonciq.ca/connexion).

Plusieurs comptes peuvent être actifs. Celui que vous marquez comme compte par défaut est utilisé lorsque `rf_account_id` est absent :

- une consultation unitaire et une surveillance prennent ce compte ;
- un lot groupé est réparti en parallèle sur les comptes actifs.

Pour épingler une requête, un lot groupé ou une surveillance à un seul compte, envoyez son `rf_account_id`. `account_id` est un alias. Un identifiant inconnu reçoit `404` et le code `account_not_found`. Une consultation sans aucun compte reçoit `409` et le code `account_required`.

Chaque compte a son propre plafond d'environ 540 index par jour. Les surveillances placées sur un compte consomment la capacité de ce compte. Voir [tâches](/registre/taches) et [surveillances](/donnees/surveillances).
