curl --request GET \
--url https://api.exowpee.com/v1/accounting/organization/books/{book}/health \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.exowpee.com/v1/accounting/organization/books/{book}/health"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.exowpee.com/v1/accounting/organization/books/{book}/health', 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://api.exowpee.com/v1/accounting/organization/books/{book}/health",
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://api.exowpee.com/v1/accounting/organization/books/{book}/health"
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://api.exowpee.com/v1/accounting/organization/books/{book}/health")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.exowpee.com/v1/accounting/organization/books/{book}/health")
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{
"provisioned": true,
"missing_role_mappings": [
{
"role": "<string>",
"expected_code": "<string>"
}
],
"non_postable_mappings": "<array>",
"open_period_covers_today": true,
"current_fiscal_year": {
"id": "<string>",
"label": "<string>",
"start_date": "2023-12-25",
"end_date": "2023-12-25",
"currency_code": "<string>",
"currency_exponent": 123,
"is_closed": true
},
"currency": {
"accounting": "<string>",
"team": "<string>",
"matches": true
},
"checked_at": "2023-11-07T05:31:56Z"
}{
"message": "<string>",
"errors": {}
}Check accounting setup (organization)
Check whether the book is ready for automatic posting: missing account mappings, open period for today, current fiscal year and currency match.
curl --request GET \
--url https://api.exowpee.com/v1/accounting/organization/books/{book}/health \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.exowpee.com/v1/accounting/organization/books/{book}/health"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.exowpee.com/v1/accounting/organization/books/{book}/health', 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://api.exowpee.com/v1/accounting/organization/books/{book}/health",
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://api.exowpee.com/v1/accounting/organization/books/{book}/health"
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://api.exowpee.com/v1/accounting/organization/books/{book}/health")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.exowpee.com/v1/accounting/organization/books/{book}/health")
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{
"provisioned": true,
"missing_role_mappings": [
{
"role": "<string>",
"expected_code": "<string>"
}
],
"non_postable_mappings": "<array>",
"open_period_covers_today": true,
"current_fiscal_year": {
"id": "<string>",
"label": "<string>",
"start_date": "2023-12-25",
"end_date": "2023-12-25",
"currency_code": "<string>",
"currency_exponent": 123,
"is_closed": true
},
"currency": {
"accounting": "<string>",
"team": "<string>",
"matches": true
},
"checked_at": "2023-11-07T05:31:56Z"
}{
"message": "<string>",
"errors": {}
}journal_entries.viewreports
Conditions
- The accounting module must be included in the plan of the organization.
- In the organization space the caller needs an accounting access grant on the book named in the URL.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Identifier of the book (the organization or one of its companies) whose records are read or changed; 27-character KSUID. The caller needs an access grant on it.
Response
true when the book can post: it has all journal types plus the carry-forward journal, every posting role expected for this type of book is mapped, and a fiscal year exists. Otherwise false.
Posting roles expected for this type of book that have no account mapping. Each item has role (the posting role) and expected_code (the standard account code that role normally maps to, or null). Empty when nothing is missing.
Show child attributes
Show child attributes
Mappings, among roles without a third-party type, whose account cannot receive entries, so posting for that role would be refused. Each item has role and account_code. Empty when none.
true when an open fiscal period of the book contains today's date; false when no such period exists, so posting dated today would be refused.
The fiscal year of the book whose start and end dates contain today (the latest start when several), or null when there is none.
Show child attributes
Show child attributes
Comparison of the currency of the books with the currency configured for the owner of the book.
Show child attributes
Show child attributes
Date and time of the check (ISO 8601).