Account Services
>
API Reference
>
v1
>
Transactions
Overview
Transactions are posted to accounts via our real-time Account ledgering system. These come from numerous sources, including ACH and card payment rails, account transfers, and manual entries from a Financial Institution. Our account journal maintains consistency with the general ledger in real-time as transactions flow to and from accounts within the Digital Core. Sources for these transactions can also come from internal processes, like interest payments and fees.
Transactions are stored relative to the Operational Periods in which they are processed, which aids in overall performance. Transactions can be searched for accounts by operational period, the specific journal they were written to for the account, the amount of the transactions, and start and end date. This allows easy retrieval for displaying account transaction history as desired by the consumer.
openapi: 3.0.3
info:
title: Account Services APIs - Transactions
version: v1
description: APIs for Account Services
contact:
name: Digital Core @ Jack Henry and Associates, inc.
url: https://www.jackhenry.com/
email: DC-Operations@jackhenry.com
servers:
- url: https://{API_ENDPOINT}
variables:
API_ENDPOINT:
default: digital.garden-fi.com
security:
- bearerAuth: []
tags:
- name: Transactions
description: APIs for Journal Transactions to Accounts
paths:
/a/api/acct-svcs/v1/{InstitutionUniversalId}/transactions/{TransactionId}:
get:
operationId: GetTransactionById
tags:
- Transactions
summary: API to get a journal line item by its unique TransactionId
description: Method to get a journal line item by its unique TransactionId
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: TransactionId
in: path
description: A unique identifier which identifies the Journal LineItem record by its unique database Id (TransactionId)
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
id:
type: string
format: uuid
description: This attribute defines the unique identifier of the resource.
nullable: false
journalEntryId:
type: string
format: uuid
description: This attribute defines the journal identifier for the transactions.
system:
type: string
description: This attribute defines the system producing the journal entry.
nullable: false
journal:
type: string
description: The journal that generated the entry.
nullable: false
operationalPeriod:
type: string
format: date
description: This attribute defines the operational period to post the transactions.
postedDate:
type: string
format: date-time
lineItemId:
type: string
format: uuid
description: This attribute defines the line item of the journal.
accountId:
type: string
format: uuid
description: This attribute defines the account for the transaction.
amount:
type: object
properties:
value:
type: string
description: This defines the amount value.
nullable: false
currencyType:
type: string
description: The ISO 4217 three character currency type. USD is the default value.
nullable: true
default: usd
additionalProperties: false
debitCredit:
nullable: false
type: string
description: This enum attribute defines if we need to debit the account or credit the account.
enum:
- debit
- credit
debitCreditDisplay:
type: string
description: This attribute defines the display value for the associated enum.
nullable: false
description:
type: string
description: A short summary or label that identifies the nature or purpose of the transaction.
nullable: false
runningBalance:
type: string
description: The current balance of an account after a transaction posts to an account.
nullable: false
'400':
description: The server could not process 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
fieldDetails:
type: array
description: An array of objects which provide additional details to specific fields in the request that caused the error.
items:
type: object
properties:
field:
type: string
description: The name or path of the field in the request that caused the error.
detail:
type: string
description: A end-user readable message describing the error related to the field.
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:
badRequest:
summary: Bad request
value:
type: acct-svcs/bad-request
title: Rule violation
details:
- exampleField is invalid or malformed.
fieldDetails:
- field: exampleField
detail: Provide a valid value for this field.
'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: acct-svcs/internal-server-error
title: Unexpected error
details:
- An unexpected error occurred. Please contact your service provider and/or try again later.
/a/api/acct-svcs/v1/{InstitutionUniversalId}/enterprise/{EnterpriseUserId}/transactions/{TransactionId}:
get:
operationId: GetTransactionById1
tags:
- Transactions
summary: API to get a journal line item by its unique TransactionId
description: Method to get a journal line item by its unique TransactionId
parameters:
- name: InstitutionUniversalId
in: path
description: A unique identifier to establish the identity of an Institution/Environment/Brand combination
required: true
schema:
type: string
- in: path
name: EnterpriseUserId
required: true
schema:
type: string
format: uuid
description: The ID of the enterprise user.
- name: TransactionId
in: path
description: A unique identifier which identifies the Journal LineItem record by its unique database Id (TransactionId)
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
id:
type: string
format: uuid
description: This attribute defines the unique identifier of the resource.
nullable: false
journalEntryId:
type: string
format: uuid
description: This attribute defines the journal identifier for the transactions.
system:
type: string
description: This attribute defines the system producing the journal entry.
nullable: false
journal:
type: string
description: The journal that generated the entry.
nullable: false
operationalPeriod:
type: string
format: date
description: This attribute defines the operational period to post the transactions.
postedDate:
type: string
format: date-time
lineItemId:
type: string
format: uuid
description: This attribute defines the line item of the journal.
accountId:
type: string
format: uuid
description: This attribute defines the account for the transaction.
amount:
type: object
properties:
value:
type: string
description: This defines the amount value.
nullable: false
currencyType:
type: string
description: The ISO 4217 three character currency type. USD is the default value.
nullable: true
default: usd
additionalProperties: false
debitCredit:
nullable: false
type: string
description: This enum attribute defines if we need to debit the account or credit the account.
enum:
- debit
- credit
debitCreditDisplay:
type: string
description: This attribute defines the display value for the associated enum.
nullable: false
description:
type: string
description: A short summary or label that identifies the nature or purpose of the transaction.
nullable: false
runningBalance:
type: string
description: The current balance of an account after a transaction posts to an account.
nullable: false
'400':
description: The server could not process 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
fieldDetails:
type: array
description: An array of objects which provide additional details to specific fields in the request that caused the error.
items:
type: object
properties:
field:
type: string
description: The name or path of the field in the request that caused the error.
detail:
type: string
description: A end-user readable message describing the error related to the field.
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:
badRequest:
summary: Bad request
value:
type: acct-svcs/bad-request
title: Rule violation
details:
- exampleField is invalid or malformed.
fieldDetails:
- field: exampleField
detail: Provide a valid value for this field.
'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: acct-svcs/internal-server-error
title: Unexpected error
details:
- An unexpected error occurred. Please contact your service provider and/or try again later.
/a/api/acct-svcs/v1/{InstitutionUniversalId}/transactions/search:
post:
operationId: SearchAccountTransactions
tags:
- Transactions
summary: API to search journal line items for account by operational period, posted date, or date range
description: Method to search journal line items for account by operational period, posted date, or date range
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: offset
in: query
required: false
description: When returning a list of results, the offset determines the number of records to skip before returning the result. If the offset is not provided, the server will return the first set of records.
example: ?offset=50
schema:
type: string
default: '0'
- name: count
in: query
required: false
description: The count of records requested. The server may limit the number of records returned in a single response. If the count is not provided, the server will return a default number of records.
example: ?count=100
schema:
type: string
default: '100'
requestBody:
description: The transactions to be searched.
content:
application/json:
schema:
type: object
required:
- accountId
properties:
accountId:
description: This attribute defines the identifier of the Account.
type: string
format: uuid
nullable: false
operationalPeriod:
type: string
format: date-time
description: This attribute defines the operational period of the transaction. (This is an exact match filter.)
example: '2025-01-01T00:00:00Z'
nullable: true
amountMin:
type: string
description: This attribute defines the minimum transaction amount to return in search reuslts.
example: '1.00'
nullable: true
amountMax:
type: string
description: This attribute defines the maximum transaction amount to return in search reuslts.
example: '100.00'
nullable: true
debitCredit:
type: string
description: This attribute filters transactions to either debit or credit types.
example: debit
nullable: true
startDate:
type: string
format: date-time
description: This attribute defines the starting Operational Period (Inclusive) of the transaction search range.
example: '2025-01-01T00:00:00Z'
nullable: true
endDate:
type: string
format: date-time
description: This attribute defines the ending Operational Period (Inclusive) of the transaction search range.
example: '2025-01-01T00:00:00Z'
nullable: true
additionalProperties: false
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
required:
- transactions
- paging
properties:
transactions:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
description: This attribute defines the unique identifier of the resource.
nullable: false
journalEntryId:
type: string
format: uuid
description: This attribute defines the journal identifier for the transactions.
system:
type: string
description: This attribute defines the system producing the journal entry.
nullable: false
journal:
type: string
description: The journal that generated the entry.
nullable: false
operationalPeriod:
type: string
format: date
description: This attribute defines the operational period to post the transactions.
postedDate:
type: string
format: date-time
lineItemId:
type: string
format: uuid
description: This attribute defines the line item of the journal.
accountId:
type: string
format: uuid
description: This attribute defines the account for the transaction.
amount:
type: object
properties:
value:
type: string
description: This defines the amount value.
nullable: false
currencyType:
type: string
description: The ISO 4217 three character currency type. USD is the default value.
nullable: true
default: usd
additionalProperties: false
debitCredit:
nullable: false
type: string
description: This enum attribute defines if we need to debit the account or credit the account.
enum:
- debit
- credit
debitCreditDisplay:
type: string
description: This attribute defines the display value for the associated enum.
nullable: false
description:
type: string
description: A short summary or label that identifies the nature or purpose of the transaction.
nullable: false
runningBalance:
type: string
description: The current balance of an account after a transaction posts to an account.
nullable: false
paging:
type: object
properties:
nextOffset:
description: 'The next offset is the start position of the read pointer for pagination '
type: string
results:
description: The number of records sent for pagination
type: integer
total:
description: The total number of records requested for pagination
type: integer
'400':
description: The server could not process 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
fieldDetails:
type: array
description: An array of objects which provide additional details to specific fields in the request that caused the error.
items:
type: object
properties:
field:
type: string
description: The name or path of the field in the request that caused the error.
detail:
type: string
description: A end-user readable message describing the error related to the field.
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:
badRequest:
summary: Bad request
value:
type: acct-svcs/bad-request
title: Rule violation
details:
- exampleField is invalid or malformed.
fieldDetails:
- field: exampleField
detail: Provide a valid value for this field.
'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: acct-svcs/internal-server-error
title: Unexpected error
details:
- An unexpected error occurred. Please contact your service provider and/or try again later.
/a/api/acct-svcs/v1/{InstitutionUniversalId}/enterprise/{EnterpriseUserId}/transactions/search:
post:
operationId: SearchAccountTransactionsWithEnterpriseUserId
tags:
- Transactions
summary: API to search journal line items for account by operational period, posted date, or date range
description: Method to search journal line items for account by operational period, posted date, or date range
parameters:
- name: InstitutionUniversalId
in: path
description: A unique identifier to establish the identity of an Institution/Environment/Brand combination
required: true
schema:
type: string
- in: path
name: EnterpriseUserId
required: true
schema:
type: string
format: uuid
description: The ID of the enterprise user.
- name: offset
in: query
required: false
description: When returning a list of results, the offset determines the number of records to skip before returning the result. If the offset is not provided, the server will return the first set of records.
example: ?offset=50
schema:
type: string
default: '0'
- name: count
in: query
required: false
description: The count of records requested. The server may limit the number of records returned in a single response. If the count is not provided, the server will return a default number of records.
example: ?count=100
schema:
type: string
default: '100'
requestBody:
description: The transactions to be searched.
content:
application/json:
schema:
type: object
required:
- accountId
properties:
accountId:
description: This attribute defines the identifier of the Account.
type: string
format: uuid
nullable: false
operationalPeriod:
type: string
format: date-time
description: This attribute defines the operational period of the transaction. (This is an exact match filter.)
example: '2025-01-01T00:00:00Z'
nullable: true
amountMin:
type: string
description: This attribute defines the minimum transaction amount to return in search reuslts.
example: '1.00'
nullable: true
amountMax:
type: string
description: This attribute defines the maximum transaction amount to return in search reuslts.
example: '100.00'
nullable: true
debitCredit:
type: string
description: This attribute filters transactions to either debit or credit types.
example: debit
nullable: true
startDate:
type: string
format: date-time
description: This attribute defines the starting Operational Period (Inclusive) of the transaction search range.
example: '2025-01-01T00:00:00Z'
nullable: true
endDate:
type: string
format: date-time
description: This attribute defines the ending Operational Period (Inclusive) of the transaction search range.
example: '2025-01-01T00:00:00Z'
nullable: true
additionalProperties: false
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
required:
- transactions
- paging
properties:
transactions:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
description: This attribute defines the unique identifier of the resource.
nullable: false
journalEntryId:
type: string
format: uuid
description: This attribute defines the journal identifier for the transactions.
system:
type: string
description: This attribute defines the system producing the journal entry.
nullable: false
journal:
type: string
description: The journal that generated the entry.
nullable: false
operationalPeriod:
type: string
format: date
description: This attribute defines the operational period to post the transactions.
postedDate:
type: string
format: date-time
lineItemId:
type: string
format: uuid
description: This attribute defines the line item of the journal.
accountId:
type: string
format: uuid
description: This attribute defines the account for the transaction.
amount:
type: object
properties:
value:
type: string
description: This defines the amount value.
nullable: false
currencyType:
type: string
description: The ISO 4217 three character currency type. USD is the default value.
nullable: true
default: usd
additionalProperties: false
debitCredit:
nullable: false
type: string
description: This enum attribute defines if we need to debit the account or credit the account.
enum:
- debit
- credit
debitCreditDisplay:
type: string
description: This attribute defines the display value for the associated enum.
nullable: false
description:
type: string
description: A short summary or label that identifies the nature or purpose of the transaction.
nullable: false
runningBalance:
type: string
description: The current balance of an account after a transaction posts to an account.
nullable: false
paging:
type: object
properties:
nextOffset:
description: 'The next offset is the start position of the read pointer for pagination '
type: string
results:
description: The number of records sent for pagination
type: integer
total:
description: The total number of records requested for pagination
type: integer
'400':
description: The server could not process 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
fieldDetails:
type: array
description: An array of objects which provide additional details to specific fields in the request that caused the error.
items:
type: object
properties:
field:
type: string
description: The name or path of the field in the request that caused the error.
detail:
type: string
description: A end-user readable message describing the error related to the field.
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:
badRequest:
summary: Bad request
value:
type: acct-svcs/bad-request
title: Rule violation
details:
- exampleField is invalid or malformed.
fieldDetails:
- field: exampleField
detail: Provide a valid value for this field.
'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: acct-svcs/internal-server-error
title: Unexpected error
details:
- An unexpected error occurred. Please contact your service provider and/or try again later.