Report counters for organization (tab badges)
Returns per-status report counts for the organization’s Reports screen tab badges. Optionally filtered by counterStatuses and by a report dateCreated range (fromDate/toDate), which is applied to every counter. fromDate and toDate are parsed as UTC timestamps (yyyy-MM-ddTHH:mm:ssZ); a value that cannot be parsed is ignored and the counters are returned unfiltered.
curl --request GET \
--url https://stage-api.findity.com/api/v1/admin/organizations/{organizationId}/reports/counters \
--header 'Authorization: Bearer <token>'import requests
url = "https://stage-api.findity.com/api/v1/admin/organizations/{organizationId}/reports/counters"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://stage-api.findity.com/api/v1/admin/organizations/{organizationId}/reports/counters', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://stage-api.findity.com/api/v1/admin/organizations/{organizationId}/reports/counters",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://stage-api.findity.com/api/v1/admin/organizations/{organizationId}/reports/counters"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://stage-api.findity.com/api/v1/admin/organizations/{organizationId}/reports/counters")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://stage-api.findity.com/api/v1/admin/organizations/{organizationId}/reports/counters")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"counts": [
{
"status": "APPROVAL",
"count": 2,
"earliestDate": "2024-02-10T08:15:00Z",
"latestDate": "2024-02-12T09:00:00Z"
},
{
"status": "READY_TO_SEND",
"count": 3,
"earliestDate": null,
"latestDate": null,
"recipientCounters": [
{
"recipientId": "recipient-001",
"counter": 2
},
{
"recipientId": "recipient-002",
"counter": 1
}
]
},
{
"status": "PAID",
"count": 5,
"earliestDate": "2024-01-15T10:30:00Z",
"latestDate": "2024-02-01T12:00:00Z"
}
]
}{
"result": "error",
"code": "INVALID_PARAMETER",
"description": "Invalid counterStatuses value: 'APPROVL_REPORTS'"
}{
"result": "error",
"description": "Not allowed"
}{
"result": "error",
"code": "ORGANIZATION_NOT_FOUND",
"description": "Organization not found"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Unique identifier of the organization. String in UUID without dashes (32-character hex string) if access is done via values from Findity system otherwise, id of external system can be used
Query Parameters
Optional filter limiting which counters are returned. When omitted, all counters are returned.
Accepts either a comma separated list (counterStatuses=APPROVAL_REPORTS,REVIEW_REPORTS) or a repeated parameter
(counterStatuses=APPROVAL_REPORTS&counterStatuses=REVIEW_REPORTS). A value outside this enum is rejected with 400.
These filter values are not symmetrical with the status field of the returned counters, and deliberately so:
they are the values of the existing ReportCounterType enum, which the legacy report counters endpoint has always
accepted and which other clients already send. Renaming them would be a breaking change for those clients, so the
v1 endpoint takes the same values. Drop the _REPORTS suffix to get the status you will receive, for example
APPROVAL_REPORTS returns "status": "APPROVAL" and TRANSFER_TO_RECIPIENT_REPORTS returns
"status": "TRANSFER_TO_RECIPIENT". The two derived counters, FTG_REPORTS and REPORTS_EXPORTS, are the
exception and are returned under exactly the name you asked for.
The NORMAL and ON_HOLD counters have no filter value of their own, for the same backward compatibility reason.
They are part of the default set and are therefore only returned when the parameter is omitted entirely.
APPROVAL_REPORTS, REVIEW_REPORTS, READY_TO_SEND_REPORTS, ERROR_REPORTS, SENT_REPORTS, PAID_REPORTS, INCOMPLETE_REPORTS, FTG_REPORTS, TRANSFER_REPORTS, TRANSFER_TO_RECIPIENT_REPORTS, REPORTS_EXPORTS Used for filtering
Used for filtering
Response
OK
Hide child attributes
Hide child attributes
The report lifecycle status the counter refers to (e.g. APPROVAL, REVIEW, READY_TO_SEND, ERROR, TRANSFER, TRANSFER_TO_RECIPIENT, SENT, PAID, NORMAL, ON_HOLD) or a derived counter key (INCOMPLETE, FTG_REPORTS, REPORTS_EXPORTS).
Number of reports for this status.
Earliest relevant date for this status (sent/lastUpdated/paid/dueDate depending on the counter), or null.
Latest relevant date for this status, or null.
Returned for the READY_TO_SEND counter only. Empty unless the organization has more than one recipient and there is at least one report ready to send.
curl --request GET \
--url https://stage-api.findity.com/api/v1/admin/organizations/{organizationId}/reports/counters \
--header 'Authorization: Bearer <token>'import requests
url = "https://stage-api.findity.com/api/v1/admin/organizations/{organizationId}/reports/counters"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://stage-api.findity.com/api/v1/admin/organizations/{organizationId}/reports/counters', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://stage-api.findity.com/api/v1/admin/organizations/{organizationId}/reports/counters",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://stage-api.findity.com/api/v1/admin/organizations/{organizationId}/reports/counters"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://stage-api.findity.com/api/v1/admin/organizations/{organizationId}/reports/counters")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://stage-api.findity.com/api/v1/admin/organizations/{organizationId}/reports/counters")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"counts": [
{
"status": "APPROVAL",
"count": 2,
"earliestDate": "2024-02-10T08:15:00Z",
"latestDate": "2024-02-12T09:00:00Z"
},
{
"status": "READY_TO_SEND",
"count": 3,
"earliestDate": null,
"latestDate": null,
"recipientCounters": [
{
"recipientId": "recipient-001",
"counter": 2
},
{
"recipientId": "recipient-002",
"counter": 1
}
]
},
{
"status": "PAID",
"count": 5,
"earliestDate": "2024-01-15T10:30:00Z",
"latestDate": "2024-02-01T12:00:00Z"
}
]
}{
"result": "error",
"code": "INVALID_PARAMETER",
"description": "Invalid counterStatuses value: 'APPROVL_REPORTS'"
}{
"result": "error",
"description": "Not allowed"
}{
"result": "error",
"code": "ORGANIZATION_NOT_FOUND",
"description": "Organization not found"
}
