Get billing detail for a store
Overview
Get per-feature usage and cost breakdown for a single store under the authenticated partner: each enabled plan feature with its usage count, limit, percentage consumed, status, and period cost.
Prerequisites
- A bearer token. Callable with Partner tokens.
- The
storeIdof the record you are targeting.
Base URL
| Environment | URL |
|---|---|
| Production | https://production-api.shoutaboutus.com |
| Development | https://development-api.shoutaboutus.com |
Endpoint
GET /api/v1/partner/billing/store/{storeId}
Authentication
-
Requires a bearer token in the
Authorization: Bearer <bearer-token>header. -
Who can call it: Partner tokens.
-
Mounted under the
partner/billingroute group. -
The endpoint resolves the caller's partner by
getAuthPartner(403 if none). -
The endpoint loads the
{storeId}store (404 if missing) and ownership is verified. -
The endpoint returns 403 unless that partner equals the caller's partner.
Rate limit
- No rate limit.
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
storeId | integer | Required | Digits only. |
Query parameters
- Query:
year(integer, optional) — 2000–2100; defaults to current year. - Query:
month(integer, optional) — 1–12; defaults to current month.
Response
data.store_id(int).data.store_name(string|null).data.period(string) —YYYY-MM.data.features(array) — one row per enabled plan feature:feature_name(string),usage(int),limit(int|null —service_limitfor usage-based,included_unitsfor plan-based),percentage(number|null),status(string:within_limits/approaching/overage/hard_stop_over_limit/halted),cost(number — period sum ofclient_amountfor that store+feature).
200 Success · 200
200{
"data": {
"data": {
"store_id": 26,
"store_name": "Acme Sydney CBD",
"period": "2026-05",
"features": []
}
}
}403 Store not under partner · 403
403{
"message": "Forbidden",
"status": "error",
"errors": "Store does not belong to your partner."
}404 Store not found · 404
404{
"message": "Not Found",
"status": "error",
"errors": "Store not found."
}Errors
| Status | Meaning |
|---|---|
401 | The bearer token is missing, expired or invalid |
403 | Store not under partner |
404 | Store not found |
422 | The request failed validation — the response names the fields |
500 | Unexpected server error |
Example request
curl --request GET \
--url "https://production-api.shoutaboutus.com/api/v1/partner/billing/store/123?" \
--header 'Authorization: Bearer <bearer-token>' \
--header 'Accept: application/json'Updated 10 days ago
Did this page help you?
