Reports
General Ledger
>
API Reference
>
v1
>
Reports
openapi: 3.0.3
info:
title: General Ledger API - Reports
version: v1
description: API to interact with General Ledger
contact:
name: General Ledger
url: https://www.jackhenry.com/
email: DC-LedgerServices-Product@jackhenry.com
servers:
- url: https://{API_ENDPOINT}
variables:
API_ENDPOINT:
default: digital.garden-fi.com
security:
- bearerAuth: []
tags:
- name: Reports
description: APIs for generating and viewing general ledger reports
paths:
/a/api/general-ledger/v1/{InstitutionUniversalId}/chart-of-accounts:
get:
operationId: ChartOfAccounts
tags:
- Reports
summary: Get Chart of Accounts
description: Retrieve the chart of accounts for the specified institution.
parameters:
- name: InstitutionUniversalId
in: path
description: A unique identifier to establish the identity of an Institution/Environment/Brand combination
required: true
schema:
type: string
- name: runDate
in: query
required: false
description: Results will be returned as of the date provided. If not provided, the current day will be used.
schema:
type: string
format: date
nullable: true
- name: timeZone
in: query
required: false
description: The timezone to used to format dates and times in the report with. If not provided, the timezone will default to America/Chicago.
schema:
type: string
nullable: true
- name: Accept
in: header
required: false
description: The Accept header is used to determine the format of the report data. Use application/pdf to receive the results in PDF. If not provided, the default media type is application/json.
schema:
type: string
nullable: true
default: application/json
example: application/pdf
- name: branchId
in: query
required: false
description: Filter report results to a specific branch by providing the branch id. If not provided, results will include all branches.
schema:
type: string
- name: costCenter
in: query
required: false
description: Filter report results to a specific cost center by providing the cost center. If not provided, results will include all cost centers.
schema:
type: string
responses:
'200':
description: Successful report generation.
content:
application/json:
schema:
type: array
items:
type: object
required:
- AccountNumber
- AccountTitle
- AccountType
- AccountStatus
- Balance
- CurrencyType
- LastTransactionDate
- LastModifiedDate
- OpenedDate
properties:
AccountNumber:
type: string
description: The account number
AccountTitle:
type: string
description: The account title
AccountType:
type: string
description: The type of GL account.
nullable: false
example: Liability
enum:
- Asset
- Equity
- Expense
- Income
- Liability
AccountStatus:
type: string
description: The status of the GL account.
nullable: false
enum:
- Open
- Closed
- Control
- Locked
Balance:
type: string
description: The account balance as of the run date provided
CurrencyType:
type: string
description: The ISO 4217 three character currency type. USD is the default value.
default: USD
LastTransactionDate:
type: string
description: The timestamped date of the last transaction made to the account
format: date-time
LastModifiedDate:
type: string
description: The last date the account was modified
format: date
OpenedDate:
type: string
description: The date the account was opened
format: date
application/pdf:
schema:
type: string
format: binary
description: Returns a PDF file containing the generated report.
'400':
description: The server could not understand the request due to an invalid request.
content:
application/problem+json:
schema:
type: object
required:
- type
- title
- details
properties:
type:
description: A string path which uniquely classifies the domain of the error.
type: string
nullable: false
example: jackhenry/operation-failed
title:
description: A end-user readable string title of the error type.
nullable: false
type: string
details:
description: An array of end-user readable strings which provide additional details for the error message.
type: array
nullable: false
items:
type: string
data:
type: object
description: |
Additional data that could be useful to a developer or for handing the error programmatically. The schema for the data in this object is intentionally left undefined.
nullable: true
'401':
description: Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response.
'403':
description: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. Unlike 401, the clients identity is known to the server.
'404':
description: The server can not find the requested resource. In an API, this can also mean that the endpoint is valid but the resource itself does not exist. Servers may also send this response instead of 403 to hide the existence of a resource from an unauthorized client.
'500':
description: An unexpected internal server error occurred while processing the request.
content:
application/problem+json:
schema:
type: object
required:
- type
- title
- details
properties:
type:
description: A string path which uniquely classifies the domain of the error.
type: string
nullable: false
example: jackhenry/operation-failed
title:
description: A end-user readable string title of the error type.
nullable: false
type: string
details:
description: An array of end-user readable strings which provide additional details for the error message.
type: array
nullable: false
items:
type: string
data:
type: object
description: |
Additional data that could be useful to a developer or for handing the error programmatically. The schema for the data in this object is intentionally left undefined.
nullable: true
examples:
internalServerError:
summary: Internal server error
value:
type: general/internal-server-error
title: Internal server error
details:
- Unexpected internal server error
/a/api/general-ledger/v1/{InstitutionUniversalId}/income-expense:
get:
operationId: IncomeExpense
tags:
- Reports
summary: Get Income Expense
description: Retrieve the income and expense report for the specified institution. Supports dynamic columns via the column query parameter.
parameters:
- name: InstitutionUniversalId
in: path
description: A unique identifier to establish the identity of an Institution/Environment/Brand combination
required: true
schema:
type: string
- name: runDate
in: query
required: false
description: Results will be returned as of the date provided. If not provided, the current day will be used.
schema:
type: string
format: date
nullable: true
- name: timeZone
in: query
required: false
description: The timezone to used to format dates and times in the report with. If not provided, the timezone will default to America/Chicago.
schema:
type: string
nullable: true
- name: Accept
in: header
required: false
description: The Accept header is used to determine the format of the report data. Use application/pdf to receive the results in PDF. If not provided, the default media type is application/json.
schema:
type: string
nullable: true
default: application/json
example: application/pdf
- name: column
in: query
required: false
description: "Dynamic column specifications for the report. Can be specified multiple times to add multiple columns.\nAllowed values: AccountNumber, Title, Balance, NetChange, YearAvg, PriorYearBalance, DollarVariance, \nPercentVariance, QuarterAvg, MTD, PriorMonthMTD, QTD, YTD, PriorYearMTD, PriorQuarterQTD, PriorYearQTD, \nPriorYTD, MonthAvg, PriorMonthAvg, PriorYearMonthAvg, PriorQuarterAvg, PriorYearQuarterAvg, PriorYearAvg.\nIf not provided, default columns will be used based on the report type.\nNote: DollarVariance and PercentVariance require both Balance and PriorYearBalance to be included.\n"
schema:
type: array
items:
type: string
enum:
- AccountNumber
- Title
- Balance
- NetChange
- YearAvg
- PriorYearBalance
- DollarVariance
- PercentVariance
- QuarterAvg
- MTD
- PriorMonthMTD
- QTD
- YTD
- PriorYearMTD
- PriorQuarterQTD
- PriorYearQTD
- PriorYTD
- MonthAvg
- PriorMonthAvg
- PriorYearMonthAvg
- PriorQuarterAvg
- PriorYearQuarterAvg
- PriorYearAvg
style: form
explode: true
- name: render
in: query
required: false
description: |
Controls the rendering mode of the response.
- `flatten`: Returns flattened report data as array of objects with dynamic properties
- `request`: Returns report template and data URLs for external rendering
- If not provided, returns hierarchical tree structure
schema:
type: string
enum:
- flatten
- request
- name: branchId
in: query
required: false
description: Filter report results to a specific branch by providing the branch id. If not provided, results will include all branches.
schema:
type: string
- name: costCenter
in: query
required: false
description: Filter report results to a specific cost center by providing the cost center. If not provided, results will include all cost centers.
schema:
type: string
responses:
'200':
description: Successful report generation.
content:
application/json:
schema:
oneOf:
- type: object
description: Hierarchical tree structure of totaling groups and accounts with dynamic column values. Returned when render parameter is not specified.
required:
- ChildId
- ParentId
properties:
ChildId:
type: string
description: Either the account id or totaling group id
ParentId:
type: string
description: The totaling group id of the parent mapping
Children:
type: array
items:
type: object
description: Child node in the totaling group tree. Has the same shape as TotalingGroupTreeResponse.
required:
- ChildId
- ParentId
properties:
ChildId:
type: string
description: Either the account id or totaling group id
ParentId:
type: string
description: The totaling group id of the parent mapping
Children:
type: array
items:
type: object
additionalProperties:
type: string
description: Dynamic column values based on column query parameters. Property names correspond to column types (e.g., "title", "balance", "netchange").
additionalProperties:
type: string
description: Dynamic column values based on column query parameters. Property names correspond to column types (e.g., "title", "balance", "netchange").
- type: array
description: Flattened array representation of report data. Returned when render=flatten.
items:
type: object
required:
- ChildId
properties:
ChildId:
type: string
description: Either the account id or totaling group id of the child mapping
ParentId:
type: string
description: The totaling group id of the parent mapping
additionalProperties:
type: string
description: Dynamic column values. Property names correspond to column types (e.g., "title", "balance", "netchange").
- type: object
description: Report request structure for external rendering. Returned when render=request.
required:
- reportTemplateUrl
- reportDataUrls
- outputFormat
properties:
reportTemplateUrl:
type: object
description: JSON object containing the report template configuration
reportDataUrls:
type: array
items:
type: object
description: Array of JSON objects containing the report data
outputFormat:
type: string
description: The output format (e.g., "pdf", "csv")
application/pdf:
schema:
type: string
format: binary
description: Returns a PDF file containing the generated report.
'400':
description: The server could not understand the request due to an invalid request.
content:
application/problem+json:
schema:
type: object
required:
- type
- title
- details
properties:
type:
description: A string path which uniquely classifies the domain of the error.
type: string
nullable: false
example: jackhenry/operation-failed
title:
description: A end-user readable string title of the error type.
nullable: false
type: string
details:
description: An array of end-user readable strings which provide additional details for the error message.
type: array
nullable: false
items:
type: string
data:
type: object
description: |
Additional data that could be useful to a developer or for handing the error programmatically. The schema for the data in this object is intentionally left undefined.
nullable: true
'401':
description: Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response.
'403':
description: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. Unlike 401, the clients identity is known to the server.
'404':
description: The server can not find the requested resource. In an API, this can also mean that the endpoint is valid but the resource itself does not exist. Servers may also send this response instead of 403 to hide the existence of a resource from an unauthorized client.
'500':
description: An unexpected internal server error occurred while processing the request.
content:
application/problem+json:
schema:
type: object
required:
- type
- title
- details
properties:
type:
description: A string path which uniquely classifies the domain of the error.
type: string
nullable: false
example: jackhenry/operation-failed
title:
description: A end-user readable string title of the error type.
nullable: false
type: string
details:
description: An array of end-user readable strings which provide additional details for the error message.
type: array
nullable: false
items:
type: string
data:
type: object
description: |
Additional data that could be useful to a developer or for handing the error programmatically. The schema for the data in this object is intentionally left undefined.
nullable: true
examples:
internalServerError:
summary: Internal server error
value:
type: general/internal-server-error
title: Internal server error
details:
- Unexpected internal server error
/a/api/general-ledger/v1/{InstitutionUniversalId}/balance-sheet:
get:
operationId: BalanceSheet
tags:
- Reports
summary: Get Balance Sheet
description: Retrieve the balance sheet report for the specified institution. Supports dynamic columns via the column query parameter.
parameters:
- name: InstitutionUniversalId
in: path
description: A unique identifier to establish the identity of an Institution/Environment/Brand combination
required: true
schema:
type: string
- name: runDate
in: query
required: false
description: Results will be returned as of the date provided. If not provided, the current day will be used.
schema:
type: string
format: date
nullable: true
- name: timeZone
in: query
required: false
description: The timezone to used to format dates and times in the report with. If not provided, the timezone will default to America/Chicago.
schema:
type: string
nullable: true
- name: Accept
in: header
required: false
description: The Accept header is used to determine the format of the report data. Use application/pdf to receive the results in PDF. If not provided, the default media type is application/json.
schema:
type: string
nullable: true
default: application/json
example: application/pdf
- name: column
in: query
required: false
description: "Dynamic column specifications for the report. Can be specified multiple times to add multiple columns.\nAllowed values: AccountNumber, Title, Balance, NetChange, YearAvg, PriorYearBalance, DollarVariance, \nPercentVariance, QuarterAvg, MTD, PriorMonthMTD, QTD, YTD, PriorYearMTD, PriorQuarterQTD, PriorYearQTD, \nPriorYTD, MonthAvg, PriorMonthAvg, PriorYearMonthAvg, PriorQuarterAvg, PriorYearQuarterAvg, PriorYearAvg.\nIf not provided, default columns will be used based on the report type.\nNote: DollarVariance and PercentVariance require both Balance and PriorYearBalance to be included.\n"
schema:
type: array
items:
type: string
enum:
- AccountNumber
- Title
- Balance
- NetChange
- YearAvg
- PriorYearBalance
- DollarVariance
- PercentVariance
- QuarterAvg
- MTD
- PriorMonthMTD
- QTD
- YTD
- PriorYearMTD
- PriorQuarterQTD
- PriorYearQTD
- PriorYTD
- MonthAvg
- PriorMonthAvg
- PriorYearMonthAvg
- PriorQuarterAvg
- PriorYearQuarterAvg
- PriorYearAvg
style: form
explode: true
- name: render
in: query
required: false
description: |
Controls the rendering mode of the response.
- `flatten`: Returns flattened report data as array of objects with dynamic properties
- `request`: Returns report template and data URLs for external rendering
- If not provided, returns hierarchical tree structure
schema:
type: string
enum:
- flatten
- request
- name: branchId
in: query
required: false
description: Filter report results to a specific branch by providing the branch id. If not provided, results will include all branches.
schema:
type: string
- name: costCenter
in: query
required: false
description: Filter report results to a specific cost center by providing the cost center. If not provided, results will include all cost centers.
schema:
type: string
responses:
'200':
description: Successful report generation.
content:
application/json:
schema:
oneOf:
- type: object
description: Hierarchical tree structure of totaling groups and accounts with dynamic column values. Returned when render parameter is not specified.
required:
- ChildId
- ParentId
properties:
ChildId:
type: string
description: Either the account id or totaling group id
ParentId:
type: string
description: The totaling group id of the parent mapping
Children:
type: array
items:
type: object
description: Child node in the totaling group tree. Has the same shape as TotalingGroupTreeResponse.
required:
- ChildId
- ParentId
properties:
ChildId:
type: string
description: Either the account id or totaling group id
ParentId:
type: string
description: The totaling group id of the parent mapping
Children:
type: array
items:
type: object
additionalProperties:
type: string
description: Dynamic column values based on column query parameters. Property names correspond to column types (e.g., "title", "balance", "netchange").
additionalProperties:
type: string
description: Dynamic column values based on column query parameters. Property names correspond to column types (e.g., "title", "balance", "netchange").
- type: array
description: Flattened array representation of report data. Returned when render=flatten.
items:
type: object
required:
- ChildId
properties:
ChildId:
type: string
description: Either the account id or totaling group id of the child mapping
ParentId:
type: string
description: The totaling group id of the parent mapping
additionalProperties:
type: string
description: Dynamic column values. Property names correspond to column types (e.g., "title", "balance", "netchange").
- type: object
description: Report request structure for external rendering. Returned when render=request.
required:
- reportTemplateUrl
- reportDataUrls
- outputFormat
properties:
reportTemplateUrl:
type: object
description: JSON object containing the report template configuration
reportDataUrls:
type: array
items:
type: object
description: Array of JSON objects containing the report data
outputFormat:
type: string
description: The output format (e.g., "pdf", "csv")
application/pdf:
schema:
type: string
format: binary
description: Returns a PDF file containing the generated report.
'400':
description: The server could not understand the request due to an invalid request.
content:
application/problem+json:
schema:
type: object
required:
- type
- title
- details
properties:
type:
description: A string path which uniquely classifies the domain of the error.
type: string
nullable: false
example: jackhenry/operation-failed
title:
description: A end-user readable string title of the error type.
nullable: false
type: string
details:
description: An array of end-user readable strings which provide additional details for the error message.
type: array
nullable: false
items:
type: string
data:
type: object
description: |
Additional data that could be useful to a developer or for handing the error programmatically. The schema for the data in this object is intentionally left undefined.
nullable: true
'401':
description: Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response.
'403':
description: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. Unlike 401, the clients identity is known to the server.
'404':
description: The server can not find the requested resource. In an API, this can also mean that the endpoint is valid but the resource itself does not exist. Servers may also send this response instead of 403 to hide the existence of a resource from an unauthorized client.
'500':
description: An unexpected internal server error occurred while processing the request.
content:
application/problem+json:
schema:
type: object
required:
- type
- title
- details
properties:
type:
description: A string path which uniquely classifies the domain of the error.
type: string
nullable: false
example: jackhenry/operation-failed
title:
description: A end-user readable string title of the error type.
nullable: false
type: string
details:
description: An array of end-user readable strings which provide additional details for the error message.
type: array
nullable: false
items:
type: string
data:
type: object
description: |
Additional data that could be useful to a developer or for handing the error programmatically. The schema for the data in this object is intentionally left undefined.
nullable: true
examples:
internalServerError:
summary: Internal server error
value:
type: general/internal-server-error
title: Internal server error
details:
- Unexpected internal server error
/a/api/general-ledger/v1/{InstitutionUniversalId}/trial-balance:
get:
operationId: TrialBalance
tags:
- Reports
summary: Get Trial Balance
description: Retrieve the trial balance report for the specified institution. Supports dynamic columns via the column query parameter.
parameters:
- name: InstitutionUniversalId
in: path
description: A unique identifier to establish the identity of an Institution/Environment/Brand combination
required: true
schema:
type: string
- name: runDate
in: query
required: false
description: Results will be returned as of the date provided. If not provided, the current day will be used.
schema:
type: string
format: date
nullable: true
- name: timeZone
in: query
required: false
description: The timezone to used to format dates and times in the report with. If not provided, the timezone will default to America/Chicago.
schema:
type: string
nullable: true
- name: Accept
in: header
required: false
description: The Accept header is used to determine the format of the report data. Use application/pdf to receive the results in PDF. If not provided, the default media type is application/json.
schema:
type: string
nullable: true
default: application/json
example: application/pdf
- name: column
in: query
required: false
description: "Dynamic column specifications for the report. Can be specified multiple times to add multiple columns.\nAllowed values: AccountNumber, Title, Balance, NetChange, YearAvg, PriorYearBalance, DollarVariance, \nPercentVariance, QuarterAvg, MTD, PriorMonthMTD, QTD, YTD, PriorYearMTD, PriorQuarterQTD, PriorYearQTD, \nPriorYTD, MonthAvg, PriorMonthAvg, PriorYearMonthAvg, PriorQuarterAvg, PriorYearQuarterAvg, PriorYearAvg.\nIf not provided, default columns will be used based on the report type.\nNote: DollarVariance and PercentVariance require both Balance and PriorYearBalance to be included.\n"
schema:
type: array
items:
type: string
enum:
- AccountNumber
- Title
- Balance
- NetChange
- YearAvg
- PriorYearBalance
- DollarVariance
- PercentVariance
- QuarterAvg
- MTD
- PriorMonthMTD
- QTD
- YTD
- PriorYearMTD
- PriorQuarterQTD
- PriorYearQTD
- PriorYTD
- MonthAvg
- PriorMonthAvg
- PriorYearMonthAvg
- PriorQuarterAvg
- PriorYearQuarterAvg
- PriorYearAvg
style: form
explode: true
- name: render
in: query
required: false
description: |
Controls the rendering mode of the response.
- `flatten`: Returns flattened report data as array of objects with dynamic properties
- `request`: Returns report template and data URLs for external rendering
- If not provided, returns hierarchical tree structure
schema:
type: string
enum:
- flatten
- request
- name: branchId
in: query
required: false
description: Filter report results to a specific branch by providing the branch id. If not provided, results will include all branches.
schema:
type: string
- name: costCenter
in: query
required: false
description: Filter report results to a specific cost center by providing the cost center. If not provided, results will include all cost centers.
schema:
type: string
responses:
'200':
description: Successful report generation.
content:
application/json:
schema:
oneOf:
- type: object
description: Hierarchical tree structure of totaling groups and accounts with dynamic column values. Returned when render parameter is not specified.
required:
- ChildId
- ParentId
properties:
ChildId:
type: string
description: Either the account id or totaling group id
ParentId:
type: string
description: The totaling group id of the parent mapping
Children:
type: array
items:
type: object
description: Child node in the totaling group tree. Has the same shape as TotalingGroupTreeResponse.
required:
- ChildId
- ParentId
properties:
ChildId:
type: string
description: Either the account id or totaling group id
ParentId:
type: string
description: The totaling group id of the parent mapping
Children:
type: array
items:
type: object
additionalProperties:
type: string
description: Dynamic column values based on column query parameters. Property names correspond to column types (e.g., "title", "balance", "netchange").
additionalProperties:
type: string
description: Dynamic column values based on column query parameters. Property names correspond to column types (e.g., "title", "balance", "netchange").
- type: array
description: Flattened array representation of report data. Returned when render=flatten.
items:
type: object
required:
- ChildId
properties:
ChildId:
type: string
description: Either the account id or totaling group id of the child mapping
ParentId:
type: string
description: The totaling group id of the parent mapping
additionalProperties:
type: string
description: Dynamic column values. Property names correspond to column types (e.g., "title", "balance", "netchange").
- type: object
description: Report request structure for external rendering. Returned when render=request.
required:
- reportTemplateUrl
- reportDataUrls
- outputFormat
properties:
reportTemplateUrl:
type: object
description: JSON object containing the report template configuration
reportDataUrls:
type: array
items:
type: object
description: Array of JSON objects containing the report data
outputFormat:
type: string
description: The output format (e.g., "pdf", "csv")
application/pdf:
schema:
type: string
format: binary
description: Returns a PDF file containing the generated report.
'400':
description: The server could not understand the request due to an invalid request.
content:
application/problem+json:
schema:
type: object
required:
- type
- title
- details
properties:
type:
description: A string path which uniquely classifies the domain of the error.
type: string
nullable: false
example: jackhenry/operation-failed
title:
description: A end-user readable string title of the error type.
nullable: false
type: string
details:
description: An array of end-user readable strings which provide additional details for the error message.
type: array
nullable: false
items:
type: string
data:
type: object
description: |
Additional data that could be useful to a developer or for handing the error programmatically. The schema for the data in this object is intentionally left undefined.
nullable: true
'401':
description: Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response.
'403':
description: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. Unlike 401, the clients identity is known to the server.
'404':
description: The server can not find the requested resource. In an API, this can also mean that the endpoint is valid but the resource itself does not exist. Servers may also send this response instead of 403 to hide the existence of a resource from an unauthorized client.
'500':
description: An unexpected internal server error occurred while processing the request.
content:
application/problem+json:
schema:
type: object
required:
- type
- title
- details
properties:
type:
description: A string path which uniquely classifies the domain of the error.
type: string
nullable: false
example: jackhenry/operation-failed
title:
description: A end-user readable string title of the error type.
nullable: false
type: string
details:
description: An array of end-user readable strings which provide additional details for the error message.
type: array
nullable: false
items:
type: string
data:
type: object
description: |
Additional data that could be useful to a developer or for handing the error programmatically. The schema for the data in this object is intentionally left undefined.
nullable: true
examples:
internalServerError:
summary: Internal server error
value:
type: general/internal-server-error
title: Internal server error
details:
- Unexpected internal server error
Did this page help you?
Why was this page helpful?
Why wasn't this page helpful?
Thank you for your feedback!
Last updated Tue Apr 14 2026