💳
Facturation & quotas·Débutant·5 min

Générer un lien vers le portail de facturation Stripe

Créez en un appel une URL authentifiée vers le portail Stripe pour que vos utilisateurs puissent consulter leurs factures, mettre à jour leur moyen de paiement ou résilier leur abonnement.

Télécharger en PDF

L'endpoint POST /v1/billing/portal-link génère une URL de session Stripe Billing Portal associée au client Stripe du workspace courant. Une fois redirigé vers cette URL, l'utilisateur peut consulter ses factures PDF, mettre à jour sa carte bancaire ou résilier son abonnement, sans avoir à se réauthentifier auprès de Stripe. Le lien expire après quelques minutes : générez-le à la demande, ne le mettez pas en cache. Si le workspace n'a jamais souscrit d'abonnement payant (aucun stripe_customer_id), l'endpoint retourne une erreur not_found plutôt que de renvoyer une URL invalide.

POST/v1/billing/portal-linkCrée une session Stripe Billing Portal et retourne son URL de redirection.
GET/v1/billing/subscriptionRécupère le plan actuel, le statut et les identifiants Stripe du workspace (utile pour vérifier qu'un customer_id existe avant d'appeler portal-link).

Authentification

Cet endpoint requiert une clé API avec le scope billing:read. Transmettez-la dans l'en-tête Authorization au format Bearer. Les clés de test commencent par cof_test_…, les clés de production par cof_live_…. Utilisez cof_sandbox_… dans les environnements d'intégration isolés.

Corps de la requête

Le corps est minimal : il sert surtout à préciser l'URL de retour après la session Stripe. Le tableau ci-dessous détaille les champs acceptés.

ChampTypeRequisDescription
return_urlstringNonURL vers laquelle Stripe redirigera l'utilisateur après fermeture du portail. Doit commencer par https://. Par défaut : https://billing.coffrify.com?pane=inv.
flowstringNonDeep-link optionnel. Seule valeur acceptée : "payment_method". Ouvre directement l'écran de mise à jour du moyen de paiement dans le portail Stripe. Sans ce champ, le portail s'ouvre sur la page par défaut (liste des factures).

Exemple d'appel

L'exemple ci-dessous crée une session de portail et récupère son URL de redirection. À exécuter côté serveur. Choisissez votre langage.

curl -X POST https://api.coffrify.com/v1/billing/portal-link \
-H "Authorization: Bearer cof_live_…" \
-H "Content-Type: application/json" \
-d '{
"return_url": "https://votre-app.com/settings/billing"
}'

Réponse

En cas de succès, l'API retourne un objet JSON avec l'URL de session et l'identifiant Stripe du client.

{
"url": "https://billing.stripe.com/session/live_YWNjdF8xUmJrV...",
"customer_id": "cus_QxyzAbCdEfGh12"
}
ChampTypeDescription
urlstringURL de session Stripe Billing Portal. Valide quelques minutes seulement. Redirigez immédiatement l'utilisateur.
customer_idstringIdentifiant Stripe du client (cus_…) associé au workspace. Utile pour des appels Stripe directs côté serveur.

Erreurs

Les erreurs surviennent surtout quand le workspace n'a pas encore de client Stripe, ou quand le scope billing:read manque. Le tableau ci-dessous indique la résolution.

Code HTTPCode d'erreurQuandRésolution
400validation_errorLe champ flow contient une valeur autre que "payment_method", ou return_url ne commence pas par https://.Corrigez la valeur du champ incriminé.
401invalid_api_keyLa clé API est absente, malformée ou révoquée.Vérifiez que vous transmettez bien Authorization: Bearer cof_live_… (ou cof_test_…).
403scope_missingLa clé API ne possède pas le scope billing:read.Créez ou mettez à jour une clé API avec le scope billing:read depuis la console Coffrify.
404not_foundLe workspace n'a pas de stripe_customer_id : l'utilisateur n'a jamais souscrit d'abonnement payant.Redirigez l'utilisateur vers POST /v1/billing/checkout-link pour initier un abonnement Pro ou Ultra.
429rate_limitedQuota de requêtes par minute dépassé pour ce workspace.Attendez la durée indiquée dans l'en-tête Retry-After avant de relancer.
500internal_errorStripe n'est pas configuré côté serveur (STRIPE_SECRET_KEY absente) ou la création de session a échoué.Réessayez. Si l'erreur persiste, contactez le support Coffrify avec le request_id retourné.

Bonnes pratiques


Voir aussi

  • Générer un lien de paiement Stripe Checkout
  • Consulter l'abonnement et le plan actuel
  • Recommandation de plan selon l'usage
  • Référence : Authentification et scopes
  • Référence : Erreurs API
  • Référence : Rate limiting
Continuer

Autres tutoriels à suivre