Skip to main content

Enterprise Billing Patterns

This guide covers common patterns for billing enterprise customers who need custom pricing, volume commitments, or special terms — without creating a new Plan for each customer.

The Problem

You have a “Pro Plan” that works for most customers. But enterprise customers want:
  • Custom per-unit rates (volume discounts)
  • Prepaid commitments with discounted pricing
  • Different billing cycles or terms
  • Per-customer pricing tiers
Do you need a new Plan for each enterprise customer? No. Monk provides several tools to customize billing at the customer level without plan proliferation.

Pattern 1: Rate Cards + Contract Overrides

Use Dimensional Pricing (Rate Cards) when different customers pay different rates for the same usage.

When to Use

  • Per-model pricing (gpt-4 vs gpt-3.5)
  • Regional pricing differences
  • Volume-based rate tiers
  • Partner vs. direct pricing

How It Works

Rate cards are defined on Meters as global defaults. Contracts can override specific rates for custom deals. Step 1: Define rate card on the Meter
Meter: LLM_TOKENS
Rate Card:
- model=gpt-4: $0.03 per 1K tokens
- model=gpt-3.5: $0.002 per 1K tokens
- model=claude-3: $0.015 per 1K tokens
Step 2: Override at contract level (optional)
curl -X POST "https://api.monk.com/v1/contracts" \
  -d '{
    "planId": "plan_pro",
    "customerId": "cust_enterprise",
    "rateOverrides": {
      "LLM_TOKENS": {
        "model=gpt-4": 0.02
      }
    }
  }'
Result: Enterprise customer gets gpt-4 at 0.02(vs0.02 (vs 0.03 default). All other rates stay at global defaults.

Same Plan, Different Customers, Different Rates

This is the key insight: Contracts customize rates, not Plans.
CustomerPlangpt-4 Rategpt-3.5 Rate
Startup IncPro Plan$0.03 (default)$0.002 (default)
Acme CorpPro Plan$0.02 (override)$0.002 (default)
Mega EnterprisePro Plan$0.015 (override)$0.001 (override)
All three customers are on the same Pro Plan. Rate differences are handled entirely at the Contract level.
Why are rate cards on Meters? This gives you a single place to update rates globally. When OpenAI changes pricing, update the rate card once — every plan and contract inherits the new rates automatically (unless overridden).

Pattern 2: Prepaid Credits with Volume Discount

Use Prepaid Credits when customers want to commit upfront in exchange for a discount.

When to Use

  • Annual commitments with upfront payment
  • Volume discounts (pay for 100K,get100K, get 120K in credits)
  • Enterprise budgeting requirements

How It Works

  1. Negotiate the commitment: Customer commits to $100,000/year
  2. Calculate the discount: 20% discount = 100Kbuys100K buys 125K in credits
  3. Grant credits at contract creation:
curl -X POST "https://api.monk.com/v1/contracts" \
  -d '{
    "planId": "plan_pro",
    "customerId": "cust_enterprise",
    "creditGrantCents": 12500000,
    "creditSettings": {
      "description": "2026 annual commitment ($100K @ 20% discount)",
      "expiresAt": "2026-12-31T23:59:59.000Z"
    }
  }'
Result:
  • Customer is invoiced $100,000 for the prepaid credits
  • They have $125,000 in credits to use throughout the year
  • Credits are deducted automatically as usage accrues
  • Unused credits expire at year-end (breakage revenue recognized)

Combining with Dimensional Pricing

For the full enterprise package — volume discount on commitment PLUS discounted rates:
curl -X POST "https://api.monk.com/v1/contracts" \
  -d '{
    "planId": "plan_pro",
    "customerId": "cust_enterprise",
    "dimensions": {
      "customer_tier": "enterprise"
    },
    "creditGrantCents": 12500000
  }'

Pattern 3: Contract-Level Overrides

Override specific plan settings at contract creation when you need one-off customizations.

When to Use

  • Custom billing cycle for one customer
  • Special payment terms
  • One-off rate adjustments

How It Works

When creating a contract, you can override:
  • Billing cycle (monthly, quarterly, annual)
  • Payment terms (net 30, net 60)
  • Auto-pay settings
  • Credit grant amounts
curl -X POST "https://api.monk.com/v1/contracts" \
  -d '{
    "planId": "plan_pro",
    "customerId": "cust_enterprise",
    "billingCycle": "quarterly",
    "paymentTermsDays": 45
  }'

Pattern 4: Multiple Meters, Single Plan

You don’t need a separate Product for each meter. A single Plan can include pricing for multiple meters.

Example: AI API with Multiple Metrics

Plan: AI Pro
├── Pricing: Input Tokens ($0.001 per 1K tokens)
│   └── Meter: INPUT_TOKENS
├── Pricing: Output Tokens ($0.002 per 1K tokens)
│   └── Meter: OUTPUT_TOKENS
└── Pricing: API Calls ($0.0001 per call)
    └── Meter: API_CALLS
All three are billed on a single invoice. No need for separate plans or products.
Create one Meter per metric you want to track and bill separately. Create one Plan that bundles all the pricing together.

Decision Matrix

ScenarioSolution
Rates vary by dimension (model, region)Rate Cards on Meter
One customer needs custom ratesContract rate override
Upfront commitment with discountPrepaid Credits
Different billing cycle for one customerContract override
Multiple billable metricsMultiple meters in one plan
Completely different features/structureNew plan

Example: Full Enterprise Setup

Acme Corp wants:
  • Enterprise-tier pricing (50% discount)
  • $100,000 annual commitment (20% bonus credits)
  • Quarterly billing
  • Net-45 payment terms
curl -X POST "https://api.monk.com/v1/contracts" \
  -H "Authorization: Bearer mk_live_..." \
  -d '{
    "planId": "plan_pro",
    "customerId": "cust_acme",
    "dimensions": {
      "customer_tier": "enterprise"
    },
    "billingCycle": "quarterly",
    "paymentTermsDays": 45,
    "creditGrantCents": 12000000,
    "creditSettings": {
      "description": "2026 annual commitment",
      "expiresAt": "2026-12-31T23:59:59.000Z"
    }
  }'
Result: One contract, using the existing Pro Plan, with enterprise-specific customizations.

When to Create a New Plan

Create a new Plan when:
  • Different features: Enterprise plan includes premium support tier
  • Different meters: Enterprise plan tracks additional metrics
  • Different billing model: Flat fee vs. usage-based
  • Fundamentally different structure: Not just rate differences
Don’t create a new Plan just for:
  • Different rates (use dimensional pricing)
  • Different credit amounts (set at contract level)
  • Different billing cycles (override at contract level)

Next Steps

Dimensional Pricing

Set up per-customer rate cards

Prepaid Credits

Configure volume commitments

Create a Contract

Subscribe a customer to a plan

How Usage-Based Billing Works

Understand the full billing model