> ## Documentation Index
> Fetch the complete documentation index at: https://docs.interchange.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Get billing account

> The consolidated commercial-account view — plan, usage, balance, and agreements in one document

`GET /api/v2/billing/account`

Returns one document that answers, for whoever is responsible for an
account's money: which plan and terms the account is on, what has been used,
what is funded and what is owed, which agreements are in force, and the one
concrete step — if any — needed to become or remain paid. It reads the same
facts the org-settings Billing tab and the Plan & Billing page show; anything
shown on those surfaces that isn't in this document is a bug.

Money always describes the **organization**: a child account's request
resolves to its parent (billing lives at the org level), and the returned
`organization.customerId` reflects that. A human caller needs org-admin
standing (a child-account admin must also be an admin of the parent). An API
key (service token) bound to the organization gets the document with
payment-detail fields and contract-document download links redacted — marked
with `"visibility": "redacted"` and `redactedFields` so an agent can tell
"not allowed" from "empty". Advertiser-scoped keys and keys bound to a child
account are denied. Credit-application reviewer notes are internal to Scope3
and always read as `null` here; your own justification text stays visible.

## Request

```bash curl theme={null}
curl "https://api.interchange.io/api/v2/billing/account" \
  -H "Authorization: Bearer $SCOPE3_API_KEY"
```

## Parameters

This endpoint takes no parameters.

## From an agent (MCP)

Two read-only MCP tools cover the same document on both the buyer and
storefront MCP servers — billing lives at the organization level regardless
of role:

* **`get_billing_account`** returns this document as the tool's structured
  content. An optional `section` parameter (one of `organization`, `scope`,
  `standing`, `plan`, `pricing`, `usage`, `payment`, `contracts`, `accounts`,
  `nextAction`, `permissions`) returns just that section to keep the response
  small; `section: "accounts"` also returns `totalAccounts`, since the
  `accounts` array is capped at 50 entries.
* **`open_plan_and_billing`** opens the Plan & Billing view in chat — a
  read-only page showing standing, balance, the next action, and an
  intelligence-usage summary, with links to the full web page.

Neither tool mutates anything: accepting terms, funding a balance, and
applying for credit remain separate flows.

## Response

```json theme={null}
{
  "organization": {
    "customerId": 246,
    "name": "Blue Peak Brands",
    "roles": ["BUYER"],
    "currency": "USD"
  },
  "scope": {
    "boundary": "ORG",
    "delegatedFrom": null
  },
  "standing": {
    "posture": "CREDIT",
    "creditLimitMinor": "5000000",
    "currency": "USD",
    "verificationLevel": "kyb_verified",
    "holds": []
  },
  "plan": {
    "tosVersion": "v3-0",
    "tosAcceptedAt": "2026-01-15T18:04:00.000Z",
    "tosAcceptedByEmail": "dana@bluepeakbrands.example",
    "contractStatus": "active",
    "rateCardType": "STANDARD",
    "effectiveDate": "2026-01-15T00:00:00.000Z",
    "endDate": null,
    "autoRenewal": null,
    "subscriptions": []
  },
  "pricing": {
    "effective": { "type": "STANDARD", "rates": [] },
    "publicList": null,
    "provenance": "STANDARD"
  },
  "usage": {
    "intelligence": {
      "periodStart": "2026-07-01T00:00:00.000Z",
      "byFeature": [],
      "byDay": [],
      "totalCostMicroUsd": 0
    },
    "creditBalance": {
      "effectiveCustomerId": 246,
      "currency": "USD",
      "creditLimitMinor": "5000000",
      "fundedBalanceMinor": "0",
      "owedBalanceMinor": "1200000",
      "netBalanceMinor": "1200000",
      "spendableMinor": "3800000",
      "accounts": []
    },
    "orgPosition": {
      "orgRootCustomerId": 246,
      "customerCount": 1,
      "currency": "USD",
      "fundedMinor": "0",
      "committedMinor": "300000",
      "creditLimitMinor": "5000000",
      "availableMinor": "4700000",
      "overLimit": false
    }
  },
  "payment": {
    "billingInfo": {
      "contactName": "Dana Whitfield",
      "email": ["ap@bluepeakbrands.example"],
      "ccEmails": [],
      "phone": null,
      "address": "225 Mission St",
      "address2": null,
      "city": "San Francisco",
      "region": "CA",
      "postalCode": "94105",
      "countryAlpha2": "US",
      "taxId": "83-1234567",
      "visibility": "visible",
      "redactedFields": []
    },
    "storefrontBilling": null,
    "creditApplications": [],
    "deposits": [],
    "invoices": []
  },
  "contracts": {
    "agreements": [
      {
        "contractId": "9001",
        "status": "active",
        "agreementKind": "STANDARD_TOS",
        "effectiveDate": "2026-01-15T00:00:00.000Z",
        "endDate": null,
        "acceptedAt": "2026-01-15T18:04:00.000Z",
        "acceptedByEmail": "dana@bluepeakbrands.example"
      }
    ],
    "documents": [],
    "mediaRateCard": null
  },
  "accounts": [],
  "totalAccounts": 0,
  "nextAction": {
    "type": "NONE",
    "message": "Your account is in good standing.",
    "docsUrl": null,
    "route": null,
    "taskId": null
  },
  "permissions": {
    "canAcceptTos": true,
    "canEditBillingInfo": true,
    "canApplyForCredit": true
  }
}
```

## Document sections

| Section        | What it is                                                                                                                                                                                               |
| -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `organization` | The org this document describes — always the PARENT/STANDALONE customer, never a child's own id                                                                                                          |
| `scope`        | Whose money this is (`boundary`) and, for a delegated child, which parent it's delegated from                                                                                                            |
| `standing`     | Credit posture: `PREPAY` (fund a balance to spend) or `CREDIT` (Scope3-granted line), the limit, and any payment holds                                                                                   |
| `plan`         | Terms of Service version/acceptance, contract status, rate card type, contract dates                                                                                                                     |
| `pricing`      | The rate card actually applied to this account, and (once published) the public price list for comparison                                                                                                |
| `usage`        | Intelligence/AI usage by feature and by day, plus the credit/prepay balance and org-wide funded/committed/available position                                                                             |
| `payment`      | Billing (payer) info, shared organization IU commercial terms summary when published, credit application history, deposits, invoices                                                                     |
| `contracts`    | Agreement records and supporting documents                                                                                                                                                               |
| `accounts`     | For a parent org: its child accounts, in their billing dimension only (delegation setting, fees, usage) — not a way to switch accounts. Capped at 50 entries; `totalAccounts` carries the uncapped count |
| `nextAction`   | The single most important thing to do next — see below                                                                                                                                                   |
| `permissions`  | What the authenticated caller may do with this account (drives whether a UI shows write affordances)                                                                                                     |

`payment.deposits` lists the organization's recent prepay deposits (newest
first, at most 10): each row carries the deposited amount in minor units, its
currency, when it took effect, whether it was later reversed, and the payment
provider and reference recorded with it. Every row is projected read-only from
the platform ledger — the same source of truth as the balances above.

Some fields are typed but always empty today because the platform doesn't yet
have a source for them: `plan.subscriptions`, `pricing.publicList`, and
`payment.invoices`. They will start populating as their owning features ship,
with no change to this response shape.

## `nextAction` values

| `type`             | Meaning                                                                                                                                                                                                                                                                    |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ACCEPT_TOS`       | The current Terms of Service haven't been accepted yet. Resolve with `POST /api/v2/accept-tos` or the `accept_tos` agent tool.                                                                                                                                             |
| `ADD_BILLING_INFO` | No billing contact/address is on file. Resolve with [Update billing info](/v2/buyer/billing/tasks/update-billing-info).                                                                                                                                                    |
| `FUND_PREPAY`      | The account has no credit line and its prepay balance is exhausted. This currently reflects buyer media standing; org-wide IU plan funding is not active before the Rate Card is published. Contact Scope3 to fund your account — self-serve funding is not yet available. |
| `APPLY_FOR_CREDIT` | The account holds a credit line that is exhausted (buyer orgs only). Apply for a higher limit. The resolving `route` is present only when the credit-applications API is enabled for your account; otherwise contact Scope3.                                               |
| `RESOLVE_HOLD`     | A payment hold is blocking spend.                                                                                                                                                                                                                                          |
| `NONE`             | Nothing outstanding — the account is in good standing.                                                                                                                                                                                                                     |

Only one `nextAction` is ever returned — the single most important thing to
do, not a checklist. `permissions` tells you whether the authenticated caller
can act on it directly, or should route it to an account admin.

## Errors

* `401 UNAUTHORIZED` — missing or invalid bearer token.
* `403 ACCESS_DENIED` — the caller is not an account admin (or, for a child account, an admin of the parent organization), or the API key is advertiser-scoped or bound to a child account.

See [Errors](/v2/reference/errors) for the full error contract.

## Related

<CardGroup cols={2}>
  <Card title="Get billing info" href="/v2/buyer/billing/tasks/get-billing-info" icon="address-card">
    The payer identity on its own, without the rest of the account
  </Card>

  <Card title="Billing overview" href="/v2/buyer/billing/overview" icon="file-invoice-dollar">
    How invoicing and remittance work
  </Card>
</CardGroup>
