# BillingStanding

Where a tenant stands with billing now (plan W9): its plan and its state, its balance, whether it can start work, any plan change on its way, and how much of each allowance it has used this billing period.

**Kind:** an object, used in responses.

## Fields

Every field is present in a response; empty ones are `null`.

| Field | Type | Description |
|---|---|---|
| `tier` | [`SkuTier`](https://docs.maitento.com/reference/types/sku-tier.md) |  |
| `cadence` | [`BillingCadence`](https://docs.maitento.com/reference/types/billing-cadence.md) |  |
| `status` | [`ContractStatus`](https://docs.maitento.com/reference/types/contract-status.md) | `Frozen` after a failed renewal payment (see `BillingStanding.FrozenUntilUtc`). |
| `currency` | `string` |  |
| `balance` | `number` | What's left to spend on work beyond the allowances. |
| `lastTopUpAmount` | `number \| null` | The last top-up's amount, which a low-balance alert is a share of. |
| `lowBalance` | `boolean` | The balance is low: above zero but below the alert's share of the last top-up (20% when the email is off), and the tenant shows a banner for it. False when it has never topped up, or has turned the banner off. |
| `canTopUp` | `boolean` | The plan can buy credit (top-ups and automatic top-ups). |
| `minimumTopUp` | `number` | The smallest top-up (and automatic top-up) that can be bought, in `BillingStanding.Currency`. |
| `maximumTopUp` | `number` | The largest top-up (and automatic top-up) that can be bought, in `BillingStanding.Currency`. |
| `outOfCredit` | `boolean` | Nothing new can start: the balance can't pay for more work. |
| `stoppedMeters` | [`BillingMeter`](https://docs.maitento.com/reference/types/billing-meter.md)`[]` | On a plan without top-ups, the allowances used up this period: that work can't run until the next. |
| `premiumExecution` | `boolean` | The plan includes sandboxes (capsules) and code pipelines. |
| `frozenUntilUtc` | `datetime \| null` | After a failed renewal payment: when, if it's still unpaid, Free's limits apply in full (UTC). |
| `frozenFromTier` | [`SkuTier`](https://docs.maitento.com/reference/types/sku-tier.md)`\| null` | The plan it had before a failed renewal payment, and goes back to when the renewal is paid. |
| `scheduledChange` | [`BillingScheduledChange`](https://docs.maitento.com/reference/types/billing-scheduled-change.md)`\| null` | A downgrade or cancellation booked for the renewal. |
| `pendingChange` | [`BillingPendingChange`](https://docs.maitento.com/reference/types/billing-pending-change.md)`\| null` | An upgrade waiting for its prorated payment. |
| `hasBillingAccount` | `boolean` | The tenant has an account at the payment provider (cards and invoices can be managed). |
| `hasSubscription` | `boolean` | The tenant pays for its plan by subscription. |
| `termEndsAtUtc` | `datetime \| null` | When the subscription renews: the end of its current term, a month on a monthly plan and a year on an annual one. A cancellation or a booked downgrade takes effect then. Null without a subscription. |
| `periodStartUtc` | `datetime` | When the current billing month began, which is when this month's allowances started. |
| `periodEndUtc` | `datetime` | When the current billing month ends and the allowances reset. Every plan's allowances reset monthly. |
| `meters` | [`BillingMeterStanding`](https://docs.maitento.com/reference/types/billing-meter-standing.md)`[]` | This period's use of each allowance. |

## Example

```json
{
  "tier": "Free",
  "cadence": "Monthly",
  "status": "Active",
  "currency": "...",
  "balance": 0,
  "lastTopUpAmount": 0,
  "lowBalance": false,
  "canTopUp": false,
  "minimumTopUp": 0,
  "maximumTopUp": 0,
  "outOfCredit": false,
  "stoppedMeters": [
    "Standard"
  ],
  "premiumExecution": false,
  "frozenUntilUtc": "2026-10-26T12:00:00.0000000Z",
  "frozenFromTier": "Free",
  "scheduledChange": {
    "kind": "Downgrade",
    "targetTier": "Free",
    "targetCadence": "Monthly",
    "targetLaneAddOns": [
      {}
    ],
    "effectiveAtUtc": "2026-10-26T12:00:00.0000000Z"
  },
  "pendingChange": {
    "targetTier": "Free",
    "targetCadence": "Monthly",
    "targetLaneAddOns": [
      {}
    ],
    "paymentUrl": "...",
    "expiresAtUtc": "2026-10-26T12:00:00.0000000Z"
  },
  "hasBillingAccount": false,
  "hasSubscription": false,
  "termEndsAtUtc": "2026-10-26T12:00:00.0000000Z",
  "periodStartUtc": "2026-10-26T12:00:00.0000000Z",
  "periodEndUtc": "2026-10-26T12:00:00.0000000Z",
  "meters": [
    {
      "meter": "Standard",
      "used": 0,
      "allowance": 0
    }
  ]
}
```

## Where it's used

- [`billing.standing`](https://docs.maitento.com/reference/api/billing.md) (`GET /billing/standing`)
