# organization.billing.read — Lire la facturation d'une organisation : coordonnées, plafond, forfaits du mois et factures.

> Engendrée depuis le registre. Ne pas modifier à la main.

EX-FACT-010 à EX-FACT-090. Les forfaits du cycle en cours au prix de la grille en vigueur, le projet gratuit, la remise de volume, le montant dû à ce jour et l'estimation de fin de mois ; les factures émises et leur état de paiement. L'usage au-delà des forfaits n'est pas encore mesuré : il est rendu nul plutôt qu'à zéro.

| Propriété | Valeur |
| --- | --- |
| Niveau | `organization` |
| Rang minimal | `admin` |
| Rôle transversal | `billing` |
| Portées | `billing:read` |
| Compte de service | ne la mène pas : elle est réservée à une personne |
| Réversibilité | N — lecture seule, aucun effet |
| Idempotence | une lecture, rejouable sans précaution |
| Limites de débit, par jeton | 600 appels par 60 secondes (`general`) |

## API

`GET /v1/organizations/{organizationId}/billing` — succès en `200`.

| Paramètre | Où | Type | Requis | Description |
| --- | --- | --- | --- | --- |
| `organizationId` | chemin | texte, motif `^org_[0-9A-HJKMNP-TV-Z]{26}$` | oui | Identifiant de organisation |

La réponse :

| Champ | Type | Description |
| --- | --- | --- |
| `organizationId` | texte, motif `^org_[0-9A-HJKMNP-TV-Z]{26}$` | Identifiant de organisation |
| `internal` | booléen | Organisation interne de l'opérateur : jamais facturée. |
| `billedBy` | l'un de `self`, `reseller` | « reseller » : l'organisation est facturée par son agence, qui tient les coordonnées. |
| `billingEntityId` | texte, motif `^bil_[0-9A-HJKMNP-TV-Z]{26}$`, ou nul |  |
| `entity` | objet (`legalName`, `nationalId`, `vatNumber`, `address`, `billingEmail`, `complete`), ou nul |  |
| `spendCapCents` | entier |  |
| `spendCapState` | l'un de `normal`, `degrade`, `plafonne`, ou nul | Où en est la dépense que le plafond compte : « plafonne », les constructions et les ressources payantes nouvelles sont refusées ; null tant qu'aucune grille n'est en vigueur. |
| `spendCountedCents` | entier, ou nul | La dépense que le plafond compte : les forfaits du mois des projets vivants. |
| `cycle` | objet (`start`, `end`, `nextInvoiceOn`) |  |
| `grid` | objet (`version`, `effectiveFrom`), ou nul |  |
| `plans` | liste de 500 éléments au plus — chaque élément : objet |  |
| `volumeDiscountBp` | entier |  |
| `accruedCents` | entier, ou nul |  |
| `estimateCents` | entier, ou nul |  |
| `usageCents` | entier, ou nul | Le dépassement du cycle à ce jour (minutes de construction, Go de base, jours de rétention au-delà de l'inclus du palier), au prix publié de la grille, plafond de dépense appliqué ; null tant qu'aucune grille avec prix de dépassement n'est en vigueur. |
| `overage` | liste de 1500 éléments au plus — chaque élément : objet (`projectId`, `unit`, `measured`, `included`, `billedQuantity`, `unitPriceMillicents`, `amountCents`, `capped`) | Une ligne par projet et par unité dépassée : celles qui seront sur la facture. |
| `projection` | objet (`capCents`, `fixedCents`, `overageToDateCents`, `projectedOverageCents`, `projectedCents`, `permilleOfCap`, `warn`, `capReached`), ou nul | La projection du mois ; null si les forfaits ne sont pas chiffrables. |
| `paymentMethod` | l'un de `lien_par_courriel` | Le lien de paiement part par courriel à chaque facture. |
| `invoices` | liste de 24 éléments au plus — chaque élément : objet | Les vingt-quatre dernières factures, de la plus récente à la plus ancienne. |

En-têtes de la réponse : `RateLimit-Limit`, `RateLimit-Remaining`, `RateLimit-Reset`, `RateLimit-Policy`.

Autres réponses : `400`, `401`, `403`, `404`, `409`, `429`, `500`, `503` — communes à toute opération.

## Ligne de commande

`bastide organization billing read --organization-id <valeur>`

| Option | Type | Requise | Défaut | Description |
| --- | --- | --- | --- | --- |
| `--organization-id` | texte | oui | — | Identifiant de organisation |

La commande s'exécute sans confirmation.

## MCP

Aucun outil : LA PLACE AU CATALOGUE : fermée parce que le catalogue est plein (EX-MCP-165, plafond de soixante-quatre depuis M-212), et non parce qu'un agent n'aurait pas à la lire. Ce qui reste fermé attend les préalables que sa source nomme. C'est une dette d'EX-MCP-010, que la parité compte et interdit de grossir.

## Erreurs

Aucun code propre à cette opération.

S'y ajoutent les refus communs à toute opération — entrée invalide, authentification, autorisation, cible introuvable, conflit, limite de débit, indisponibilité — que le catalogue des erreurs décrit.

## Exemples

Lire la facturation de l'organisation :

```json
{
  "organizationId": "org_01JQ8ZK4M7NP2RSTVWXYZ34567"
}
```
