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

Check what the exchange claimed against the plays the players proved

GET /api/v1/plays/claims/verification

https://app.tanba-ooh.kz/api/v1/plays/claims/verification

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

Scope write:plays (the same key that submits claims). Administrators and staff of an ad platform.

For every claim line of the organisation in the range, returns how many plays the players proved and a status: matched (all that was claimed is proved), over_claimed (less than claimed but not nothing), unmatched (nothing proved). verified is the smaller of claimed and proved. Plays proved are those a player tagged with your organisation as the seller (detail.src of the play record) and, when the line names a deal, with that deal. A line with no such tag counts the plays of the hour that no other seller's tag explains, and gets untagged: true. The larger count over the evidence tiers is taken, never their sum; basis_tier names that tier and tiers shows the proved plays by tier. Plays that operators report from their own CMS are no proof and are not read.

A tag is attribution, not proof. A claim never changes billing: the bill follows the plays of the players alone. The range from–to is dates (Asia/Almaty days) or RFC 3339 instants, to exclusive, at most 62 days.

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

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

Рұқсат: write:plays

Параметрлер

АтауыОрныТүріМіндеттіСипаттамаМысал
fromсұрауstringиәStart of the range, a date or an RFC 3339 instant.2026-10-06
toсұрауstringиәEnd of the range, exclusive.2026-10-07

Жауаптар

200 One line for each claim line in the range.

application/json

АтауыТүріМіндеттіСипаттамаМысал
fromstringиәStart of the range."2026-10-06T00:00:00+05:00"
tostringиәEnd of the range."2026-10-07T00:00:00+05:00"
summaryobjectиәTotals over the lines.
summary.linesintegerNumber of claim lines in the range.2
summary.matchedintegerLines whose claim is fully proved.1
summary.over_claimedintegerLines proved in part.1
summary.unmatchedintegerLines with nothing proved.0
summary.claimedintegerPlays claimed over all lines.238
summary.verifiedintegerPlays proved over all lines, each line capped at its claim.230
linesarray of objectиәThe claim lines in time order.
lines[].structure_codestringиәCode of the structure."ALM-0012"
lines[].approval_numberstringиәNumber of the approval of the line."TNB-2026-000123"
lines[].hourstringиәThe hour of the line in Asia/Almaty time."2026-10-06T14:00:00+05:00"
lines[].deal_idstringиәEmpty when the line names no deal."deal-4411"
lines[].claimedintegerиәPlays claimed for the hour.118
lines[].verifiedintegerиәThe smaller of the claim and the plays proved.110
lines[].statusstringиәmatched when all of the claim is proved, over_claimed when part, unmatched when none. matched, over_claimed, unmatched
lines[].untaggedbooleanиәTrue when no tag of the platform backs the line and all untagged plays of the hour were counted.false
lines[].basis_tierstring | nullиәEvidence tier of the proved plays; null when none. mtls, signed, attested, native, <nil>
lines[].tiersobjectиәProved plays by evidence tier.{"mtls": 110}

Мысал

{
  "from": "2026-10-06T00:00:00+05:00",
  "to": "2026-10-07T00:00:00+05:00",
  "summary": {
    "lines": 2,
    "matched": 1,
    "over_claimed": 1,
    "unmatched": 0,
    "claimed": 238,
    "verified": 230
  },
  "lines": [
    {
      "structure_code": "ALM-0012",
      "approval_number": "TNB-2026-000123",
      "hour": "2026-10-06T14:00:00+05:00",
      "deal_id": "deal-4411",
      "claimed": 118,
      "verified": 110,
      "status": "over_claimed",
      "untagged": false,
      "basis_tier": "mtls",
      "tiers": {
        "mtls": 110
      }
    }
  ]
}

Қателер

Қателер 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).
422Field errors (validation_failed).
defaultAn error as a problem document.

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

curl

curl 'https://app.tanba-ooh.kz/api/v1/plays/claims/verification?from=2026-10-06&to=2026-10-07' \
  -H 'Authorization: Bearer YOUR_API_KEY'
Python
import requests

response = requests.get(
    "https://app.tanba-ooh.kz/api/v1/plays/claims/verification?from=2026-10-06&to=2026-10-07",
    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/plays/claims/verification?from=2026-10-06&to=2026-10-07", 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))
}