Partner billing overview (lightweight summary)

Overview

Get a lightweight billing summary for the authenticated partner for the given period: headline totals plus a flat per-account cost breakdown and active store count. This is the same base payload the dashboard endpoint enriches.

Prerequisites

  • A bearer token. Callable with Partner tokens.

Base URL

EnvironmentURL
Productionhttps://production-api.shoutaboutus.com
Developmenthttps://development-api.shoutaboutus.com

Endpoint

GET /api/v1/partner/billing/overview

Authentication

  • Requires a bearer token in the Authorization: Bearer <bearer-token> header.

  • Who can call it: Partner tokens.

  • Mounted under the partner/billing route group.

  • getAuthPartner resolves scope; returns 403 if the user is not associated with a partner.

  • Always the caller's own partner tree — no path target.

Rate limit

  • No rate limit.

Query parameters

  • Query: year (integer, optional) — 2000–2100; defaults to current year.
  • Query: month (integer, optional) — 1–12; defaults to current month.

Response

  • data.data.total_billed (number) — period sum of client_amount line items for the partner.
  • data.data.period (string) — YYYY-MM.
  • data.data.billing_model (string|null) — e.g. plan-based / usage-based.
  • data.data.contract_model (string|null) — model-a / model-b.
  • data.data.active_stores (integer) — total active stores across the partner's accounts.
  • data.data.accounts (array) — per-account summary rows: account_id (int), account_name (string), plan_name (string|null), store_count (int), cost (number), overage (number), status (string: within_limits / overage / halted).

200 Success · 200

{
  "data": {
    "data": {
      "total_billed": 1249.75,
      "period": "2026-05",
      "billing_model": "usage-based",
      "contract_model": "model-a",
      "active_stores": 12,
      "accounts": []
    }
  }
}

Errors

StatusMeaning
401The bearer token is missing, expired or invalid
403Returned if the user is not associated with a partner
422The request failed validation — the response names the fields
500Unexpected server error

Example request

curl --request GET \
  --url "https://production-api.shoutaboutus.com/api/v1/partner/billing/overview?" \
  --header 'Authorization: Bearer <bearer-token>' \
  --header 'Accept: application/json'

Did this page help you?