Deux endpoints complémentaires permettent de piloter la facturation de votre workspace. `GET /v1/billing/snapshot` retourne un aperçu live du cycle de facturation courant : usage réel (stockage et bande passante), overage projeté en euros, bilan du mois précédent et, le cas échéant, l'impact d'une rétrogradation de plan en cours de mois. `GET /v1/billing/recommendation` analyse 30 jours d'historique et détermine le plan le moins coûteux qui couvre votre consommation, avec le delta mensuel et la prochaine action recommandée. Le endpoint diagnostics `GET /v1/diagnostics/plan-recommendation` propose la même logique avec une fenêtre configurable (range_days) et inclut la contrainte max_active_transfers. Les trois endpoints partagent le même scope et sont conçus pour des flux automatisés (agents MCP, dashboards, alertes).
/v1/billing/snapshotSnapshot live du cycle de facturation courant : usage réel, overage projeté, bilan du mois précédent et impact d'une rétrogradation mid-month.GET/v1/billing/recommendationAnalyse 30 jours d'usage et retourne le plan optimal, la direction (upgrade / downgrade / stay) et le delta de coût mensuel.GET/v1/diagnostics/plan-recommendationVariante diagnostics avec fenêtre configurable (range_days, 7 à 90) et contrainte max_active_transfers. Inclut un tableau reasoning détaillé.Authentification
Les trois endpoints requièrent une clé API avec le scope billing:read. Ce scope est disponible sur les plans Pro et Ultra. Transmettez la clé dans l'en-tête HTTP Authorization au format Bearer : Authorization: Bearer cof_live_…. En environnement de test, utilisez le préfixe cof_test_…. Les clés sandbox (cof_sandbox_…) ne peuvent pas accéder aux données de facturation réelles.
Paramètres de requête
La variante diagnostics accepte une fenêtre configurable et une contrainte sur les transferts actifs. Le tableau ci-dessous détaille les paramètres par endpoint.
| Endpoint | Paramètre | Type | Défaut | Description |
|---|---|---|---|---|
| /v1/billing/snapshot | (aucun) | - | - | Aucun paramètre. Le cycle courant est calculé depuis le 1er du mois UTC jusqu'à maintenant. |
| /v1/billing/recommendation | (aucun) | - | - | Aucun paramètre. Analyse fixe sur les 30 derniers jours. |
| /v1/diagnostics/plan-recommendation | range_days | integer | 30 | Fenêtre d'analyse en jours. Valeur bornée entre 7 et 90 côté serveur. |
Exemples d'appel
Les exemples ci-dessous récupèrent le snapshot de facturation, puis la recommandation de plan. Choisissez votre langage.
Réponse : snapshot de facturation
Le snapshot expose l'usage réel du cycle en cours, l'overage projeté et le bilan du mois précédent. C'est la vue à privilégier pour un tableau de bord de facturation.
Réponse : recommandation de plan
La recommandation analyse 30 jours d'usage et renvoie le plan optimal, la direction (upgrade, downgrade ou stay) et le delta de coût mensuel estimé.
Cas : rétrogradation en cours de mois
Lorsqu'un workspace rétrograde de plan en cours de cycle (ex. Ultra vers Pro), le champ downgrade_impact du snapshot n'est pas null et expose le nouveau quota ainsi que l'overage qui résulterait si le mois se terminait avec ce nouveau quota. Utilisez ce signal pour alerter proactivement vos utilisateurs avant la clôture du cycle.
Erreurs
Les erreurs portent surtout sur le scope billing:read (réservé aux plans Pro et Ultra) ou une fenêtre de jours hors bornes. Le tableau ci-dessous indique la résolution.
| HTTP | code | Quand | Résolution |
|---|---|---|---|
| 401 | missing_api_key | En-tête Authorization absent. | Ajoutez Authorization: Bearer cof_live_… à chaque requête. |
| 401 | invalid_api_key | Clé mal formée ou appartenant à un autre workspace. | Vérifiez le préfixe (cof_live_…, cof_test_…) et l'environnement cible. |
| 401 | expired_api_key | La clé a dépassé sa date d'expiration. | Générez une nouvelle clé dans la console Coffrify. |
| 401 | revoked_api_key | La clé a été révoquée manuellement. | Créez une nouvelle clé avec le scope billing:read. |
| 403 | scope_missing | La clé ne possède pas le scope billing:read. | Éditez la clé et cochez le scope billing:read (Pro/Ultra uniquement). |
| 429 | rate_limited | Quota de requêtes par minute dépassé sur les endpoints read. | Attendez la valeur Retry-After (en secondes) avant de réessayer. |
| 500 | internal_error | Erreur interne (Supabase, timeout). | Consultez le champ request_id et l'onglet Requêtes API de la console pour diagnostiquer. |
Voir aussi
- Créer un lien de checkout
- Consulter l'usage et les quotas
- Référence : Billing Snapshot
- Référence : Billing Recommendation
- Référence : Diagnostics Plan Recommendation
- Gestion des clés API et scopes