# BillingCharge

object type

A BillingCharge — the money rail's NON-TOKEN platform fee: AT/stack charging the MERCHANT the platform fee (chargeKind base_fee | support_plan | support_incident — extensible; the $15/mo fee is the first rail, its amount code-carried in BILLING_BASE_FEE_USD_CENTS — \*\*: $5 overhead + $10 that converts to kernels at settle; those kernels are THAT MONTH's allowance — spend first, expire with the month; only purchased kernels bank\*\*). \*\*The API face is FULLY suppressed\*\* — {create:false, update:false, transitions:false}, a NEW suppression combination (the lineage: the SAGA class suppresses because the SYSTEM writes, the Review class because the CONSUMER does, the TokenPurchase pair because the PROCESSOR settles — THIS one because the PLATFORM ITSELF both mints and settles): the wire surface is the 2 generated READS, the merchant's transparency lane. NOT searchable. Template class A16_BILLING (hand-derived v24).

## Fields

| Field | Type | Notes |
| --- | --- | --- |
| `id` | [ID](/types/#scalars) `ID!` | The record’s id — a UUID the platform assigned when the record was created; every reference to this record uses it. |
| `sysId` | [String](/types/#scalars) `String!` | The group-scoped human-facing system id (BC-…). |
| `type` | [String](/types/#scalars) `String!` | The kind of record — always `BillingCharge` here. |
| `caption` | [String](/types/#scalars) `String!` | The record’s display name — what people see it called. |
| `status` | [String](/types/#scalars) `String!` | The FSM state: created \| succeeded \| failed. |
| `parentId` | [ID](/types/#scalars) `ID!` | The parent TokenAccount (the custody anchor — charges ride the wallet's stored method); rootId = the org group; parentId!== rootId always. |
| `rootId` | [ID](/types/#scalars) `ID!` | The org-group family root. |
| `createdAt` | [String](/types/#scalars) `String!` | When the record was created, as a UTC timestamp. |
| `updatedAt` | [String](/types/#scalars) `String!` | When the record last changed, as a UTC timestamp. |
| `revisionNum` | [Int](/types/#scalars) `Int!` | How many times this record has been edited; the first save is 0. |
| `revision` | [ID](/types/#scalars) `ID!` | The OCC revision token — supply it on every mutation of this record; rotates on every write. |
| `refCaptions` | [RefCaption](/types/RefCaption/) `[RefCaption!]!` | The server-composed captions of this record's declared references (the referenced-caption rule) — one row per referenced id; see RefCaption. |
| `chargeKind` | [String](/types/#scalars) `String!` | base_fee \| support_plan \| support_incident — what the fee is. |
| `usdAmountCents` | [Int](/types/#scalars) `Int!` | The fee magnitude, USD cents — resolved from config at mint (base_fee → BILLING_BASE_FEE_USD_CENTS; the settle converts the beyond-overhead share to kernels — monthlyIncludedTokensFor); the stamp IS the replay record (the amount in force when the cycle fired). |
| `periodMonth` | [String](/types/#scalars) `String!` | The billing period this charge covers (UTC YYYY-MM) — the charge-once coordinate (the UNIQ marker rides group × kind × month). |
| `stripePaymentIntentId` | [String](/types/#scalars) `String!` | The platform off-session Stripe PaymentIntent (pi_… — SERVER-stamped at birth; the webhook join key, ruling). |
| `settledAt` | [String](/types/#scalars) | When the webhook settled it (stamped at succeeded/failed; absent while created). |

## Used by

- [billingCharge](/reference/billing-charge/billingCharge/)
