General Ledger
Symitar in Platform
>
General Ledger
openapi: 3.0.1
info:
title: Symitar in Platform API - General Ledger
version: v1
description: API to interact with Symitar in Platform
contact:
name: Picard
url: https://www.jackhenry.com/
email: DC-Picard-Product@jackhenry.com
servers:
- url: https://platform.banno.com
description: Production Endpoint
components:
securitySchemes:
OpenIDEnterprise:
type: openIdConnect
openIdConnectUrl: https://login.jackhenry.com/.well-known/openid-configuration
description: "Jack Henry Enterprise Authentication. \n\n ### Supported Flows\n \n #### 1. Authorization Code Flow\n * **Use Case:** Person-at-keyboard logins (FI or JH Employees).\n * **Security:** Supports/recommends PKCE (S256). Supports Pushed Authorization Requests (PAR), and DPoP token binding.\n * **Client Auth:** Supports/recommends `client_assertion` (Private Key JWT), also supports `client_secret`.\n \n #### 2. Client Credentials Flow\n * **Use Case:** System services and machine-to-machine integrations.\n * **Security:** Supports DPoP token binding.\n * **Client Auth:** **Requires** `client_assertion` (Private Key JWT).\n"
OpenIDConsumer:
type: openIdConnect
openIdConnectUrl: https://digital.garden-fi.com/.well-known/openid-configuration
description: "Jack Henry Consumer Authentication. \n\n> **WARNING: FI-SPECIFIC ROUTING**\n> The authorization server is currently pointing to our **Sandbox Environment** (`digital.garden-fi.com`) so you can test this documentation. In production code, this domain **must** be replaced with the specific Financial Institution's domain.\n> Example: Replace `{API-ENVIRONMENT}` in `https://{API-ENVIRONMENT}/.well-known/openid-configuration` with `digital.garden-fi.com` for the Garden financial institution.\n\n### Supported Flows\n\n#### 1. Authorization Code Flow\n* **Use Case:** Person-at-keyboard logins (customer or member of FI).\n* **Security:** Supports/recommends PKCE (S256). Supports Pushed Authorization Requests (PAR), and DPoP token binding.\n* **Client Auth:** Supports `client_secret`.\n"
tags:
- name: General Ledger
description: General Ledger account number search operations
paths:
/a/api/picard/v1/{InstitutionUniversalId}/general-ledger/accounts-search:
post:
operationId: searchGeneralLedgerAccountNumbers
tags:
- General Ledger
summary: Search General Ledger Account Numbers
description: |
Search for General Ledger account numbers by prefix. Returns all GL
account numbers whose value starts with the provided `query` string
(case-insensitive). The list is sourced from the institution's
PowerOn-exported GL account file and de-duplicated before filtering.
Supply a `query` value in the request body — e.g. `"100"` returns
all GL account numbers that begin with `"100"`.
parameters:
- name: InstitutionUniversalId
in: path
description: A unique identifier to establish the identity of an Institution/Environment/Brand combination
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
description: |
Request body for `POST /general-ledger/accounts-search`.
Supply a `query` prefix to filter GL account numbers. All GL account
numbers that **start with** the given value (case-insensitive) are
returned. Results are de-duplicated.
required:
- query
properties:
query:
type: string
description: |
Prefix string to filter GL account numbers by. Must be non-empty.
example: '100'
responses:
'200':
description: List of matching GL account numbers
content:
application/json:
schema:
type: array
items:
type: string
example:
- '1000'
- '1001'
- '1005'
'400':
description: Bad request — missing or empty query
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.
'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/picard/v1/{InstitutionUniversalId}/gl-to-gl:
post:
operationId: postGLToGL
tags:
- General Ledger
summary: Post GL-to-GL Transfer
description: |
Post a transfer between two GL (General Ledger) accounts using the
SymXchange Transactions `glToGlPost` operation.
This is typically used for offsetting GL entries when performing
other transactions like loan recasts or fee reversals.
parameters:
- name: InstitutionUniversalId
in: path
description: A unique identifier to establish the identity of an Institution/Environment/Brand combination
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
description: Request body for `POST /gl-to-gl`.
required:
- fromGLAccount
- toGLAccount
- amount
properties:
fromGLAccount:
type: string
maxLength: 20
description: Source GL account number
example: '4000'
toGLAccount:
type: string
maxLength: 20
description: Destination GL account number
example: '5000'
amount:
type: string
description: Transfer amount (must be positive)
example: '100.00'
comment:
type: string
maxLength: 255
description: Optional comment/description for the transfer
example: Offset entry for loan recast
sourceCode:
type: string
maxLength: 10
description: Optional source code
example: ABC
effectiveDate:
type: string
format: date
description: Optional effective date in YYYY-MM-DD format. Defaults to today if omitted.
example: '2026-08-20'
commentCode:
type: integer
minimum: 0
description: Optional comment code
example: 0
branchId:
type: integer
minimum: 0
description: Optional branch ID
example: 0
responses:
'200':
description: GL-to-GL transfer successfully posted
content:
application/json:
schema:
type: object
description: Response from GL-to-GL transfer operation.
properties:
status:
type: string
description: Status of the transfer
enum:
- success
- failed
example: success
message:
type: string
description: Status message
nullable: true
transactionId:
type: string
description: SymXchange transaction confirmation number
nullable: true
example: GL-TXN-12345
effectiveDate:
type: string
format: date
description: Effective date of the transfer
nullable: true
example: '2026-08-20'
'400':
description: Bad request — validation error
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.
'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 Sep 15 2026