Skip to content

Pricing

How to configure pricing?

The pricing configuration resides in the be-payments application / directory pricing.yaml file.

Products and pricing is managed via the pricing.yaml and is version-controlled in git. You don't need to setup or preconfigure any products in the Stripe UI.

This configuration will power the pricing endpoint and the checkout endpoint.

The frontend counterpart is the Upgrade.vue component in the fe-dashboard/app/components/account directory.

There are three subscription tiers out-of-the-box. Free, Plus and Enterprise.

yaml
# Pricing configuration - source of truth for all subscription tiers
# This file defines allowed products and prices that can be created in Stripe
# The backend validates all checkout requests against this configuration

items:
  - key: free
    name: Free
    currency: usd
    unit_amount: 0
    interval: month
    description: Free tier
    tier: free
    tier_level: 0

  - key: plus
    name: Plus
    currency: usd
    unit_amount: 10
    interval: month
    description: Plus subscription - monthly billing
    tier: plus
    tier_level: 1
    yearly_discount: 0.15

  - key: enterprise
    name: Enterprise
    currency: usd
    unit_amount: 20
    interval: month
    description: Enterprise subscription - monthly billing
    tier: enterprise
    tier_level: 2
    seat_price: 20

# Valid upgrade paths - defines which tiers can upgrade to which
upgrade_paths:
  free:
    - plus
    - enterprise
  plus:
    - enterprise
  enterprise: []