# CaseSupportBilling

object type

The decision + attestedAt are write-once; billingChargeId follows the LIVE collection (a failed collection re-collects under the SAME case coordinate — the re-collection lane; the charge document's own status stays the money truth).

## Fields

| Field | Type | Notes |
| --- | --- | --- |
| `attestedAt` | [String](/types/#scalars) `String!` | The root attestation instant (write-once). |
| `decision` | [String](/types/#scalars) `String!` | covered \| charged — the coverage decision at attestation (write-once; a plan bought later never retro-covers). |
| `billingChargeId` | [ID](/types/#scalars) | The support_incident BillingCharge that stands (present iff charged; re-pointed by a re-collection — every attempt remains visible in billingCharges). |
| `coveredBy` | [String](/types/#scalars) | WHAT covered it — plan (a standing handholding plan) \| onboarding (the wallet's complimentary first-90-days window). Present iff covered (write-once — the trail on the row). |
| `standing` | [String](/types/#scalars) `String!` | THE WORDED STANDING: the merchant sentence for this fact, SERVER-composed at read (the Segment.refreshProblem worded-wire class): covered → the covered words · charged → the STANDING charge's live status worded (in flight / collected / FAILED — re-collection pending) · an unreadable/foreign charge degrades to the bare billed words (honest, never a leak). Reaches only the STAFF lanes by construction — the consumer lanes redact the whole block. |
