TAŇBA-OOH Әзірлеушілерге

Evidence pack of a statement

GET /api/v1/billing/statements/{id}/evidence

https://app.tanba-ooh.kz/api/v1/billing/statements/{id}/evidence

Анықтамалықтың техникалық мәтіні ағылшын тілінде жазылған.

Scope read:billing. Own organisation; the authority and the platform see all. The pack of every play line of the period the statement belongs to; see the evidence pack of a bill line for the content, the summary and the rules (immutable packs, a new version on change, every download audited).

Аутентификация

Authorization тақырыбындағы API кілті немесе консоль сеансы.

Рұқсат: read:billing

Параметрлер

АтауыОрныТүріМіндеттіСипаттамаМысал
idжолstring (uuid)иәIdentifier of the statement.3f2b8c1e-6a47-4d0e-9b55-2c7d1a8e4f90
formatсұрауstringжоқSet to zip to download the pack instead of reading its summary. zipzip

Жауаптар

200 The summary, or the pack as a zip file.

application/json

EvidenceSummary

АтауыТүріМіндеттіСипаттамаМысал
kindstringиәWhat the pack is about. accrual, statement, window, dispute
keystringиәStable name of the subject; a new version of a pack keeps it."accrual:4711"
stored_versioninteger | nullиәVersion of the stored pack with exactly this content, or null when the next download will create it.1
stored_pack_idstring | null (uuid)иәIdentifier of that stored pack, or null."7d1f0e5a-2b9c-4c63-8a4d-5e0f6b3c9a12"
batchesintegerиәTelemetry batches in the pack.2
playsinteger (int64)иәPlays those batches added in the hours the pack covers.9
sealsintegerиәDaily seals in the pack.1
batches_sealedintegerиәBatches whose receive day is sealed.2
linesarray of objectиәThe bill lines the pack explains; empty for a structure period.
lines[].accrual_idinteger (int64)иәIdentifier of the bill line.4711
lines[].source_refstringиәStructure and hours of the line."S-001 2026-10-05T10..2026-10-20T11"
lines[].structurestringиәStructure code."S-001"
lines[].playsinteger (int64)иәPlays billed on the line.3739
lines[].unitsstringиәBilling units with three decimals."3739.000"
lines[].amount_kztstringиәLine amount in tenge, without VAT."1869.50"
lines[].trueupbooleanиәTrue for a line that bills late plays of an earlier month; it is not recomputed from its own hours.false
lines[].partialstringиәWhy the batches behind the line cannot all be recounted; empty when they can.""
partialarray of stringиәWhat cannot be fully recounted, in words; empty for a complete pack.[]
manifest_sha256stringиәSHA-256 of the manifest in hex."9f2c1b7a4e6d8053a1c2b3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718"
downloadstringиәAddress that downloads the pack."/api/v1/billing/accruals/4711/evidence?format=zip"
count_rulestringиәVersion of the counting rule the pack was made with."tanba.count/1"

Мысал

{
  "kind": "accrual",
  "key": "accrual:4711",
  "stored_version": 1,
  "stored_pack_id": "7d1f0e5a-2b9c-4c63-8a4d-5e0f6b3c9a12",
  "batches": 2,
  "plays": 9,
  "seals": 1,
  "batches_sealed": 2,
  "lines": [
    {
      "accrual_id": 4711,
      "source_ref": "S-001 2026-10-05T10..2026-10-20T11",
      "structure": "S-001",
      "plays": 3739,
      "units": "3739.000",
      "amount_kzt": "1869.50",
      "trueup": false,
      "partial": ""
    }
  ],
  "partial": [],
  "manifest_sha256": "9f2c1b7a4e6d8053a1c2b3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718",
  "download": "/api/v1/billing/accruals/4711/evidence?format=zip",
  "count_rule": "tanba.count/1"
}

application/zip

Қателер

Қателер problem құжаты (application/problem+json) түрінде, тұрақты code өрісімен келеді.

МәртебесіМағынасы
401No valid session or API key (unauthenticated, session_expired, invalid_api_key).
403The role or the key's scope does not allow this (forbidden, key_scope_denied, key_route_denied).
404Nothing there, or not visible to the caller.
409The period has no play lines.
503The signing service is not available.
defaultAn error as a problem document.

Код мысалдары

curl

curl 'https://app.tanba-ooh.kz/api/v1/billing/statements/3f2b8c1e-6a47-4d0e-9b55-2c7d1a8e4f90/evidence' \
  -H 'Authorization: Bearer YOUR_API_KEY'
Python
import requests

response = requests.get(
    "https://app.tanba-ooh.kz/api/v1/billing/statements/3f2b8c1e-6a47-4d0e-9b55-2c7d1a8e4f90/evidence",
    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/statements/3f2b8c1e-6a47-4d0e-9b55-2c7d1a8e4f90/evidence", 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))
}