Details
Admin API
>
API Reference
>
v0
>
ACH
>
Details
openapi: 3.0.0
info:
version: '0.0'
title: ACH API
description: |
Institution level configuration and information about ACH features.
servers:
- url: 'https://banno.com'
tags:
- name: ACH Batches
- name: ACH Batch Processing
- name: ACH Records
- name: ACH Companies
- name: Configuration
- name: Configuration (File Header)
- name: Standard Entry Codes
paths:
'/a/ach/api/v0/institutions/{institutionId}/ach/batches':
get:
tags:
- ACH Batches
summary: >-
By default this endpoint returns all non-Historical batches for the FI, optionally filtered with one or more query parameters.
All filtering query parameters are a union (the resulting batches meet all specified filters).
It does not perform any processing itself.
parameters:
- $ref: '#/components/parameters/institutionIdParam'
- in: query
name: effectiveDate
required: false
schema:
type: string
format: date
description: >-
If specified: this returns the batches whose effective date is on or before the specified date. This would implicitly remove Uploaded and Ready batches, since those batches do not have effective dates.
<br>
<br>
If not specified: all batches are returned, whether or not the batch has an effective date configured.
- in: query
name: status
required: false
schema:
type: string
enum: [ 'PendingApproval', 'Ready', 'Uploaded', 'Processed', 'Initiated', 'Processing']
description: |
Filters on the status of the batch. If not specified, all batches are returned.
- in: query
name: batchId
required: false
schema:
type: string
format: uuid
description: |
Filters on the batchId of the batch. If not specified, all batches are returned.
- in: query
name: achCompanyId
required: false
schema:
type: string
format: uuid
description: |
Filters on the achCompanyId of the batch. If not specified, all batches are returned.
- in: query
name: achCompanyName
required: false
schema:
type: string
format: uuid
description: |
Filters on the achCompanyName of the batch. If not specified, all batches are returned.
- in: query
name: organizationName
required: false
schema:
type: string
description: |
Filters on the organizations name who created the batch. If not specified, all batches are returned.
- in: query
name: nsfStatus
required: false
schema:
type: array
items:
type: string
enum: ['pending_queued', 'pending_running', 'sufficient', 'insufficient', 'error']
description: |
Filters on the NSF status of the batch. If not specified, all batches are returned. Multiple NSF status values accepted.
- in: query
name: search
required: false
schema:
type: string
description: |
Filters on a wildcard search for ach company id, ach company name, organization name, and batch name. If not specified, all batches are returned.
- in: query
name: minTotal
required: false
schema:
type: integer
format: int32
minimum: 1
description: |
Filters on the minimum total of batch credits/debits.
- in: query
name: maxTotal
required: false
schema:
type: integer
format: int32
minimum: 1
description: |
Filters on the maximum total of batch credits/debits.
- in: query
name: secCodes
required: false
schema:
type: array
items:
type: string
enum: ['PPD', 'CCD', 'CTX', 'WEB', 'TEL']
description: |
Filters on the sec codes of the batch. If not specified, all batches are returned. Multiple sec codes status values accepted.
- in: query
name: startEffectiveDate
required: false
schema:
type: string
format: date
example: 'YYYY-MM-DD'
description: Start effective date. The start effective date will filter using the effective date of the batch.
- in: query
name: endEffectiveDate
required: false
schema:
type: string
format: date
example: 'YYYY-MM-DD'
description: End effective date. The end effective date will filter using the effective date of the batch.
- in: query
name: offset
required: true
schema:
type: integer
format: int32
minimum: 1
description: Number of starting batch. The first record's index is 1.
- in: query
name: limit
required: true
schema:
type: integer
format: int32
minimum: 1
maximum: 100
description: Number of requested batches (must be positive), maximum value is 100.
- in: query
name: sortBy
required: false
schema:
type: string
enum: [ 'TotalCredits', 'TotalDebits', 'AchCompanyId', 'AchCompanyName', 'Status', 'OrganizationName', 'EffectiveDate', 'BatchName' ]
description: |
Sorts the results by the specified field. If not specified, the results are unsorted.
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Batch_Summary'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
'500':
description: Internal Service Error
security:
- clientCredentials:
- 'https://jackhenry.com/ach/ach-batches.read'
'/a/ach/api/v0/institutions/{institutionId}/users/{userId}/ach/batches':
get:
tags:
- ACH Batches
summary: This will return the list of batches that a user / organization can see.
description: |
Batches are sorted by status in the following order:
Pending Approval,Uploaded,Initiated,Initiated & Reset, Processed, Ready.
parameters:
- $ref: '#/components/parameters/institutionIdParam'
- $ref: '#/components/parameters/userIdParam'
- in: query
name: offset
required: true
schema:
type: integer
format: int32
description: Number of starting result. The first result's index is 1.
- in: query
name: limit
required: true
schema:
type: integer
format: int32
description: Number of results requested (must be positive), maximum value is 100.
responses:
'200':
description: Ok
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Consumer_Batches_V1'
'400':
description: Bad Request.
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
'403':
description: Forbidden.
'500':
description: Internal Service Error.
security:
- clientCredentials:
- 'https://jackhenry.com/ach/ach-batches.read'
'/a/ach/api/v0/institutions/{institutionId}/organizations/{organizationId}/ach/batches':
get:
tags:
- ACH Batches
summary: This will return the list of batches that an organization can see.
description: |
Batches are sorted by status in the following order:
Pending Approval,Uploaded,Initiated,Initiated & Reset, Processed, Ready.
parameters:
- $ref: '#/components/parameters/institutionIdParam'
- $ref: '#/components/parameters/organizationIdParam'
- in: query
name: offset
required: true
schema:
type: integer
format: int32
description: Number of starting result. The first result's index is 1.
- in: query
name: limit
required: true
schema:
type: integer
format: int32
description: Number of results requested (must be positive), maximum value is 100.
- in: query
name: status
required: false
schema:
type: string
enum: [ 'PendingApproval', 'Ready', 'Initiated', 'Processing']
description: |
Filters on the status of the batch. If not specified, all batches are returned.
- in: query
name: minTotal
required: false
schema:
type: integer
format: int32
minimum: 1
description: |
Filters on the minimum total of batch credits/debits.
- in: query
name: maxTotal
required: false
schema:
type: integer
format: int32
minimum: 1
description: |
Filters on the maximum total of batch credits/debits.
- in: query
name: secCodes
required: false
schema:
type: array
items:
type: string
enum: ['PPD', 'CCD', 'CTX', 'WEB', 'TEL']
description: |
Filters on the sec codes of the batch. If not specified, all batches are returned. Multiple sec codes status values accepted.
- in: query
name: startEffectiveDate
required: false
schema:
type: string
format: date
example: 'YYYY-MM-DD'
description: Start effective date. The start effective date will filter using the effective date of the batch.
- in: query
name: endEffectiveDate
required: false
schema:
type: string
format: date
example: 'YYYY-MM-DD'
description: End effective date. The end effective date will filter using the effective date of the batch.
- in: query
name: search
required: false
schema:
type: string
description: |
Filters on a wildcard search for batch name and company name. If not specified, all batches are returned.
- in: query
name: sortBy
required: false
schema:
type: string
enum: [ 'TotalCredits', 'TotalDebits', 'AchCompanyName', 'Status', 'EffectiveDate', 'BatchName' ]
description: |
Sorts the results by the specified field. If not specified, the results are unsorted.
responses:
'200':
description: Ok
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Consumer_Batches_V1'
'400':
description: Bad Request.
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
'500':
description: Internal Service Error.
security:
- clientCredentials:
- 'https://jackhenry.com/ach/ach-batches.read'
'/a/ach/api/v0/institutions/{institutionId}/ach/batches/history':
get:
tags:
- ACH Batches
summary: Get the Batch History available for the entire institution.
parameters:
- $ref: '#/components/parameters/institutionIdParam'
- in: query
name: effectiveDate
required: false
schema:
type: string
format: date
description: Date to filter batches by. Format will be 'YYYY-MM-DD'. If an effectiveDate is not specified, a limit and offset must be specified.
- in: query
name: startProcessedDate
required: false
schema:
type: string
format: date
example: 'YYYY-MM-DD'
description: Start processed date. The start processed date will filter using the processed date of the batch.
- in: query
name: endProcessedDate
required: false
schema:
type: string
format: date
example: 'YYYY-MM-DD'
description: End processed date. The end date will filter using the processed date of the batch.
- in: query
name: startEffectiveDate
required: false
schema:
type: string
format: date
example: 'YYYY-MM-DD'
description: Start effective date. The start effective date will filter using the effective date of the batch.
- in: query
name: endEffectiveDate
required: false
schema:
type: string
format: date
example: 'YYYY-MM-DD'
description: End effective date. The end effective date will filter using the effective date of the batch.
- in: query
name: search
required: false
schema:
type: string
description: |
Filters on a wildcard search for batch name. If not specified, all batches are returned.
- in: query
name: minTotal
required: false
schema:
type: integer
format: int32
minimum: 1
description: |
Filters on the minimum total of batch credits/debits.
- in: query
name: maxTotal
required: false
schema:
type: integer
format: int32
minimum: 1
description: |
Filters on the maximum total of batch credits/debits.
- in: query
name: sortBy
required: false
schema:
type: string
enum: ['TotalCredits', 'TotalDebits','AchCompanyName', 'BatchName', 'EffectiveDate', 'ProcessedDate']
description: |
Sorts the results by the specified field. If not specified, the results are unsorted.
- in: query
name: achCompanyName
required: false
schema:
type: string
format: uuid
description: |
Filters on the achCompanyName of the batch. If not specified, all batches are returned.
- in: query
name: organizationId
required: false
schema:
type: string
format: uuid
description: |
Filters on the organizationId of the batch. If not specified, all batches are returned.
- in: query
name: offset
required: false
schema:
type: integer
format: int32
minimum: 1
description: Number of starting batch. The first record's index is 1. If an effectiveDate is not specified, defaults to 1.
- in: query
name: limit
required: false
schema:
type: integer
format: int32
minimum: 1
maximum: 200
description: Number of requested batches (must be positive), maximum value is 200. If an effectiveDate is not specified, defaults to 200.
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Batch_History_Enterprise_V1'
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"500":
description: Internal Service Error
"503":
description: Service is not available.
security:
- clientCredentials:
- 'https://jackhenry.com/ach/ach-batches.read'
'/a/ach/api/v0/institutions/{institutionId}/organizations/{organizationId}/ach/batches/history':
get:
tags:
- ACH Batches
summary: Get the Batch History available for the organization.
parameters:
- $ref: '#/components/parameters/institutionIdParam'
- $ref: '#/components/parameters/organizationIdParam'
- in: query
name: startDate
required: false
schema:
type: string
format: date
example: 'YYYY-MM-DD'
description: Start date sans timezone. The start date will filter using the effective date of the batch.
- in: query
name: endDate
required: false
schema:
type: string
format: date
example: 'YYYY-MM-DD'
description: End date sans timezone. The end date will filter using the effective date of the batch.
- in: query
name: startProcessedDate
required: false
schema:
type: string
format: date
example: 'YYYY-MM-DD'
description: Start processed date. The start processed date will filter using the processed date of the batch.
- in: query
name: endProcessedDate
required: false
schema:
type: string
format: date
example: 'YYYY-MM-DD'
description: End processed date. The end date will filter using the processed date of the batch.
- in: query
name: minTotal
required: false
schema:
type: integer
format: int32
minimum: 1
description: |
Filters on the minimum total of batch credits/debits.
- in: query
name: maxTotal
required: false
schema:
type: integer
format: int32
minimum: 1
description: |
Filters on the maximum total of batch credits/debits.
- in: query
name: secCodes
required: false
schema:
type: array
items:
type: string
enum: ['PPD', 'CCD', 'CTX', 'WEB', 'TEL']
description: |
Filters on the sec codes of the batch. If not specified, all batches are returned. Multiple sec codes status values accepted.
- in: query
name: search
required: false
schema:
type: string
description: |
Filters on a wildcard search for batch name and company name. If not specified, all batches are returned.
- in: query
name: sortBy
required: false
schema:
type: string
enum: [ 'TotalCredits', 'TotalDebits', 'AchCompanyName', 'EffectiveDate', 'ProcessedDate', 'BatchName' ]
description: |
Sorts the results by the specified field. If not specified, the results are unsorted.
- in: query
name: offset
required: true
schema:
type: integer
format: int32
minimum: 1
description: Number of starting results. The first result's index is 1.
- in: query
name: limit
required: true
schema:
type: integer
format: int32
minimum: 1
maximum: 100
description: Number of results requested.
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Organization_Batch_History_V1'
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden.
"500":
description: Internal Service Error
"503":
description: Service is not available.
security:
- clientCredentials:
- 'https://jackhenry.com/ach/ach-batches.read'
'/a/ach/api/v0/institutions/{institutionId}/users/{userId}/ach/batches/history':
get:
tags:
- ACH Batches
summary: Get the Batch History available for the given Banno User.
parameters:
- $ref: '#/components/parameters/institutionIdParam'
- $ref: '#/components/parameters/userIdParam'
- in: query
name: startDate
required: false
schema:
type: string
format: date
example: 'YYYY-MM-DD'
description: Start date sans timezone. The start date will filter using the processed date of the batch.
- in: query
name: endDate
required: false
schema:
type: string
format: date
example: 'YYYY-MM-DD'
description: End date sans timezone. The end date will filter using the processed date of the batch.
- in: query
name: minDebitAmount
required: false
schema:
type: integer
format: int32
minimum: 0
description: |
Filters on the batch's total debit amount. (minimum value)
- in: query
name: maxDebitAmount
required: false
schema:
type: integer
format: int32
minimum: 0
description: |
Filters on the batch's total debit amount. (maximum value)
- in: query
name: offset
required: true
schema:
type: integer
format: int32
description: Number of starting results. The first result's index is 1.
- in: query
name: limit
required: true
schema:
type: integer
format: int32
description: Number of results requested (must be positive), maximum value is 100.
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Batch_History_V1'
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden.
"500":
description: Internal Service Error
"503":
description: Service is not available.
security:
- clientCredentials:
- 'https://jackhenry.com/ach/ach-batches.read'
'/a/ach/api/v0/institutions/{institutionId}/organizations/{organizationId}/ach/batches/{batchId}':
get:
tags:
- ACH Batches
summary: This will return the details for a specific batch.
parameters:
- $ref: '#/components/parameters/institutionIdParam'
- $ref: '#/components/parameters/organizationIdParam'
- $ref: '#/components/parameters/batchIdParam'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Consumer_Batch_V1'
'403':
description: Forbidden.
'404':
description: Batch not found
security:
- clientCredentials:
- 'https://jackhenry.com/ach/ach-batches.read'
'/a/ach/api/v0/institutions/{institutionId}/ach/generate-file':
get:
tags:
- ACH Batches
summary: |
This will take all batches in the 'processing' status, and generate a NACHA formatted file
from them, it can be called multiple times if batches are added / removed from the 'processing' status.
If there are no batches in the 'processing' status, a 404 will be returned.
parameters:
- $ref: '#/components/parameters/institutionIdParam'
responses:
'200':
description: OK
content:
application/octet-stream:
schema:
type: string
format: binary
description: Returns a NACHA formatted file containing all the batches in the Processing state.
'400':
description: Bad Request. This likely means the Batch Header information for the institution has not been configured.
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
'404':
description: No batches in processing state
security:
- clientCredentials:
- 'https://jackhenry.com/ach/ach-batches.read'
'/a/ach/api/v0/institutions/{institutionId}/ach/nacha-file/processed/{processedId}':
get:
tags:
- ACH Batch Processing
summary: |
This will retrieve details of ACH batches that were processed.
parameters:
- $ref: '#/components/parameters/institutionIdParam'
- $ref: '#/components/parameters/processedIdParam'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Get_Details_Processed_Nacha_File'
'403':
description: Forbidden.
'404':
description: Details of ACH processed batches not found
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
'500':
description: Internal Service Error
security:
- clientCredentials:
- 'https://jackhenry.com/ach/ach-batches.read'
'/a/ach/api/v0/institutions/{institutionId}/ach/nacha-file/processed':
get:
tags:
- ACH Batch Processing
summary: |
This will retrieve list of ACH batches that were processed in the last
14 days.
parameters:
- $ref: '#/components/parameters/institutionIdParam'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Get_List_Processed_Nacha_File'
'403':
description: Forbidden.
'404':
description: List of ACH processed batches not found
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
'500':
description: Internal Service Error
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
security:
- clientCredentials:
- 'https://jackhenry.com/ach/ach-batches.read'
'/a/ach/api/v0/institutions/{institutionId}/ach/configuration':
get:
tags:
- Configuration
summary: Get the current ACH configurations.
description: |
this returns the following configurations:
1. Maximum number of processing days.
1. This value determines the available dates the user can set for the effective date of a batch.
2. Cutoff time
3. Excluded Processing Days
1. U.S. Federal Holidays. See the Federal Reserve Bank's list for exact observance dates.
2. Weekends
3. Custom FI dates (as configured by the `excluded-days` endpoint)
4. FI's core timezone
<br>
<br>
These configurations are ultimately used to determine when and which days a consumer user can initiate batches. Here's an example of how these calculations affect the allowed initiation dates. Using the following assumptions:
- All times are in the FI's Core timezone. Let's say Eastern Time for this example.
- The cutoff time is 3 PM ET
- maxNumberOfProcessingDays is set to 8
- The following days are weekends or holidays and therefore excluded:
- 12/23 Saturday
- 12/24 Sunday
- 12/25 Christmas
- 12/30 Saturday
- 12/31 Sunday
- 1/1 New Years
| Current Date | Current Time (ET) | First Available Initiation Day (the day to start counting) | Available Initiation Days |
|------------------------------|------------------------------------------------------------------------|------------------------------------------------------------|---------------------------------------------------------|
| Wednesday December 13th 2023 | 12 Noon | Thurs 14 | Thurs 14, Friday 15, Mon 18, Tues 19, Wed 20, Thurs 21 |
| Wednesday December 20th 2023 | 12 Noon | Thurs 21 | Thurs 21, Friday 22, Tues 26, Wed 27, Thurs 28 |
| Wednesday December 20th 2023 | 4 PM | Friday 22 | Friday 22, Tues 26, Wed 27, Thurs 28, Fri 29 |
| Thursday December 21st 2023 | 4 PM | Tues 26 | Tues 26, Wed 27, Thurs 28, Fri 29, Tues 02 |
| Sunday December 24st 2023 | 12:34 PM (anytime this day should give the same result) | Wed 27 | Wed 27, Thurs 28, Fri 29, Tues 02, Wed 03 |
| Monday December 25st 2023 | 12:34 PM (anytime this day should give the same result; same as above) | Wed 27 | Wed 27, Thurs 28, Fri 29, Tues 02, Wed 03 |
| Tuesday December 26th 2023 | 2 PM | Wed 27 | Wed 27, Thurs 28, Fri 29, Tues 02, Wed 03 |
| Wednesday December 27th 2023 | 2 PM | Thurs 28 | Thurs 28, Fri 29, Tues Jan 02, Wed 03, Thurs 04 |
parameters:
- $ref: '#/components/parameters/institutionIdParam'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Configuration_get'
security:
- clientCredentials:
- 'https://jackhenry.com/ach/ach-batches.read'
'/a/ach/api/v0/institutions/{institutionId}/ach/configuration/integrator':
get:
tags:
- Configuration
summary: Get an institution's ACH transmission integrator.
parameters:
- $ref: '#/components/parameters/institutionIdParam'
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/Configuration_Integrator'
'500':
description: Internal Server Error.
security:
- clientCredentials:
- 'https://jackhenry.com/ach/ach-batches.read'
'/a/ach/api/v0/institutions/{institutionId}/organizations/{organizationId}/ach/batches/{batchId}/records':
get:
tags:
- ACH Records
summary: This will return the list of records for a batch.
parameters:
- $ref: '#/components/parameters/institutionIdParam'
- $ref: '#/components/parameters/organizationIdParam'
- $ref: '#/components/parameters/batchIdParam'
- in: query
name: offset
required: true
schema:
type: integer
format: int32
description: Number of starting result. The first result's index is 1.
- in: query
name: limit
required: true
schema:
type: integer
format: int32
description: Number of results requested (must be positive), maximum value is 100.
- in: query
name: recipientAccountNumber
required: false
schema:
type: string
description: |
Filter by the recipient account number.
- in: query
name: recipientName
required: false
schema:
type: string
description: |
Filter by the recipient name.
- in: query
name: amount
required: false
schema:
type: string
example: "10.99"
description: |
Filter by the exact recipient amount.
- in: query
name: sortBy
required: false
schema:
type: string
enum: [ 'RecipientName', 'Amount']
description: |
Sorts the results by the specified field. If not specified, the results are unsorted.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Consumer_Records_V1'
'400':
description: Bad Request.
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
'500':
description: Internal Service Error.
security:
- clientCredentials:
- 'https://jackhenry.com/ach/ach-batches.read'
'/a/ach/api/v0/institutions/{institutionId}/organizations/{organizationId}/ach/batches/history/{historicalBatchId}/records':
get:
tags:
- ACH Records
summary: Get the Records for a given historical batch.
parameters:
- $ref: '#/components/parameters/institutionIdParam'
- $ref: '#/components/parameters/organizationIdParam'
- in: path
name: historicalBatchId
description: Id of the Historical Batch
required: true
schema:
$ref: '#/components/schemas/Historical_Batch_Identifier_V1'
- in: query
name: offset
required: true
schema:
type: integer
format: int32
description: Number of starting record. The first record's index is 1.
- in: query
name: limit
required: true
schema:
type: integer
format: int32
description: Number of requested records (must be positive), maximum value is 100.
- in: query
name: recipientAccountNumber
required: false
schema:
type: string
description: |
Filter by the recipient account number.
- in: query
name: recipientName
required: false
schema:
type: string
description: |
Filter by the recipient name.
- in: query
name: amount
required: false
schema:
type: string
example: "10.99"
description: |
Filter by the exact recipient amount.
- in: query
name: sortBy
required: false
schema:
type: string
enum: [ 'RecipientName', 'Amount']
description: |
Sorts the results by the specified field. If not specified, the results are unsorted.
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Consumer_Records_V1'
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"500":
description: Internal Service Error
"503":
description: Service is not available.
security:
- clientCredentials:
- 'https://jackhenry.com/ach/ach-batches.read'
'/a/ach/api/v0/institutions/{institutionId}/ach/file-header':
get:
tags:
- Configuration (File Header)
summary: |
This will return ACH file header information for an institution
parameters:
- $ref: '#/components/parameters/institutionIdParam'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/RequiredAchFileHeaderInfo'
'404':
description: ACH file header not found
'500':
description: Internal Service Error
security:
- clientCredentials:
- 'https://jackhenry.com/ach/ach-batches.read'
'/a/ach/api/v0/institutions/{institutionId}/users/{userId}/ach/batches/{batchId}/records':
get:
tags:
- ACH Records
summary: This will return the list of records for a batch that a user / organization can see.
parameters:
- $ref: '#/components/parameters/institutionIdParam'
- $ref: '#/components/parameters/userIdParam'
- $ref: '#/components/parameters/batchIdParam'
- in: query
name: offset
required: true
schema:
type: integer
format: int32
description: Number of starting result. The first result's index is 1.
- in: query
name: limit
required: true
schema:
type: integer
format: int32
description: Number of results requested (must be positive), maximum value is 100.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Consumer_Records_V1'
'400':
description: Bad Request.
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
'403':
description: Forbidden.
security:
- clientCredentials:
- 'https://jackhenry.com/ach/ach-batches.read'
'/a/ach/api/v0/institutions/{institutionId}/users/{userId}/ach/batches/history/{historicalBatchId}/records':
get:
tags:
- ACH Records
summary: Get the Records for a given historical batch.
parameters:
- $ref: '#/components/parameters/institutionIdParam'
- $ref: '#/components/parameters/userIdParam'
- $ref: '#/components/parameters/historicalBatchIdParam'
- in: query
name: startDate
required: false
schema:
type: string
format: date
description: Start date sans TZ. Format will be 'YYYY-MM-DD'
- in: query
name: endDate
required: false
schema:
type: string
format: date
description: End date sans TZ. Format will be 'YYYY-MM-DD'
- in: query
name: offset
required: true
schema:
type: integer
format: int32
description: Number of starting results. The first result's index is 1.
- in: query
name: limit
required: true
schema:
type: integer
format: int32
description: Number of results requested (must be positive), maximum value is 100.
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Records_History_V1'
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden.
"500":
description: Internal Service Error
"503":
description: Service is not available.
security:
- clientCredentials:
- 'https://jackhenry.com/ach/ach-batches.read'
'/a/ach/api/v0/institutions/{institutionId}/companies':
get:
tags:
- ACH Companies
summary: Get a list of ach companies associated with the FI
parameters:
- $ref: '#/components/parameters/institutionIdParam'
- in: query
name: sortBy
required: false
schema:
type: string
enum: [ 'CompanyId', 'CompanyName']
description: |
Sorts the results by the specified field in ascending order. If not specified, the results are unsorted.
- in: query
name: search
required: false
schema:
type: string
description: |
Filters on the company name and company id.
For company name search, it is a case-insensitive, substring filter.
For example for a company named "Great Bicycle Company" all of the following searches would return a match:
- "Great Bicycle Company"
- "Great"
- "Bicycle Company"
- "bicycle"
- "cycle"
For company id search, it is an exact match filter.
- in: query
name: offset
required: true
schema:
type: integer
format: int32
description: Number of starting result. The first result's index is 1.
- in: query
name: limit
required: true
schema:
type: integer
format: int32
description: Number of results requested (must be positive).
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Ach_Companies_List'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
security:
- clientCredentials:
- 'https://jackhenry.com/ach/ach-batches.read'
'/a/ach/api/v0/institutions/{institutionId}/companies/{bannoCompanyId}':
get:
tags:
- ACH Companies
summary: Get details about a specific company
parameters:
- $ref: '#/components/parameters/institutionIdParam'
- $ref: '#/components/parameters/bannoCompanyIdParam'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AchCompany'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
'404':
description: Company Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFound_ACH_Company_V0'
'500':
description: Internal Server Error
security:
- clientCredentials:
- 'https://jackhenry.com/ach/ach-batches.read'
'/a/ach/api/v0/institutions/{institutionId}/ach/standard-entry-codes':
get:
tags:
- Standard Entry Codes
summary: |
This is a request to get ACH supported standard entry codes
parameters:
- $ref: '#/components/parameters/institutionIdParam'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Supported_Standard_Entry_Codes'
'500':
description: Internal Service Error
security:
- clientCredentials:
- 'https://jackhenry.com/ach/ach-batches.read'
components:
securitySchemes:
clientCredentials:
type: oauth2
description: OAuth2 using the client credentials flow
flows:
clientCredentials:
tokenUrl: https://banno.com/a/oidc-provider/api/v0/token
scopes: {}
parameters:
institutionIdParam:
in: path
name: institutionId
required: true
schema:
$ref: '#/components/schemas/InstitutionId'
organizationIdParam:
in: path
name: organizationId
required: true
schema:
$ref: '#/components/schemas/OrganizationId'
bannoCompanyIdParam:
in: path
name: bannoCompanyId
required: true
schema:
$ref: '#/components/schemas/CompanyId'
companyNameParam:
in: path
name: companyName
required: true
schema:
$ref: '#/components/schemas/CompanyName'
batchIdParam:
in: path
name: batchId
required: true
schema:
$ref: '#/components/schemas/BatchId'
historicalBatchIdParam:
in: path
name: historicalBatchId
required: true
schema:
$ref: '#/components/schemas/BatchId'
userIdParam:
in: path
name: userId
required: true
schema:
$ref: '#/components/schemas/UserId'
OrganizationIdParam:
in: path
name: organizationId
required: true
schema:
$ref: '#/components/schemas/OrganizationId'
processedIdParam:
in: path
name: processedId
required: true
schema:
$ref: '#/components/schemas/ProcessedId'
schemas:
Ach_Companies_List:
type: object
required:
- results
- totalNumberOfAvailableResults
- hasMoreResults
properties:
results:
type: array
items:
$ref: '#/components/schemas/AchCompany'
nullable: false
totalNumberOfAvailableResults:
type: integer
format: int32
nullable: false
description: Total number of available ach companies
hasMoreResults:
type: boolean
nullable: false
AchCompany:
type: object
required:
- id
- name
- companyId
- companyType
- achLimit
- active
properties:
id:
$ref: '#/components/schemas/CompanyId'
name:
$ref: '#/components/schemas/CompanyName'
companyId:
$ref: '#/components/schemas/AchCompanyId'
companyType:
$ref: '#/components/schemas/CompanyType'
achLimit:
$ref: '#/components/schemas/AchLimit'
active:
$ref: '#/components/schemas/Active'
contactName:
$ref: '#/components/schemas/ContactName'
contactEmail:
$ref: '#/components/schemas/ContactEmail'
contactPhone:
$ref: '#/components/schemas/ContactPhone'
AchCompanyUpdateReq:
type: object
properties:
active:
$ref: '#/components/schemas/Active'
contactName:
$ref: '#/components/schemas/ContactName'
contactEmail:
$ref: '#/components/schemas/ContactEmail'
contactPhone:
$ref: '#/components/schemas/ContactPhone'
achLimit:
$ref: '#/components/schemas/AchLimit'
AchCompanyCreateReq:
type: object
required:
- id
- name
- companyId
- companyType
- achLimit
properties:
name:
$ref: '#/components/schemas/CompanyName'
companyId:
$ref: '#/components/schemas/AchCompanyId'
companyType:
$ref: '#/components/schemas/CompanyType'
achLimit:
$ref: '#/components/schemas/AchLimit'
contactName:
$ref: '#/components/schemas/ContactName'
contactEmail:
$ref: '#/components/schemas/ContactEmail'
contactPhone:
$ref: '#/components/schemas/ContactPhone'
AchCompanyCreated:
type: object
required:
- id
properties:
id:
$ref: '#/components/schemas/CompanyId'
AchCompanyId:
type: string
minLength: 1
maxLength: 10
description: An identifier for the company, typically the company tax id.
example: "588003230"
RequiredAchFileHeaderInfo:
type: object
required:
- immediateDestination
- immediateOrigin
- immediateDestinationName
- immediateOriginName
properties:
immediateDestination:
$ref: '#/components/schemas/ImmediateDestination'
immediateOrigin:
$ref: '#/components/schemas/ImmediateOrigin'
immediateDestinationName:
$ref: '#/components/schemas/ImmediateDestinationName'
immediateOriginName:
$ref: '#/components/schemas/ImmediateOriginName'
Batch_Summary:
type: object
required:
- totalBatches
- totalCredits
- totalDebits
- totalCreditAmount
- totalDebitAmount
- batches
- hasMoreResults
properties:
totalBatches:
type: integer
description: Total number of batches that will go out
totalCredits:
type: integer
description: The total number of credits in the batch list
totalDebits:
type: integer
description: The total number of debits in the batch list
totalDebitAmount:
type: string
description: The summed total amount of debits in the batch list in USD
example: "3.50"
totalCreditAmount:
type: string
description: The summed total amount of credits in the batch list in USD
example: "3.50"
batches:
type: array
items:
$ref: '#/components/schemas/Batch_V1'
hasMoreResults:
type: boolean
description: Indicates if there are more batches to be retrieved
Consumer_Batch_V1:
type: object
required:
- id
- totalDebits
- totalCredits
- batchName
- secCode
- entryDescription
- achCompanyName
- achCompanyId
- status
- discretionaryData
- companyType
- taxBatch
- preNote
- restricted
- sameDay
properties:
id:
type: string
format: uuid
description: unique identifier of a batch
nullable: false
totalDebits:
type: string
description: Total debits of the batch.
nullable: false
totalCredits:
type: string
description: Total credits of the batch.
nullable: false
batchName:
type: string
description: Name of the batch.
nullable: false
secCode:
type: string
description: Standard Entry Code (SEC) of the batch.
nullable: false
entryDescription:
type: string
description: Description of the batch.
nullable: false
achCompanyName:
type: string
description: Name of the ACH Company of the Batch, i.e. company that performed the batch.
nullable: false
achCompanyId:
type: string
description: Id of the ACH Company of the Batch.
nullable: false
status:
type: string
enum: [ 'PendingApproval', 'Ready', 'Uploaded', 'Processed', 'Initiated', 'Processing' ]
nullable: false
effectiveDate:
type: string
format: date
example: "2022-08-08"
description: The date that the batch is effective. Note, the effective date field is only returned for credit unions currently, and not banks due to a limitation of the BSL/Host.
discretionaryData:
type: string
description: Used for additional description of the batch.
nullable: true
companyType:
type: string
description: Indicates the kind of batch for the ACH Company.
enum: [ 'Balance', 'Difference', 'Offset' ]
nullable: false
taxBatch:
type: boolean
description: True if the batch is a tax batch, false if not.
example: true
preNote:
type: boolean
description: True if the batch is a pre note, false if not.
example: true
restricted:
type: boolean
description: True if the batch is restricted, false if not.
example: true
sameDay:
type: boolean
description: True if an active batch was initiated or processed as a 'Same Day ACH' batch. Same Day ACH allows originators to initiate a batch where the transactions are sent, received, and settled on the same day.
example: false
nullable: false
taxAuthority:
type: string
maxLength: 2
example: 'FD'
description: If `taxBatch` is true. taxAuthority will indicate which authority the batch is paying taxes to.
Consumer_Batches_V1:
type: object
required:
- results
- totalNumberOfAvailableResults
- hasMoreResults
properties:
results:
type: array
items:
$ref: '#/components/schemas/Consumer_Batch_V1'
nullable: false
totalNumberOfAvailableResults:
type: integer
format: int32
nullable: false
description: Total number of available batches
hasMoreResults:
type: boolean
nullable: false
Success_Begin_Processing:
type: object
required:
- processingDatesUpToAndIncluding
description: |-
Successful response for the asynchronous begin processing process. All batches that were previously in status=Initiated
and had an Effective Date of <= processingDatesUpToAndIncluding are being updated to status=Processing.
properties:
processingDatesUpToAndIncluding:
type: string
format: date
example: "2023-08-17"
BadRequest_Begin_Processing:
allOf:
- $ref: '#/components/schemas/Generic_StandardError_V1'
- type: object
required:
- errors
properties:
errors:
type: array
items:
type: string
example:
- 'Processing already started, please finish current before starting new'
- 'No batches to process'
Batch_V1:
type: object
required:
- id
- organizationId
- organizationName
- totalDebits
- totalCredits
- batchName
- achCompanyId
- achCompanyName
- companyType
- secCode
- batchNumber
- status
- entryDescription
- discretionaryData
- sameDay
properties:
id:
type: string
description: Unique Identifier of a Batch
nullable: false
organizationId:
type: string
description: Id of the organization that created the batch.
organizationName:
type: string
description: Name of the organization that created the batch.
example: 'My Organization'
batchName:
type: string
description: Name of the batch.
nullable: false
achCompanyId:
type: string
description: Id of the ACH Company of the Batch.
achCompanyName:
type: string
description: Name of the ACH Company of the Batch, i.e. company that performed the batch.
companyType:
type: string
description: Indicates the kind of batch for the ACH Company.
enum: [ 'Balance', 'Difference', 'Offset' ]
secCode:
type: string
description: Standard Entry Code (SEC) of the batch.
enum: ['CCD', 'CTX', 'PPD', 'TEL', 'WEB']
nullable: false
batchNumber:
type: integer
description: Number of the batch.
nullable: false
status:
type: string
enum: [ 'PendingApproval', 'Ready', 'Uploaded', 'Processed', 'Initiated', 'Processing' ]
nullable: false
entryDescription:
type: string
description: Description of the batch.
nullable: false
discretionaryData:
type: string
description: Used for additional description of the batch.
nullable: false
sameDay:
type: boolean
description: True if an active batch was initiated or processed as a 'Same Day ACH' batch. Same Day ACH allows originators to initiate a batch where the transactions are sent, received, and settled on the same day.
example: false
nullable: false
totalDebits:
type: string
description: Total debits of the batch.
nullable: false
totalCredits:
type: string
description: Total credits of the batch.
nullable: false
effectiveDate:
type: string
description: The date that the batch is effective
format: date
example: "2022-08-08"
initiatedDate:
type: string
description: The date that the batch was initiated
format: date
example: "2022-08-07"
initiatedBy:
type: string
description: The id of the user that initiated the batch
format: uuid
example: "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11"
offsetAccountId:
type: string
description: The id of the offset account
format: uuid
example: "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11"
Batch_V1_With_Records:
allOf:
- $ref: '#/components/schemas/Batch_V1'
- type: object
required:
- records
properties:
records:
type: array
example: "COMMENT ONLY, NOT THE REAL SCHEMA. See endpoint description to see if this field exists. If so, check the schema for the layout."
items:
$ref: '#/components/schemas/Consumer_Record_V1'
Configuration_MaxNumberOfProcessingDays:
type: object
required:
- maxNumberOfProcessingDays
properties:
maxNumberOfProcessingDays:
type: integer
nullable: false
example: 14
minimum: 0
description: |
The maximum number of calendar days allowable to schedule a batch.
<br>
<br>
14 is returned as the default if the FI has not set this value yet.
<br>
This value is in terms of calendar days, it's used when generating the list of available processing dates. That list always excludes weekends, US Holidays (as determined by the Federal Reserve Bank), and any custom FI excluded days.
Configuration_CutoffTime_NonNullable:
type: object
required:
- cutoffTime
properties:
cutoffTime:
description: >-
This is the wall clock time to control when the consumer ACH cutoff occurs.
type: object
nullable: false
required:
- hour
- minute
properties:
hour:
type: integer
nullable: false
minimum: 0
maximum: 23
example: 15
minute:
type: integer
nullable: false
enum:
- 0
- 15
- 30
- 45
description: Can only be set in 15 minute increments.
Configuration_CutoffTime_Nullable:
type: object
required:
- cutoffTime
properties:
cutoffTime:
description: >-
This is the wall clock time to control when the consumer ACH cutoff occurs. This can be returned as null.
type: object
nullable: true
required:
- hour
- minute
properties:
hour:
type: integer
nullable: false
minimum: 0
maximum: 23
example: 15
minute:
type: integer
nullable: false
enum:
- 0
- 15
- 30
- 45
description: Can only be set in 15 minute increments.
Configuration_ExcludedFromProcessing_SingleDay:
type: object
required:
- excludedFromProcessing
properties:
excludedFromProcessing:
type: string
format: date
description: >-
Custom day the FI does not process ACH on. Customers will not be allowed to initiate batches for this day.
When adding a date it does not affect any pre-existing batches that have already been initiated for that date.
<br>
<br>
There is no need to add weekends or United States Federal Holidays (as determined by the Federal Reserve Bank) since those dates are always excluded from batch initiations.
nullable: false
example: '2022-07-01'
Configuration_ExcludedFromProcessing_MultipleDays:
type: object
required:
- excludedFromProcessing
properties:
excludedFromProcessing:
type: array
description: >-
Custom days the FI does not process ACH on. Customers will not be allowed to initiate batches for these days.
<br>
<br>
Weekends and United States Federal Holidays (as determined by the Federal Reserve Bank) are not included in this list, but those dates are always excluded from batch initiations.
nullable: false
example:
- '2022-07-01'
- '2022-07-02'
- '2023-05-24'
items:
type: string
format: date
Configuration_Integrator:
type: object
required:
- provider
properties:
provider:
type: string
nullable: false
description: |
The ACH transmission provider used by the institution. If the institution is not using an integrator, the value will be 'none'.
enum: ['none', 'ease']
Configuration_get:
allOf:
- $ref: '#/components/schemas/Configuration_MaxNumberOfProcessingDays'
- $ref: '#/components/schemas/Configuration_CutoffTime_Nullable'
- $ref: '#/components/schemas/Configuration_ExcludedFromProcessing_MultipleDays'
- properties:
integrator:
$ref: '#/components/schemas/Configuration_Integrator'
required:
- integrator
- type: object
properties:
timezone:
description: >-
The FI's Core Timezone. Formatted as a TZ Data string. See https://en.wikipedia.org/wiki/List_of_tz_database_time_zones for a list of valid values under "TZ Identifier".
This is read-only. The value itself is owned by the Institution Details API and cannot be set on the associated `PUT` endpoint.
type: string
nullable: false
example: "America/New_York"
required:
- timezone
Consumer_Record_V1:
type: object
required:
- recordId
- recipientName
- recipientId
- recipientAmount
- recipientAccountType
- recipientAccountNumber
- recipientRoutingNumber
- recipientTransactionType
- recipientAddenda
- status
- preNote
- isOffsetAccountTransaction
properties:
recordId:
type: string
description: Required alphanumeric id of the record, in the batch, to be edited.
nullable: false
recipientName:
type: string
description: Name of the recipient.
nullable: false
recipientId:
type: string
description: Represents the unique identifier that a Company has given to a recipient.
nullable: true
recipientAmount:
type: string
description: Amount of transaction.
nullable: false
recipientAccountType:
type: string
description: This is the type of the recipient's account.
enum:
- checking
- savings
- loan
- general_ledger
nullable: false
recipientAccountNumber:
type: string
description: Number of account.
nullable: false
recipientRoutingNumber:
type: string
description: Routing Number.
nullable: false
recipientTransactionType:
type: string
description: Transaction type.
enum: [ credit, debit ]
nullable: false
recipientAddenda:
type: string
description: Addenda type code of the record.
nullable: true
status:
type: string
description: Record's new status.
enum:
- active
- hold
nullable: false
preNote:
type: boolean
isOffsetAccountTransaction:
type: boolean
description: Identifies the offset account transaction.
nullable: false
taxCode:
type: string
taxPayerId:
type: string
taxPeriod:
type: string
taxSubOne:
$ref: '#/components/schemas/Tax_Subcategory'
taxSubTwo:
$ref: '#/components/schemas/Tax_Subcategory'
taxSubThree:
$ref: '#/components/schemas/Tax_Subcategory'
offsetAccountType:
$ref: '#/components/schemas/Offset_Account_Type_V1'
offsetAccountNumber:
type: string
description: the masked offset account number used for the tax payment.
Consumer_Records_V1:
type: object
required:
- results
- totalNumberOfAvailableResults
- hasMoreResults
properties:
results:
type: array
items:
$ref: '#/components/schemas/Consumer_Record_V1'
nullable: false
totalNumberOfAvailableResults:
type: integer
format: int32
nullable: false
description: Total number of recipients in a batch
hasMoreResults:
type: boolean
nullable: false
Tax_Subcategory:
type: object
required:
- subAmount
properties:
subAmount:
type: string
description: The amount of tax to be paid to the tax subcategory indicated by taxSubcategory
maxLength: 12
subcategory:
type: string
description: The Tax subcategory.
maxLength: 5
Batch_History_Event_V1:
type: object
required:
- organizationId
- id
- organizationName
- batchId
- batchName
- achCompanyName
- companyId
- bannoAchCompanyId
- secCode
- processedDate
- totalCredits
- totalDebits
- entryDescription
- initiatedBy
- finalizedBy
- taxBatch
- preNote
- restricted
- effectiveDate
- confirmationNumber
- sameDay
properties:
organizationId:
$ref: '#/components/schemas/OrganizationId'
id:
type: string
description: Identifies a specific history event for a batch
nullable: false
organizationName:
type: string
description: Name of the organization that the batch belongs to
example: "My Organization"
batchId:
type: string
description: Unique identifier of a batch
nullable: false
batchName:
type: string
description: Name of the batch.
nullable: false
achCompanyName:
type: string
description: Name of the ACH Company of the Batch, i.e. company that performed the batch.
nullable: false
companyId:
type: string
description: Identifier of the company, typically an EIN Tax-ID.
nullable: false
bannoAchCompanyId:
type: string
description: Unique identifier for the company for use in Banno's APIs
format: uuid
example: 9824beae-b942-4030-b098-41263fc0ef6d
nullable: false
secCode:
type: string
description: Standard Entry Code (SEC) of the batch.
nullable: false
processedDate:
type: string
description: The date the ACH batch was finalized.
format: date
nullable: false
totalDebits:
type: string
description: Total debits of the batch.
nullable: false
totalCredits:
type: string
description: Total credits of the batch.
nullable: false
entryDescription:
type: string
description: Description of the batch.
nullable: false
initiatedBy:
type: string
description: The consumer userId of the user that initiated the batch.
nullable: false
finalizedBy:
type: string
description: The enterprise userId of the user that finalized the batch.
nullable: false
taxBatch:
type: boolean
description: True if the batch is a tax batch, false if not.
example: true
preNote:
type: boolean
description: True if the batch is a pre note, false if not.
example: true
restricted:
type: boolean
description: True if the batch is restricted, false if not.
example: true
effectiveDate:
type: string
description: The date set by the org user when initiating an ACH batch.
format: date
nullable: false
confirmationNumber:
type: string
nullable: false
description: The unique identifier confirming the ACH batch was successfully initiated. This id is the same as the id found on the batchId field.
sameDay:
type: boolean
description: True if an active batch was initiated or processed as a 'Same Day ACH' batch. Same Day ACH allows originators to initiate a batch where the transactions are sent, received, and settled on the same day.
example: false
nullable: false
Batch_History_Enterprise_Event_V1:
type: object
required:
- organizationId
- id
- organizationName
- batchId
- batchName
- achCompanyName
- companyId
- bannoAchCompanyId
- secCode
- processedDate
- totalCredits
- totalDebits
- entryDescription
- initiatedBy
- finalizedBy
- taxBatch
- preNote
- restricted
- effectiveDate
- discretionaryData
- numberOfRecords
- sameDay
- offsetAccountNumber
properties:
organizationId:
$ref: '#/components/schemas/OrganizationId'
id:
type: string
description: Identifies a specific history event for a batch
nullable: false
organizationName:
type: string
description: Name of the organization that the batch belongs to
example: "My Organization"
batchId:
type: string
description: Unique identifier of a batch
nullable: false
batchName:
type: string
description: Name of the batch.
nullable: false
achCompanyName:
type: string
description: Name of the ACH Company of the Batch, i.e. company that performed the batch.
nullable: false
companyId:
type: string
description: Identifier of the company, typically an EIN Tax-ID.
nullable: false
bannoAchCompanyId:
type: string
description: Unique identifier for the company for use in Banno's APIs
format: uuid
example: 9824beae-b942-4030-b098-41263fc0ef6d
nullable: false
secCode:
type: string
description: Standard Entry Code (SEC) of the batch.
nullable: false
processedDate:
type: string
description: The date the ACH batch was finalized.
format: date
nullable: false
totalDebits:
type: string
description: Total debits of the batch.
nullable: false
totalCredits:
type: string
description: Total credits of the batch.
nullable: false
entryDescription:
type: string
description: Description of the batch.
nullable: false
initiatedBy:
type: string
description: The consumer userId of the user that initiated the batch.
nullable: false
finalizedBy:
type: string
description: The enterprise userId of the user that finalized the batch.
nullable: false
taxBatch:
type: boolean
description: True if the batch is a tax batch, false if not.
example: true
preNote:
type: boolean
description: True if the batch is a pre note, false if not.
example: true
restricted:
type: boolean
description: True if the batch is restricted, false if not.
example: true
effectiveDate:
type: string
description: The date set by the org user when initiating an ACH batch.
format: date
nullable: false
discretionaryData:
type: string
description: Used for additional description of the batch.
nullable: false
offsetAccountId:
type: string
description: The id of the offset account
format: uuid
sameDay:
type: boolean
description: True if an active batch was initiated or processed as a 'Same Day ACH' batch. Same Day ACH allows originators to initiate a batch where the transactions are sent, received, and settled on the same day.
example: false
nullable: false
numberOfRecords:
type: integer
description: The number of records in the batch.
example: 10
nullable: false
offsetAccountNumber:
type: string
description: The offset account number used for the batch.
Batch_History_Enterprise_Org_Event_V1:
type: object
required:
- organizationId
- id
- organizationName
- batchId
- batchName
- achCompanyName
- companyId
- bannoAchCompanyId
- secCode
- processedDate
- totalCredits
- totalDebits
- entryDescription
- initiatedBy
- finalizedBy
- taxBatch
- preNote
- restricted
- effectiveDate
- discretionaryData
- sameDay
properties:
organizationId:
$ref: '#/components/schemas/OrganizationId'
id:
type: string
description: Identifies a specific history event for a batch
nullable: false
organizationName:
type: string
description: Name of the organization that the batch belongs to
example: "My Organization"
batchId:
type: string
description: Unique identifier of a batch
nullable: false
batchName:
type: string
description: Name of the batch.
nullable: false
achCompanyName:
type: string
description: Name of the ACH Company of the Batch, i.e. company that performed the batch.
nullable: false
companyId:
type: string
description: Identifier of the company, typically an EIN Tax-ID.
nullable: false
bannoAchCompanyId:
type: string
description: Unique identifier for the company for use in Banno's APIs
format: uuid
example: 9824beae-b942-4030-b098-41263fc0ef6d
nullable: false
secCode:
type: string
description: Standard Entry Code (SEC) of the batch.
nullable: false
processedDate:
type: string
description: The date the ACH batch was finalized.
format: date
nullable: false
totalDebits:
type: string
description: Total debits of the batch.
nullable: false
totalCredits:
type: string
description: Total credits of the batch.
nullable: false
entryDescription:
type: string
description: Description of the batch.
nullable: false
initiatedBy:
type: string
description: The consumer userId of the user that initiated the batch.
nullable: false
finalizedBy:
type: string
description: The enterprise userId of the user that finalized the batch.
nullable: false
taxBatch:
type: boolean
description: True if the batch is a tax batch, false if not.
example: true
preNote:
type: boolean
description: True if the batch is a pre note, false if not.
example: true
restricted:
type: boolean
description: True if the batch is restricted, false if not.
example: true
effectiveDate:
type: string
description: The date set by the org user when initiating an ACH batch.
format: date
nullable: false
discretionaryData:
type: string
description: Used for additional description of the batch.
nullable: false
offsetAccountId:
type: string
description: The id of the offset account
format: uuid
sameDay:
type: boolean
description: True if an active batch was initiated or processed as a 'Same Day ACH' batch. Same Day ACH allows originators to initiate a batch where the transactions are sent, received, and settled on the same day.
example: false
nullable: false
Batch_History_Enterprise_V1:
type: object
required:
- results
- totalNumberOfAvailableResults
- hasMoreResults
properties:
results:
type: array
items:
$ref: '#/components/schemas/Batch_History_Enterprise_Event_V1'
nullable: false
description: Sorted by descending processedDate
totalNumberOfAvailableResults:
type: integer
example: 1
description: Total number of historical batches that are available to view
hasMoreResults:
type: boolean
example: false
description: True if there are more historical batches viewable
Batch_History_V1:
type: object
required:
- results
- totalNumberOfAvailableResults
- hasMoreResults
properties:
results:
type: array
items:
$ref: '#/components/schemas/Batch_History_Event_V1'
nullable: false
description: Sorted by descending processedDate
totalNumberOfAvailableResults:
type: integer
example: 1
description: Total number of historical batches that are available to view
hasMoreResults:
type: boolean
example: false
description: True if there are more historical batches viewable
Organization_Batch_History_V1:
type: object
required:
- results
- totalNumberOfAvailableResults
- hasMoreResults
properties:
results:
type: array
items:
$ref: '#/components/schemas/Batch_History_Enterprise_Org_Event_V1'
nullable: false
description: Sorted by descending processedDate
totalNumberOfAvailableResults:
type: integer
example: 1
description: Total number of historical batches that are available to view
hasMoreResults:
type: boolean
example: false
description: True if there are more historical batches viewable
Records_History_V1:
type: object
required:
- results
- totalNumberOfAvailableResults
- hasMoreResults
properties:
results:
type: array
items:
$ref: '#/components/schemas/Record_History_Event_V1'
nullable: false
totalNumberOfAvailableResults:
type: integer
format: int32
nullable: false
description: Total number of available batches
hasMoreResults:
type: boolean
nullable: false
Record_History_Event_V1:
type: object
required:
- individualIdentificationNumber
- recipientName
- recipientAccountNumber
- recipientAmount
- recipientTransactionType
- isOffsetAccountTransaction
properties:
individualIdentificationNumber:
type: string
description: Represents the unique identifier that a Company has given to a recipient.
nullable: true
maxLength: 15
recipientName:
type: string
description: Name of the recipient.
nullable: false
recipientAccountNumber:
type: string
description: The recipient's account number.
nullable: false
recipientAmount:
type: string
description: Amount of transaction.
nullable: false
recipientTransactionType:
type: string
description: Transaction type.
enum: [ credit, debit ]
nullable: false
isOffsetAccountTransaction:
type: boolean
description: Identifies the offset account transaction.
nullable: false
Historical_Batch_Identifier_V1:
type: string
description: Identifier of a Batch Historical Event's Record.
Offset_Account_Type_V1:
type: string
description: |
The offset account type. There are three possible values:
- Balance: Both Credit and Debit amounts need to equal
- Difference: The difference between the Debit and Credit amounts must be supplied by the offset account.
- Offset: Only Credit or Debit records can be done in a single batch. The amount will be sent/received from the offset account
nullable: false
enum:
- 'Balance'
- 'Difference'
- 'Offset'
CompanyName:
type: string
minLength: 1
maxLength: 16
description: Name of the ach company
example: K2 Industries
CompanyType:
type: string
description: Indicates the kind of batch for the ACH Company.
enum: [ 'Balance', 'Difference', 'Offset' ]
AchLimit:
type: string
minLength: 1
maxLength: 10
description: Ach company credit and debit limits in dollars.
example: "9999999999"
ContactName:
type: string
description: Name of the company's point of contact.
example: "Michael Scott"
ContactEmail:
type: string
description: E-mail address of the company's point of contact.
example: "michael.scott@dundermifflinpaper.com"
ContactPhone:
type: string
description: Phone number of the company's point of contact.
example: "1-212-555-6733"
Active:
type: boolean
description: Ach company status. An ach company is considered inactive when it is deleted.
InstitutionId:
type: string
format: uuid
description: institution uuid
OrganizationId:
type: string
format: uuid
description: organization uuid
UserId:
type: string
format: uuid
description: user uuid
CompanyId:
type: string
description: Unique identifier for the company for use in Banno's APIs
format: uuid
example: 9824beae-b942-4030-b098-41263fc0ef6d
BatchId:
type: string
format: uuid
description: batch uuid
ImmediateDestination:
type: string
description: Standard Federal Bank’s transit routing number.
minLength: 9
maxLength: 9
example: 012345678
ImmediateOrigin:
type: string
description: Company number (ex. IRS Federal Tax Identification Number).
minLength: 9
maxLength: 9
example: 987654321
ImmediateDestinationName:
type: string
description: Immediate destination name.
minLength: 1
maxLength: 23
example: My Bank
ImmediateOriginName:
type: string
description: Immediate origin name.
minLength: 1
maxLength: 23
example: My Company
ProcessedId:
type: string
format: uuid
description: processed ID uuid
BadRequest_Post_Create_ACH_Company_V0:
allOf:
- $ref: '#/components/schemas/Generic_StandardError_V1'
- type: object
required:
- errors
properties:
errors:
type: array
items:
type: object
properties:
message:
type: string
description: failed request details
enum:
- company name must be greater than 0 and no more than 16 characters
- companyId must be greater than 0 and no more than 10 characters
- company type is not valid
- credit limit is not valid
nullable: false
BadRequest_Put_Update_ACH_Company_V0:
allOf:
- $ref: '#/components/schemas/Generic_StandardError_V1'
- type: object
required:
- errors
properties:
errors:
type: array
items:
type: object
properties:
message:
type: string
description: failed request details
enum:
- companyId must be greater than 0 and no more than 10 characters
- update request must not be empty
NotFound_ACH_Company_V0:
type: object
required:
- errors
properties:
errors:
type: array
items:
type: object
properties:
message:
type: string
description: request error details
example:
message: 'companyId not found: cfc98bde-de71-49ed-bcf9-7f4eda9fb5fc'
Conflict_Post_Create_ACH_Company_V0:
type: object
required:
- errors
properties:
errors:
type: array
items:
type: object
properties:
message:
type: string
description: failed request details
example:
message: companyId 'A123456789' with name 'Dunder Mifflin LLC' already exists for institutionId 'eb0f60b9-7688-4227-b145-7e2401c00d11'
Success_Finish_Processing_V1:
type: object
required:
- processedId
description:
Processed ID of nacha file information.
properties:
processedId:
type: string
format: uuid
example: 9824beae-b942-4030-b098-41263fc0ef6d
Generic_StandardError_V1:
type: object
required:
- type
- title
- details
properties:
type:
description: |
The type of error.
type: string
example: 'jackhenry/operation-failed'
nullable: false
title:
description: |
The title of the error. This is a short, human readable summary of the error.
type: string
nullable: false
details:
description: |
An array of strings that provide additional details for the error message.
type: array
items:
type: string
nullable: false
Get_Details_Processed_Nacha_File:
type: object
required:
- processedId
- enterpriseUserId
- fileName
- decryptedFile
- processedTimeFiCoreZone
description:
Details of processed ACH batches
properties:
processedId:
type: string
description: processed ID
example: 9824beae-b942-4030-b098-41263fc0ef6d
enterpriseUserId:
type: string
description: enterprise user ID
example: 9824beae-b942-4030-b098-41263fc0ef6d
fileName:
type: string
description: name of nacha file
example: "390eba20-9d27-11e5-9e7a-60334b290407_2023-12-28_13-34_C.ach"
decryptedFile:
type: string
description: contents of nacha file
processedTimeFiCoreZone:
description:
Time in FI's core timezone
type: string
format: date-time
example: "2024-01-23T16:23:03.918Z"
Get_List_Processed_Nacha_File:
type: object
required:
- processedId
- enterpriseUserId
- fileName
- processedTimeFiCoreZone
- processedTimeUtc
- eligibleToSendToIntegrator
description:
Details of processed ACH batches
properties:
processedId:
nullable: false
type: string
description: processed ID
example: 9824beae-b942-4030-b098-41263fc0ef6d
enterpriseUserId:
nullable: false
type: string
description: enterprise user ID
example: 9824beae-b942-4030-b098-41263fc0ef6d
fileName:
nullable: false
type: string
description: name of nacha file
example: "390eba20-9d27-11e5-9e7a-60334b290407_2023-12-28_13-34_C.ach"
processedTimeFiCoreZone:
nullable: false
description:
Time in FI's core timezone
type: string
format: date-time
example: "2024-01-23T16:23:03.918-05:00"
processedTimeUtc:
nullable: false
description:
Time in UTC
type: string
format: date-time
example: "2024-01-23T21:23:03.918Z"
eligibleToSendToIntegrator:
nullable: false
type: boolean
description: Indicates if the processed file is eligible for transmission/re-transmission to the integrator. If true then you can show a UI element to call the `/transmit` endpoint. If this is false, do not prompt the user to transmit. False is returned if the file is either too old to be eligible for re-transmission or if the FI does not have an eligible integrator configured.
Supported_Standard_Entry_Codes:
type: object
required:
- secCodes
properties:
secCodes:
type: array
items:
type: string
example: ['PPD', 'CCD', 'CTX', 'WEB', 'TEL']
Have a Question?
- Have a how-to question? Seeing a weird error? Get help on StackOverflow.
- Register for the Developer Office Hours where we answer technical Q&A from the audience.
Did this page help you?
Why was this page helpful?
Why wasn't this page helpful?
Thank you for your feedback!
Last updated Thu Feb 19 2026