> 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`.

# Prix et paiement

> Subagent Mail est payant : trois forfaits par mois, à 9 €, 19 € et 49 €. L'agent ne paie jamais. Il demande un lien de paiement avec `subscribe` et le remet à son humain, qui paie. `billing_status` dit où en est l'espace.

Les réponses d'outils ci-dessous sont des exemples, au format du serveur. Les noms, adresses, liens et identifiants sont fictifs.

## Les forfaits

| Prix par mois | Boîtes | E-mails par mois | Code |
|---|---|---|---|
| 9 € | 2 | 800 | `mail-9` |
| 19 € | 5 | 2 000 | `mail-19` |
| 49 € | 15 | 6 000 | `mail-49` |

- **Prix nets.** TVA non applicable, article 293 B du CGI.
- **Par mois, sans engagement.** Le même montant est prélevé chaque mois, jusqu'à la résiliation.
- **Une boîte envoie 20 e-mails par jour à tous les forfaits**, après sa montée progressive. Le quota du jour ne se vend pas. Voir [Règles d'envoi](https://subagent.fr/docs/regles-envoi.md#montee-progressive).
- **Au-delà du volume du mois, un message attend** la période suivante. Ce n'est pas un refus. Un envoi de test (`test`) ne compte pas dans le volume.
- **Au plafond de boîtes, la création d'une boîte est refusée** avec le code `inbox_limit`. La piste donne le forfait suivant et la façon d'y passer : voir [Changer de forfait](#plus-grand).
- **L'offre est réservée aux professionnels établis en France.** Les conditions : [Conditions générales de vente](https://subagent.fr/conditions.md).

La page des tarifs du site : [Tarifs](https://subagent.fr/tarifs.md).

## Avant et après le paiement

| Ce que fait une boîte | Avant le paiement | Une fois le forfait payé |
|---|---|---|
| Recevoir | oui | oui |
| Préparer des brouillons | oui | oui |
| Écrire à son humain (`send_email` avec `test`) | oui | oui |
| Répondre à un correspondant qui lui a écrit | non | oui, depuis toute boîte, domaine commun compris |
| Écrire un premier message à quelqu'un, ou relancer sans réponse | non | oui, depuis une boîte du domaine du client |
| Ouvrir une autre boîte | non | oui, jusqu'au plafond du forfait |
| Enregistrer un domaine | non | oui |

- **Avant le paiement, aucun tiers ne reçoit rien.** La boîte reçoit, prépare des brouillons et n'écrit qu'à son humain. Un envoi à un tiers, la validation d'un brouillon, une seconde boîte et `add_domain` sont refusés avec le code `payment_required`.
- **Une fois le forfait payé, la boîte du domaine commun `subagentmail.fr` ne fait que répondre** à qui lui a écrit. Un premier message, ou une relance sans réponse, part d'une boîte du domaine du client : sinon, refus `own_domain_required`. Voir [Domaines](https://subagent.fr/docs/domaines.md).
- **Un envoi de test passe toujours** : il ne part que vers l'e-mail de l'humain de l'espace, ou vers une autre boîte de l'espace.

Sans forfait, un envoi à un tiers est refusé ainsi :

```text
Cet espace n’a pas de forfait en cours : sa boîte reçoit, prépare des brouillons et n’écrit qu’à son humain (test: true). (code payment_required)
→ Les forfaits : 9 € par mois : 2 boîtes, 800 e-mails par mois ; 19 € par mois : 5 boîtes, 2 000 e-mails par mois ; 49 € par mois : 15 boîtes, 6 000 e-mails par mois. subscribe remet le lien de paiement à donner à votre humain ; billing_status dit où en est l’espace.
```

## Le paiement

1. **L'agent demande le lien.** Il appelle `subscribe`, après l'accord de son humain. L'espace doit être vérifié.
2. **Il remet le lien à son humain**, tel quel. Le lien est personnel et vaut 72 heures.
3. **L'humain paie.** Sur la page du lien, il choisit son forfait et donne ses coordonnées de facturation. Il paie ensuite sur la page de Mollie, le prestataire de paiement, avec la confirmation de sa banque. Rien n'est débité avant cette confirmation.
4. **L'envoi s'ouvre.** `billing_status` dit que le forfait est en cours : l'agent reprend ce qui attendait.

Ensuite, le même montant est prélevé chaque mois.

- **L'agent ne paie jamais**, et ne valide rien à la place de son humain.
- **Le lien ne demande aucune connexion.** Il ne permet qu'une chose : payer le forfait de cet espace, et en lire l'état et les factures.
- **Il n'y a pas de console.** Tout passe par les trois outils ci-dessous et par la page du lien.

## `subscribe`

Remet le lien de paiement de l'espace, à donner à son humain. Toute clé peut l'appeler. L'espace doit être vérifié.

| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| `plan` | texte | non | Le forfait à proposer : `mail-9`, `mail-19` ou `mail-49`. `mail-9` par défaut. L'humain peut en choisir un autre sur la page. Quand un forfait est en cours, le code d'un forfait plus grand demande le lien pour y passer. |

```text
Lien de paiement prêt, valable 72 heures :
https://api.subagent.fr/pay/…
Donnez-le tel quel à votre humain (m•••@exemple.fr). Sur la page, votre humain (m•••@exemple.fr) choisit son forfait (9 € par mois : 2 boîtes, 800 e-mails par mois ; 19 € par mois : 5 boîtes, 2 000 e-mails par mois ; 49 € par mois : 15 boîtes, 6 000 e-mails par mois), donne ses coordonnées de facturation, puis paie chez Mollie avec la confirmation de sa banque. Ensuite le même montant est prélevé chaque mois, jusqu’à résiliation.
Vous ne payez rien et ne validez rien à sa place. Ensuite, billing_status dit si le forfait est en cours ; dès qu’il l’est, reprenez ce qui attendait.
```

L'objet structuré porte `status`, `payment_url`, `expires_at`, `plan`, `plans` et `human`, l'adresse masquée de l'humain.

| `status` | Sens |
|---|---|
| `link_ready` | Le lien est prêt : `payment_url` le porte, `expires_at` donne sa fin de validité. |
| `subscribed` | Un forfait est déjà en cours et prélevé : il n'y a rien à payer. La réponse dit comment passer à un forfait plus grand. |
| `exempt` | Aucun forfait ne s'applique à cet espace. |

- **Un lien perdu ou expiré** se redemande : rappelez `subscribe`.
- **Si le paiement n'est pas en service**, l'appel est refusé avec le code `billing_unavailable`.

## Changer de forfait

Un espace dont le forfait est en cours et prélevé passe à un forfait plus grand tout de suite, sans attendre la fin du mois.

1. **L'agent redemande un lien** : `subscribe` avec `plan`, le code du forfait voulu (`mail-19` ou `mail-49`).
2. **L'humain paie la différence** sur la page du lien : la différence de prix entre les deux forfaits, au prorata du temps qui reste dans le mois déjà payé. Le montant est arrondi au centime, et vaut un euro au moins.
3. **Le forfait monte dès le paiement confirmé** par sa banque. Le prélèvement mensuel passe ensuite au prix du nouveau forfait.

Un exemple : 10 jours après le début d'un mois de 30 jours, passer de 9 € à 19 € coûte 6,67 €.

```text
Lien de paiement prêt, valable 72 heures :
https://api.subagent.fr/pay/…
Donnez-le tel quel à votre humain (m•••@exemple.fr). Sur la page, votre humain (m•••@exemple.fr) passe du forfait à 9 € par mois au forfait à 19 € par mois : il paie aujourd’hui la différence au prorata (environ 6,67 €, jusqu’au 12 novembre 2026), chez Mollie, avec la confirmation de sa banque. Le forfait monte dès le paiement confirmé ; le prélèvement mensuel passe ensuite à 19 € par mois.
Vous ne payez rien et ne validez rien à sa place. Ensuite, billing_status dit si le forfait est en cours ; dès qu’il l’est, reprenez ce qui attendait.
```

- **La page du lien montre les forfaits plus grands**, chacun avec ce qu'il coûte aujourd'hui.
- **`subscribe` avec le code du forfait en cours, ou d'un forfait plus petit, ne remet pas de lien** : la réponse dit qu'un forfait est déjà en cours.
- **Pour un forfait plus petit**, l'humain résilie (`cancel_subscription`), puis paie le forfait voulu depuis un lien (`subscribe`). Le mois acheté commence à la fin du mois en cours.

## `billing_status`

Dit où en est l'espace vis-à-vis des forfaits. Il ne prend aucun paramètre. Toute clé peut l'appeler, que l'espace soit vérifié ou non.

À appeler quand un envoi est refusé (`payment_required`, `own_domain_required`), quand un message attend parce que le volume du mois est atteint, avant d'ouvrir une boîte de plus, et après `subscribe` pour savoir si l'humain a payé.

Sans forfait :

```text
Aucun forfait en cours. D’ici là, la boîte reçoit, prépare des brouillons (requires_approval) et n’écrit qu’à son humain (send_email avec test: true) ; elle n’écrit à aucun tiers, et l’espace n’ouvre ni seconde boîte ni domaine.
Les forfaits, prix nets (TVA non applicable, article 293 B du CGI) : 9 € par mois : 2 boîtes, 800 e-mails par mois ; 19 € par mois : 5 boîtes, 2 000 e-mails par mois ; 49 € par mois : 15 boîtes, 6 000 e-mails par mois.
Pour payer : subscribe remet un lien à donner à votre humain ; c’est lui qui paie, jamais vous.
Une boîte envoie au plus 20 e-mails par jour, après sa montée progressive. Une fois le forfait payé, la boîte du domaine commun ne fait que répondre : un premier message part d’une boîte de votre domaine (add_domain).
```

Avec un forfait en cours :

```text
Forfait à 19 € par mois (mail-19), payé jusqu’à jeudi 12 novembre à 14 h 32.
Boîtes : 2 sur 5. E-mails partis depuis lundi 12 octobre à 14 h 32 : 37 sur 2 000.
Prélèvement mensuel en cours : le prochain le 12 novembre 2026.
La boîte du domaine commun ne fait que répondre à qui lui a écrit : un premier message part d’une boîte de votre domaine (add_domain).
Le forfait suivant : 49 € par mois : 15 boîtes, 6 000 e-mails par mois. Pour y passer tout de suite : subscribe avec plan = mail-49 ; votre humain paie la différence au prorata.
Factures : 1 ; la dernière, SA-00007 : https://api.subagent.fr/invoice/…
```

L'objet structuré porte :

| Champ | Contenu |
|---|---|
| `standing` | `unpaid` : aucun forfait en cours. `paid` : un forfait est en cours. `exempt` : aucun forfait ne s'applique à cet espace. |
| `plan` | Le forfait en cours : `code`, `price_cents`, `price`, `inboxes`, `monthly_emails`. Sinon `null`. |
| `period` | La période payée : `start` et `until`, en ISO 8601. Sinon `null`. |
| `usage` | `inboxes` et `inboxes_max` ; `emails`, les e-mails partis depuis le début de la période, et `emails_max`. |
| `subscription` | Le prélèvement mensuel : `status` (`none`, `pending`, `active`, `past_due`, `canceled`), `renews`, `next_charge_on` (la date du prochain prélèvement, ou `null`), `ends_at` (la fin du forfait quand rien ne le renouvelle, ou `null`). |
| `last_payment` | L'issue du dernier paiement ouvert par `subscribe` : `none`, `pending`, `paid` ou `failed`. |
| `invoices` | Les factures, de la plus récente à la plus ancienne : `number`, `issued_on`, `amount_cents`, `amount`, `url`. |
| `plans` | Les forfaits en vente. |

`inbox_status` dit aussi, en une ligne, si un forfait est en cours et jusqu'à quand.

## Les factures

- **Une facture est émise à chaque paiement** : le premier, chaque prélèvement mensuel, et la différence payée pour passer à un forfait plus grand.
- **Son lien arrive par e-mail** à l'humain de l'espace, avec l'avis de paiement reçu.
- **`billing_status` rend toutes les factures** (`invoices`), chacune avec son lien.
- Elle porte les coordonnées de facturation données sur la page de paiement.

## Un paiement en retard

Quand un prélèvement mensuel n'aboutit pas, l'envoi continue trois jours après l'échéance.

- **Pendant ces trois jours**, `billing_status` dit que l'échéance est dépassée. Quand le prélèvement a échoué, `subscription.status` vaut `past_due`, et l'humain reçoit un e-mail. `subscribe` remet un lien pour payer.
- **Passé ces trois jours**, l'envoi s'arrête : la boîte reçoit, prépare des brouillons et n'écrit plus qu'à son humain. Les messages en file attendent. Un envoi à un tiers est refusé avec le code `payment_required`.
- **Pour payer**, l'humain passe par un lien neuf : `subscribe`. À la confirmation de sa banque, le prélèvement qui n'a pas abouti est remplacé, et l'envoi reprend.

## `cancel_subscription`

Arrête le prélèvement mensuel du forfait. Il ne prend aucun paramètre. Permission : `approve`. L'espace doit être vérifié.

C'est un geste de l'humain : il le demande à son assistant, branché à l'adresse `https://api.subagent.fr/connect`. La clé rendue par `sign_up` ne porte pas `approve` : un agent ne résilie pas le forfait de son humain. Voir [Connecteur](https://subagent.fr/docs/connecteur.md).

```text
Résiliation enregistrée : plus aucun prélèvement. Le mois payé reste acquis : l’envoi continue jusqu’au 12 novembre 2026. Ensuite, la boîte reçoit, prépare des brouillons et n’écrit plus qu’à son humain. Pour reprendre avant cette date : subscribe.
```

- **Plus aucun prélèvement** n'a lieu après la résiliation.
- **Le mois payé reste acquis** : l'envoi continue jusqu'à sa fin (`paid_until`).
- **Pour reprendre un forfait résilié**, l'humain paie de nouveau depuis un lien : `subscribe`. Il n'y a pas de reprise sans paiement. S'il paie avant la fin du mois déjà payé, le mois acheté commence à la fin de celui-ci : rien n'est perdu.
- **Le rappeler ne change rien de plus** : la réponse dit que le forfait est déjà résilié.
- **Sans prélèvement en cours**, l'appel est refusé avec le code `no_subscription`.
- L'humain peut aussi écrire à `contact@subagent.fr`.

## Le remboursement

Un remboursement se demande dans les 14 jours qui suivent le premier paiement, en écrivant à `contact@subagent.fr`. Aucun outil ne rembourse. Voir les [Conditions générales de vente](https://subagent.fr/conditions.md).

## Pour un agent

- **Vous ne payez jamais.** Vous remettez le lien de `subscribe` à votre humain, tel quel, après son accord.
- **Ne citez pas d'autres prix** que ceux de cette page.
- **Dites à votre humain ce que la boîte fait avant le paiement** : elle reçoit, prépare des brouillons et n'écrit qu'à lui.
- **Dites-lui qu'il faut son domaine pour écrire le premier.** La boîte du domaine commun ne fait que répondre.
- **Au plafond de boîtes, proposez le forfait suivant** à votre humain : `subscribe` avec `plan` remet le lien.
- **Après `subscribe`, appelez `billing_status`** pour savoir si le forfait est en cours. Ne relancez pas votre humain à chaque appel.
- **Un refus `payment_required` ou `own_domain_required` ne se contourne pas.** Suivez sa piste.
