Query GL entries
curl --request POST \
--url https://sandbox.tight.com/v6/accounting/glAccounts/{id}/generalLedger \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"cursor": "<string>",
"limit": 123,
"filter": {
"includeBeginningBalance": true,
"beginDate": "2023-12-25",
"endDate": "2023-12-25",
"search": "<string>",
"dimensionValues": [
{
"dimensionId": "tdim_439512",
"dimensionValueIds": [
"<string>"
]
}
]
}
}
'import requests
url = "https://sandbox.tight.com/v6/accounting/glAccounts/{id}/generalLedger"
payload = {
"cursor": "<string>",
"limit": 123,
"filter": {
"includeBeginningBalance": True,
"beginDate": "2023-12-25",
"endDate": "2023-12-25",
"search": "<string>",
"dimensionValues": [
{
"dimensionId": "tdim_439512",
"dimensionValueIds": ["<string>"]
}
]
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
cursor: '<string>',
limit: 123,
filter: {
includeBeginningBalance: true,
beginDate: '2023-12-25',
endDate: '2023-12-25',
search: '<string>',
dimensionValues: [{dimensionId: 'tdim_439512', dimensionValueIds: ['<string>']}]
}
})
};
fetch('https://sandbox.tight.com/v6/accounting/glAccounts/{id}/generalLedger', 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://sandbox.tight.com/v6/accounting/glAccounts/{id}/generalLedger",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'cursor' => '<string>',
'limit' => 123,
'filter' => [
'includeBeginningBalance' => true,
'beginDate' => '2023-12-25',
'endDate' => '2023-12-25',
'search' => '<string>',
'dimensionValues' => [
[
'dimensionId' => 'tdim_439512',
'dimensionValueIds' => [
'<string>'
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox.tight.com/v6/accounting/glAccounts/{id}/generalLedger"
payload := strings.NewReader("{\n \"cursor\": \"<string>\",\n \"limit\": 123,\n \"filter\": {\n \"includeBeginningBalance\": true,\n \"beginDate\": \"2023-12-25\",\n \"endDate\": \"2023-12-25\",\n \"search\": \"<string>\",\n \"dimensionValues\": [\n {\n \"dimensionId\": \"tdim_439512\",\n \"dimensionValueIds\": [\n \"<string>\"\n ]\n }\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sandbox.tight.com/v6/accounting/glAccounts/{id}/generalLedger")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"cursor\": \"<string>\",\n \"limit\": 123,\n \"filter\": {\n \"includeBeginningBalance\": true,\n \"beginDate\": \"2023-12-25\",\n \"endDate\": \"2023-12-25\",\n \"search\": \"<string>\",\n \"dimensionValues\": [\n {\n \"dimensionId\": \"tdim_439512\",\n \"dimensionValueIds\": [\n \"<string>\"\n ]\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.tight.com/v6/accounting/glAccounts/{id}/generalLedger")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"cursor\": \"<string>\",\n \"limit\": 123,\n \"filter\": {\n \"includeBeginningBalance\": true,\n \"beginDate\": \"2023-12-25\",\n \"endDate\": \"2023-12-25\",\n \"search\": \"<string>\",\n \"dimensionValues\": [\n {\n \"dimensionId\": \"tdim_439512\",\n \"dimensionValueIds\": [\n \"<string>\"\n ]\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "glt_12345678",
"entity": {
"id": "btxn_158998869",
"description": "Gusto payroll",
"displayName": "Gusto",
"secondaryDisplayName": "Business Checking *1687",
"glAccount": {
"id": "gla_38560327",
"name": "Officer(s) Salaries and Wages",
"accountNo": "60210",
"type": "EXPENSE",
"iconUrl": "https://cdn.sandbox.tight.com/icons/glAccountTypes/expense.png",
"displayName": "#60210 Officer(s) Salaries and Wages"
}
},
"description": "Monthly payroll entry",
"date": "2025-06-26",
"runningBalance": 100000,
"glAccount": {
"id": "<string>"
},
"drAmount": 100000,
"crAmount": 0,
"type": "EXPENSE"
}
],
"cursor": {
"after": "<string>",
"before": "<string>"
},
"beginningBalance": 123
}{
"result": "FAILURE",
"error": [
{
"type": "REQUIRED",
"message": "Amount is required",
"param": "amount"
}
]
}{
"result": "FAILURE",
"error": [
{
"type": "INVALID_TOKEN",
"message": "Invalid access token"
}
]
}{
"result": "FAILURE",
"error": [
{
"type": "FORBIDDEN",
"message": "Expired access token"
}
]
}{
"result": "FAILURE",
"error": [
{
"type": "BAD_REQUEST",
"message": "Resource not found"
}
]
}{
"result": "FAILURE",
"error": [
{
"type": "UNKNOWN_ERROR",
"message": "Something went wrong. Please try again later."
}
]
}Reports
Query GL entries
Query GL entries for the authenticated user
POST
/
v6
/
accounting
/
glAccounts
/
{id}
/
generalLedger
Query GL entries
curl --request POST \
--url https://sandbox.tight.com/v6/accounting/glAccounts/{id}/generalLedger \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"cursor": "<string>",
"limit": 123,
"filter": {
"includeBeginningBalance": true,
"beginDate": "2023-12-25",
"endDate": "2023-12-25",
"search": "<string>",
"dimensionValues": [
{
"dimensionId": "tdim_439512",
"dimensionValueIds": [
"<string>"
]
}
]
}
}
'import requests
url = "https://sandbox.tight.com/v6/accounting/glAccounts/{id}/generalLedger"
payload = {
"cursor": "<string>",
"limit": 123,
"filter": {
"includeBeginningBalance": True,
"beginDate": "2023-12-25",
"endDate": "2023-12-25",
"search": "<string>",
"dimensionValues": [
{
"dimensionId": "tdim_439512",
"dimensionValueIds": ["<string>"]
}
]
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
cursor: '<string>',
limit: 123,
filter: {
includeBeginningBalance: true,
beginDate: '2023-12-25',
endDate: '2023-12-25',
search: '<string>',
dimensionValues: [{dimensionId: 'tdim_439512', dimensionValueIds: ['<string>']}]
}
})
};
fetch('https://sandbox.tight.com/v6/accounting/glAccounts/{id}/generalLedger', 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://sandbox.tight.com/v6/accounting/glAccounts/{id}/generalLedger",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'cursor' => '<string>',
'limit' => 123,
'filter' => [
'includeBeginningBalance' => true,
'beginDate' => '2023-12-25',
'endDate' => '2023-12-25',
'search' => '<string>',
'dimensionValues' => [
[
'dimensionId' => 'tdim_439512',
'dimensionValueIds' => [
'<string>'
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox.tight.com/v6/accounting/glAccounts/{id}/generalLedger"
payload := strings.NewReader("{\n \"cursor\": \"<string>\",\n \"limit\": 123,\n \"filter\": {\n \"includeBeginningBalance\": true,\n \"beginDate\": \"2023-12-25\",\n \"endDate\": \"2023-12-25\",\n \"search\": \"<string>\",\n \"dimensionValues\": [\n {\n \"dimensionId\": \"tdim_439512\",\n \"dimensionValueIds\": [\n \"<string>\"\n ]\n }\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sandbox.tight.com/v6/accounting/glAccounts/{id}/generalLedger")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"cursor\": \"<string>\",\n \"limit\": 123,\n \"filter\": {\n \"includeBeginningBalance\": true,\n \"beginDate\": \"2023-12-25\",\n \"endDate\": \"2023-12-25\",\n \"search\": \"<string>\",\n \"dimensionValues\": [\n {\n \"dimensionId\": \"tdim_439512\",\n \"dimensionValueIds\": [\n \"<string>\"\n ]\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.tight.com/v6/accounting/glAccounts/{id}/generalLedger")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"cursor\": \"<string>\",\n \"limit\": 123,\n \"filter\": {\n \"includeBeginningBalance\": true,\n \"beginDate\": \"2023-12-25\",\n \"endDate\": \"2023-12-25\",\n \"search\": \"<string>\",\n \"dimensionValues\": [\n {\n \"dimensionId\": \"tdim_439512\",\n \"dimensionValueIds\": [\n \"<string>\"\n ]\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "glt_12345678",
"entity": {
"id": "btxn_158998869",
"description": "Gusto payroll",
"displayName": "Gusto",
"secondaryDisplayName": "Business Checking *1687",
"glAccount": {
"id": "gla_38560327",
"name": "Officer(s) Salaries and Wages",
"accountNo": "60210",
"type": "EXPENSE",
"iconUrl": "https://cdn.sandbox.tight.com/icons/glAccountTypes/expense.png",
"displayName": "#60210 Officer(s) Salaries and Wages"
}
},
"description": "Monthly payroll entry",
"date": "2025-06-26",
"runningBalance": 100000,
"glAccount": {
"id": "<string>"
},
"drAmount": 100000,
"crAmount": 0,
"type": "EXPENSE"
}
],
"cursor": {
"after": "<string>",
"before": "<string>"
},
"beginningBalance": 123
}{
"result": "FAILURE",
"error": [
{
"type": "REQUIRED",
"message": "Amount is required",
"param": "amount"
}
]
}{
"result": "FAILURE",
"error": [
{
"type": "INVALID_TOKEN",
"message": "Invalid access token"
}
]
}{
"result": "FAILURE",
"error": [
{
"type": "FORBIDDEN",
"message": "Expired access token"
}
]
}{
"result": "FAILURE",
"error": [
{
"type": "BAD_REQUEST",
"message": "Resource not found"
}
]
}{
"result": "FAILURE",
"error": [
{
"type": "UNKNOWN_ERROR",
"message": "Something went wrong. Please try again later."
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, see Authentication for more detail.
Path Parameters
Body
application/json
Cursor from the previous paginated response
Page size, i.e. number of items to return per page
Required range:
x <= 250Filter for items in the response.
Show child attributes
Show child attributes
Accounting method to generate the report in. Defaults to the company's configured accounting method.
Available options:
ACCRUAL, CASH Response
Success
The result of the action performed.
Available options:
SUCCESS, FAILURE The data generated by the action performed.
Show child attributes
Show child attributes
Cursor to be used in your subsequent paginated request. Only populated if there are more pages available.
Show child attributes
Show child attributes
Beginning balance in cents. Present on the first page when applicable; null on subsequent pages.
⌘I