---
title: "Billing account"
method: GET
path: "/v2/billing/account"
tags: ["billing"]
---

# Billing account

`GET /v2/billing/account`

## Request

- Base URL: `https://api.stuut.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.stuut.ai/v2/billing/account`
- Auth: HTTP bearer

Return billing configuration, contract terms, rates, and details.

## Response `200`

Successful Response

- BillingAccount: Billing configuration, contract, and account standing.
  - `tier` 'payg' | 'postpaid' | 'enterprise' | 'legacy', required: Stuut-owned commercial policy; only PAYG is balance-gated.
  - `metronome_customer_id` string, required: Metronome customer id — always present; the endpoint provisions before responding.
  - `stripe_customer_id` string, required: Stripe customer id — always present; the endpoint provisions before responding.
  - `details` BillingDetails, required: The customer's Stripe billing identity.
    - `business_name` string, nullable, required: Legal business name (the Stripe customer name, shown on invoices).
    - `billing_email` string, nullable, required: Email Stripe sends invoices to.
    - `address` StuutApiServiceV2RoutersBillingSchemasBillingAddress, required: The customer's Stripe billing address.
      - `line1` string, nullable, required: Street address, line 1.
      - `line2` string, nullable, required: Street address, line 2.
      - `city` string, nullable, required: City.
      - `state` string, nullable, required: State / province.
      - `postal_code` string, nullable, required: Postal / ZIP code.
      - `country` string, nullable, required: Two-letter ISO country code.
    - `tax_id` TaxId, required: The customer's primary Stripe tax registration.
      - `type` string, required: Stripe tax-id type, e.g. 'eu_vat', 'gb_vat', 'us_ein'.
      - `value` string, required: The tax registration number.
    - `payment_method` PaymentMethod, required: A display summary of the default invoice payment method.
      - `type` string, required: Stripe payment-method type, e.g. 'card', 'us_bank_account', 'link'.
      - `brand` string, nullable, required: Card brand (e.g. 'visa') or the bank name for bank accounts; null when the method carries neither.
      - `last4` string, nullable, required: Last 4 digits of the card / bank account; null when absent.
      - `email` string, nullable, required: The account email for Link methods; null for other types.
  - `delinquent` boolean, required: True when an open invoice is past its due date (+1 day grace) — usage is gated on every tier until it's paid.
  - `delinquent_after` string, date-time, nullable, required: Earliest instant an open invoice turns delinquent (due date + 1 day; an invoice with no due date is due at finalization). In the future = owed but not yet late; null = nothing unpaid.
  - `contract` Contract, required: The active contract's terms, products, charges, and funding.
    - `starting_at` string, date-time, required: Contract start.
    - `ending_before` string, date-time, nullable, required: Contract end; null = evergreen.
    - `net_payment_terms_days` number, nullable, required: NET payment terms; due dates for send-invoice collection.
    - `custom_fields` object, required: Freeform contract custom fields, verbatim from Metronome.
    - `products` BilledProduct[], required: Everything the contract charges for — usage products with effective rates AND scheduled/recurring fixed charges, one list (discriminated by `kind`).
      - `key` 'active_accounts' | 'collections' | 'cash_application' | 'deductions' | 'disputes' | 'voice' | 'sms', required: Stable slug for a product offered by Stuut.
      - `name` string, required: Customer-facing name (as shown on invoices).
      - `kind` 'USAGE' | 'SCHEDULED', required: USAGE = metered, priced per unit (`rates`); SCHEDULED = fixed amounts on dates (`schedule`).
      - `entitled` boolean, nullable, required: Whether the contract grants commercial access; only meaningful for USAGE.
      - `rates` ProductRate[], nullable, required: Effective rate per pricing slice (USAGE only).
        - `metric_name` string, required: Stable catalog metric name priced by this rate; uncataloged contract products fall back to their Metronome product name.
        - `source` 'LIST' | 'OVERRIDE', required: LIST for standard pricing; OVERRIDE for negotiated contract pricing.
        - `dimension` object, nullable, required: The pricing slice for dimensional products, e.g. {'activity': 'worked'}; null for flat-priced products.
        - `rate` Rate, required: A Metronome rate from the contract's rate schedule.
          - `rate_type` 'FLAT' | 'PERCENTAGE' | 'SUBSCRIPTION' | 'CUSTOM' | 'TIERED' | 'TIERED_PERCENTAGE', required: Rate shape; flat/percentage rates carry `price`, tiered rates carry `tiers`.
          - `price` string, decimal, nullable, required: Dollars per unit for FLAT/SUBSCRIPTION rates; a decimal fraction for PERCENTAGE rates (0.005 = 0.5%).
          - `tiers` Tier[], nullable, required: Graduated bands for TIERED and TIERED_PERCENTAGE rates.
            - `size` string, decimal, nullable, required: Band size in metered UNITS (not money); null = the open top tier.
            - `price` string, decimal, required: Price within this band: dollars per unit for TIERED rates; a decimal fraction for TIERED_PERCENTAGE rates (0.005 = 0.5%).
        - `is_unlimited` boolean, required: True when this slice's effective rate is $0 — usage is metered but never charged, i.e. unlimited. An unknown price (no FLAT price, no tiers) is NOT unlimited.
      - `schedule` ChargeSchedule, required
        - `schedule_items` ChargeScheduleItem[], nullable, required: The charge's invoice occurrences.
          - `timestamp` string, date-time, nullable, required: When this occurrence invoices.
          - `amount` string, decimal, nullable, required: Amount invoiced, in dollars.
    - `commits` Commit[], required: Funding granted as DEAL TERMS, one array: one-time and recurring commits plus RECURRING credit definitions (discriminated by `type` + `recurring`). Excluded: purchases (top-ups, auto-reloads) and one-time credits — those are wallet state, rendered as summary pools.
      - `id` string, required: Instrument id.
      - `name` string, nullable, required: Display name, e.g. 'Signup credit'.
      - `type` 'PREPAID' | 'POSTPAID' | 'CREDIT', required: PREPAID = committed funds paid up front; POSTPAID = minimum commitment trued up at term end; CREDIT = free money (trial, promo).
      - `description` string, nullable, required: Freeform description, when set.
      - `applicable_products` BillingProductKey[], nullable, required: Products this funding can pay for (a product-specific commit); null = the whole pooled wallet.
      - `amount` string, decimal, nullable, required: Granted amount in dollars, as a summary — the access total for one-time grants, the PER-PERIOD amount for recurring ones.
      - `starting_at` string, date-time, nullable, required: When access begins (summary).
      - `ending_before` string, date-time, nullable, required: When access ends (summary); null = open.
      - `recurring` boolean, required: True for recurring grants (amount is per period).
      - `recurrence_frequency` 'MONTHLY' | 'QUARTERLY' | 'ANNUAL' | 'WEEKLY', nullable, required: Grant cadence; recurring instruments only.
      - `access_schedule` CommitWindow[], nullable, required: Per-window access detail (an enterprise commit may unlock funds quarterly); null for recurring instruments, whose cadence is `recurrence_frequency`.
        - `amount` string, decimal, required: Amount unlocked in this window, in dollars.
        - `starting_at` string, date-time, required: When these funds become spendable.
        - `ending_before` string, date-time, nullable, required: When they expire; null = never.
      - `invoice_schedule` ChargeScheduleItem[], nullable, required: When the commit is BILLED and how much per occurrence. Null = free money (a credit, or a complimentary commit).
        - `timestamp` string, date-time, nullable, required: When this occurrence invoices.
        - `amount` string, decimal, nullable, required: Amount invoiced, in dollars.
  - `auto_reload` AutoReload, required: Automatic balance reload configuration.
    - `enabled` boolean, required: Whether auto-reload is on.
    - `threshold` string, decimal, nullable, required: Balance ($) at or below which the card is charged.
    - `recharge_to` string, decimal, nullable, required: Balance ($) recharged up to.
  - `budget` Budget, required: Spend budget configuration.
    - `enabled` boolean, required: Whether the budget is on.
    - `cap` string, decimal, nullable, required: Spend cap in dollars (a payment trigger, not a hard block).

---

[API](https://skmtc.dev/stuut/apis/stuut-api.md) - [All operations](https://skmtc.dev/stuut/apis/stuut-api/llms.txt) - [OpenAPI document](https://skmtc.dev/stuut/apis/stuut-api/revisions/3b5ab941f918?raw)
