Fee Assessment
Account Services
>
API Reference
>
v1
>
Fee Assessment
Overview
Fee Assessment applies fees for services (e.g., overdraft, maintenance, inactivity), either on schedule or triggered by account events. This includes the amount of the last service charge posted to the account, and the date it was posted. It also includes the total service charges paid by the account for the current year to date.
openapi: 3.0.3
info:
title: Account Services APIs - Fee Assessment
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: http://jx-r.jhacorp.com
description: Corporate Test Server
security: []
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"
tags:
- name: Fee Assessment
description: V1 APIs for Fee Assessment Processing
paths:
/a/api/acct-svcs/v1/{InstitutionUniversalId}/accounts/{AccountId}/fee-summary/{OperationalPeriod}:
get:
operationId: GetFeeAssessmentAccountSummary
security:
- OpenIDEnterprise:
- https://jackhenry.com/acct-svcs/accounts.read
tags:
- Fee Assessment
summary: API to retrieve account fee assessment ledger summary
description: Retrieve fee assessment ledger summary fields by Account identifier and Operational period for an enterprise user in an 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: AccountId
in: path
description: A unique identifier which identifies the Account to retrieve fee summary fields for
required: true
schema:
type: string
format: uuid
- name: OperationalPeriod
in: path
description: A date formatted as RFC3339 to establish the operational period requested.
required: true
schema:
type: string
format: Date(RFC3339)
default: '2024-08-31T00:00:00Z'
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
accountId:
type: string
format: uuid
description: AccountId for the retrieved fee assessment summary.
nullable: false
lastServiceChargeAmount:
type: string
description: The last service charge amount on the account.
nullable: true
lastServiceChargeDate:
type: string
format: date-time
description: The last service charge date for the account.
nullable: true
serviceChargesPaidCurrentYTD:
type: string
description: The total service charges paid by the account for the year to date.
nullable: true
additionalProperties: 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}/fees/journals/{JournalEntryId}/line-items/{LineItemId}:
get:
operationId: GetFeeAssessmentLineItem
tags:
- Fee Assessment
summary: API to retrieve fee assessment line item details
description: Retrieve fee assessment line item details by Journal Entry identifier and Line Item identifier for an 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: JournalEntryId
in: path
description: A unique identifier for the journal entry.
required: true
schema:
type: string
format: uuid
- name: LineItemId
in: path
description: A unique identifier for the line item within a journal entry.
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
required:
- system
- journal
- journalEntryId
- lineItemId
- operationalPeriod
- journalPostedDateTime
- amount
- debitCredit
- balanceBeforeFee
- cycleFeeAmount
- minimumLowBalance
- minimumAverageBalance
- perDebitFee
- canOverdrawAccount
properties:
system:
type: string
nullable: false
journal:
type: string
nullable: false
journalEntryId:
type: string
nullable: false
lineItemId:
type: string
nullable: false
operationalPeriod:
type: string
nullable: false
accountId:
type: string
nullable: true
journalPostedDateTime:
type: string
format: date-time
nullable: false
amount:
type: object
description: Currency amount payload from domainmodels.CurrencyAmount.
required:
- amount
- currency
properties:
amount:
type: string
nullable: false
currency:
type: string
nullable: false
additionalProperties: false
nullable: false
debitCredit:
type: string
nullable: false
description:
type: string
nullable: true
balanceBeforeFee:
type: string
nullable: false
lowestBalanceCTD:
type: string
nullable: true
averageBalanceCTD:
type: string
nullable: true
totalNumberOfDebitsPostedCTD:
type: integer
format: int64
nullable: true
cycleFeeAmount:
type: string
nullable: false
minimumLowBalance:
type: string
nullable: false
minimumAverageBalance:
type: string
nullable: false
perDebitFee:
type: string
nullable: false
numberOfFreeDebits:
type: integer
format: int64
nullable: true
canOverdrawAccount:
type: boolean
nullable: false
additionalProperties: false
'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}/fees/journals/{JournalEntryId}/line-items/{LineItemId}
: get:
operationId: GetFeeAssessmentLineItemWithEnterpriseId
tags:
- Fee Assessment
summary: API to retrieve fee assessment line item details
description: Retrieve fee assessment line item details by Journal Entry identifier and Line Item identifier for an enterprise user in an 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
- in: path
name: EnterpriseUserId
required: true
schema:
type: string
format: uuid
description: The ID of the enterprise user.
- name: JournalEntryId
in: path
description: A unique identifier for the journal entry.
required: true
schema:
type: string
format: uuid
- name: LineItemId
in: path
description: A unique identifier for the line item within a journal entry.
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
required:
- system
- journal
- journalEntryId
- lineItemId
- operationalPeriod
- journalPostedDateTime
- amount
- debitCredit
- balanceBeforeFee
- cycleFeeAmount
- minimumLowBalance
- minimumAverageBalance
- perDebitFee
- canOverdrawAccount
properties:
system:
type: string
nullable: false
journal:
type: string
nullable: false
journalEntryId:
type: string
nullable: false
lineItemId:
type: string
nullable: false
operationalPeriod:
type: string
nullable: false
accountId:
type: string
nullable: true
journalPostedDateTime:
type: string
format: date-time
nullable: false
amount:
type: object
description: Currency amount payload from domainmodels.CurrencyAmount.
required:
- amount
- currency
properties:
amount:
type: string
nullable: false
currency:
type: string
nullable: false
additionalProperties: false
nullable: false
debitCredit:
type: string
nullable: false
description:
type: string
nullable: true
balanceBeforeFee:
type: string
nullable: false
lowestBalanceCTD:
type: string
nullable: true
averageBalanceCTD:
type: string
nullable: true
totalNumberOfDebitsPostedCTD:
type: integer
format: int64
nullable: true
cycleFeeAmount:
type: string
nullable: false
minimumLowBalance:
type: string
nullable: false
minimumAverageBalance:
type: string
nullable: false
perDebitFee:
type: string
nullable: false
numberOfFreeDebits:
type: integer
format: int64
nullable: true
canOverdrawAccount:
type: boolean
nullable: false
additionalProperties: false
'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}/fees/accounts/{AccountId}/fee-summary/{OperationalPeriod}:
get:
operationId: FeeAssessmentAccountSummary
security:
- OpenIDEnterprise:
- https://jackhenry.com/acct-svcs/accounts.read
tags:
- Fee Assessment
summary: API to retrieve account fee assessment ledger summary
description: (to be deprecated) Retrieve fee assessment ledger summary fields by Account identifier and Operational period for an enterprise user in an 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: AccountId
in: path
description: A unique identifier which identifies the Account to retrieve fee summary fields for
required: true
schema:
type: string
format: uuid
- name: OperationalPeriod
in: path
description: A date formatted as RFC3339 to establish the operational period requested.
required: true
schema:
type: string
format: Date(RFC3339)
default: '2024-08-31T00:00:00Z'
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
accountId:
type: string
format: uuid
description: AccountId for the retrieved fee assessment summary.
nullable: false
lastServiceChargeAmount:
type: string
description: The last service charge amount on the account.
nullable: true
lastServiceChargeDate:
type: string
format: date-time
description: The last service charge date for the account.
nullable: true
serviceChargesPaidCurrentYTD:
type: string
description: The total service charges paid by the account for the year to date.
nullable: true
additionalProperties: 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}/accounts/{AccountId}/fee-summary/{OperationalPeriod}
: get:
operationId: GetFeeAssessmentAccountSummaryWithEnterpriseUserId
security:
- OpenIDEnterprise:
- https://jackhenry.com/acct-svcs/accounts.read
tags:
- Fee Assessment
summary: API to retrieve account fee assessment ledger summary
description: Retrieve fee assessment ledger summary fields by Account identifier and Operational period for an enterprise user in an 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
- in: path
name: EnterpriseUserId
required: true
schema:
type: string
format: uuid
description: The ID of the enterprise user.
- name: AccountId
in: path
description: A unique identifier which identifies the Account to retrieve fee summary fields for
required: true
schema:
type: string
format: uuid
- name: OperationalPeriod
in: path
description: A date formatted as RFC3339 to establish the operational period requested.
required: true
schema:
type: string
format: Date(RFC3339)
default: '2024-08-31T00:00:00Z'
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
accountId:
type: string
format: uuid
description: AccountId for the retrieved fee assessment summary.
nullable: false
lastServiceChargeAmount:
type: string
description: The last service charge amount on the account.
nullable: true
lastServiceChargeDate:
type: string
format: date-time
description: The last service charge date for the account.
nullable: true
serviceChargesPaidCurrentYTD:
type: string
description: The total service charges paid by the account for the year to date.
nullable: true
additionalProperties: 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}/fees/accounts/{AccountId}/fee-summary/{OperationalPeriod}
: get:
operationId: FeeAssessmentAccountSummaryWithEnterpriseUserId
security:
- OpenIDEnterprise:
- https://jackhenry.com/acct-svcs/accounts.read
tags:
- Fee Assessment
summary: API to retrieve account fee assessment ledger summary fields
description: (to be deprecated) Retrieve fee assessment ledger summary fields by Account identifier and Operational period for an enterprise user in an 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
- in: path
name: EnterpriseUserId
required: true
schema:
type: string
format: uuid
description: The ID of the enterprise user.
- name: AccountId
in: path
description: A unique identifier which identifies the Account to retrieve fee summary fields for
required: true
schema:
type: string
format: uuid
- name: OperationalPeriod
in: path
description: A date formatted as RFC3339 to establish the operational period requested.
required: true
schema:
type: string
format: Date(RFC3339)
default: '2024-08-31T00:00:00Z'
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
accountId:
type: string
format: uuid
description: AccountId for the retrieved fee assessment summary.
nullable: false
lastServiceChargeAmount:
type: string
description: The last service charge amount on the account.
nullable: true
lastServiceChargeDate:
type: string
format: date-time
description: The last service charge date for the account.
nullable: true
serviceChargesPaidCurrentYTD:
type: string
description: The total service charges paid by the account for the year to date.
nullable: true
additionalProperties: 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.
Did this page help you?
Why was this page helpful?
Why wasn't this page helpful?
Thank you for your feedback!
Last updated Fri Jan 23 2026