Money report - accrued, invoiced, paid and outstanding
GET /api/v1/billing/reports
https://app.tanba-ooh.kz/api/v1/billing/reports
Scope read:billing. Own organisation; the authority and the platform see all. accrued_* columns are plays and approvals without VAT, split into estimates (open periods) and closed periods; invoiced, paid and outstanding are issued documents and bank payments with VAT where the issuer charges it, and paid + outstanding = invoiced. Estimates are never added to issued documents.
Authentication
API key in the Authorization header, or a console session.
Scope: read:billing
Parameters
| Name | In | Type | Required | Description | Example |
|---|---|---|---|---|---|
from | query | string | no | First month, YYYY-MM (default eleven months back). | 2025-11 |
to | query | string | no | Last month, YYYY-MM (default the current month). | 2026-10 |
Responses
200 The report sections.
application/json
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
from | string | yes | First month of the report, YYYY-MM. | "2025-11" |
to | string | yes | Last month of the report, YYYY-MM. | "2026-10" |
months | array of object | yes | Accrued, invoiced and paid amounts for each month. | |
by_issuer | array of object | yes | Amounts for each issuer of documents. | |
by_payer | array of object | yes | Amounts for each payer. | |
top_payers | array of object | yes | The payers with the largest amounts. | |
by_kind | array of object | yes | Amounts for each kind of document. | |
by_district | array of object | yes | Amounts for each district. | |
overdue | array of object | yes | Documents past their due date. | |
ageing | array of object | yes | Outstanding amounts by age. | |
cash_calendar | array of object | yes | Expected payments by date. |
Example
{
"from": "2025-11",
"to": "2026-10",
"months": [
{}
],
"by_issuer": [
{}
],
"by_payer": [
{}
],
"top_payers": [
{}
],
"by_kind": [
{}
],
"by_district": [
{}
],
"overdue": [
{}
],
"ageing": [
{}
],
"cash_calendar": [
{}
]
}
Errors
Errors are problem documents (application/problem+json) with a stable code.
| Status | Meaning |
|---|---|
| 401 | No valid session or API key (unauthenticated, session_expired, invalid_api_key). |
| 403 | The role or the key's scope does not allow this (forbidden, key_scope_denied, key_route_denied). |
| 422 | Field errors (validation_failed). |
| default | An error as a problem document. |
Code samples
curl
curl 'https://app.tanba-ooh.kz/api/v1/billing/reports' \
-H 'Authorization: Bearer YOUR_API_KEY'
Python
import requests
response = requests.get(
"https://app.tanba-ooh.kz/api/v1/billing/reports",
headers={
"Authorization": "Bearer YOUR_API_KEY",
},
)
print(response.status_code, response.text)
Go
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, err := http.NewRequest("GET", "https://app.tanba-ooh.kz/api/v1/billing/reports", nil)
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
data, _ := io.ReadAll(resp.Body)
fmt.Println(resp.Status, string(data))
}