Catalog

Configuring Prices

Set up one-time, recurring, and usage-based pricing for your products and services

Prices define how customers pay for your offerings. MoneyMQ supports the pricing models you designed earlier — one-time payments, subscriptions, and usage-based billing.

Price Basics

Every price belongs to a product or service variant:

price:
  amounts:
    usd: 49.00
  pricing_type: recurring
  recurring:
    interval: month
FieldDescription
amountsMap of currency → amount (e.g., usd: 49.00)
pricing_typeone_time (default) or recurring

One-Time Payments

Best for: credits, lifetime access, templates, enterprise deals.

One-time purchase
price:
  amounts:
    usd: 79.00

Use one-time prices for:

  • Credit packs (e.g., 10,000 API calls)
  • Lifetime licenses
  • Digital downloads or templates
  • Setup fees
  • Enterprise contracts

Recurring Subscriptions

Best for: SaaS, API access, ongoing services.

Monthly subscription
price:
  amounts:
    usd: 49.00
  pricing_type: recurring
  recurring:
    interval: month
Annual subscription (with discount)
price:
  amounts:
    usd: 490.00    # saves ~17%
  pricing_type: recurring
  recurring:
    interval: year

To offer both monthly and annual options, create separate variants (see Nested Variants).

Subscription Options

FieldValuesDescription
intervalday, week, month, yearBilling frequency
interval_countNumberEvery N intervals (e.g., 3 = quarterly)

Usage-Based Pricing

Best for: APIs, compute, storage — where usage varies significantly.

Usage-based pricing is implemented through the overage field on a recurring subscription. This combines a base subscription fee with per-unit charges for usage beyond included amounts.

Pure usage-based ($0 base + $0.01 per request)
price:
  amounts:
    usd: 0
  pricing_type: recurring
  recurring:
    interval: month
  overage:
    meter: api_requests
    amounts:
      usd: 0.01
    included: 0              # No free units

Overage Options

FieldTypeDescription
meterstringName of the usage meter
amountsobjectPrice per unit by currency
includednumberUnits included in base price (default: 0)

Report usage via the Better Auth plugin:

// Requires @moneymq/better-auth integration
await authClient.moneymq.recordUsage({
  metric: 'api_requests',
  quantity: 1500,
});

Hybrid: Base + Overages

The most powerful pattern combines a subscription with usage billing. Customers get predictable costs, and you fairly charge heavy users.

Pro tier: $49/mo + overages after 100k requests
price:
  amounts:
    usd: 49.00
  pricing_type: recurring
  recurring:
    interval: month
  overage:
    meter: api_requests
    amounts:
      usd: 0.01
    included: 100000          # First 100k included in base

This is the "GitHub + AWS" model — subscription for access, usage for scale.

Free Tiers

Offer a free tier by setting the amount to 0:

Free starter tier
price:
  amounts:
    usd: 0
  pricing_type: recurring
  recurring:
    interval: month

Combine with feature limits in your variant to control costs:

features:
  requests_per_day:
    value: 100            # Hard limit for free tier
  forecast_days:
    value: 3              # Limited forecast range

Multiple Currencies

Offer localized pricing by nesting currency amounts:

price:
  pricing_type: recurring
  recurring:
    interval: month
  amounts:
    usd: 49.00
    eur: 45.00
    gbp: 39.00

MoneyMQ shows the appropriate price based on customer locale.

Stablecoin Pricing

For crypto-native products, price directly in stablecoins:

price:
  amounts:
    usdc: 49.00
  pricing_type: recurring
  recurring:
    interval: month

Stablecoin prices bypass currency conversion and settle instantly on Solana.

Trial Periods

Add free trials to subscriptions:

price:
  amounts:
    usd: 49.00
  pricing_type: recurring
  recurring:
    interval: month
  trial:
    days: 14

Customers aren't charged until the trial ends.

Price Experimentation

Use nested variants to A/B test:

billing/v1/products/weather-api/variants/pro/
├── product.yaml              # $29/month
└── variants/
    ├── price-test-a/
    │   └── product.yaml      # $39/month (test higher price)
    └── price-test-b/
        └── product.yaml      # $19/month (test lower price)

Route cohorts to different variants, measure conversion, promote the winner.

Next Steps

On this page