Addendas
ACH
>
Addendas
openapi: 3.0.3
info:
title: Automated Clearing House (ACH) API - Addendas
version: v1
description: |
Automated Clearing House (JHPlatform ACH).
contact:
name: Platform Services - ACH
url: https://www.jackhenry.com/
email: DC-Operations@jackhenry.com
servers:
- url: https://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: Addendas
description: APIs for getting ACH addendas (collection and single)
paths:
/a/api/jh-ach/v1/{InstitutionUniversalId}/addendas:
get:
operationId: GetAddendas
tags:
- Addendas
summary: Get addendas
description: |
Get ACH addendas for the institution. Supports optional query parameters for
filtering, full-text search, and paging.
## Sorting
Default sort is creation date descending.
## Query
- **offset**: Default 0
- **count**: Default 50
- Other query parameters filter the result set.
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
description: The service offset provided by the API provider
schema:
type: string
- name: Count
in: query
description: 'The count of records requested <br>Example: `.../resource?Count=value`'
schema:
type: string
default: '0'
- name: entryId
in: query
required: false
description: Filter by entry ID
schema:
type: string
format: uuid
- name: batchId
in: query
required: false
description: Filter by batch ID
schema:
type: string
format: uuid
- name: addendaType
in: query
required: false
description: Filter by addenda type code (e.g. 05, 98, 99)
schema:
type: string
minLength: 2
maxLength: 2
- name: query
in: query
required: false
description: General search query
schema:
type: string
minLength: 3
maxLength: 100
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
description: |
Response body for GET /{institutionId}/addendas. List of addenda records with
paging. Sorted by creation date descending. Paging defaults: offset 0, count 50.
required:
- addendas
- paging
properties:
paging:
type: object
required:
- nextOffset
- results
properties:
nextOffset:
type: string
description: The next offset is the start position of the read pointer for pagination.
results:
type: integer
description: The number of records included in the response.
total:
type: integer
nullable: true
description: The total number of records the server has available for the request.
additionalProperties: false
addendas:
type: array
description: Array of addenda detail items
items:
type: object
description: |
One addenda record. Identifiers and addendaType are always present;
other properties are optional and populated only when stored for that addenda type and SEC code.
Audit fields (createdBy, updatedBy, createdAt, updatedAt) are not included.
required:
- id
- externalEntryAddendaId
- entryId
- batchId
- addendaType
properties:
id:
type: string
description: Unique identifier for the addenda record.
externalEntryAddendaId:
type: string
description: External addenda identifier from the originating system or file.
entryId:
type: string
format: uuid
description: Parent entry identifier.
batchId:
type: string
format: uuid
description: Parent batch identifier.
fileId:
type: string
format: uuid
nullable: true
description: Parent file identifier.
addendaType:
type: string
description: Addenda type code (2 characters).
lineNumber:
type: integer
format: int64
nullable: true
description: Line number of this addenda record in the source file.
sequenceNumber:
type: integer
format: int64
nullable: true
description: Addenda sequence number.
entryDetailSequenceNumber:
type: integer
format: int64
nullable: true
description: Entry detail sequence number linked to this addenda.
paymentRelatedInformation:
type: string
nullable: true
description: Payment-related information from the addenda (max 80 characters).
changeCode:
type: string
nullable: true
description: NOC change code when present (addenda type 98).
originalTrace:
type: string
nullable: true
description: Original entry trace number when present (NOC/return addenda).
correctedData:
type: string
nullable: true
description: Corrected data field when present (NOC addenda).
traceNumber:
type: string
nullable: true
description: Trace number from the addenda when present.
returnTraceNumber:
type: string
nullable: true
description: Trace number of the return entry (dishonored return addenda).
returnSettlementDate:
type: string
nullable: true
description: Settlement date of the return entry (dishonored return addenda).
dishonoredReturnCode:
type: string
nullable: true
description: Dishonored return reason code.
contestedReturnCode:
type: string
nullable: true
description: Contested dishonored return reason code.
dateOriginalEntryReturned:
type: string
nullable: true
description: Date the original entry was returned (contested dishonored return addenda).
originalSettlementDate:
type: string
nullable: true
description: Settlement date of the original entry (contested dishonored return addenda).
dishonoredReturnTraceNumber:
type: string
nullable: true
description: Trace number of the dishonored return (contested dishonored return addenda).
dishonoredReturnSettlementDate:
type: string
nullable: true
description: Settlement date of the dishonored return (contested dishonored return addenda).
returnCode:
type: string
nullable: true
description: Return reason code when present (addenda type 99).
dateOfDeath:
type: string
nullable: true
description: Date of death when present (return addenda).
originalDfi:
type: string
nullable: true
description: Original receiving DFI identification when present.
addendaInformation:
type: string
nullable: true
description: Addenda information field when present (e.g. addenda type 02).
transactionTypeCode:
type: string
nullable: true
description: Transaction type code when present.
foreignPaymentAmount:
type: integer
format: int64
nullable: true
description: Foreign payment amount in cents (IAT addenda).
foreignTraceNumber:
type: string
nullable: true
description: Foreign trace number (IAT addenda).
name:
type: string
nullable: true
description: Name field from addenda record (IAT addenda).
originatorName:
type: string
nullable: true
description: Originator name (IAT addenda 710).
originatorStreetAddress:
type: string
nullable: true
description: Originator street address (IAT addenda 710).
originatorCityStateProvince:
type: string
nullable: true
description: Originator city, state, and province (IAT addenda 710).
originatorCountryPostalCode:
type: string
nullable: true
description: Originator country and postal code (IAT addenda 710).
odfiName:
type: string
nullable: true
description: ODFI name (IAT addenda 713).
odfiIdNumberQualifier:
type: string
nullable: true
description: ODFI identification number qualifier (IAT addenda 713).
odfiIdentification:
type: string
nullable: true
description: ODFI identification number (IAT addenda 713).
odfiBranchCountryCode:
type: string
nullable: true
description: ODFI branch country code (IAT addenda 713).
rdfiName:
type: string
nullable: true
description: RDFI name (IAT addenda 714).
rdfiIdNumberQualifier:
type: string
nullable: true
description: RDFI identification number qualifier (IAT addenda 714).
rdfiIdentification:
type: string
nullable: true
description: RDFI identification number (IAT addenda 714).
rdfiBranchCountryCode:
type: string
nullable: true
description: RDFI branch country code (IAT addenda 714).
receiverIdNumber:
type: string
nullable: true
description: Receiver identification number (IAT addenda 715).
receiverStreetAddress:
type: string
nullable: true
description: Receiver street address (IAT addenda 715).
receiverCityStateProvince:
type: string
nullable: true
description: Receiver city, state, and province (IAT addenda 715).
receiverCountryPostalCode:
type: string
nullable: true
description: Receiver country and postal code (IAT addenda 715).
foreignCorrespondentBankName:
type: string
nullable: true
description: Foreign correspondent bank name (IAT addenda 716).
foreignCorrespondentBankIdNumberQualifier:
type: string
nullable: true
description: Foreign correspondent bank ID number qualifier (IAT addenda 716).
foreignCorrespondentBankIdNumber:
type: string
nullable: true
description: Foreign correspondent bank ID number (IAT addenda 716).
foreignCorrespondentBankBranchCountryCode:
type: string
nullable: true
description: Foreign correspondent bank branch country code (IAT addenda 716).
terminalIdentificationCode:
type: string
nullable: true
description: Terminal identification code when present.
terminalCity:
type: string
nullable: true
description: Terminal city from the addenda when present (max 4 characters).
terminalState:
type: string
nullable: true
description: Terminal state from the addenda when present (max 2 characters).
transactionDescription:
type: string
maxLength: 7
nullable: true
description: Transaction description from the addenda (max 7 characters).
networkIdentificationCode:
type: string
maxLength: 3
nullable: true
description: Network identification code from the addenda (max 3 characters).
transactionSerialNumber:
type: string
maxLength: 6
nullable: true
description: Transaction serial number from the addenda (max 6 characters).
transactionDate:
type: string
maxLength: 4
nullable: true
description: Transaction date from the addenda (max 4 characters).
transactionTime:
type: string
maxLength: 6
nullable: true
description: Transaction time from the addenda (max 6 characters).
terminalLocation:
type: string
maxLength: 27
nullable: true
description: Terminal location from the addenda (max 27 characters).
referenceInformation1:
type: string
maxLength: 7
nullable: true
description: First reference information field from the addenda (max 7 characters).
referenceInformation2:
type: string
maxLength: 3
nullable: true
description: Second reference information field from the addenda (max 3 characters).
authorizationCodeOrCardExpirationDate:
type: string
maxLength: 6
nullable: true
description: Authorization code or card expiration date from the addenda (max 6 characters).
additionalProperties: false
additionalProperties: false
'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/jh-ach/v1/{InstitutionUniversalId}/addendas/{addendaId}:
get:
operationId: GetAddenda
tags:
- Addendas
summary: Get addenda
description: |
Retrieve a single ACH addenda record by its unique identifier.
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: addendaId
in: path
description: Unique identifier for the ACH addenda record
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Success - Addenda details returned
content:
application/json:
schema:
type: object
description: |
One addenda record. Identifiers and addendaType are always present;
other properties are optional and populated only when stored for that addenda type and SEC code.
Audit fields (createdBy, updatedBy, createdAt, updatedAt) are not included.
required:
- id
- externalEntryAddendaId
- entryId
- batchId
- addendaType
properties:
id:
type: string
description: Unique identifier for the addenda record.
externalEntryAddendaId:
type: string
description: External addenda identifier from the originating system or file.
entryId:
type: string
format: uuid
description: Parent entry identifier.
batchId:
type: string
format: uuid
description: Parent batch identifier.
fileId:
type: string
format: uuid
nullable: true
description: Parent file identifier.
addendaType:
type: string
description: Addenda type code (2 characters).
lineNumber:
type: integer
format: int64
nullable: true
description: Line number of this addenda record in the source file.
sequenceNumber:
type: integer
format: int64
nullable: true
description: Addenda sequence number.
entryDetailSequenceNumber:
type: integer
format: int64
nullable: true
description: Entry detail sequence number linked to this addenda.
paymentRelatedInformation:
type: string
nullable: true
description: Payment-related information from the addenda (max 80 characters).
changeCode:
type: string
nullable: true
description: NOC change code when present (addenda type 98).
originalTrace:
type: string
nullable: true
description: Original entry trace number when present (NOC/return addenda).
correctedData:
type: string
nullable: true
description: Corrected data field when present (NOC addenda).
traceNumber:
type: string
nullable: true
description: Trace number from the addenda when present.
returnTraceNumber:
type: string
nullable: true
description: Trace number of the return entry (dishonored return addenda).
returnSettlementDate:
type: string
nullable: true
description: Settlement date of the return entry (dishonored return addenda).
dishonoredReturnCode:
type: string
nullable: true
description: Dishonored return reason code.
contestedReturnCode:
type: string
nullable: true
description: Contested dishonored return reason code.
dateOriginalEntryReturned:
type: string
nullable: true
description: Date the original entry was returned (contested dishonored return addenda).
originalSettlementDate:
type: string
nullable: true
description: Settlement date of the original entry (contested dishonored return addenda).
dishonoredReturnTraceNumber:
type: string
nullable: true
description: Trace number of the dishonored return (contested dishonored return addenda).
dishonoredReturnSettlementDate:
type: string
nullable: true
description: Settlement date of the dishonored return (contested dishonored return addenda).
returnCode:
type: string
nullable: true
description: Return reason code when present (addenda type 99).
dateOfDeath:
type: string
nullable: true
description: Date of death when present (return addenda).
originalDfi:
type: string
nullable: true
description: Original receiving DFI identification when present.
addendaInformation:
type: string
nullable: true
description: Addenda information field when present (e.g. addenda type 02).
transactionTypeCode:
type: string
nullable: true
description: Transaction type code when present.
foreignPaymentAmount:
type: integer
format: int64
nullable: true
description: Foreign payment amount in cents (IAT addenda).
foreignTraceNumber:
type: string
nullable: true
description: Foreign trace number (IAT addenda).
name:
type: string
nullable: true
description: Name field from addenda record (IAT addenda).
originatorName:
type: string
nullable: true
description: Originator name (IAT addenda 710).
originatorStreetAddress:
type: string
nullable: true
description: Originator street address (IAT addenda 710).
originatorCityStateProvince:
type: string
nullable: true
description: Originator city, state, and province (IAT addenda 710).
originatorCountryPostalCode:
type: string
nullable: true
description: Originator country and postal code (IAT addenda 710).
odfiName:
type: string
nullable: true
description: ODFI name (IAT addenda 713).
odfiIdNumberQualifier:
type: string
nullable: true
description: ODFI identification number qualifier (IAT addenda 713).
odfiIdentification:
type: string
nullable: true
description: ODFI identification number (IAT addenda 713).
odfiBranchCountryCode:
type: string
nullable: true
description: ODFI branch country code (IAT addenda 713).
rdfiName:
type: string
nullable: true
description: RDFI name (IAT addenda 714).
rdfiIdNumberQualifier:
type: string
nullable: true
description: RDFI identification number qualifier (IAT addenda 714).
rdfiIdentification:
type: string
nullable: true
description: RDFI identification number (IAT addenda 714).
rdfiBranchCountryCode:
type: string
nullable: true
description: RDFI branch country code (IAT addenda 714).
receiverIdNumber:
type: string
nullable: true
description: Receiver identification number (IAT addenda 715).
receiverStreetAddress:
type: string
nullable: true
description: Receiver street address (IAT addenda 715).
receiverCityStateProvince:
type: string
nullable: true
description: Receiver city, state, and province (IAT addenda 715).
receiverCountryPostalCode:
type: string
nullable: true
description: Receiver country and postal code (IAT addenda 715).
foreignCorrespondentBankName:
type: string
nullable: true
description: Foreign correspondent bank name (IAT addenda 716).
foreignCorrespondentBankIdNumberQualifier:
type: string
nullable: true
description: Foreign correspondent bank ID number qualifier (IAT addenda 716).
foreignCorrespondentBankIdNumber:
type: string
nullable: true
description: Foreign correspondent bank ID number (IAT addenda 716).
foreignCorrespondentBankBranchCountryCode:
type: string
nullable: true
description: Foreign correspondent bank branch country code (IAT addenda 716).
terminalIdentificationCode:
type: string
nullable: true
description: Terminal identification code when present.
terminalCity:
type: string
nullable: true
description: Terminal city from the addenda when present (max 4 characters).
terminalState:
type: string
nullable: true
description: Terminal state from the addenda when present (max 2 characters).
transactionDescription:
type: string
maxLength: 7
nullable: true
description: Transaction description from the addenda (max 7 characters).
networkIdentificationCode:
type: string
maxLength: 3
nullable: true
description: Network identification code from the addenda (max 3 characters).
transactionSerialNumber:
type: string
maxLength: 6
nullable: true
description: Transaction serial number from the addenda (max 6 characters).
transactionDate:
type: string
maxLength: 4
nullable: true
description: Transaction date from the addenda (max 4 characters).
transactionTime:
type: string
maxLength: 6
nullable: true
description: Transaction time from the addenda (max 6 characters).
terminalLocation:
type: string
maxLength: 27
nullable: true
description: Terminal location from the addenda (max 27 characters).
referenceInformation1:
type: string
maxLength: 7
nullable: true
description: First reference information field from the addenda (max 7 characters).
referenceInformation2:
type: string
maxLength: 3
nullable: true
description: Second reference information field from the addenda (max 3 characters).
authorizationCodeOrCardExpirationDate:
type: string
maxLength: 6
nullable: true
description: Authorization code or card expiration date from the addenda (max 6 characters).
additionalProperties: false
'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 Sep 15 2026