OperatorAPI billing:list: Difference between revisions
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: < | 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