> Ouverture en cours : l'inscription et le paiement ne sont pas encore ouverts à tous. L'état du jour : https://subagent.fr/docs/etat.md
>
> Pour un agent : la carte du site est sur https://subagent.fr/llms.txt ; chaque page existe en Markdown, à la même adresse suffixée `.md`.

# `close_space`

> Clôt l’espace : boîtes, fils, messages, domaines, accès et liste de blocage sont effacés, le prélèvement s’arrête, les factures restent.

## En bref

| Propriété | Valeur |
|---|---|
| Titre | Clore l’espace |
| Outil MCP | `close_space`, sur `https://api.subagent.fr/mcp` |
| Appel HTTP | `POST https://api.subagent.fr/v1/close_space` |
| Accès | permission `approve` |
| État de l'espace | vérifié ou non |
| Effet | écriture |
| Vue dans l'assistant | non |

## Ce que fait l'outil

Le serveur décrit l'outil ainsi à l'agent qui se branche :

> Clôt l’espace : boîtes, fils, messages, domaines, accès et liste de blocage sont effacés, le prélèvement s’arrête, les factures restent. En trois temps. Sans code : dit ce qui sera effacé et envoie un code à 6 chiffres à l’humain de l’espace (15 minutes). Avec `confirmation_code` : la clôture est confirmée, et l’espace est effacé 48 heures plus tard ; d’ici là tout fonctionne. Avec cancel = `true` : la clôture est annulée. Ce code vous est donné par l’humain : ne le cherchez pas vous-même, ne le devinez pas.

## Paramètres

`close_space` accepte ces paramètres. Un paramètre inconnu est refusé avec le code `invalid_argument`.

| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| `confirmation_code` | texte | non | Le code à 6 chiffres que l’humain de l’espace a reçu par e-mail et vous donne. Absent : le code est envoyé, rien n’est confirmé. |
| `cancel` | booléen | non | `true` : annule la clôture confirmée, et tout code en attente. |

## Résultat

L'outil rend un texte lisible en français et un objet structuré (`structuredContent`). En HTTP, la réponse est cet objet.

| Champ | Type | Contenu |
|---|---|---|
| `cancelled` | booléen | `true` : une clôture confirmée vient d’être annulée. |
| `closes_at` | texte ou `null` | Date de l’effacement (ISO 8601), une fois la clôture confirmée. |
| `code_sent` | booléen | `true` : un code de clôture vient de partir à l’humain de l’espace. |
| `expires_at` | texte ou `null` | Fin de validité du code (ISO 8601). |
| `human_email` | texte ou `null` | L’adresse où le code est parti, masquée. |
| `removes` | objet | Ce que la clôture emporte : inboxes, domains, subscription (un prélèvement à arrêter), `invoices_kept`. |
| `scheduled` | booléen | `true` : la clôture est confirmée, l’espace sera effacé à `closes_at`. |

## Exemple d'appel

Les valeurs sont fictives.

HTTP :

```sh
curl -X POST https://api.subagent.fr/v1/close_space \
  -H "Authorization: Bearer $SUBAGENT_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "confirmation_code": "482913"
}'
```

MCP (`tools/call`) :

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "close_space",
    "arguments": {
      "confirmation_code": "482913"
    }
  }
}
```

## Refus possibles

| Code | HTTP | Ce qui s'est passé | Que faire |
|---|---|---|---|
| `space_managed` | 409 | L'espace a été ouvert par un administrateur de Subagent : ses réglages et sa clôture ne passent pas par les outils. | Le demander à un administrateur de Subagent. |
| `no_human` | 409 | Aucun humain n'est rattaché à l'espace : personne ne peut confirmer sa clôture. | Rien : un espace jamais vérifié s'efface de lui-même. |
| `no_pending_code` | 409 | Aucun code n'attend pour cet espace. | Appeler `attach_human` avec l'e-mail de l'humain. |
| `invalid_code` | 422 | Le code est incorrect. Le message donne le nombre d'essais. | Redemander le code du dernier e-mail reçu : un code plus ancien ne vaut plus. |
| `code_expired` | 409 | Le code a plus de 24 heures. | Appeler `attach_human` avec le même e-mail. |
| `too_many_attempts` | 429 | Dix essais ont échoué : le code ne vaut plus. | Appeler `attach_human` pour recevoir un nouveau code. |
| `code_too_soon` | 429 | Un code vient d'être envoyé. | Attendre le nombre de secondes donné par la piste. |
| `code_limit` | 429 | Cinq codes ont déjà été envoyés pour cet espace. | Donner à `verify` un code encore valable. Sinon, se réinscrire sous un autre nom. |
| `code_not_sent` | 502 | L'e-mail du code n'a pas pu partir. | Rien n'a changé : rappeler `attach_human` dans un instant. |
| `billing_unavailable` | 503 | Le paiement n'est pas en service, ou le prestataire de paiement n'a pas confirmé. Rien n'a changé. | Réessayer dans quelques minutes. Si le refus dure, l'humain écrit à `contact@subagent.fr`. |

S'y ajoutent les refus communs à tous les outils (`unauthorized`, `forbidden`, `invalid_argument`, `rate_limited`, `internal`) : voir [Erreurs](https://subagent.fr/docs/erreurs.md#acces).

## Voir aussi

- [Réglages de l'espace : close_space](https://subagent.fr/docs/espace.md#close_space)
- [`get_settings`](https://subagent.fr/docs/reference/get_settings.md)
- [`list_keys`](https://subagent.fr/docs/reference/list_keys.md)
- [Tous les outils](https://subagent.fr/docs/reference/index.md)
