ACH Origination
ACH
>
ACH Origination
Currently only available for Garden
These API’s are currently only available for the Garden FI. These cannot be used at any live financial institution.
openapi: 3.0.3
info:
title: Automated Clearing House (ACH) API - ACH Origination
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://{API_ENDPOINT}
variables:
API_ENDPOINT:
default: digital.garden-fi.com
security: []
tags:
- name: ACH Origination
description: API operations in ACH Origination Service
paths:
/a/api/jh-ach/v1/{InstitutionUniversalId}/batches:
post:
operationId: AddOriginationAchBatch
tags:
- ACH Origination
summary: API to create an ach batch.
description: Method to create an ach batch.
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
description: Create new ACH batch.
content:
application/json:
schema:
type: object
required:
- batchName
- secCode
- achCompanyId
- achCompanyName
- entryDescription
- discretionaryData
- restricted
properties:
batchName:
maxLength: 50
type: string
description: Name of the batch.
example: Batch 1
nullable: false
achCompanyName:
type: string
maxLength: 16
description: Name of the ACH Company.
example: ACH Company Name
nullable: false
achCompanyId:
type: string
maxLength: 10
description: Id of the ACH Company of the batch.
example: '112345678'
nullable: false
secCode:
type: string
maxLength: 3
description: This is the Standard Entry Code (SEC) for the ACH batch being created.
enum:
- PPD
- CCD
- CTX
- WEB
- TEL
nullable: false
example: PPD
entryDescription:
maxLength: 10
type: string
description: Description of the batch.
nullable: false
discretionaryData:
maxLength: 20
type: string
description: Discretionary data of batch.
nullable: true
restricted:
example: true
type: boolean
description: True if the batch is restricted, false if not.
nullable: true
externalBatchId:
type: string
format: uuid
description: Optional external identifier for the batch provided by the client system.
nullable: true
example: a1b2c3d4-e5f6-4a5b-8c9d-0e1f2a3b4c5d
responses:
'201':
description: Created
content:
application/json:
schema:
type: object
properties:
batchId:
type: string
format: uuid
description: ACH Batch Id.
'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
get:
operationId: GetOriginationAchBatchList
tags:
- ACH Origination
summary: Retrieve list of ACH batches.
description: Retrieves a paginated list of ACH batches available to the user. User identity and type (enterprise/consumer) are determined from the JWT token.
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: |
The value that determines the start index of the returned results within the overall result set.
This endpoint returns an array of batches within an overall data set. Due to the potentially large nature of the overall data set, the offset and limit parameters are necessary to constrain the number of results to a reasonable amount. Typical use of this parameter would be as follows:
* The initial request would send a value of "0", as this is the index of the first result.
* Subsequent requests would add 1 to the total number of results.
example: ?offset=0
schema:
type: string
default: '0'
- name: count
in: query
required: false
description: |
The number of batches to return. Maximum value is 200.
If count exceeds maximum, service will use 200.
example: ?count=10
schema:
type: string
default: '10'
- name: sort
in: query
required: false
description: |
Comma-separated list of field:direction pairs for sorting.
Direction must be 'asc' (ascending) or 'desc' (descending).
Available fields:
- Name
- OrganizationId
- AchCompanyName
- Status
- TotalCredits
- TotalDebits
Default sort: Status:asc
Examples:
- Status:desc
- Name:asc,Status:desc
- TotalCredits:desc,Name:asc
example: ?sort=Status:desc,Name:asc
schema:
type: string
- name: externalBatchId
in: query
required: false
description: Filter by external batch ID
schema:
type: string
maxLength: 36
- name: batchName
in: query
required: false
description: Filter by batch name
schema:
type: string
maxLength: 50
- name: standardEntryClassCode
in: query
required: false
description: Identifies the type of entry based on NACHA rules. Always 3 characters.
schema:
type: string
minLength: 3
maxLength: 3
example: PPD
- name: companyName
in: query
required: false
description: Filter by company name
schema:
type: string
maxLength: 16
- name: companyDiscretionaryData
in: query
required: false
description: Filter by company discretionary data
schema:
type: string
maxLength: 20
- name: companyIdentification
in: query
required: false
description: Filter by company identification
schema:
type: string
maxLength: 10
- name: effectiveEntryDate
in: query
required: false
description: Filter by effective entry date (civil date format YYYY-MM-DD)
schema:
type: string
format: date
example: '2024-01-01'
- name: settlementDate
in: query
required: false
description: Filter by settlement date (civil date format YYYY-MM-DD)
schema:
type: string
format: date
example: '2024-01-01'
- name: direction
in: query
required: false
description: Filter by transaction direction
schema:
type: string
enum:
- incoming
- outgoing
- name: batchStatus
in: query
required: false
description: Filter by batch status
schema:
type: string
enum:
- new
- building
- processing
- completed
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
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
batches:
type: array
items:
type: object
properties:
batchId:
type: string
format: uuid
description: ACH Batch Id.
batchName:
type: string
description: Name of the batch.
example: Payroll Batch
nullable: false
achCompanyName:
type: string
description: Name of the ACH Company.
example: ABC Corp
nullable: false
achCompanyId:
type: string
description: Id of the ACH Company.
example: '1234567890'
nullable: false
secCode:
type: string
description: Standard Entry Code for the batch.
enum:
- PPD
- CCD
- CTX
- WEB
- TEL
example: PPD
nullable: false
entryDescription:
type: string
description: Description of the batch.
example: Payroll
nullable: false
discretionaryData:
type: string
description: Discretionary data of batch.
example: Optional data
nullable: true
status:
type: string
description: Current status of the batch.
enum:
- new
- building
- draft
- processing
- scheduled
- canceled
- completed
example: new
nullable: false
totalDebits:
type: number
format: decimal
description: Total debit amount for the batch.
example: 1500
nullable: false
totalCredits:
type: number
format: decimal
description: Total credit amount for the batch.
example: 1500
nullable: false
companyType:
type: string
description: Type of ACH company.
enum:
- balanced
- offset
- net difference
example: balanced
nullable: false
effectiveDate:
type: string
format: date
description: Effective date of the batch.
example: '2025-11-25'
nullable: false
pendingApproval:
type: boolean
description: Whether the batch is pending approval.
example: false
nullable: false
description: Array of batch objects.
nullable: false
nullable: 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}/batches/{BatchId}:
put:
operationId: UpdateOriginationAchBatch
tags:
- ACH Origination
summary: API to update an existing ACH batch.
description: Method to update an existing ACH batch.
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: BatchId
in: path
required: true
description: ACH Batch Id.
schema:
type: string
format: uuid
description: ACH Batch Id.
requestBody:
required: true
description: Update existing ACH batch.
content:
application/json:
schema:
type: object
required:
- batchName
- secCode
- achCompanyId
- achCompanyName
- entryDescription
- discretionaryData
- restricted
properties:
batchName:
maxLength: 50
type: string
description: Name of the batch.
example: Batch 1
nullable: false
achCompanyName:
type: string
maxLength: 16
description: Name of the ACH Company.
example: ACH Company Name
nullable: false
achCompanyId:
type: string
maxLength: 10
description: Id of the ACH Company of the batch.
example: '112345678'
nullable: false
secCode:
type: string
maxLength: 3
description: This is the Standard Entry Code (SEC) for the ACH batch being created.
enum:
- PPD
- CCD
- CTX
- WEB
- TEL
nullable: false
example: PPD
entryDescription:
maxLength: 10
type: string
description: Description of the batch.
nullable: false
discretionaryData:
maxLength: 20
type: string
description: Discretionary data of batch.
nullable: true
restricted:
example: true
type: boolean
description: True if the batch is restricted, false if not.
nullable: true
responses:
'204':
description: No Content - Successful
'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
get:
operationId: GetAchBatchDetails
tags:
- ACH Origination
summary: API to get ACH batch details.
description: Method to get ACH batch details.
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: BatchId
in: path
required: true
description: ACH Batch Id.
schema:
type: string
format: uuid
description: ACH Batch Id.
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
batchId:
type: string
format: uuid
description: ACH Batch Id.
batchName:
type: string
description: Name of the batch.
example: Payroll Batch
nullable: false
achCompanyName:
type: string
description: Name of the ACH Company.
example: ABC Corp
nullable: false
achCompanyId:
type: string
description: Id of the ACH Company.
example: '1234567890'
nullable: false
secCode:
type: string
description: Standard Entry Code for the batch.
enum:
- PPD
- CCD
- CTX
- WEB
- TEL
example: PPD
nullable: false
entryDescription:
type: string
description: Description of the batch.
example: Payroll
nullable: false
discretionaryData:
type: string
description: Discretionary data of batch.
example: Optional data
nullable: true
status:
type: string
description: Current status of the batch.
enum:
- new
- building
- draft
- processing
- scheduled
- canceled
- completed
example: new
nullable: false
totalDebits:
type: number
format: decimal
description: Total debit amount for the batch.
example: 1500
nullable: false
totalCredits:
type: number
format: decimal
description: Total credit amount for the batch.
example: 1500
nullable: false
companyType:
type: string
description: Type of ACH company.
enum:
- balanced
- offset
- net difference
example: balanced
nullable: false
effectiveDate:
type: string
format: date
description: Effective date of the batch.
example: '2025-11-25'
nullable: false
pendingApproval:
type: boolean
description: Whether the batch is pending approval.
example: false
nullable: 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
delete:
operationId: DeleteOriginationAchBatch
tags:
- ACH Origination
summary: API to delete an existing ACH batch.
description: Method to delete an existing ACH batch.
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: BatchId
in: path
required: true
description: ACH Batch Id.
schema:
type: string
format: uuid
description: ACH Batch Id.
responses:
'204':
description: No Content - Successful
'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}/batches/{BatchId}/transactions:
get:
operationId: GetAchTransactionsList
tags:
- ACH Origination
summary: Retrieve list of ACH transactions for a specific batch.
description: Retrieves a paginated list of ACH transactions for a specific batch.
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: BatchId
in: path
required: true
description: ACH Batch Id.
schema:
type: string
format: uuid
description: ACH Batch Id.
- name: offset
in: query
required: false
description: |
The value that determines the start index of the returned results within the overall result set.
This endpoint returns an array of batches within an overall data set. Due to the potentially large nature of the overall data set, the offset and limit parameters are necessary to constrain the number of results to a reasonable amount. Typical use of this parameter would be as follows:
* The initial request would send a value of "0", as this is the index of the first result.
* Subsequent requests would add 1 to the total number of results.
example: ?offset=0
schema:
type: string
default: '0'
- name: count
in: query
required: false
description: |
The number of batches to return. Maximum value is 200.
If count exceeds maximum, service will use 200.
example: ?count=10
schema:
type: string
default: '10'
- name: externalBatchId
in: query
required: false
description: Filter by external batch ID
schema:
type: string
maxLength: 36
- name: externalEntryId
in: query
required: false
description: Filter by external entry ID
schema:
type: string
maxLength: 36
- 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: startDate
in: query
required: false
description: |
The starting settlement date to retrieve transactions (inclusive).
If From Date is provided and To Date is null, it can be treated as searching for items equal to From Date.
(civil date format YYYY-MM-DD)
schema:
type: string
format: date
example: '2024-01-01'
- name: endDate
in: query
required: false
description: |
The ending settlement date to retrieve transactions (inclusive).
Must be greater than or equal to the start date.
(civil date format YYYY-MM-DD)
schema:
type: string
format: date
example: '2024-01-31'
- name: minAmount
in: query
required: false
description: |
The minimum amount to search by for the transaction.
Value cannot be less than zero. Maximum amount is $99,999,999.99.
If min Amount > 0 and max Amount is null, can be treated as searching for items equal to min Amount.
Format: Dollar amount as string (e.g., "100.00")
schema:
type: string
pattern: ^\d{1,8}(\.\d{2})?$
example: '100.00'
- name: maxAmount
in: query
required: false
description: |
The maximum amount to search by for the transaction.
Value cannot be less than zero. Maximum amount is $99,999,999.99.
Format: Dollar amount as string (e.g., "50000.00")
schema:
type: string
pattern: ^\d{1,8}(\.\d{2})?$
example: '50000.00'
- name: debitCredit
in: query
required: false
description: |
Identifier that determines if the transfer transaction is a debit or credit.
This value is based on the entry transaction code translation located in the entry detail record.
schema:
type: string
enum:
- credit
- debit
example: credit
- name: receiverAccountNumber
in: query
required: false
description: The receiver's account number that comes from the entry detail record
schema:
type: string
maxLength: 17
example: '1234567890'
- name: entryState
in: query
required: false
description: |
The state of the transaction. This value comes from the entry database table.
schema:
type: string
description: |
The state of the transaction. This value comes from the entry database table.
enum:
- unprocessed
- queued
- processing
- posted
- return_pending
- returned
example: posted
- name: originatorCompanyId
in: query
required: false
description: The identifier of the entity initiating the transaction from batch header record
schema:
type: string
maxLength: 10
example: '1234567890'
- name: originatorCompanyName
in: query
required: false
description: The name of the entity initiating the transaction from batch header record
schema:
type: string
maxLength: 16
example: ACME Corporation
- name: standardEntryClassCode
in: query
required: false
description: Identifies the type of entry based on NACHA rules. Always 3 characters.
schema:
type: string
minLength: 3
maxLength: 3
example: PPD
- name: receiverName
in: query
required: false
description: The name of the receiving customer from entry detail record
schema:
type: string
maxLength: 22
example: John Doe
- name: direction
in: query
required: false
description: Filter by transaction direction
schema:
type: string
enum:
- incoming
- outgoing
- name: query
in: query
required: false
description: General search query
schema:
type: string
minLength: 3
maxLength: 100
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
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
transactions:
type: array
items:
type: object
properties:
transactionId:
type: string
format: uuid
description: Unique identifier of the transaction.
example: a1b2c3d4-e5f6-4a5b-8c9d-0e1f2a3b4c5d
nullable: false
recipientName:
type: string
description: Name of the recipient.
example: John Doe
nullable: false
recipientId:
type: string
description: ID of the recipient.
example: JD010120A
nullable: false
recipientAmount:
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
recipientRoutingNumber:
type: string
description: Routing number of the recipient's financial institution.
example: '999999999'
nullable: false
recipientAccountNumber:
type: string
description: Account number of the recipient.
example: '11001111'
nullable: false
recipientAccountType:
type: string
description: Type of account.
enum:
- checking
- savings
- loan
- general_ledger
example: checking
nullable: false
recipientTransactionType:
type: string
description: Type of transaction.
enum:
- credit
- debit
example: credit
nullable: false
preNote:
type: boolean
description: Indicates if this is a prenote transaction.
example: false
nullable: false
recipientAddenda:
type: array
description: Array of addenda records with additional information for the recipient. Each record includes a backend-generated addendaId and the addenda data.
items:
type: object
required:
- addendaId
- addendaData
properties:
addendaId:
type: string
format: uuid
description: Unique identifier for the addenda record (generated by backend).
example: b2c3d4e5-f6a7-4b5c-9d0e-1f2a3b4c5d6e
nullable: false
addendaData:
type: string
maxLength: 80
description: Addenda record data (max 80 characters).
example: Payment for invoice 1234
nullable: false
nullable: true
paymentTypeCode:
type: string
description: Payment type code.
example: S
nullable: true
status:
type: string
description: Status of the transaction.
enum:
- unprocessed
- processing
- posted
- returned
example: posted
nullable: false
description: Array of transaction objects.
nullable: false
nullable: 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
post:
operationId: CreateAchTransactions
tags:
- ACH Origination
summary: API to create ACH transactions for a specific batch.
description: Create new entry and addenda records for a specific batch.
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: BatchId
in: path
required: true
description: ACH Batch Id.
schema:
type: string
format: uuid
description: ACH Batch Id.
requestBody:
required: true
description: Create new ACH transactions.
content:
application/json:
schema:
type: object
required:
- transactions
properties:
transactions:
type: array
minItems: 1
description: Array of transaction records to create.
items:
type: object
required:
- recipientName
- recipientId
- recipientAmount
- recipientRoutingNumber
- recipientAccountNumber
- recipientAccountType
- recipientTransactionType
- preNote
- paymentTypeCode
- status
properties:
recipientName:
type: string
minLength: 1
maxLength: 22
description: Alphanumeric value that represents the recipient (the person who is receiving the credit/debit).
example: John Doe
recipientId:
type: string
minLength: 0
maxLength: 22
description: Alphanumeric id the company has for the entity receiving the transaction.
example: JD010120A
recipientAmount:
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
recipientRoutingNumber:
type: string
minLength: 9
maxLength: 9
pattern: ^[0-9]{9}$
description: Nine (9) digit routing number of financial institution recipient's account is housed.
example: '999999999'
recipientAccountNumber:
type: string
minLength: 1
maxLength: 17
description: Account number of recipient's held at their financial institution.
example: '11001111'
recipientAccountType:
type: string
description: Type of account recipient has. ie Checking, Savings
enum:
- checking
- savings
- loan
- general_ledger
example: checking
recipientTransactionType:
type: string
description: Type of transaction posting to recipient's account. For loan account types, credit is the only available option.
enum:
- credit
- debit
example: credit
preNote:
type: boolean
description: Indicates if transaction is a test transaction sent by originator to verify recipient's account information is correct.
example: true
recipientAddenda:
type: array
minItems: 0
maxItems: 25
description: |
Array of addenda records containing additional information the originator wants to send to the recipient about the transaction.
Conditional limits based on batch SEC code:
- TEL batches: Addenda cannot be included (must be empty array or contain 0 items)
- Non-CTX batches (PPD, CCD, WEB): Maximum 1 addenda record
- CTX batches: Maximum 25 addenda records
Backend validation enforces these conditional limits based on the parent batch's secCode.
For CREATE operations, optionally provide externalAddendaId for client-side tracking. The addendaId will be generated by the backend.
items:
type: object
required:
- addendaData
properties:
externalAddendaId:
type: string
format: uuid
description: Optional external identifier for the addenda record provided by the client system.
nullable: true
example: c3d4e5f6-a7b8-4c5d-0e1f-2a3b4c5d6e7f
addendaData:
type: string
maxLength: 80
description: Addenda record data (max 80 characters). Required when creating addenda records.
example: Payment for invoice 1234
nullable: false
paymentTypeCode:
type: string
minLength: 0
maxLength: 2
description: Allows an Originator to include a code for their own internal processing or identification purposes. Example being single occurrence or recurring. Can only be set when SEC code is TEL or WEB.
example: S
status:
type: string
description: Determines if transaction will process when batch is initiated. Any transaction in a "hold" status will not process.
enum:
- unprocessed
externalEntryId:
type: string
format: uuid
description: Optional external identifier for the transaction provided by the client system.
nullable: true
example: a1b2c3d4-e5f6-4a5b-8c9d-0e1f2a3b4c5d
responses:
'202':
description: Accepted
'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
put:
operationId: UpdateAchTransactions
tags:
- ACH Origination
summary: API to update existing ACH transactions for a specific batch.
description: Update existing entry and addenda records for a specific batch.
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: BatchId
in: path
required: true
description: ACH Batch Id.
schema:
type: string
format: uuid
description: ACH Batch Id.
requestBody:
required: true
description: Update existing ACH transactions.
content:
application/json:
schema:
type: object
required:
- transactions
properties:
transactions:
type: array
minItems: 1
description: Array of transaction records to update.
items:
type: object
required:
- transactionId
- recipientName
- recipientId
- recipientAmount
- recipientRoutingNumber
- recipientAccountNumber
- recipientAccountType
- recipientTransactionType
- preNote
- paymentTypeCode
- status
properties:
transactionId:
type: string
format: uuid
description: Unique identifier of the transaction to update.
example: a1b2c3d4-e5f6-4a5b-8c9d-0e1f2a3b4c5d
recipientName:
type: string
minLength: 1
maxLength: 22
description: Alphanumeric value that represents the recipient (the person who is receiving the credit/debit).
example: John Doe
recipientId:
type: string
minLength: 0
maxLength: 22
description: Alphanumeric id the company has for the entity receiving the transaction.
example: JD010120A
recipientAmount:
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
recipientRoutingNumber:
type: string
minLength: 9
maxLength: 9
pattern: ^[0-9]{9}$
description: Nine (9) digit routing number of financial institution recipient's account is housed.
example: '999999999'
recipientAccountNumber:
type: string
minLength: 1
maxLength: 17
description: Account number of recipient's held at their financial institution.
example: '11001111'
recipientAccountType:
type: string
description: Type of account recipient has. ie Checking, Savings
enum:
- checking
- savings
- loan
- general_ledger
example: checking
recipientTransactionType:
type: string
description: Type of transaction posting to recipient's account. For loan account types, credit is the only available option.
enum:
- credit
- debit
example: credit
preNote:
type: boolean
description: Indicates if transaction is a test transaction sent by originator to verify recipient's account information is correct.
example: true
recipientAddenda:
type: array
minItems: 0
maxItems: 25
description: |
Array of addenda records containing additional information the originator wants to send to the recipient about the transaction.
Conditional limits based on batch SEC code:
- TEL batches: Addenda cannot be included (must be empty array or contain 0 items)
- Non-CTX batches (PPD, CCD, WEB): Maximum 1 addenda record
- CTX batches: Maximum 25 addenda records
Backend validation enforces these conditional limits based on the parent batch's secCode.
For UPDATE operations, addendaId is required to match and update existing records.
items:
type: object
required:
- addendaId
- addendaData
properties:
addendaId:
type: string
format: uuid
description: Unique identifier for the addenda record (generated by backend). Required to match and update existing records.
example: b2c3d4e5-f6a7-4b5c-9d0e-1f2a3b4c5d6e
nullable: false
addendaData:
type: string
maxLength: 80
description: Addenda record data (max 80 characters). Required when addendaId is provided.
example: Payment for invoice 1234
nullable: false
paymentTypeCode:
type: string
minLength: 0
maxLength: 2
description: Allows an Originator to include a code for their own internal processing or identification purposes. Example being single occurrence or recurring. Can only be set when SEC code is TEL or WEB.
example: S
status:
type: string
description: Determines if transaction will process when batch is initiated. Any transaction in a "hold" status will not process.
enum:
- unprocessed
example: unprocessed
responses:
'204':
description: No Content
'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}/batches/{BatchId}/delete-transactions:
post:
operationId: DeleteAchTransactions
tags:
- ACH Origination
summary: API to delete ACH transactions from a specific batch.
description: Delete entry and addenda records for a specific batch.
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: BatchId
in: path
required: true
description: ACH Batch Id.
schema:
type: string
format: uuid
description: ACH Batch Id.
requestBody:
required: true
description: Delete ACH transactions.
content:
application/json:
schema:
type: object
required:
- transactionIds
properties:
transactionIds:
type: array
minItems: 1
description: Array of transaction IDs to delete.
items:
type: string
format: uuid
description: Unique identifier of the transaction to delete.
example: a1b2c3d4-e5f6-4a5b-8c9d-0e1f2a3b4c5d
responses:
'202':
description: Accepted
'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}/originations/files:
post:
operationId: UploadNachaFile
tags:
- ACH Origination
summary: Upload NACHA file
description: |
Upload a NACHA file for processing.
## Authorization
Requires UploadNachaFile permission set to Allow.
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:
description: NACHA file upload request
required: true
content:
multipart/form-data:
schema:
type: object
required:
- filename
- file
properties:
filename:
type: string
description: Name of the NACHA file being uploaded
maxLength: 255
example: payroll_batch_20250125.nacha
file:
type: string
format: binary
description: Binary contents of the NACHA file
additionalProperties: false
encoding:
file:
contentType: text/plain
responses:
'202':
description: Accepted - File received for processing
content:
application/json:
schema:
type: object
required:
- fileId
properties:
fileId:
type: string
format: uuid
description: Unique identifier for the uploaded NACHA file
example: f1a2b3c4-d5e6-4f7a-8b9c-0d1e2f3a4b5c
'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}/originations/files/third-party:
post:
operationId: UploadNachaFileThirdParty
tags:
- ACH Origination
summary: Upload NACHA file (third-party)
description: |
Upload a NACHA file for processing using the third-party flow. The file is validated for
NACHA structure only; ACH company identification and FedInfo routing checks performed on
the standard upload path are not applied.
## Authorization
Requires UploadNachaFileThirdParty permission set to Allow.
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:
description: NACHA file upload request
required: true
content:
multipart/form-data:
schema:
type: object
required:
- filename
- file
properties:
filename:
type: string
description: Name of the NACHA file being uploaded
maxLength: 255
example: payroll_batch_20250125.nacha
file:
type: string
format: binary
description: Binary contents of the NACHA file
additionalProperties: false
encoding:
file:
contentType: text/plain
responses:
'202':
description: Accepted - File received for processing
content:
application/json:
schema:
type: object
required:
- fileId
properties:
fileId:
type: string
format: uuid
description: Unique identifier for the uploaded NACHA file
example: f1a2b3c4-d5e6-4f7a-8b9c-0d1e2f3a4b5c
'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}/originations/files/{fileId}:
post:
operationId: RetryNachaFile
tags:
- ACH Origination
summary: Retry processing of a NACHA file
description: |
Retry processing of a previously uploaded NACHA file.
## Authorization
Requires RetryNachaFile permission set to Allow.
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: fileId
in: path
required: true
description: Unique identifier for the file
schema:
type: string
format: uuid
example: f1a2b3c4-d5e6-4f7a-8b9c-0d1e2f3a4b5c
responses:
'202':
description: Accepted - File retry request received for processing
content:
application/json:
schema:
type: object
required:
- fileId
properties:
fileId:
type: string
format: uuid
description: Unique identifier for the uploaded NACHA file
example: f1a2b3c4-d5e6-4f7a-8b9c-0d1e2f3a4b5c
'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}/origination/process:
post:
operationId: ProcessOutgoingAchFile
tags:
- ACH Origination
summary: Trigger outgoing ACH file generation
description: |
Accepts a request to build and publish an outgoing NACHA file from queued
origination work. Processing is asynchronous; success means the request was accepted.
parameters:
- name: InstitutionUniversalId
in: path
description: A unique identifier to establish the identity of an Institution/Environment/Brand combination
required: true
schema:
type: string
responses:
'202':
description: Accepted — outgoing file generation started.
'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}/origination/files:
get:
operationId: ListOriginationOutgoingFiles
tags:
- ACH Origination
summary: List stored outgoing ACH files
description: |
Returns file names for outgoing ACH content in object storage for a given
calendar year and month, optionally narrowed by day.
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: year
in: query
required: false
description: Calendar year for listing stored outgoing ACH files (YYYY).
schema:
type: string
pattern: ^\d{4}$
example: '2025'
- name: month
in: query
required: false
description: Month (MM).
schema:
type: string
pattern: ^(0[1-9]|1[0-2])$
example: '03'
- name: day
in: query
required: false
description: Optional day of month (DD) to narrow the listing.
schema:
type: string
pattern: ^(0[1-9]|[12][0-9]|3[01])$
example: '15'
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
required:
- files
- total
properties:
files:
type: array
description: Outgoing ACH files for the requested date scope.
items:
type: object
required:
- name
properties:
name:
type: string
description: Object name of the file in storage.
example: ach-out-20250315120000.txt
nullable: false
total:
type: integer
description: Number of files in the response.
example: 12
nullable: 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}/origination/file:
get:
operationId: GetOriginationOutgoingFile
tags:
- ACH Origination
summary: Download an outgoing ACH file by name
description: |
Returns the raw NACHA file content for the given filename as plain text.
The response is suitable for download (Content-Disposition attachment).
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: filename
in: query
required: false
description: Name of the outgoing ACH file to download.
schema:
type: string
minLength: 1
example: ach-out-20250315120000.txt
responses:
'200':
description: OK — file body.
content:
text/plain:
schema:
type: string
'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}/batches-schedule/{BatchId}:
post:
operationId: ScheduleAchBatch
tags:
- ACH Origination
summary: Schedule an ACH batch for processing.
description: |
Validates limits, persists draft → processing, triggers OFAC screening,
approval request, and sync account validation (basic: exists + valid type).
NSF/balance checks deferred to Phase 2 (NACHA generation).
Returns the batch with initial check statuses.
## Authorization
Requires ScheduleAchBatch permission set to Allow.
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: BatchId
in: path
required: true
description: ACH Batch Id.
schema:
type: string
format: uuid
description: ACH Batch Id.
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- encryptedOffsetAccountNumber
properties:
encryptedOffsetAccountNumber:
type: string
minLength: 1
maxLength: 34
description: The encrypted offset/debit account number for the batch.
example: '123456789'
nullable: false
effectiveEntryDate:
type: string
format: date
description: Desired effective entry date for the batch (YYYY-MM-DD). If omitted, uses next processing date.
example: '2026-03-10'
nullable: true
responses:
'200':
description: Batch scheduled — now in processing
content:
application/json:
schema:
type: object
required:
- batchId
- status
- checkStatus
properties:
batchId:
type: string
format: uuid
description: Unique identifier of the batch.
example: a1b2c3d4-e5f6-4a5b-8c9d-0e1f2a3b4c5d
nullable: false
status:
type: string
description: Current batch status after scheduling.
enum:
- processing
example: processing
nullable: false
checkStatus:
type: object
description: Current status of each pre-flight check for the batch.
required:
- ofac
- approval
- accountValidation
properties:
ofac:
type: string
description: Status of an individual check step.
enum:
- InProcess
- Passed
- NotPassed
- Bypassed
- Canceled
example: InProcess
nullable: false
approval:
type: string
description: Status of an individual check step.
enum:
- InProcess
- Passed
- NotPassed
- Bypassed
- Canceled
example: InProcess
nullable: false
accountValidation:
type: string
description: Status of an individual check step.
enum:
- InProcess
- Passed
- NotPassed
- Bypassed
- Canceled
example: InProcess
nullable: 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}/batches-approve/{BatchId}:
post:
operationId: ApproveAchBatch
tags:
- ACH Origination
summary: Approve or reject an ACH batch.
description: |
Records an approval decision for a batch in processing. The approver
must be a different user than the scheduler (dual control). If all
three checks pass after this approval, the batch transitions to scheduled.
## Authorization
Requires ApproveAchBatch permission set to Allow.
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: BatchId
in: path
required: true
description: ACH Batch Id.
schema:
type: string
format: uuid
description: ACH Batch Id.
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- approved
properties:
approved:
type: boolean
description: Whether the batch is approved (true) or rejected (false).
example: true
nullable: false
comments:
type: string
maxLength: 500
description: Optional comments for the approval decision.
example: Approved for processing
nullable: true
responses:
'200':
description: Approval recorded
content:
application/json:
schema:
type: object
required:
- batchId
- status
- approval
- allChecksPassed
properties:
batchId:
type: string
format: uuid
description: Unique identifier of the batch.
example: a1b2c3d4-e5f6-4a5b-8c9d-0e1f2a3b4c5d
nullable: false
status:
type: string
description: Current batch status (remains processing until all checks pass).
enum:
- processing
- scheduled
example: processing
nullable: false
approval:
type: string
description: Status of an individual check step.
enum:
- InProcess
- Passed
- NotPassed
- Bypassed
- Canceled
example: InProcess
nullable: false
allChecksPassed:
type: boolean
description: Whether all three checks (OFAC, Approval, Account Validation) have passed.
example: false
nullable: 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}/batches-cancel/{BatchId}:
post:
operationId: CancelAchBatch
tags:
- ACH Origination
summary: Cancel an ACH batch in processing.
description: |
Cancels a batch while checks are in flight. Only available when no
check step has reached Passed status. All step statuses are set to
Canceled and the batch transitions to canceled.
## Authorization
Requires CancelAchBatch permission set to Allow.
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: BatchId
in: path
required: true
description: ACH Batch Id.
schema:
type: string
format: uuid
description: ACH Batch Id.
responses:
'200':
description: Batch canceled
content:
application/json:
schema:
type: object
required:
- batchId
- status
properties:
batchId:
type: string
format: uuid
description: Unique identifier of the batch.
example: a1b2c3d4-e5f6-4a5b-8c9d-0e1f2a3b4c5d
nullable: false
status:
type: string
description: Batch status after cancellation.
enum:
- canceled
example: canceled
nullable: 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}/batches-unschedule/{BatchId}:
post:
operationId: UnscheduleAchBatch
tags:
- ACH Origination
summary: Unschedule a scheduled ACH batch back to draft.
description: |
Returns a scheduled batch to draft status so the user can edit
transactions and re-schedule later. Clears all scheduling metadata
and deletes the BatchCheckStatus row. If the user re-schedules,
all checks run again from scratch.
## Authorization
Requires UnscheduleAchBatch permission set to Allow.
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: BatchId
in: path
required: true
description: ACH Batch Id.
schema:
type: string
format: uuid
description: ACH Batch Id.
responses:
'200':
description: Batch unscheduled — back to draft
content:
application/json:
schema:
type: object
required:
- batchId
- status
properties:
batchId:
type: string
format: uuid
description: Unique identifier of the batch.
example: a1b2c3d4-e5f6-4a5b-8c9d-0e1f2a3b4c5d
nullable: false
status:
type: string
description: Batch status after unscheduling (always draft).
enum:
- draft
example: draft
nullable: 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}/batches-retry/{BatchId}:
post:
operationId: RetryFailedSteps
tags:
- ACH Origination
summary: Retry failed check steps for a batch in processing.
description: |
Moves all NotPassed steps back to InProcess and re-triggers the
corresponding checks. Returns the list of retried steps and the
updated check statuses.
## Authorization
Requires RetryFailedSteps permission set to Allow.
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: BatchId
in: path
required: true
description: ACH Batch Id.
schema:
type: string
format: uuid
description: ACH Batch Id.
responses:
'200':
description: Failed steps retried
content:
application/json:
schema:
type: object
required:
- batchId
- stepsRetried
- checkStatus
properties:
batchId:
type: string
format: uuid
description: Unique identifier of the batch.
example: a1b2c3d4-e5f6-4a5b-8c9d-0e1f2a3b4c5d
nullable: false
stepsRetried:
type: array
description: List of step names that were retried (moved from NotPassed to InProcess).
minItems: 1
maxItems: 3
items:
type: string
enum:
- Ofac
- Approval
- AccountValidation
example:
- Ofac
- AccountValidation
nullable: false
checkStatus:
type: object
description: Current status of each pre-flight check for the batch.
required:
- ofac
- approval
- accountValidation
properties:
ofac:
type: string
description: Status of an individual check step.
enum:
- InProcess
- Passed
- NotPassed
- Bypassed
- Canceled
example: InProcess
nullable: false
approval:
type: string
description: Status of an individual check step.
enum:
- InProcess
- Passed
- NotPassed
- Bypassed
- Canceled
example: InProcess
nullable: false
accountValidation:
type: string
description: Status of an individual check step.
enum:
- InProcess
- Passed
- NotPassed
- Bypassed
- Canceled
example: InProcess
nullable: 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 Wed Feb 11 2026