Jump to content

OperatorAPI billing:list: Difference between revisions

From Wiki 7Kas
Operator API reference (generated from func=help)
 
Operator API reference: multi-line response shape
 
Line 15: Line 15:


== Response ==
== Response ==
Success is <code>{"ok":true,"data":{...}}</code>; on refusal <code>{"ok":false,"code":"...","message":"..."}</code>. This function's data shape: <code>{"ok":true,"data":{"rows":[{"callstart":s(ISO-8601, naive),"r_accountcode":s,"r_tariff":s,"r_credit":n,"cli_billing":s,"cid_name":s,"cid_num":s,"dial_cid_num":s,"dst":s,"prefix":s,"rate":n,"r_rate":n,"billsec":n,"total":n,"r_total":n,"r_diferencia":n}],"page":n,"pagesize":n,"fields":[s],"available":[s],"order":s,"dir":s,"filterby":s?,"filter":s?}}</code>.
Success is <code>{"ok":true,"data":{...}}</code>; on refusal <code>{"ok":false,"code":"...","message":"..."}</code>. This function's data shape (<code>n</code> = number, <code>s</code> = string, <code>?</code> = present only when set):
<pre>
{
  "ok":true,
  "data":{
    "rows":[
      {
        "callstart":s(ISO-8601, naive),
        "r_accountcode":s,
        "r_tariff":s,
        "r_credit":n,
        "cli_billing":s,
        "cid_name":s,
        "cid_num":s,
        "dial_cid_num":s,
        "dst":s,
        "prefix":s,
        "rate":n,
        "r_rate":n,
        "billsec":n,
        "total":n,
        "r_total":n,
        "r_diferencia":n
      }
    ],
    "page":n,
    "pagesize":n,
    "fields":[
      s
    ],
    "available":[
      s
    ],
    "order":s,
    "dir":s,
    "filterby":s?,
    "filter":s?
  }
}
</pre>


== Errors ==
== Errors ==

Latest revision as of 08:28, 19 August 2026

newadmapi (Operator API) function. Available to: Operator.

Description

Lists BILLED CALL HISTORY. The legacy's two adm trees use DIFFERENT masks over this view - super "flags & 3 = 1", operator "flags & 5 = 1" - and the bits are now decoded from the live catalogue rather than transcribed: bit 1 = call completed, bit 8 = in progress, bit 2 = the PLATFORM's bono covered it, bit 4 = the RESELLER's bono covered it. So each application shows completed calls minus the ones its OWN bundle absorbed - symmetric, not a divergence. Proven by arithmetic: all 210,389 bit-4 rows carry r_root. Operator audience, tenant column r_root, super HELD. READ-ONLY - and the legacy's edit and delete here are the [] check_access FAIL-OPEN, denied and disclosed on the standing ruling. Six money columns, none searchable; provider_total is not published because the operator grid has never shown the platform's cost. Paginated. Sorting and searching are restricted to the declared fields; anything else is rejected and named. Read audience is provisional pending operator confirmation.

Call

GET|POST https://YOUR_HOST:9089/newadm?func=billing:list

Send your API key with every request (header X-API-Key: YOUR_KEY, or Authorization: Bearer YOUR_KEY, or the ukey query parameter).

Parameters

None beyond the API key and func=billing:list.

Example

https://host:port/newadm?func=billing:list

Response

Success is {"ok":true,"data":{...}}; on refusal {"ok":false,"code":"...","message":"..."}. This function's data shape (n = number, s = string, ? = present only when set):

{
  "ok":true,
  "data":{
    "rows":[
      {
        "callstart":s(ISO-8601, naive),
        "r_accountcode":s,
        "r_tariff":s,
        "r_credit":n,
        "cli_billing":s,
        "cid_name":s,
        "cid_num":s,
        "dial_cid_num":s,
        "dst":s,
        "prefix":s,
        "rate":n,
        "r_rate":n,
        "billsec":n,
        "total":n,
        "r_total":n,
        "r_diferencia":n
      }
    ],
    "page":n,
    "pagesize":n,
    "fields":[
      s
    ],
    "available":[
      s
    ],
    "order":s,
    "dir":s,
    "filterby":s?,
    "filter":s?
  }
}

Errors

Refusals carry a machine-readable code (branch on the code, never the message). See OperatorAPI#Error codes.


Back to OperatorAPI