Details
Consumer API
>
API Reference
>
v0
>
ACH
>
Details
openapi: 3.0.0
info:
version: '0.0'
title: ACH (Automated clearing house)
tags:
- name: Batches
description: ACH
- name: NACHA
description: Endpoints pertaining to nacha files.
- name: Records
description: Endpoints pertaining to Batch records.
- name: Tax Payments
description: Specific endpoints for ACH tax payments.
- name: Companies
description: Endpoints pertaining to companies used for ACH.
- name: Entitlements
description: Entitlements of Business Users to view, issue, amend, or cancel Automatic Clearing House (ACH) transfers.
- name: Offset Accounts
description: Endpoints pertaining to ACH offset accounts.
servers:
- url: 'https://{API_ENVIRONMENT}/a/consumer/api/v0'
variables:
API_ENVIRONMENT:
default: digital.garden-fi.com
description: FI specific hostname
paths:
'/users/{userId}/ach/batches':
get:
tags:
- Batches
summary: Get ACH batches available for the given Banno user.
description: |
Batches are sorted by status in the following order:
Pending Approval, Uploaded, Initiated,Initiated & Reset, Processed, Processing, Ready.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- $ref: '#/components/parameters/Offset_Query_Param'
- $ref: '#/components/parameters/Batches_Sort_Parameter_V1'
- $ref: '#/components/parameters/Batches_Sort_Order_V1'
- in: query
name: limit
required: true
schema:
type: integer
format: int32
minimum: 1
maximum: 200
description: Number of results requested. The minimum value is 1 and the maximum value is 200.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Batches_V2'
"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 Unavailable
post:
tags:
- Batches
summary: Create an ACH batch.
description: |
This endpoint allows you to create an ACH batch with records. The ability to create a batch is dependent
on the 'createBatch' entitlement found on the `GET /v0/users/{userId}/ach/entitlements` endpoint.
Additional entitlements may also be necessary (example: 'createTaxPayment', 'createRestricted') based on
the type of batch to be created.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
- 'https://api.banno.com/consumer/auth/achbatches.readwrite'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Create_Ach_Request'
responses:
"201":
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/Create_Batch_Response_V1'
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V1'
"500":
description: Internal Service Error
"503":
description: Service Unavailable
'/users/{userId}/ach/batches/search':
post:
tags:
- Batches
summary: Get ACH batches available for the given Banno user.
description: |
Batches are sorted by status in the following order:
Pending Approval, Uploaded, Initiated,Initiated & Reset, Processed, Processing, Ready.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Batch_Search_V0'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
- 'https://api.banno.com/consumer/auth/achbatches.readwrite'
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Batches_V2'
"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 Unavailable
'/users/{userId}/ach/nacha/files':
get:
tags:
- NACHA
summary: Get the details of recently uploaded files by the user.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Uploaded_Nacha_Files_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V1'
"500":
description: Internal Service Error
"503":
description: Service Unavailable
post:
tags:
- NACHA
summary: Upload a NACHA file to create one or more ACH Batches.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
requestBody:
content:
multipart/form-data:
schema:
oneOf:
- $ref: '#/components/schemas/Nacha_File_Format'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
- 'https://api.banno.com/consumer/auth/achbatches.readwrite'
responses:
"201":
description: Success - Created. ACH batches will be created asynchronously.
content:
application/json:
schema:
$ref: '#/components/schemas/Created_Nacha_File_V1'
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"415":
description: Invalid Multipart Request
"422":
description: Unprocessable Received File
content:
application/json:
schema:
$ref: '#/components/schemas/Nacha_File_StandardError_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V1'
"500":
description: Internal Service Error
"503":
description: Service Unavailable
'/users/{userId}/ach/batches/history':
get:
tags:
- Batches
summary: Get the batch history available for the given Banno user.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- in: query
name: startDate
required: false
schema:
type: string
format: date
description: Start date sans TZ. Format will be in ISO 8601 ('YYYY-MM-DD').
example: "2020-01-01"
- in: query
name: endDate
required: false
schema:
type: string
format: date
description: End date sans TZ. Format will be in ISO 8601 ('YYYY-MM-DD').
example: "2020-01-01"
- 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)
- $ref: '#/components/parameters/Offset_Query_Param'
- in: query
name: limit
required: true
schema:
type: integer
format: int32
minimum: 1
maximum: 200
description: Number of results requested. The minimum value is 1 and the maximum value is 200.
- $ref: '#/components/parameters/Historical_Batches_Sort_Parameter_V1'
- $ref: '#/components/parameters/Historical_Sort_Order_V1'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
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 Unavailable
'/users/{userId}/ach/batches/{batchId}/effective-dates':
get:
tags:
- Batches
summary: Get the effective dates for the given batch.
description: |
The effective dates are the available dates which a batch can be scheduled for a desired delivery date, i.e.
date the funds will be transferred to the names/persons supplied on the records. The array of effectiveDates are all valid for non-recurring
batches. A recurring batch must have a startDate on or after the firstAvailableRecurringStartDate and must have a startDate on or before the lastAvailableRecurringStartDate.
Results are returned in ascending order.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- $ref: '#/components/parameters/Batch_Identifier_Param_V1'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Batch_Effective_Dates_V2'
"400":
description: Bad Request
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V1'
"500":
description: Internal Service Error
"503":
description: Service Unavailable
'/users/{userId}/ach/batches/{batchId}/offset-accounts':
get:
tags:
- Offset Accounts
summary: Get the offset accounts for a given batch.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- $ref: '#/components/parameters/Batch_Identifier_Param_V1'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Offset_Accounts_Array_V1'
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V1'
"404":
description: Not Found
"500":
description: Internal Service Error
"503":
description: Service Unavailable
'/users/{userId}/ach/companies/{companyDetailsId}/offset-accounts':
get:
tags:
- Offset Accounts
summary: Get the offset accounts for a given company.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- $ref: '#/components/parameters/Company_Details_Param_V0'
- in: query
name: returnTaxEligibleAccounts
required: true
schema:
type: boolean
description: Setting to true means when creating a tax payment and selecting the offset account, user's entitled accounts are returned if the selected ACH company is defined as balanced and does not have defined offset accounts.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Offset_Accounts_Array_V1'
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V1'
"404":
description: |
Not Found. Company not found. The temporary id may have expired.
To troubleshoot, load the company list using `GET /v0/users/{userId}/ach/companies` and try again.
"500":
description: Internal Service Error
"503":
description: Service Unavailable
'/users/{userId}/ach/offset-accounts':
get:
tags:
- Offset Accounts
summary: Get all enabled offset accounts for a given user.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Offset_Accounts_Object_V1'
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V1'
"500":
description: Internal Service Error
"503":
description: Service Unavailable
'/users/{userId}/ach/batches/history/{historicalBatchId}/records':
get:
tags:
- Records
summary: Get the Records for a given historical batch.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- 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
minimum: 1
maximum: 200
description: Number of results requested. The minimum value is 1 and the maximum value is 200.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
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/BadRequest_Get_Records_History_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V1'
"500":
description: Internal Service Error
"503":
description: Service Unavailable
'/users/{userId}/ach/batches/{batchId}':
get:
tags:
- Batches
summary: Get an ACH batch.
description: This endpoint allows you to get the details of a single active (non-historical) ACH batch by the batchId. Currently, this endpoint is NOT READY until HOST-1051 is complete.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- $ref: '#/components/parameters/Batch_Identifier_Param_V1'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Batch_V2'
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V1'
"404":
description: Not Found
"500":
description: Internal Service Error
put:
tags:
- Batches
summary: Update a batch.
description: |
This endpoint supports updating fields on a batch header.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- $ref: '#/components/parameters/Batch_Identifier_Param_V1'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Edit_Ach_Batch'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
- 'https://api.banno.com/consumer/auth/achbatches.readwrite'
responses:
"204":
description: No Content - Successful
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_Edit_Ach_V1'
"500":
description: Internal Service Error
"503":
description: Service Unavailable
"504":
description: Gateway Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
patch:
tags:
- Batches
summary: Modify the state of a batch.
description: |
This endpoint allows the modification of a batch's status to `Ready` or to `Initiated`. Below are guidelines to follow when updating the
status of a batch:
- `Ready`: A batch status transitioning to Ready from Initiated is being uninitiated. When uninitiating a batch, no batchRecord field is required.
* For CUs, a batch can transition from Pending Approval back to Ready if another user rejected batch initiation.
* A high-risk authorized JWT is NOT required.
- `Initiated`: A batch status transitioning to Initiated from Ready, Pending Approval, or Uploaded is being initiated.
* The payload of the initiate request is populated based on the ability `achApprovalsRequireInitiate`.
* For banks, this ability defaults to false which means the initiate payload will always
be populated when the batch status transitions from Ready -> Initiated or from Pending Approval -> Initiated.
* For CUs, this ability defaults to true which means the payload is populated when transitioning from
Ready -> Initiated or Ready -> Pending Approval. The payload will not be populated when the batch status
transitions from Pending Approval -> Initiated.
* For CUs, the batch status changes to Initiated if `initiateWithoutApproval` entitlement is set to true,
otherwise the batch status changes to Pending Approval.
* To send a same day ACH batch, the `sameDay` field must be set to true and the effectiveDate must be included on the batchRecord object.
* For recurring batches, the startDate must be before the expirationDate.
* A high-risk authorized JWT is required.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- $ref: '#/components/parameters/Batch_Identifier_Param_V1'
requestBody:
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/Batch_Patch_Initiate_Request_V1'
- $ref: '#/components/schemas/Batch_Patch_Uninitiate_Request_V1'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
- 'https://api.banno.com/consumer/auth/achbatches.readwrite'
responses:
"200":
description: OK. Successful response when a batch is initiated.
content:
application/json:
schema:
$ref: '#/components/schemas/Initiate_Batch_Result_V1'
"204":
description: No Content. Successful response when a batch is uninitiated.
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest_Initiate_Batch_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_Initiate_Batch_V1'
"409":
description: State transition for the batch is not supported.
"422":
description: Received payload is not supported.
"500":
description: Internal Service Error
"503":
description: Service Unavailable
"504":
description: Gateway Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
delete:
tags:
- Batches
summary: |
Delete a single batch synchronously.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- $ref: '#/components/parameters/Batch_Identifier_Param_V1'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
- 'https://api.banno.com/consumer/auth/achbatches.readwrite'
responses:
"204":
description: No Content. The API has successfully deleted the batch.
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V1'
"500":
description: Internal Service Error
"503":
description: Service Unavailable
'/users/{userId}/ach/batches/initiate':
patch:
tags:
- Batches
summary: Initiate multiple batches.
description: |
This endpoint supports the modification of multiple batches' statuses. In particular:
- `Initiate`: A batch status transitioning to Initiate from Ready, Pending Approval, or Uploaded is being initiated.
* The payload of the initiate request is populated based on the ability `achApprovalsRequireInitiate`.
* For banks, this ability defaults to false which means the initiate payload will always
be populated when the batch status transitions from Ready -> Initiate or from Pending Approval -> Initiate.
* For CUs, this ability defaults to true which means the payload is populated when transitioning from
Ready -> Initiate or Ready -> Pending Approval. The payload will not be populated when the batch status
transitions from Pending Approval -> Initiate.
* For CUs, the batch status changes to Initiate if `initiateWithoutApproval` entitlement is set to true,
otherwise the batch status changes to Pending Approval.
* To send a same day ACH batch, the `sameDay` field must be set to true and the effectiveDate must be included on the batchRecord object.
* For recurring batches, the startDate must be before the expirationDate.
* A high-risk authorized JWT is required.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
requestBody:
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Batches_Patch_Initiate_Request_V1'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
- 'https://api.banno.com/consumer/auth/achbatches.readwrite'
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Bulk_Initiate_Result_V1'
"400":
description: |
Bad Request. No batches were initiated. If the data field is present, human readable messages will indicate
what fields need to be corrected before trying again.
content:
application/json:
schema:
$ref: '#/components/schemas/Bulk_Initiate_Bad_Request_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_Initiate_Batch_V1'
"409":
description: State transition for the Batch is not supported.
"422":
description: Received payload is not supported.
"500":
description: Internal Service Error
"503":
description: Service Unavailable
"504":
description: Gateway Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
'/users/{userId}/ach/entitlements':
get:
tags:
- Entitlements
summary: Get ACH related Entitlements for a user.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
responses:
"200":
description: OK. Valid user with Entitlements found.
content:
application/json:
schema:
$ref: '#/components/schemas/ACH_Entitlements_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V1'
"500":
description: Internal Service Error
"503":
description: Service Unavailable
'/users/{userId}/ach/companies':
get:
tags:
- Companies
summary: Get a list of available companies that a user can insert into an ACH batch header.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Company_List_V0'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V1'
"500":
description: Internal Service Error
"503":
description: Service Unavailable
'/users/{userId}/ach/companies/{companyDetailsId}/standard-entry-codes':
get:
tags:
- Companies
summary: The standard-entry-codes endpoint returns an array of the secCodes available to be used by a company.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- $ref: '#/components/parameters/Company_Details_Param_V0'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Sec_Codes_Response_V0'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V1'
"404":
description: |
Not Found. Company not found. The temporary id may have expired.
To troubleshoot, load the company list using `GET /v0/users/{userId}/ach/companies` and try again.
"500":
description: Internal Service Error
"503":
description: Service Unavailable
delete:
tags:
- Batches
summary: Delete multiple ACH batches.
description: |
This endpoint allows you to bulk delete (up to 10) ACH batches along with their records. The ability to delete batches in bulk
is dependent on the 'deleteBatch' per batch entitlement found on the `GET /v0/users/{userId}/ach/batches/{batchId}` endpoint.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- $ref: '#/components/parameters/Batch_Id_Query_Param'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
- 'https://api.banno.com/consumer/auth/achbatches.readwrite'
responses:
"200":
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/Bulk_Delete_Result_V0'
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V1'
"500":
description: Internal Service Error
"503":
description: Service Unavailable
"504":
description: Gateway Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
'/users/{userId}/ach/batches/{batchId}/copy':
post:
tags:
- Batches
summary: Copy an existing ACH Batch.
description: This endpoint allows you to copy an existing ACH batch.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- $ref: '#/components/parameters/Batch_Identifier_Param_V1'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
- 'https://api.banno.com/consumer/auth/achbatches.readwrite'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Copy_Ach_Batch_Request'
responses:
"201":
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/Copy_Ach_Batch_Response'
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V1'
"404":
description: Not Found
"500":
description: Internal Service Error
'/users/{userId}/ach/batches/{batchId}/download':
get:
tags:
- Batches
summary: Get nacha file information.
description: This endpoint allows you to get nacha file information.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- $ref: '#/components/parameters/Batch_Identifier_Param_V1'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/NachaFileInfo_V0'
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V1'
"500":
description: Internal Service Error
'/users/{userId}/ach/batches/{batchId}/records':
get:
tags:
- Records
summary: Get the records for a given batch.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- $ref: '#/components/parameters/Batch_Identifier_Param_V1'
- $ref: '#/components/parameters/Records_Sort_Order_V1'
- $ref: '#/components/parameters/Records_Sort_By_Params_V1'
- 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
minimum: 1
maximum: 200
description: Number of results requested. The minimum value is 1 and the maximum value is 200.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Results_V1'
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V1'
"500":
description: Internal Service Error
"503":
description: Service Unavailable
post:
tags:
- Records
summary: Add an ACH record.
description: This endpoint allows you to add a new record or records to an existing ACH batch.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- $ref: '#/components/parameters/Batch_Identifier_Param_V1'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
- 'https://api.banno.com/consumer/auth/achbatches.readwrite'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Add_Ach_Request'
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Add_Ach_Records_Response'
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V1'
"500":
description: Internal Service Error
"503":
description: Service Unavailable
put:
tags:
- Records
summary: Edit an ACH record.
description: This endpoint allows you to edit existing ACH records.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- $ref: '#/components/parameters/Batch_Identifier_Param_V1'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
- 'https://api.banno.com/consumer/auth/achbatches.readwrite'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Edit_Ach_Request'
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Edit_Ach_Response'
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Records_StandardError_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_Edit_Ach_V1'
"500":
description: Internal Service Error
"503":
description: Service Unavailable
patch:
tags:
- Records
summary: Delete an ACH record.
description: This endpoint allows you to delete an existing record or records in an existing ACH batch.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- $ref: '#/components/parameters/Batch_Identifier_Param_V1'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
- 'https://api.banno.com/consumer/auth/achbatches.readwrite'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Delete_Ach_Request'
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Delete_Ach_Records_Response'
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V1'
"500":
description: Internal Service Error
"503":
description: Service Unavailable
'/users/{userId}/ach/import-transactions/file-formats':
get:
tags:
- Import Transactions
summary: Get list of available formats for importing ACH transactions.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Get_Import_Transactions_Formats_List_Response_V0'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V1'
"500":
description: Internal Service Error
"503":
description: Service Unavailable
post:
tags:
- Import Transactions
summary: Create custom import-transaction file-format.
description: |
Creates a custom file-format containing the mapping of a customer's transactions file column/fixed-position fields to the values in a CSV, Tab-delimited or FixedPosition file.
- The recipientId field is not required to be specified in a format or in the transaction file.
- There is some optionality<sup>1</sup> in place to specify the type of transaction for the recipient:
- nachaTranCode
OR
- recipientTransactionType, transactionTypeCreditVariable, transactionTypeDebitVariable, recipientAccountType, accountTypeCheckingVariable, and accountTypeSavingsVariable
<sup>1</sup>These two options are mutually exclusive and you may only include the fields for one of the options. The others should be omitted from the payload or set to null/zero values.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
- 'https://api.banno.com/consumer/auth/achbatches.readwrite'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Create_Import_Transactions_Format_Request_V0'
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Create_Import_Transactions_Format_Response_V0'
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V1'
"500":
description: Internal Service Error
"503":
description: Service Unavailable
'/users/{userId}/ach/import-transactions/file-formats/{fileFormatId}':
put:
tags:
- Import Transactions
summary: Edit a custom import-transaction file-format.
description: |
Updates a custom file-format containing the mapping of a customer's transactions file column/fixed-position fields to the values in a CSV, Tab-delimited or FixedPosition file.
- The recipientId field is not required to be specified in a format or in the transaction file.
- There is some optionality<sup>1</sup> in place to specify the type of transaction for the recipient:
- nachaTranCode
OR
- recipientTransactionType, transactionTypeCreditVariable, transactionTypeDebitVariable, recipientAccountType, accountTypeCheckingVariable, and accountTypeSavingsVariable
<sup>1</sup>These two options are mutually exclusive and you may only include the fields for one of the options. The others should be omitted from the payload or set to null/zero values.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- $ref: '#/components/parameters/Import_Transaction_Format_Identifier_Param_V0'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
- 'https://api.banno.com/consumer/auth/achbatches.readwrite'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Update_Import_Transactions_Format_Request_V0'
responses:
"204":
description: Success - No Content. Updated the file-format successfully.
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V1'
"500":
description: Internal Service Error
"503":
description: Service Unavailable
delete:
tags:
- Import Transactions
summary: Delete a custom import-transaction file-format.
description: Deletes an existing custom file-format containing the mapping of a customer's transactions file column/fixed-position fields to the values in a CSV, Tab-delimited or FixedPosition file.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- $ref: '#/components/parameters/Import_Transaction_Format_Identifier_Param_V0'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
- 'https://api.banno.com/consumer/auth/achbatches.readwrite'
responses:
"204":
description: Success - No Content. Deleted the file-format successfully.
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V1'
"500":
description: Internal Service Error
"503":
description: Service Unavailable
'/users/{userId}/ach/import-transactions':
post:
tags:
- Import Transactions
summary: Import transactions into a new ACH batch.
description: Upload a file containing ACH recipient transaction records in CSV, Tab-delimited or FixedPosition format.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
- 'https://api.banno.com/consumer/auth/achbatches.readwrite'
requestBody:
content:
multipart/form-data:
schema:
oneOf:
- $ref: '#/components/schemas/Import_Transactions_Delimited_File_V0'
- $ref: '#/components/schemas/Import_Transactions_FixedPosition_File_V0'
responses:
"204":
description: Success - No Content. Created the batch and imported the file records successfully.
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V1'
"500":
description: Internal Service Error
"503":
description: Service Unavailable
'/users/{userId}/ach/import-transactions/{batchId}':
post:
tags:
- Import Transactions
summary: Import transactions into an existing ACH batch.
description: Upload a file containing ACH recipient transaction records in delimited or fixed position format.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- $ref: '#/components/parameters/Batch_Identifier_Param_V1'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
- 'https://api.banno.com/consumer/auth/achbatches.readwrite'
requestBody:
content:
multipart/form-data:
schema:
oneOf:
- $ref: '#/components/schemas/Import_Transactions_Delimited_File_V0'
- $ref: '#/components/schemas/Import_Transactions_FixedPosition_File_V0'
responses:
"204":
description: Success - No Content - imported the file records successfully.
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V1'
"500":
description: Internal Service Error
"503":
description: Service Unavailable
'/users/{userId}/tax-authorities':
get:
tags:
- Tax Payments
summary: Get available tax authorities for ACH tax payments.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
responses:
"200":
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Tax_Authorities_V1'
"400":
description: Bad Request
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V1'
"500":
description: Internal Service Error
"503":
description: Service Unavailable
'/federal-tax-codes':
get:
tags:
- Tax Payments
summary: Get available federal tax codes for ACH tax payments.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
responses:
"200":
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Federal_Tax_Code_v1'
"400":
description: Bad Request
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V1'
"500":
description: Internal Service Error
"503":
description: Service Unavailable
'/users/{userId}/receiving-banks':
get:
tags:
- Tax Payments
summary: Get available receiving banks for federal, and state tax payments state banks will be different per user.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
responses:
"200":
description: OK
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Receiving_Banks_V1'
"400":
description: Bad Request
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V1'
"500":
description: Internal Service Error
"503":
description: Service Unavailable
'/users/{userId}/ach/tax-payment':
post:
tags:
- Tax Payments
summary: Create an ACH tax payment batch.
description: This endpoint allows you to create an ACH tax payment batch.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
- 'https://api.banno.com/consumer/auth/achbatches.readwrite'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Create_Ach_Tax_Request'
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Create_Ach_Tax_Response'
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_Create_TaxPayment_V1'
"404":
description: |
Not Found. Company not found. The temporary id may have expired.
To troubleshoot, load the company list using `GET /v0/users/{userId}/ach/companies` and try again.
"500":
description: Internal Service Error
"503":
description: Service Unavailable
'/users/{userId}/ach/tax-payment/{batchId}':
put:
tags:
- Tax Payments
summary: Edit a specific ACH tax payment.
description: This endpoint allows you to edit an ACH tax payment.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- $ref: '#/components/parameters/Batch_Identifier_Param_V1'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
- 'https://api.banno.com/consumer/auth/achbatches.readwrite'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Edit_Ach_Tax_Request'
responses:
"204":
description: No Content - Successful
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest_Edit_TaxPayment_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V1'
"404":
description: |
Not Found. Company not found. The temporary id may have expired.
To troubleshoot, load the company list using `GET /v0/users/{userId}/ach/companies` and try again.
"500":
description: Internal Service Error
'/users/{userId}/ach/records':
post:
tags:
- Records
summary: Search ACH batch records.
description: |
This endpoint allows you to search ACH batch records available for the given Banno user. This is implemented as a POST,
due to the sensitive nature of some of the search parameters (specifically the Name). It is more secure to send those
search terms in a request body than as query parameters.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- $ref: '#/components/parameters/Offset_Query_Param'
- in: query
name: limit
required: true
schema:
type: integer
format: int32
minimum: 1
maximum: 200
description: Number of results requested. The minimum value is 1 and the maximum value is 200.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
- 'https://api.banno.com/consumer/auth/achbatches.readwrite'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Search_Ach_Records_Request'
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Records_Sort_Object_V0'
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V1'
"404":
description: |
Not Found
"500":
description: Internal Service Error
"503":
description: Service Unavailable
'/users/{userId}/ach/batches/{batchId}/download/pdf':
get:
tags:
- Batches
summary: Download a batch as a PDF formatted file.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- $ref: '#/components/parameters/Batch_Identifier_Param_V1'
- $ref: '#/components/parameters/Batches_Sort_By_PDF_Params_V1'
- $ref: '#/components/parameters/Batches_Sort_Order_V1'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/achbatches.readonly'
responses:
"200":
description: A PDF file
content:
application/pdf:
schema:
type: string
format: binary
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Forbidden_V1'
"500":
description: Internal Service Error
components:
securitySchemes:
OpenID_Connect:
type: openIdConnect
description: OpenID Connect - Discovery endpoint will be institution specific
openIdConnectUrl: >-
https://digital.garden-fi.com/a/consumer/api/v0/oidc/.well-known/openid-configuration
parameters:
User_Identifier_Param_V1:
in: path
name: userId
required: true
description: Unique Identifier of a Banno User
schema:
type: string
format: uuid
Batch_Identifier_Param_V1:
in: path
name: batchId
required: true
description: Unique Identifier of a Batch
schema:
type: string
Company_Details_Param_V0:
in: path
name: companyDetailsId
required: true
description: A temporary unique identifier of an ACH company that comes from `GET /v0/users/{userId}/ach/companies`
schema:
type: string
Import_Transaction_Format_Identifier_Param_V0:
in: path
name: fileFormatId
required: true
description: Unique identifier of a custom import-transaction file-format
schema:
type: string
format: uuid
Batch_Id_Query_Param:
in: query
name: batchId
description: |
Unique identifier(s) of the ACH batch(es) to be deleted. A minimum of 1 batch id must be present with a maximum 10 batch ids allowed.
required: true
schema:
type: array
items:
type: string
maxItems: 10
minItems: 1
Offset_Query_Param:
in: query
name: offset
required: true
schema:
type: integer
format: int32
minimum: 1
description: |
The number that determines the start index of the returned results within the overall result set. The minimum value is 1.
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 1, as this is the index of the first result.
* Subsequent requests would add 1 to the total number of results.
* Once the hasMoreResults property is false in a response, there are no more results to retrieve.
Example with 126 total results:
* The first request is made with an offset of 1 and limit of 100.
* The response contains an array with 100 items and a hasMoreResults value of true.
* The second request is made with an offset of 101 and limit of 100.
* The response contains an array with 26 items and a hasMoreResults value of false.
Batches_Sort_Parameter_V1:
in: query
name: sortBy
required: false
schema:
type: string
default: Status
enum: [Name, Status, TotalCredits, TotalDebits]
Batches_Sort_Order_V1:
in: query
name: sortOrder
required: false
schema:
type: string
default: ASC
enum: [ASC, DESC]
Records_Sort_Order_V1:
in: query
name: sortOrder
required: false
schema:
type: string
default: DESC
enum: [ASC, DESC]
Batches_Sort_By_PDF_Params_V1:
in: query
name: sortBy
required: false
schema:
type: string
default: recipientName
enum: [ recipientName, recipientId, accountNumber, routingNumber, amount, debitCredit, status ]
Records_Sort_By_Params_V1:
in: query
name: sortBy
required: false
schema:
type: string
default: sequenceNumber
enum: [ recipientName, recipientId, accountNumber, routingNumber, amount, debitCredit, status, sequenceNumber]
Historical_Batches_Sort_Parameter_V1:
in: query
name: sortBy
required: false
schema:
type: string
default: ProcessedDate
enum: [Name, ProcessedDate, TotalCredits, TotalDebits]
Historical_Sort_Order_V1:
in: query
name: sortOrder
required: false
schema:
type: string
default: DESC
enum: [ASC, DESC]
schemas:
Batch_Search_V0:
type: object
description: Search Parameters for batches. If none are provided, the defaults will be used.
properties:
offset:
type: integer
format: int32
minimum: 1
default: 1
description: |
The number that determines the start index of the returned results within the overall result set. The minimum value is 1.
nullable: true
limit:
type: integer
format: int32
minimum: 1
maximum: 200
default: 200
description: |
The number of results requested. The minimum value is 1 and the maximum value is 200.
nullable: true
sortBy:
type: string
default: status
enum: [name, status, totalCredits, totalDebits, processedDate, effectiveDate]
description: |
The field to sort the results by. The default value is status.
nullable: true
sortOrder:
type: string
enum: [asc, desc]
default: asc
description: |
The order in which the results are sorted. The default value is asc.
nullable: true
filters:
$ref: '#/components/schemas/Batch_Search_Filters_V0'
Batch_Search_Filters_V0:
type: object
properties:
secCodes:
type: array
items:
type: string
enum: [PPD, CCD, CTX, WEB, TEL]
description: |
The Standard Entry Class (SEC) codes to filter by.
nullable: true
statuses:
type: array
items:
type: string
enum: [Ready, PendingApproval]
nullable: true
description: |
The statuses to filter by.
effectiveDate:
$ref: '#/components/schemas/Date_Range_V0'
description: |
The effective date range to filter by.
nullable: true
batchName:
type: string
description: |
The batch name to filter by.
example: "payroll"
nullable: true
achCompanyName:
type: string
description: |
The ACH company name to filter by.
example: "abc plumbing"
nullable: true
achCompanyId:
type: string
example: "555551234"
description: |
The ACH company ID to filter by.
nullable: true
credits:
$ref: '#/components/schemas/Amount_Range_V0'
debits:
$ref: '#/components/schemas/Amount_Range_V0'
Amount_Range_V0:
type: object
properties:
min:
type: string
pattern: '^\d{1,12}(.\d{2})?$'
example: "100.00"
description: |
The minimum amount.
nullable: true
max:
type: string
pattern: '^\d{1,12}(.\d{2})?$'
example: "200.00"
description: |
The maximum amount.
nullable: true
Date_Range_V0:
type: object
properties:
startDate:
type: string
format: YYYY-MM-DD
example: "2006-01-02"
description: |
The start date of the range.
nullable: true
endDate:
type: string
format: YYYY-MM-DD
example: "2007-01-02"
description: |
The end date of the range.
nullable: true
Batch_Entitlements_V0:
type: object
required:
- downloadBatch
- editBatchName
- editAchCompanyId
- editEntryDescription
- editDiscretionaryData
- recurringSchedule
- importTransactions
- initiateBatch
- uninitiateBatch
- initiateWithoutApproval
- deleteBatch
- editRecipientName
- editRecipientId
- editRecipientAddenda
- editRecipientRoutingNumber
- editRecipientAccountType
- editRecipientAccountNumber
- editRecipientAmount
- editRecipientTransactionType
- editRecipientStatus
- editRecipientPrenote
- editTaxCode
- editTaxPeriod
- editTaxSubAmounts
- editTaxSubcategories
- editTaxOffsetAccountNumber
- editTaxOffsetAccountType
- editTaxAuthority
- editRestricted
- deleteRecord
- createNewCreditRecord
- createNewDebitRecord
- sameDayEligible
- copyBatch
- editPendingApproval
properties:
downloadBatch:
type: boolean
example: true
description: |
Indicates if the user has the ability to download the batch.
nullable: false
editBatchName:
type: boolean
example: true
description: |
Indicates whether the user can edit the batch name.
nullable: false
editAchCompanyId:
type: boolean
example: true
nullable: false
description: |
Indicates if the user can edit the ACH company ID.
editEntryDescription:
type: boolean
example: true
nullable: false
description: |
Indicates whether the user can edit the entry description for the batch.
editDiscretionaryData:
type: boolean
example: true
nullable: false
description: |
Indicates whether the user can edit the discretionary data field.
recurringSchedule:
type: boolean
example: true
nullable: false
description: |
Indicates if the user has the ability to create / edit a recurring schedule.
importTransactions:
type: boolean
example: true
nullable: false
description: |
Indicates if the user has the ability to import recipient transactions.
initiateBatch:
type: boolean
example: true
nullable: false
description: |
Indicates if the batch can be initiated.
uninitiateBatch:
type: boolean
example: true
nullable: false
description: |
Indicates if the batch can be uninitiated.
initiateWithoutApproval:
type: boolean
example: true
nullable: false
description: |
Indicates if the batch requires additional approval.
For CUs, the batch status is changed to initiated if this entitlement is set to true which
means it does not require additional approval, otherwise the batch status is changed to Pending approval
which means it requires another user to approve the batch
deleteBatch:
type: boolean
example: true
nullable: false
description: |
Indicates if the batch can be deleted.
editRecipientName:
type: boolean
example: true
nullable: false
description: |
Indicates if the recipient name can be edited.
editRecipientId:
type: boolean
example: true
nullable: false
description: |
Indicates if the recipient id can be edited.
editRecipientAddenda:
type: boolean
example: true
nullable: false
description: |
Indicates if the user can edit the addenda field for a recipient.
editRecipientRoutingNumber:
type: boolean
example: true
nullable: false
description: |
Indicates if the routing number can be edited.
editRecipientAccountType:
type: boolean
example: true
nullable: false
description: |
Indicates if the user can edit the account type of a recipient.
editRecipientAccountNumber:
type: boolean
example: true
nullable: false
description:
Indicates whether the user can edit the recipient account number.
editRecipientAmount:
type: boolean
example: true
nullable: false
description:
Indicates if the user can edit the amount of a recipient.
editRecipientTransactionType:
type: boolean
example: true
nullable: false
description: |
Indicates whether the user can edit the transaction type of a recipient.
editRecipientStatus:
type: boolean
example: true
nullable: false
description: |
Indicates if the recipient status can be edited.
editRecipientPrenote:
type: boolean
example: true
nullable: false
description: |
Indicates whether the user can edit the prenote field for a recipient.
editTaxCode:
type: boolean
example: true
nullable: false
description: |
Indicates whether the user can edit the tax code for a tax payment.
editTaxPeriod:
type: boolean
example: true
nullable: false
description:
Indicates if the user can edit the tax period.
editTaxSubAmounts:
type: boolean
example: true
nullable: false
description: |
Indicates whether the user can edit the sub-amounts of a tax payment.
editTaxSubcategories:
type: boolean
example: true
nullable: false
description: |
Indicates if the user can edit the tax subcategories for a tax payment.
editTaxOffsetAccountNumber:
type: boolean
example: true
nullable: false
description:
Indicates whether the user can edit the tax offset account number.
editTaxOffsetAccountType:
type: boolean
example: true
nullable: false
description:
Indicates if the user can edit the tax offset account type.
editTaxAuthority:
type: boolean
example: true
nullable: false
description: |
Indicates if the user can edit the tax authority for a tax payment.
editRestricted:
type: boolean
example: true
nullable: false
description: |
Indicates if the user has the ability to edit the restricted field.
deleteRecord:
type: boolean
example: true
nullable: false
description:
Indicates if the user has the ability to delete a record from the batch.
createNewCreditRecord:
type: boolean
example: true
nullable: false
description:
Indicates if the user has the ability to change the transaction type to credit for the batch.
createNewDebitRecord:
type: boolean
example: true
nullable: false
description:
Indicates if the user has the ability to change the transaction type to debit for the batch.
sameDayEligible:
type: boolean
example: true
nullable: false
description: |
Indicates if the user has the ability to initiate an ACH batch for same day processing.
copyBatch:
type: boolean
example: true
nullable: false
description: |
Indicates if the user has the ability to copy the ACH batch.
editPendingApproval:
type: boolean
example: true
nullable: false
description: |
Indicates if the user has the ability to edit the pending approval status of the batch.
Note: This is a Banks only entitlement as the approval system is different for CUs.
CUs will always have this entitlement set to false.
Batch_V2:
type: object
required:
- id
- totalDebits
- totalCredits
- batchName
- secCode
- entryDescription
- achCompanyName
- achCompanyId
- status
- discretionaryData
- companyType
- taxBatch
- preNote
- restricted
- isRecurring
- entitlements
- recurringInformation
- taxAuthority
- effectiveDate
- sameDay
properties:
id:
type: string
description: Unique identifier of a batch.
nullable: false
totalDebits:
type: string
description: Total debits of the batch.
format: UScurrency
example: "100.00"
nullable: false
totalCredits:
type: string
description: Total credits of the batch.
format: UScurrency
example: "100.00"
nullable: false
batchName:
type: string
description: Name of the batch.
example: "Batch 1"
nullable: false
secCode:
type: string
maxLength: 3
description: Standard Entry Code (SEC) for the ACH batch.
example: "PPD"
nullable: false
entryDescription:
type: string
description: Description of the batch.
nullable: false
achCompanyName:
type: string
description: Name of the ACH Company, i.e. company that performed the batch.
example: "ACH Company Name"
nullable: false
achCompanyId:
type: string
description: Id of the ACH Company of the batch.
example: "1123456780"
nullable: false
status:
type: string
enum: [ 'PendingApproval', 'Ready', 'Uploaded', 'Processed', 'Initiated', 'Processing', 'Failed', 'Expired' ]
description: Status of the batch.
example: "PendingApproval"
nullable: false
discretionaryData:
type: string
description: Additional description of the batch.
example: "Discretionary Data"
nullable: false
companyType:
type: string
description: Indicates the type of batch for the ACH Company.
enum: [ 'Balance', 'Difference', 'Offset', 'Unknown' ]
example: "Balance"
nullable: false
taxBatch:
type: boolean
description: True if the batch is a tax batch, false if not.
example: false
nullable: false
preNote:
type: boolean
description: True if the batch is a prenote, false if not.
example: false
nullable: false
restricted:
type: boolean
description: True if the batch is restricted, false if not.
example: true
nullable: false
isRecurring:
type: boolean
description: True if the batch is sent out on a recurring schedule, false if not. This is identical to checking if recurringInformation is not null.
nullable: false
recurringInformation:
nullable: true
oneOf:
- $ref: '#/components/schemas/Batch_Recurring_Information_Weekly_V1'
- $ref: '#/components/schemas/Batch_Recurring_Information_BiWeekly_V1'
- $ref: '#/components/schemas/Batch_Recurring_Information_SemiMonthly_V1'
- $ref: '#/components/schemas/Batch_Recurring_Information_Monthly_V1'
- $ref: '#/components/schemas/Batch_Recurring_Information_Quarterly_V1'
- $ref: '#/components/schemas/Batch_Recurring_Information_SemiAnnually_V1'
- $ref: '#/components/schemas/Batch_Recurring_Information_Annually_V1'
taxAuthority:
type: string
maxLength: 2
example: 'FD'
description: When `taxBatch` is true, taxAuthority indicates which authority the batch is paying taxes.
nullable: true
effectiveDate:
type: string
description: Date the batch was initiated on. Note, Banks will only show the effective date on initiated _recurring_ batches. Credit Unions (CUs) will show the effective date on all batches that have been initiated. Format will be in ISO 8601 ('YYYY-MM-DD').
format: date
example: "2020-01-01"
nullable: 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
entitlements:
$ref: '#/components/schemas/Batch_Entitlements_V0'
pendingApproval:
type: boolean
description: Flag that indicates the pendingApproval status of the batch. Only available for banks
example: false
nullable: true
Batches_V2:
type: object
required:
- results
- totalNumberOfAvailableResults
- hasMoreResults
properties:
results:
type: array
items:
$ref: '#/components/schemas/Batch_V2'
nullable: false
totalNumberOfAvailableResults:
type: integer
format: int32
nullable: false
description: Total number of available batches.
hasMoreResults:
type: boolean
nullable: false
description: True if there are more batches available, false if not.
Batch_History_V1:
type: object
required:
- results
- hasMoreResults
- totalNumberOfAvailableResults
properties:
results:
type: array
items:
$ref: '#/components/schemas/Batch_History_Event_V1'
nullable: false
description: Sorted by ascending processedDate
hasMoreResults:
type: boolean
nullable: false
description: True if there are more historical batches available, false if not.
totalNumberOfAvailableResults:
type: integer
format: int32
nullable: false
description: Total number of available historical batches.
Results_V1:
type: object
required:
- results
- totalNumberOfAvailableResults
- hasMoreResults
properties:
results:
type: array
items:
$ref: '#/components/schemas/Record_V1'
description: List of records.
totalNumberOfAvailableResults:
type: integer
format: int32
nullable: false
description: Total number of records in a batch.
hasMoreResults:
type: boolean
nullable: false
description: True if there are more records available, false if not.
Forbidden_V1:
type: object
required:
- error
properties:
error:
type: number
enum:
- 998
- 999
- 1000
description: >
998 - Enterprise JWT is not supported <br>
999 - user is not allowed to perform the operation <br>
1000 - user is not supported
Forbidden_Create_TaxPayment_V1:
type: object
required:
- error
properties:
error:
type: number
enum: [999, 997]
description: >
999 - user is not allowed to perform the operation <br>
997 - The CompanyId provided is not allowed to create tax payments.
Forbidden_Edit_Ach_V1:
type: object
required:
- error
properties:
error:
type: number
enum: [999, 996, 997]
description: >
999 - user is not allowed to perform the operation <br>
996 - editing prenote batch is not allowed <br>
997 - editing prenote record is not allowed
Forbidden_Initiate_Batch_V1:
type: object
required:
- errorCode
properties:
errorCode:
type: number
enum: [33, 998, 999, 1000, 4047]
description: >
33 - Did not supply a High Risk-permitted JWT (for initiating a batch). <br>
998 - Enterprise JWT is not supported. <br>
999 - User is not allowed to perform the operation. <br>
1000 - User is not supported. <br>
4047 - User is not allowed to initiate a batch that they created.
Initiate_Batch_Result_V1:
type: object
required:
- confirmationNumber
properties:
confirmationNumber:
description: If the batch status was successfully updated to initiated, a confirmation number will be returned.
type: string
nullable: true
BadRequest_Initiate_Batch_V1:
type: object
required:
- errorCode
- message
- title
- details
properties:
errorCode:
$ref: '#/components/schemas/Initiate_Batch_Error_Code_V1'
message:
type: string
description: Human readable message of the error code.
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
Record_V1:
type: object
nullable: false
required:
- recordId
- recipientName
- recipientId
- recipientAmount
- recipientAccountType
- recipientAccountNumber
- recipientRoutingNumber
- recipientTransactionType
- recipientAddenda
- status
- preNote
- isOffsetAccountTransaction
- taxCode
- taxPayerId
- taxPeriod
- taxSubOne
- taxSubTwo
- taxSubThree
- offsetAccountType
- offsetAccountNumber
properties:
recordId:
type: string
description: Required alphanumeric id of the record, in the batch, to be edited.
nullable: false
recipientName:
type: string
description: Alphanumeric value that represents the recipient (the person receiving the credit/debit).
nullable: false
example: "Recipient Name"
recipientId:
type: string
description: Represents the unique id the company has for the recipient.
nullable: true
recipientAmount:
type: string
description: Amount to credit or debit from recipient.
format: UScurrency
example: "100.00"
maximum: 99999999.99
nullable: false
recipientAccountType:
type: string
description: Recipient's account type.
enum:
- checking
- savings
- loan
- general_ledger
nullable: false
example: "checking"
recipientAccountNumber:
type: string
description: Number of account.
nullable: false
recipientRoutingNumber:
type: string
description: 9 digit routing number of recipient.
minLength: 9
maxLength: 9
example: "923456789"
nullable: false
recipientTransactionType:
type: string
description: Transaction type.
enum: [ credit, debit ]
nullable: false
example: "credit"
recipientAddenda:
type: string
maxLength: 80
description: Provides additional information about the record.
nullable: true
status:
type: string
enum:
- active
- hold
example: "active"
description: Status of the record.
nullable: false
preNote:
type: boolean
description: Send 'true' if the record is a prenote. Send 'false' if the record is not a prenote.
nullable: false
taxCode:
maxLength: 5
type: string
nullable: true
taxPayerId:
maxLength: 15
type: string
nullable: true
taxPeriod:
type: string
format: date
example: "2006-01-02"
description: The end date of the tax period. Format will be in ISO 8601 ('YYYY-MM-DD').
maxLength: 10
nullable: true
taxSubOne:
$ref: '#/components/schemas/Tax_Subcategory'
taxSubTwo:
$ref: '#/components/schemas/Tax_Subcategory'
taxSubThree:
$ref: '#/components/schemas/Tax_Subcategory'
offsetAccountType:
type: string
description: The account type of the account to be debited for the tax payment.
enum: [Checking, Savings]
example: "Checking"
nullable: true
offsetAccountNumber:
type: string
description: The masked offset account number used for the tax payment.
nullable: true
isOffsetAccountTransaction:
type: boolean
description: Identifies whether this record is an offset account transaction.
nullable: false
Batch_History_Event_V1:
type: object
required:
- id
- batchId
- batchName
- achCompanyName
- secCode
- processedDate
- effectiveDate
- totalCredits
- totalDebits
- entryDescription
- taxBatch
- preNote
- restricted
- recurringInformation
- nsfStatus
- nsfLastRun
- sameDay
- confirmationNumber
properties:
id:
type: string
description: Identifies a specific history event for a batch
nullable: false
batchId:
type: string
description: Unique identifier of a batch. For credit unions this will be the same as the id.
nullable: false
batchName:
type: string
description: Name of the batch.
nullable: false
example: "Batch 1"
achCompanyName:
type: string
description: Name of the ACH Company, i.e. company that performed the batch.
nullable: false
example: "ACH Company Name"
secCode:
type: string
maxLength: 3
description: Standard Entry Code (SEC) of the batch.
nullable: false
example: "PPD"
processedDate:
type: string
description: Date the ACH batch was initiated. Format will be in ISO 8601 ('YYYY-MM-DD').
format: date
nullable: false
example: "2020-01-01"
effectiveDate:
type: string
description: Date the batch was initiated. Format will be in ISO 8601 ('YYYY-MM-DD').
example: "2020-01-01"
format: date
nullable: true
totalDebits:
type: string
description: Total debits of the batch.
nullable: false
format: UScurrency
example: "100.00"
totalCredits:
type: string
description: Total credits of the batch.
nullable: false
format: UScurrency
example: "100.00"
entryDescription:
type: string
description: Description of the batch.
nullable: false
example: "Batch 1 Description"
taxBatch:
type: boolean
description: True if the batch is a tax batch, false if not.
example: true
nullable: false
preNote:
type: boolean
description: True if the batch is a prenote, false if not.
example: true
nullable: false
restricted:
type: boolean
description: True if the batch is restricted, false if not.
example: true
nullable: false
recurringInformation:
nullable: true
oneOf:
- $ref: '#/components/schemas/Batch_Recurring_Information_Weekly_V1'
- $ref: '#/components/schemas/Batch_Recurring_Information_BiWeekly_V1'
- $ref: '#/components/schemas/Batch_Recurring_Information_SemiMonthly_V1'
- $ref: '#/components/schemas/Batch_Recurring_Information_Monthly_V1'
- $ref: '#/components/schemas/Batch_Recurring_Information_Quarterly_V1'
- $ref: '#/components/schemas/Batch_Recurring_Information_SemiAnnually_V1'
- $ref: '#/components/schemas/Batch_Recurring_Information_Annually_V1'
nsfStatus:
type: string
description: The NSF(non-sufficient funds) status of the batch.
example: sufficient
nullable: true
enum:
- sufficient
- insufficient
- pending_queued
- pending_running
- error
nsfLastRun:
type: string
format: date-time
description: The timestamp of the last NSF(non-sufficient funds) check. Format will be 'YYYY-MM-DD HH:MM:SS'.
example: "2023-09-26T15:19:19.999525-05:00"
nullable: true
sameDay:
type: boolean
nullable: false
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.
confirmationNumber:
type: string
nullable: false
description: The number confirming the ACH batch was successfully initiated.
Batch_Identifier_V1:
type: string
description: Unique Identifier of a Batch
Batch_Effective_Dates_V1:
type: array
items:
type: string
format: date
description: Format will be in ISO 8601 ('YYYY-MM-DD').
example: "2020-01-01"
Batch_Effective_Dates_V2:
type: object
required:
- singleInitiationEffectiveDates
- firstAvailableRecurringStartDate
- lastAvailableRecurringStartDate
properties:
singleInitiationEffectiveDates:
type: array
items:
description: A list of effective dates available for non-recurring batches. Format will be in ISO 8601 ('YYYY-MM-DD').
type: string
nullable: false
format: date
example: "2020-01-01"
firstAvailableRecurringStartDate:
type: string
format: date
description: This is the earliest date available to select for the start date of a recurring batch. Format will be in ISO 8601 ('YYYY-MM-DD').
nullable: false
example: "2020-01-01"
lastAvailableRecurringStartDate:
type: string
format: date
description: This is the last date available to select for the start date of a recurring batch. Format will be in ISO 8601 ('YYYY-MM-DD').
nullable: false
example: "2020-01-01"
sameDayEffectiveDate:
type: string
format: date
description: The effective date of a Same Day ACH batch (this date will also be available on the list of `singleInitiationEffectiveDates`). If batch is not same day eligible, the `sameDayEffectiveDate` will not be returned on response. Format will be in ISO 8601 ('YYYY-MM-DD').
example: "2020-01-01"
Created_Nacha_File_V1:
type: object
required:
- filename
- count
properties:
filename:
type: string
description: File's name.
nullable: false
example: "Nacha File.txt"
count:
type: number
description: The number of batches that were extracted.
nullable: false
minimum: 1
Batch_Recurring_Information_Weekly_V1:
type: object
description: |
**WEEKLY** requires `frequency`, `startDate`, and `weekday` to be present.
required:
- frequency
- weekday
- startDate
- expirationDate
- nextScheduledDate
- status
properties:
frequency:
type: string
enum:
- 'WEEKLY'
description: The frequency the batch will repeat.
nullable: false
weekday:
nullable: false
oneOf:
- $ref: '#/components/schemas/Batch_Recurring_Information_V1_Weekdays'
startDate:
type: string
format: date
description: Start date sans TZ. Format will be in ISO 8601 ('YYYY-MM-DD').
example: "2020-01-01"
nullable: false
expirationDate:
type: string
format: date
description: Expiration date sans TZ. Format will be in ISO 8601 ('YYYY-MM-DD').
example: "2020-01-01"
nullable: true
nextScheduledDate:
type: string
format: date
description: Next scheduled date sans TZ. Format will be in ISO 8601 ('YYYY-MM-DD').
example: "2020-01-01"
nullable: true
status:
nullable: true
oneOf:
- $ref: '#/components/schemas/Batch_Recurring_Information_V1_Status'
Batch_Recurring_Information_BiWeekly_V1:
type: object
description: |
**BIWEEKLY** requires `frequency`, `startDate`, and `weekday` to be present.
required:
- frequency
- weekday
- startDate
- expirationDate
- nextScheduledDate
- status
properties:
frequency:
type: string
enum:
- 'BIWEEKLY'
description: The frequency the batch will repeat.
nullable: false
weekday:
nullable: false
oneOf:
- $ref: '#/components/schemas/Batch_Recurring_Information_V1_Weekdays'
startDate:
type: string
format: date
description: Start date sans TZ. Format will be in ISO 8601 ('YYYY-MM-DD').
example: "2020-01-01"
nullable: false
expirationDate:
type: string
format: date
description: Expiration date sans TZ. Format will be in ISO 8601 ('YYYY-MM-DD').
example: "2020-01-01"
nullable: true
nextScheduledDate:
type: string
format: date
description: Next scheduled date sans TZ. Format will be in ISO 8601 ('YYYY-MM-DD').
example: "2020-01-01"
nullable: true
status:
nullable: true
oneOf:
- $ref: '#/components/schemas/Batch_Recurring_Information_V1_Status'
Batch_Recurring_Information_SemiMonthly_V1:
type: object
description: |
**SEMIMONTHLY** requires `frequency`,`startDate`, `firstDay` to be present, plus either `secondDay` set or `lastDayOfMonth` is true.
required:
- frequency
- startDate
- firstDay
- secondDay
- lastDayOfMonth
- expirationDate
- nextScheduledDate
- status
properties:
frequency:
type: string
enum:
- 'SEMIMONTHLY'
description: The frequency the batch will repeat.
nullable: false
startDate:
type: string
format: date
description: Start date sans TZ. Format will be in ISO 8601 ('YYYY-MM-DD').
example: "2020-01-01"
nullable: false
firstDay:
type: number
description: The first day of the month to process the batch. This field must be less than the secondDay field.
minimum: 1
maximum: 31
nullable: false
secondDay:
type: number
description: The second day of the month to process the batch. This field must be greater than the firstDay field.
minimum: 1
maximum: 31
nullable: true
lastDayOfMonth:
type: boolean
description: Indicates if the batch should be processed on the last day of the month.
nullable: true
expirationDate:
type: string
format: date
description: Expiration date sans TZ. Format will be in ISO 8601 ('YYYY-MM-DD').
example: "2020-01-01"
nullable: true
nextScheduledDate:
type: string
format: date
description: Next scheduled date sans TZ. Format will be in ISO 8601 ('YYYY-MM-DD').
example: "2020-01-01"
nullable: true
status:
nullable: true
oneOf:
- $ref: '#/components/schemas/Batch_Recurring_Information_V1_Status'
Batch_Recurring_Information_Monthly_V1:
type: object
description: |
**MONTHLY** requires `frequency`,`startDate` to be present, plus either `firstDay` set or `lastDayOfMonth` is true.
required:
- frequency
- startDate
- firstDay
- lastDayOfMonth
- expirationDate
- nextScheduledDate
- status
properties:
frequency:
type: string
enum:
- 'MONTHLY'
description: The frequency the batch will repeat.
nullable: false
startDate:
type: string
format: date
description: Start date sans TZ. Format will be in ISO 8601 ('YYYY-MM-DD').
example: "2020-01-01"
nullable: false
firstDay:
type: number
description: The first day of the month to process the batch. This field must be less than the secondDay field.
minimum: 1
maximum: 31
nullable: true
lastDayOfMonth:
type: boolean
description: Indicates if the batch should be processed on the last day of the month.
nullable: true
expirationDate:
type: string
format: date
description: Expiration date sans TZ. Format will be in ISO 8601 ('YYYY-MM-DD').
example: "2020-01-01"
nullable: true
nextScheduledDate:
type: string
format: date
description: Next scheduled date sans TZ. Format will be in ISO 8601 ('YYYY-MM-DD').
example: "2020-01-01"
nullable: true
status:
nullable: true
oneOf:
- $ref: '#/components/schemas/Batch_Recurring_Information_V1_Status'
Batch_Recurring_Information_Quarterly_V1:
type: object
description: |
**QUARTERLY** requires `frequency` and `startDate` to be present.
required:
- frequency
- startDate
- expirationDate
- nextScheduledDate
- status
properties:
frequency:
type: string
enum:
- 'QUARTERLY'
description: The frequency the batch will repeat.
nullable: false
startDate:
type: string
format: date
description: Start date sans TZ. Format will be in ISO 8601 ('YYYY-MM-DD').
example: "2020-01-01"
nullable: false
expirationDate:
type: string
format: date
description: Expiration date sans TZ. Format will be in ISO 8601 ('YYYY-MM-DD').
example: "2020-01-01"
nullable: true
nextScheduledDate:
type: string
format: date
description: Next scheduled date sans TZ. Format will be in ISO 8601 ('YYYY-MM-DD').
example: "2020-01-01"
nullable: true
status:
nullable: true
oneOf:
- $ref: '#/components/schemas/Batch_Recurring_Information_V1_Status'
Batch_Recurring_Information_SemiAnnually_V1:
type: object
description: |
**SEMIANNUALLY** requires `frequency` and `startDate` to be present.
required:
- frequency
- startDate
- expirationDate
- nextScheduledDate
- status
properties:
frequency:
type: string
enum:
- 'SEMIANNUALLY'
description: The frequency the batch will repeat.
nullable: false
startDate:
type: string
format: date
description: Start date sans TZ. Format will be in ISO 8601 ('YYYY-MM-DD').
example: "2020-01-01"
nullable: false
expirationDate:
type: string
format: date
description: Expiration date sans TZ. Format will be in ISO 8601 ('YYYY-MM-DD').
example: "2020-01-01"
nullable: true
nextScheduledDate:
type: string
format: date
description: Next scheduled date sans TZ. Format will be in ISO 8601 ('YYYY-MM-DD').
example: "2020-01-01"
nullable: true
status:
nullable: true
oneOf:
- $ref: '#/components/schemas/Batch_Recurring_Information_V1_Status'
Batch_Recurring_Information_Annually_V1:
type: object
description: |
**ANNUALLY** requires `frequency` and `startDate` to be present.
required:
- frequency
- startDate
- expirationDate
- nextScheduledDate
- status
properties:
frequency:
type: string
enum:
- 'ANNUALLY'
description: The frequency the batch will repeat.
nullable: false
startDate:
type: string
format: date
description: Start date sans TZ. Format will be in ISO 8601 ('YYYY-MM-DD').
example: "2020-01-01"
nullable: false
expirationDate:
type: string
format: date
description: Expiration date sans TZ. Format will be in ISO 8601 ('YYYY-MM-DD').
example: "2020-01-01"
nullable: true
nextScheduledDate:
type: string
format: date
description: Next scheduled date sans TZ. Format will be in ISO 8601 ('YYYY-MM-DD').
example: "2020-01-01"
nullable: true
status:
nullable: true
oneOf:
- $ref: '#/components/schemas/Batch_Recurring_Information_V1_Status'
Batch_Recurring_Information_V1_Weekdays:
type: string
enum:
- 'MONDAY'
- 'TUESDAY'
- 'WEDNESDAY'
- 'THURSDAY'
- 'FRIDAY'
description: The weekday that the batch will repeat on.
Batch_Recurring_Information_V1_Status:
type: string
description: Returns the current recurring status of the recurring item.
enum:
- Ready
- Failed
- Expired
- RetryInPro
- Delete
- ExpireSoon
- Dormant
example: "Ready"
BadRequest_Create_Batches_V1:
type: object
required:
- errors
properties:
errors:
type: array
items:
oneOf:
- $ref: '#/components/schemas/Create_Batch_ValidationError_V1'
nullable: false
Create_Batch_ValidationError_V1:
type: object
required:
- line
- lineNumber
- message
properties:
line:
type: string
description: The entire line for which the error applies.
nullable: false
lineNumber:
type: integer
description: The line number of the invalid line.
nullable: false
message:
type: string
description: The validation error message, i.e. what's wrong with the line.
nullable: false
Nacha_File_Format:
type: object
required:
- file
- filename
description: Text file representation of a NACHA File Format. Please see the [Nacha website](https://www.nacha.org/) for more details.
properties:
file:
type: string
format: binary
nullable: false
filename:
type: string
description: Name of the file.
format: text
nullable: false
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
example: "credit"
isOffsetAccountTransaction:
type: boolean
description: Identifies whether this record is an offset account transaction.
nullable: false
BadRequest_Get_Records_History_V1:
type: object
required:
- errors
description: Non-empty list of errors.
properties:
errors:
type: array
items:
type: string
enum:
- 'Missing Offset'
- 'Missing Limit'
- 'Invalid Offset'
- 'Invalid Limit'
- 'Limit is higher than maximum'
- 'Invalid Batch History Id'
Historical_Batch_Identifier_V1:
type: string
description: Identifier of a Batch Historical Event's Record.
Batches_Patch_Initiate_Request_V1:
type: object
description: Request for batch initiate.
required:
- batchId
- batchRecord
properties:
batchId:
type: string
nullable: false
description: Unique identifier of a batch.
batchRecord:
allOf:
- $ref: '#/components/schemas/Batches_Record_Patch_Request_V1'
- nullable: false
- description: Batch information required only for `Initiate`.
Batch_Patch_Initiate_Request_V1:
type: object
description: Request for Batch Initiate
required:
- status
properties:
status:
type: string
enum:
- "Initiated"
nullable: false
description: New status of the batch
example: "Initiated"
batchRecord:
allOf:
- $ref: '#/components/schemas/Batch_Record_Patch_Request_V1'
- nullable: true
Batch_Patch_Uninitiate_Request_V1:
type: object
description: Request for Batch Uninitiate
required:
- status
properties:
status:
type: string
enum:
- "Ready"
nullable: false
description: Batch's new status
example: "Ready"
rejectionReason:
maxLength: 500
type: string
nullable: true
description: For CUs, when batch status is transitioning from Pending approval to Ready
the rejection reason field is required
Batch_Record_Patch_Request_V1:
type: object
description: |
Request information to Initiate a batch.
If `ach_approvals_require_initiate` institution ability is set to true, it means a user approving an ach batch
is not required to provide batch record info.
If the Company Type is balanced or this batch is a tax payment: encryptedOffsetAccountNumber and accountType should not be provided.
If the Company Type is unbalanced (offset or netDifference): encryptedOffsetAccountNumber and accountType must be provided.
required:
- resetRecords
- sameDay
- effectiveDate
properties:
encryptedOffsetAccountNumber:
type: string
nullable: true
description: The encrypted account number of the offset account.
accountType:
type: string
enum: [Checking, Savings]
example: "Checking"
effectiveDate:
type: string
format: date
nullable: true
example: "2020-01-01"
description: |
Date the funds will be transferred to the names/persons supplied on the records. Format will be in ISO 8601 ('YYYY-MM-DD').
resetRecords:
type: boolean
nullable: false
description: |
If true, once the batch has completed processing, all record transaction dollar amounts will be reset to the zero value.
The next time the user works with that particular batch, new amounts will need to be entered.
sameDay:
type: boolean
nullable: false
description: |
True if the ACH batch is initiated on the same day it was created.
recurringInformation:
nullable: true
oneOf:
- $ref: '#/components/schemas/Batch_Recurring_Information_Weekly_V1'
- $ref: '#/components/schemas/Batch_Recurring_Information_BiWeekly_V1'
- $ref: '#/components/schemas/Batch_Recurring_Information_SemiMonthly_V1'
- $ref: '#/components/schemas/Batch_Recurring_Information_Monthly_V1'
- $ref: '#/components/schemas/Batch_Recurring_Information_Quarterly_V1'
- $ref: '#/components/schemas/Batch_Recurring_Information_SemiAnnually_V1'
- $ref: '#/components/schemas/Batch_Recurring_Information_Annually_V1'
Batches_Record_Patch_Request_V1:
type: object
description: |
Request information to initiate a batch.
If the Company Type is balanced or this batch is a tax payment: encryptedOffsetAccountNumber and accountType should not be provided.
If the Company Type is unbalanced (offset or netDifference): encryptedOffsetAccountNumber and accountType must be provided.
required:
- resetRecords
- sameDay
- effectiveDate
properties:
encryptedOffsetAccountNumber:
type: string
nullable: true
description: The encrypted account number of the offset account.
accountType:
type: string
enum: [Checking, Savings]
description: Type of account.
example: "Checking"
effectiveDate:
type: string
format: date
nullable: true
description: |
Date the funds will be transferred to the names/persons supplied on the record. Format will be in ISO 8601 ('YYYY-MM-DD').
example: "2020-01-01"
resetRecords:
type: boolean
nullable: false
description: |
If true, once the batch has completed processing, all record transaction dollar amounts will be reset to the zero value.
The next time the user works with that particular batch, new amounts will need to be entered.
sameDay:
type: boolean
nullable: false
description: |
True if the ACH batch is initiated on the same day it was created.
Offset_Account_Type_V1:
type: string
description: |
The offset account type. There are three possible values:
- `Balance`: Credit and debit amounts need to be 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'
example: "Balance"
Uploaded_Nacha_Files_V1:
type: array
nullable: false
items:
$ref: '#/components/schemas/Upload_File_Item_V1'
Upload_File_Item_V1:
type: object
description: Uploaded file status.
required:
- fileName
- fileStatus
- uploadedDateTime
properties:
fileName:
type: string
nullable: false
description: File's name.
example: "Nacha File.txt"
fileStatus:
type: string
nullable: false
enum:
- 'Uploaded'
- 'Queued'
- 'InProgress'
- 'Done'
- 'Stalled'
- 'Error'
description: |
- `Uploaded` = Initial status. The file just was uploaded and has not been processed yet.
- `Queued` = The file has been selected to be processed and will start soon.
- `InProgress` = The file is being processed.
- `Done` = The file was processed successfully.
- `Stalled` = The file is being used by another processer. As a result, the file won't be processed. The client must upload the file again.
- `Error` = There was some error processing. As a result, the file won't be processed. The client must upload the file again.
example: "Uploaded"
uploadedDateTime:
type: string
format: date-time
nullable: false
description: The timestamp the batch file was uploaded. Format will be 'YYYY-MM-DD HH:MM:SS'.
example: "2024-05-17T16:03:51.35"
Offset_Accounts_Array_V1:
type: array
items:
$ref: '#/components/schemas/Offset_Account_Item_V1'
Offset_Accounts_Object_V1:
type: object
nullable: false
required:
- accounts
properties:
accounts:
type: array
nullable: false
minItems: 0
items:
$ref: '#/components/schemas/Offset_Account_Item_V1'
Offset_Account_Item_V1:
type: object
nullable: false
required:
- encryptedAccountNumber
- maskedOffsetAccountNumber
- accountType
- isDefaultAccount
- name
- offsetAccountType
properties:
encryptedAccountNumber:
type: string
description: The account number encrypted.
nullable: false
maskedOffsetAccountNumber:
type: string
description: The masked account number.
nullable: false
accountType:
type: string
description: The type of the account
enum: [ Checking, Savings ]
nullable: false
example: "Checking"
name:
type: string
nullable: false
description: The name of the account. A user may have access to an offset account that is not specifically linked to their userId, in this case, the name of the account may be empty.
isDefaultAccount:
type: boolean
description: True when this is the default offset account.
nullable: false
offsetAccountType:
allOf:
- $ref: '#/components/schemas/Offset_Account_Type_V1'
- nullable: false
Entitlements_V0:
type: object
required:
- viewBatchList
- viewBatchDetails
- viewHistoryList
- viewHistoryDetails
- downloadBatch
- createNewBatch
- createNewRecord
- deleteBatch
- deletePrenoteBatch
- deleteRecord
- deletePrenoteRecord
- initiate
- sameDay
- importACH
- upload
- recurring
- initiateWithoutApproval
- taxPayment
properties:
viewBatchList:
description: The user can view the list of ACH batches.
type: boolean
nullable: false
viewBatchDetails:
description: The user can view the details of an ACH batch.
type: boolean
nullable: false
viewHistoryList:
description: The user can view a list of historical ACH batches.
type: boolean
nullable: false
viewHistoryDetails:
description: The user can view the details of historical ACH batches.
type: boolean
nullable: false
downloadBatch:
description: The user can download batch information from the batch.
type: boolean
nullable: false
createNewBatch:
description: The user can create a new ACH batch.
type: boolean
nullable: false
createNewRecord:
description: The user can create a new ACH record.
type: boolean
nullable: false
deleteBatch:
description: The user can delete an ACH batch.
type: boolean
nullable: false
deletePrenoteBatch:
description: The user can delete a prenote ACH batch.
type: boolean
nullable: false
deleteRecord:
description: The user can delete an ACH record.
type: boolean
nullable: false
deletePrenoteRecord:
description: The user can't delete a prenote ACH record from a prenote ACH batch.
type: boolean
nullable: false
initiate:
description: |
Allows Cash Management users to initiate (i.e., send) an ACH batch to the financial institution
for processing and initiate multiple ACH batches at once.
type: boolean
nullable: false
sameDay:
description: The user can initiate an ACH batch on the same day it was created.
type: boolean
nullable: false
importACH:
description: |
The user can upload a fixed-position or CSV delimited file
into an existing ACH batch. Files can only contain transaction items.
type: boolean
nullable: false
upload:
description: The user can upload an ACH file.
type: boolean
nullable: false
recurring:
description: The user can create recurring ACH batches.
type: boolean
nullable: false
initiateWithoutApproval:
description: If `false` the user is restricted from fully initiating (ready --> initiated) batches and will require an additional approval.
type: boolean
nullable: false
taxPayment:
description: The user can create a tax payment.
type: boolean
nullable: false
Create_Batch_Entitlements_V1:
type: object
required:
- editAchCompanyId
- editSecCode
- editEntryDescription
- editDiscretionaryData
properties:
editAchCompanyId:
type: boolean
description: The user can edit the company Id on an ACH batch during batch creation.
nullable: false
editSecCode:
type: boolean
description: The user can edit the company SEC code on an ACH batch during batch creation.
nullable: false
editEntryDescription:
type: boolean
description: The user can edit the entry description on an ACH batch during batch creation.
nullable: false
editDiscretionaryData:
type: boolean
description: The user can edit the discretionary data on an ACH batch during batch creation.
nullable: false
Entitlements_V1:
type: object
required:
- viewBatchList
- viewBatchDetails
- viewHistoryList
- viewHistoryDetails
- createBatch
- importACH
- uploadBatch
- createNewCreditRecord
- createNewDebitRecord
- createTaxPayment
- createRestricted
- achDailyLimit
properties:
viewBatchList:
description: The user can view the list of ACH batches.
type: boolean
nullable: false
viewBatchDetails:
description: The user can view the details of an ACH batch.
type: boolean
nullable: false
viewHistoryList:
description: The user can view a list of historical ACH batches.
type: boolean
nullable: false
viewHistoryDetails:
description: The user can view the details of historical ACH batches.
type: boolean
nullable: false
createBatch:
description: The user can create a new ACH batch.
type: boolean
nullable: false
createNewCreditRecord:
type: boolean
description: The user can create a new credit record on an ACH batch during batch creation.
nullable: false
createNewDebitRecord:
type: boolean
description: The user can create a new debit record on an ACH batch during batch creation.
nullable: false
createTaxPayment:
type: boolean
description: The user can create a new tax payment on an ACH batch during batch creation.
nullable: false
createRestricted:
type: boolean
description: The user can mark an ACH batch as restricted during batch creation.
nullable: false
importACH:
description: The user can import an ACH batch.
type: boolean
nullable: false
uploadBatch:
description: The user can upload an ACH batch.
type: boolean
nullable: false
achDailyLimit:
description: The limit on the amount of ACH transactions a user can initiate per day.
type: string
format: UScurrency
example: "100.00"
nullable: true
ACH_Entitlements_V1:
type: object
required:
- entitlements
- createBatch
properties:
entitlements:
allOf:
- $ref: '#/components/schemas/Entitlements_V1'
createBatch:
allOf:
- $ref: '#/components/schemas/Create_Batch_Entitlements_V1'
Sec_Codes_Response_V0:
type: object
required:
- availableSECCodes
properties:
availableSECCodes:
nullable: false
description: An array of the SEC codes a user can choose for the company.
type: array
items:
type: string
enum:
- PPD
- CCD
- CTX
- WEB
- TEL
example: "PPD"
Company_Identifiers_V0:
nullable: false
type: object
required:
- companyDetailsId
- uniqueName
- secCode
- entryDescription
- discretionaryData
- achCompanyId
- eligibleForTaxPayments
- eligibleForRecurringACH
properties:
companyDetailsId:
type: string
description: A temporary identifier that can be used to call the standard-entry-codes endpoint or POST `ach/tax-payment` endpoint.
nullable: false
uniqueName:
type: string
description: This is a unique, human-readable name of a company.
nullable: false
secCode:
type: string
description: Standard Entry Code (SEC) for the ACH batch.
example: "WEB"
nullable: true
entryDescription:
type: string
description: A brief description of the purpose of an ACH batch.
nullable: true
discretionaryData:
type: string
description: The discretionary data for the company.
nullable: true
achCompanyId:
type: string
description: An identifier for the company, typically the company tax id.
nullable: true
eligibleForTaxPayments:
type: boolean
description: If true, the `companyDetailsId` can be used to create a tax payment on the `POST /ach/tax-payment` route.
nullable: false
eligibleForRecurringACH:
type: boolean
description: If true, the company is available for recurring ACH.
nullable: false
Company_List_V0:
type: array
items:
$ref: '#/components/schemas/Company_Identifiers_V0'
Create_Ach_Request:
type: object
required:
- batchName
- secCode
- achCompanyId
- achCompanyName
- entryDescription
- discretionaryData
- records
- restricted
properties:
batchName:
maxLength: 20
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: false
restricted:
example: true
type: boolean
description: True if the batch is restricted, false if not.
nullable: true
records:
type: array
minItems: 1
items:
oneOf:
- $ref: '#/components/schemas/ACH_Batch_Create_PPD_CCD_Records'
- $ref: '#/components/schemas/ACH_Batch_Create_CTX_Records'
- $ref: '#/components/schemas/ACH_Batch_Create_WEB_Records'
- $ref: '#/components/schemas/ACH_Batch_Create_TEL_Records'
nullable: false
description: A record differs by SEC Code. The models defined in this `oneOf` contain the SEC code(s) for which they are valid.
Copy_Ach_Batch_Request:
type: object
required:
- batchName
- resetRecords
properties:
batchName:
maxLength: 20
type: string
nullable: false
description: The name of the new batch.
example: "Copied Batch 1"
resetRecords:
type: boolean
description: If true, all record transaction dollar amounts will be reset to the zero value on the copied batch.
nullable: true
Copy_Ach_Batch_Response:
type: object
required:
- newBatchId
properties:
newBatchId:
type: string
nullable: false
description: The batch ID of the new copied batch.
Create_Batch_Response_V1:
type: object
required:
- batchId
properties:
batchId:
type: string
nullable: false
description: The batch ID of the newly created batch.
Edit_Ach_Response:
type: object
required:
- results
properties:
results:
type: array
items:
$ref: '#/components/schemas/ACH_Batch_add_edit_records_response'
nullable: false
description: Response from the editing of transactions.
Edit_Ach_Request:
type: object
required:
- records
properties:
records:
type: array
items:
$ref: '#/components/schemas/ACH_Batch_Edit_Records'
nullable: false
description: Details of the transaction to be edited.
Add_Ach_Request:
type: object
required:
- records
properties:
records:
type: array
items:
$ref: '#/components/schemas/ACH_Batch_Add_Records'
nullable: false
description: Details of the transaction to be added.
Ach_Tax_Batch:
type: object
nullable: false
required:
- batchName
- companyDetailsId
- restricted
properties:
batchName:
type: string
description: Name of the batch to be created.
maxLength: 13
nullable: false
companyDetailsId:
type: string
description: The temporary unique identifier of a company obtained from `GET /v0/users/userId/ach/companies`.
nullable: false
restricted:
type: boolean
example: true
description: True if the batch is restricted, false if not.
nullable: true
Ach_Tax_Payment:
type: object
required:
- amount
- taxCode
- taxPeriod
- taxPayerId
- receivingAccountNumber
- receivingRoutingNumber
- offsetAccountNumber
- offsetAccountType
- taxSubOne
- taxSubTwo
- taxSubThree
properties:
amount:
type: string
description: The total amount of tax being paid.
maxLength: 12
nullable: false
taxPayerId:
type: string
maxLength: 15
description: the TaxPayerId number.
nullable: false
taxCode:
type: string
description: The code of the tax being paid.
maxLength: 5
nullable: false
taxPeriod:
type: string
format: "YYYY-MM-DD"
example: "2006-01-02"
description: The end date of the tax period. YYYY-MM-DD format.
maxLength: 10
nullable: false
receivingRoutingNumber:
type: string
description: The routing number of the receiving tax authority. This can be retrieved from `/v0/users/{userId}/receiving-banks`.
maxLength: 9
nullable: false
receivingAccountNumber:
type: string
description: The number of the account receiving the tax payment. This value can be obtained from `/v0/users/{userId}/receiving-banks`.
maxLength: 17
nullable: false
offsetAccountNumber:
type: string
description: The encrypted offset account to use for the tax payment. This can be retrieved from `/v0/users/{userId}/ach/companies/{companyDetailsId}/offset-accounts`
nullable: false
offsetAccountType:
type: string
description: The type of the offset account. This corresponds to the `accountType` field from `/v0/users/{userId}/ach/companies/{companyDetailsId}/offset-accounts`
enum: [Checking, Savings]
example: "Checking"
nullable: false
taxSubOne:
$ref: '#/components/schemas/Tax_Subcategory'
taxSubTwo:
$ref: '#/components/schemas/Tax_Subcategory'
taxSubThree:
$ref: '#/components/schemas/Tax_Subcategory'
Search_Ach_Records_Request:
type: object
description: |
Gives the ability to search the ACH batch records based on the recipientName, recipientId,
batchName, recipientAmount, preNote, and status or any combination of the previously listed fields.
At least one of these listed fields must be populated for the search to be successful.
nullable: false
required:
- recipientName
- recipientId
- batchName
- recipientAmount
- preNote
- status
properties:
recipientName:
type: string
description: Alphanumeric value that represents the recipient (the person who is receiving the credit/debit).
example: "Recipient Name"
nullable: true
maxLength: 22
recipientId:
type: string
description: Represents the unique id the company has for the recipient.
nullable: true
maxLength: 15
batchName:
type: string
description: The name of the batch the ACH batch record belongs to.
nullable: true
maxLength: 20
example: "Batch Name A"
recipientAmount:
type: string
description: Amount to credit or debit from recipient.
format: UScurrency
example: "100.00"
maximum: 99999999.99
nullable: true
preNote:
type: boolean
description: When 'true' the record is a prenote. When 'false' the record is not a prenote.
nullable: true
status:
type: string
enum:
- active
- hold
example: "active"
description: Status of the record.
nullable: true
Create_Ach_Tax_Request:
type: object
required:
- batch
- taxAuthority
- taxPayment
properties:
batch:
$ref: '#/components/schemas/Ach_Tax_Batch'
taxAuthority:
type: string
example: "FD"
description: Two letter abbreviation for a tax payment 'FD' for federal, or the state two letter abbreviation.
nullable: false
taxPayment:
$ref: '#/components/schemas/Ach_Tax_Payment'
Create_Ach_Tax_Response:
type: object
required:
- addendaInformation
properties:
addendaInformation:
type: string
description: The addenda string returned as a result of creating the tax payment.
nullable: false
Add_Ach_Records_Response:
type: object
required:
- results
properties:
results:
type: array
items:
$ref: '#/components/schemas/ACH_Batch_add_edit_records_response'
nullable: false
description: Response from the editing of transactions.
Delete_Ach_Records_Response:
type: object
required:
- results
properties:
results:
type: array
items:
$ref: '#/components/schemas/ACH_Batch_delete_records_response'
nullable: false
description: Response from deleting ACH records.
Delete_Ach_Request:
type: object
required:
- records
properties:
records:
type: array
items:
$ref: '#/components/schemas/ACH_Batch_Delete_Records'
nullable: false
description: Details of the transaction to be deleted.
Records_Sort_Object_V0:
type: object
required:
- results
- totalNumberOfAvailableResults
- hasMoreResults
properties:
results:
type: array
items:
$ref: '#/components/schemas/Record_Detail_V0'
nullable: false
totalNumberOfAvailableResults:
type: integer
format: int32
nullable: false
description: Total number of available ACH batch records.
hasMoreResults:
type: boolean
nullable: false
description: True if there are more ACH batch records available, false if not.
Record_Detail_V0:
type: object
required:
- recordId
- recipientId
- recipientName
- recipientAmount
- recipientAccountNumber
- recipientTransactionType
- preNote
- status
- batchId
- batchName
- isEditable
- isDeletable
properties:
recordId:
type: string
description: The individual identification number of the record.
nullable: false
recipientId:
type: string
description: Represents the unique id the company has for the recipient.
nullable: false
recipientName:
type: string
description: Alphanumeric value that represents the recipient (the person who is receiving the credit/debit).
example: "Recipient Name"
nullable: false
recipientAmount:
type: string
description: Amount to credit or debit from recipient.
format: UScurrency
example: "100.00"
maximum: 99999999.99
nullable: false
recipientAccountNumber:
type: string
nullable: false
description: Alphanumeric account number for recipient
recipientTransactionType:
type: string
description: Type of transaction being performed.
enum:
- credit
- debit
example: "debit"
nullable: false
preNote:
type: boolean
description: When 'true' the record is a prenote. When 'false' the record is not a prenote.
nullable: false
status:
type: string
enum:
- active
- hold
example: "active"
description: Status of the record.
nullable: false
batchId:
type: string
nullable: false
description: Unique identifier of the batch on which the record is present.
batchName:
type: string
description: The name of the batch the ACH batch record belongs to.
nullable: false
maxLength: 20
example: "Batch Name A"
isEditable:
type: boolean
description: True if the ACH batch record can be edited.
nullable: false
isDeletable:
type: boolean
description: True if the ACH batch record can be deleted.
nullable: false
ACH_Batch_Create_PPD_CCD_Records:
type: object
required:
- recipientName
- recipientAmount
- recipientAccountType
- recipientTransactionType
- recipientRoutingNumber
- recipientAccountNumber
- status
- recipientId
- recipientAddenda
- preNote
properties:
recipientName:
type: string
maxLength: 22
description: Alphanumeric value that represents the recipient (the person receiving the credit/debit).
example: "Recipient Name"
nullable: false
recipientId:
type: string
description: Optional alphanumeric id the company has for the entity receiving the record.
maxLength: 15
nullable: true
recipientAmount:
type: string
description: Amount to credit or debit from recipient.
pattern: ^\d{1,8}(\.\d{2})?$
format: UScurrency
example: "100.00"
maximum: 99999999.99
nullable: false
recipientAccountType:
type: string
description: Recipient's account type.
enum:
- checking
- savings
- loan
- general_ledger
example: "checking"
recipientTransactionType:
type: string
description: Type of transaction being performed. When `recipientAccountType` field is set to `loan` then `recipientTransactionType` must be set to `credit`.
enum:
- credit
- debit
example: "credit"
recipientRoutingNumber:
type: string
description: 9 digit routing number of recipient.
minLength: 9
maxLength: 9
example: "923456789"
recipientAccountNumber:
type: string
description: Alphanumeric account number for recipient.
maxLength: 17
recipientAddenda:
maxLength: 80
type: string
description: Provides additional information about the record.
nullable: true
status:
type: string
enum:
- active
- hold
example: "active"
description: Status of the record.
preNote:
type: boolean
description: Send 'true' if the record is a prenote. Send 'false' if the record is not a prenote.
nullable: true
# Includes a company audit number
ACH_Batch_Create_CTX_Records:
type: object
required:
- recipientName
- recipientAmount
- recipientAccountType
- recipientTransactionType
- recipientRoutingNumber
- recipientAccountNumber
- status
- recipientAddenda
- preNote
- sendingCompanyAuditNumber
properties:
recipientName:
type: string
maxLength: 22
description: Alphanumeric value that represents the recipient (the person who is receiving the credit/debit).
example: "Recipient Name"
nullable: false
recipientAmount:
type: string
description: Amount to credit or debit from recipient.
pattern: ^\d{1,8}(\.\d{2})?$
format: UScurrency
example: "100.00"
maximum: 99999999.99
nullable: false
recipientAccountType:
type: string
description: Recipient's account type.
enum:
- checking
- savings
- loan
- general_ledger
example: "checking"
recipientTransactionType:
type: string
description: Type of transaction being performed. When `recipientAccountType` field is set to `loan` then `recipientTransactionType` must be set to `credit`.
enum:
- credit
- debit
example: "debit"
recipientRoutingNumber:
type: string
description: 9 digit routing number of recipient.
minLength: 9
maxLength: 9
example: "923456789"
recipientAccountNumber:
type: string
description: Alphanumeric account number for recipient.
maxLength: 17
recipientAddenda:
maxLength: 80
type: string
description: Provides additional information about the record.
nullable: true
status:
type: string
enum:
- active
- hold
example: "active"
description: Status of the record.
sendingCompanyAuditNumber:
type: string
maxLength: 15
nullable: true
preNote:
type: boolean
description: Send 'true' if the record is a prenote. Send 'false' if the record is not a prenote.
nullable: true
# Includes a payment code
ACH_Batch_Create_WEB_Records:
type: object
required:
- recipientName
- recipientAmount
- recipientAccountType
- recipientTransactionType
- recipientRoutingNumber
- recipientAccountNumber
- paymentTypeCode
- status
- recipientId
- preNote
- recipientAddenda
properties:
recipientName:
type: string
maxLength: 22
description: Alphanumeric value that represents the recipient (the person who is receiving the credit/debit).
example: "Recipient Name"
nullable: false
recipientId:
type: string
description: Optional alphanumeric id the company has for the entity receiving the record.
maxLength: 15
nullable: true
recipientAmount:
type: string
description: Amount to credit or debit from recipient.
pattern: ^\d{1,8}(\.\d{2})?$
format: UScurrency
example: "100.00"
maximum: 99999999.99
nullable: false
recipientAccountType:
type: string
description: Recipient's account type.
enum:
- checking
- savings
- loan
- general_ledger
example: "checking"
recipientTransactionType:
type: string
description: Type of transaction being performed. When `recipientAccountType` field is set to `loan` then `recipientTransactionType` must be set to `credit`.
enum:
- credit
- debit
example: "credit"
recipientRoutingNumber:
type: string
description: 9 digit routing number of recipient.
minLength: 9
maxLength: 9
example: "923456789"
recipientAccountNumber:
type: string
description: Alphanumeric account number for recipient.
maxLength: 17
recipientAddenda:
maxLength: 80
type: string
description: Provides additional information about the record.
nullable: true
paymentTypeCode:
type: string
enum:
- single
- recurring
example: "single"
description: Identifies if the record is a single or recurring type.
status:
type: string
enum:
- active
- hold
example: "active"
description: Status of the record.
preNote:
type: boolean
description: Send 'true' if the record is a prenote. Send 'false' if the record is not a prenote.
nullable: true
# No addenda included for TEL
ACH_Batch_Create_TEL_Records:
type: object
required:
- recipientName
- recipientAmount
- recipientAccountType
- recipientTransactionType
- recipientRoutingNumber
- recipientAccountNumber
- status
- paymentTypeCode
- recipientId
- preNote
properties:
recipientName:
type: string
maxLength: 22
description: Alphanumeric value that represents the recipient (the person who is receiving the credit/debit).
example: "Recipient Name"
nullable: false
recipientId:
type: string
description: Optional alphanumeric id the company has for the entity receiving the record.
maxLength: 15
nullable: true
recipientAmount:
type: string
description: Amount to credit or debit from recipient.
pattern: ^\d{1,8}(\.\d{2})?$
format: UScurrency
example: "100.00"
maximum: 99999999.99
nullable: false
recipientAccountType:
type: string
description: Recipient's account type.
enum:
- checking
- savings
- loan
- general_ledger
example: "checking"
recipientTransactionType:
type: string
description: Type of transaction being performed. When `recipientAccountType` field is set to `loan` then `recipientTransactionType` must be set to `credit`.
enum:
- credit
- debit
example: "credit"
recipientRoutingNumber:
type: string
description: 9 digit routing number of recipient.
minLength: 9
maxLength: 9
example: "923456789"
recipientAccountNumber:
type: string
description: Alphanumeric account number for recipient.
maxLength: 17
status:
type: string
enum:
- active
- hold
example: "active"
description: Status of the record.
preNote:
type: boolean
description: Send 'true' if the record is a prenote. Send 'false' if the record is not a prenote.
nullable: true
paymentTypeCode:
type: string
enum:
- single
- recurring
example: "single"
description: Identifies if the record is a single or recurring type.
ACH_Batch_add_edit_records_response:
type: object
required:
- sequenceNumber
- success
- message
properties:
sequenceNumber:
type: string
description: The individual identification number of the record in the batch. This field holds the same value as the recordId field.
maxLength: 15
nullable: true
success:
type: boolean
description: Indicates whether the action performed on the individual record was successful or not.
nullable: true
message:
type: string
description: The message for success or failure scenario.
nullable: true
ACH_Batch_delete_records_response:
type: object
required:
- recordId
- success
- message
properties:
recordId:
type: string
description: The individual identification number of the record in the batch.
maxLength: 15
nullable: true
success:
type: boolean
description: Indicates whether the deleting of the individual record was successful or not.
nullable: true
message:
type: string
description: The message for success or failure scenario.
nullable: true
ACH_Batch_Edit_Records:
type: object
required:
- recipientName
- recipientId
- recipientAmount
- recipientAccountType
- recipientTransactionType
- recipientRoutingNumber
- recipientAccountNumber
- recordId
- paymentTypeCode
- status
- preNote
- recipientAddenda
properties:
recipientName:
type: string
maxLength: 22
description: Alphanumeric value that represents the recipient (the person who is receiving the credit/debit)
nullable: false
recipientId:
type: string
description: Optional alphanumeric id the company has for the entity receiving the transaction.
maxLength: 15
nullable: true
recipientAmount:
type: string
description: Amount to credit or debited from recipient. The maximum value that can be supplied is `"99999999.99"`.
example: "10.00"
nullable: false
recipientAccountType:
type: string
nullable: false
description: This is the type of the recipient's account.
enum:
- checking
- savings
- loan
- general_ledger
example: "checking"
recipientTransactionType:
type: string
nullable: false
description: This is the type of the transaction being performed. If `loan` is selected as the `recipientAccountType` then `credit` must be selected here or your request will fail.
enum:
- credit
- debit
example: "credit"
recipientRoutingNumber:
type: string
nullable: false
description: 9 digit routing number of recipient
minLength: 9
maxLength: 9
recipientAccountNumber:
type: string
nullable: false
description: Alphanumeric account number for recipient
maxLength: 17
recipientAddenda:
type: string
nullable: true
maxLength: 80
description: |
Additional Information to identify the recipient. If the batch SEC code is TEL, an addenda cannot be present.
recordId:
type: string
nullable: false
description: |
Required alphanumeric id of the record, in the batch, to be edited. This field holds the same value as the sequenceNumber field found on the response of this endpoint.
maxLength: 15
paymentTypeCode:
type: string
description: This field should only be set if the SEC code is TEL or WEB. All other SEC codes would leave this as null.
enum:
- single
- recurring
nullable: true
example: "single"
status:
type: string
enum:
- active
- hold
nullable: false
example: "active"
preNote:
type: boolean
description: Send 'true' if the record is a prenote. Send 'false' if the record is not a prenote.
nullable: true
ACH_Batch_Add_Records:
type: object
required:
- recipientName
- recipientId
- recipientAmount
- recipientRoutingNumber
- recipientAccountNumber
- recipientAccountType
- recipientTransactionType
- paymentTypeCode
- status
- preNote
- recipientAddenda
properties:
recipientName:
type: string
maxLength: 22
description: Alphanumeric value that represents the recipient (the person who is receiving the credit/debit)
nullable: false
recipientId:
type: string
description: Alphanumeric id the company has for the entity receiving the transaction.
maxLength: 15
nullable: true
recipientAmount:
type: string
description: Amount to credit or debited from recipient. The maximum value that can be supplied is `"99999999.99"`.
example: "10.00"
nullable: false
recipientRoutingNumber:
type: string
description: 9 digit routing number of recipient
minLength: 9
maxLength: 9
nullable: false
recipientAccountNumber:
type: string
description: Alphanumeric account number for recipient
maxLength: 17
nullable: false
recipientAccountType:
type: string
nullable: false
description: This is the type of the recipient's account.
enum:
- checking
- savings
- loan
- general_ledger
example: "checking"
recipientTransactionType:
type: string
nullable: false
description: This is the type of the transaction being performed. If `loan` is selected as the `recipientAccountType` then `credit` must be selected here or your request will fail.
enum:
- credit
- debit
example: "credit"
preNote:
type: boolean
description: Send 'true' if the record is a prenote. Send 'false' if the record is not a prenote.
nullable: true
recipientAddenda:
type: string
maxLength: 80
description: |
Additional information to identify the recipient. If the batch SEC code is TEL, an addenda cannot be present.
nullable: true
paymentTypeCode:
type: string
description: This field should only be set if the SEC code is TEL or WEB. All other SEC codes would leave this as null.
enum:
- single
- recurring
nullable: true
example: "single"
status:
type: string
description: Record's new status.
enum:
- active
- hold
nullable: false
example: "active"
ACH_Batch_Delete_Records:
type: object
required:
- recordId
properties:
recordId:
type: string
description: Required alphanumeric id of the record, in the batch, to be deleted.
maxLength: 15
Edit_Ach_Batch:
type: object
required:
- batchName
- achCompanyId
- entryDescription
- discretionaryData
- restricted
- recurringInformation
properties:
batchName:
type: string
maxLength: 20
description: Name of the batch.
example: "Batch 1"
nullable: false
achCompanyId:
type: string
maxLength: 10
description: Id of the ACH Company of the batch.
example: "1123456780"
nullable: true
entryDescription:
maxLength: 10
type: string
description: Description of the batch.
nullable: true
discretionaryData:
maxLength: 20
type: string
description: Additional description of the batch.
example: "Discretionary Data"
nullable: true
restricted:
type: boolean
example: true
description: True if the batch is restricted, false if not.
nullable: true
recurringInformation:
nullable: true
oneOf:
- $ref: '#/components/schemas/Batch_Recurring_Information_Weekly_V1'
- $ref: '#/components/schemas/Batch_Recurring_Information_BiWeekly_V1'
- $ref: '#/components/schemas/Batch_Recurring_Information_SemiMonthly_V1'
- $ref: '#/components/schemas/Batch_Recurring_Information_Monthly_V1'
- $ref: '#/components/schemas/Batch_Recurring_Information_Quarterly_V1'
- $ref: '#/components/schemas/Batch_Recurring_Information_SemiAnnually_V1'
- $ref: '#/components/schemas/Batch_Recurring_Information_Annually_V1'
pendingApproval:
type: boolean
example: true
description: Flag that indicates the pendingApproval status of the batch. Only available for banks
nullable: true
Tax_Authorities_V1:
type: object
required:
- abbreviation
- name
properties:
abbreviation:
type: string
nullable: true
name:
type: string
nullable: true
Federal_Tax_Code_v1:
type: object
required:
- code
- description
- paymentDueInformation
- subcategoryBreakdown
properties:
code:
type: string
nullable: false
description:
type: string
nullable: false
paymentDueInformation:
type: string
nullable: false
subcategoryBreakdown:
type: array
nullable: false
items:
$ref: '#/components/schemas/Subcategory_Breakdown_Value'
Subcategory_Breakdown_Value:
type: object
required:
- id
- description
properties:
id:
type: string
nullable: false
description:
type: string
nullable: false
Receiving_Bank:
type: object
required:
- name
- routingNumber
- accountNumber
properties:
name:
type: string
description: The name of the receiving Field
example: Bank of America
nullable: false
routingNumber:
type: string
nullable: false
accountNumber:
type: string
nullable: false
Receiving_Banks_V1:
type: object
required:
- federal
- state
properties:
federal:
type: array
nullable: false
items:
$ref: '#/components/schemas/Receiving_Bank'
state:
type: array
nullable: false
items:
$ref: '#/components/schemas/Receiving_Bank'
Constraint_Violation_Response_V1:
type: object
required:
- violatedConstraints
properties:
violatedConstraints:
type: array
items:
$ref: '#/components/schemas/Constraint_Violation_V1'
Constraint_Violation_V1:
type: object
required:
- field
- constraint
properties:
recordId:
type: string
description: If editing an ach record. The recordId that the constraint violation occurs in will be included.
nullable: true
field:
type: string
description: The name of the field which violated the constraint.
constraint:
type: string
description: A description of the constraint.
Bulk_Initiate_Result_V1:
type: object
required:
- results
properties:
results:
type: array
items:
$ref: '#/components/schemas/Initiate_Result_V1'
example:
- batchId: 123456
success: true
message: Batch initiated successfully
confirmationNumber: 12345AAA6789
- batchId: 123457
success: false
message: Ach limit exceeded
errorCode: 4018
Initiate_Result_V1:
type: object
nullable: false
required:
- batchId
- success
- message
- errorCode
- confirmationNumber
properties:
batchId:
description: Unique identifier of the batch being initiated.
type: string
nullable: true
success:
description: True if the batch was initiated successfully.
type: boolean
example: false
nullable: true
message:
description: Human readable result of initiating the batch.
type: string
example: Ach limit exceeded
nullable: true
errorCode:
$ref: '#/components/schemas/Initiate_Batch_Error_Code_V1'
confirmationNumber:
description: if success was true, a confirmation number will be returned.
type: string
nullable: true
Initiate_Batch_Error_Code_V1:
type: integer
example: 4018
nullable: true
description: |
if success was false, an errorCode may be returned. The messages below will be shown in the "message" sibling field.
Error Codes:
* 999 - user is not allowed to perform the operation
* 4009 - Credit item exposure limit violation
* 4010 - Debit item exposure limit violation
* 4011 - Credit batch exposure limit violation
* 4012 - Daily debit limit violated
* 4013 - Daily credit limit violated
* 4014 - Weekly debit limit violated
* 4015 - Weekly credit limit violated
* 4016 - Monthly debit limit violated
* 4017 - Monthly credit limit violated
* 4018 - Ach limit exceeded
* 4019 - EffectiveDate outside allowed range
* 4020 - EffectiveDate can not be a non business day
* 4021 - EffectiveDate can not be on a holiday
* 4022 - This secCode is limited to credit transactions only
* 4023 - Exceeded the number of on-us transactions limit
* 4024 - Exceeded on-us amount limit
* 4025 - Attempted to initiate batch after cutoff time
* 4026 - EffectiveDate is before today
* 4027 - Debit amount exceeded
* 4028 - Origination credits not allowed
* 4029 - Origination debits not allowed
* 4030 - Daily dollar limit exceeded
* 4031 - Origination debits exceeds ledger balance
* 4032 - Origination debits exceeds collected balance
* 4033 - Origination debits exceeds memo ledger balance
* 4034 - Origination debits exceeds memo collected balance
* 4035 - Credit day exposure limit violation
* 4036 - No funds available
* 4037 - Ach company limit exceeded
* 4038 - Debit transaction does not qualify for same day ACH
* 4039 - Credit transaction does not qualify for same ACH
* 4040 - ACH company defined as Pre-Funded
* 4042 - Can't initiate a balanced batch with an offset account
* 4043 - Batch has already been initiated
* 4044 - The companyName is invalid
* 4047 - User is not allowed to initiate a batch they created
* 4048 - offsetAccountNumber or accountType not found
* 4049 - File received, not expected on this date
* 4050 - Federal debit file exposure limit violation
* 4051 - Federal credit file exposure limit violation
* 4052 - File expected but not in receipt balance
* 4053 - SEC Code CBR/PBR must be converted to IAT before initiation
* 4054 - IAT SEC Code not allowed prior to 9/18/2009. Please use CBR or PBR
* 4055 - Offset account number or account type was not found
* 4056 - No offset accounts found for batch number
* 4057 - Batch is out of balance
* 4058 - Zero dollar batches can't be initiated
* 4059 - Batch has already been processed
* 4060 - attempted to initiate batch that was deleted
* 4061 - Debit batch exposure limit violation
Tax_Subcategory:
type: object
nullable: true
required:
- subAmount
- subcategory
properties:
subAmount:
type: string
description: The amount of tax to be paid to the tax subcategory indicated by taxSubcategory field.
maximum: 99999999.99
format: UScurrency
example: "100.00"
nullable: false
subcategory:
type: string
description: The tax subcategory.
maxLength: 5
nullable: false
Edit_Ach_Tax_Payment:
type: object
nullable: false
required:
- amount
- taxCode
- taxPeriod
- taxPayerId
- routingNumber
- receivingAccountNumber
- receivingRoutingNumber
- offsetAccountNumber
- offsetAccountType
- taxSubOne
- taxSubTwo
- taxSubThree
properties:
amount:
type: string
description: The total amount of tax being paid.
format: UScurrency
example: "100.00"
maximum: 99999999.99
nullable: false
taxPayerId:
maxLength: 15
type: string
description: The TaxPayerId number.
nullable: false
taxCode:
maxLength: 5
type: string
description: The code of the tax being paid.
nullable: false
taxPeriod:
type: string
format: date
example: "2006-01-02"
description: The end date of the tax period. Format will be in ISO 8601 ('YYYY-MM-DD').
nullable: false
taxSubOne:
$ref: '#/components/schemas/Tax_Subcategory'
taxSubTwo:
$ref: '#/components/schemas/Tax_Subcategory'
taxSubThree:
$ref: '#/components/schemas/Tax_Subcategory'
receivingRoutingNumber:
type: string
description: The routing number of the receiving tax authority. This can be retrieved from `/v0/users/{userId}/receiving-banks`.
nullable: false
receivingAccountNumber:
type: string
description: The number of the account receiving the tax payment. This value can be obtained from `/v0/users/{userId}/receiving-banks`.
nullable: false
offsetAccountNumber:
type: string
description: The offset account to use for the tax payment.
nullable: false
offsetAccountType:
type: string
enum: [Checking, Savings]
description: The type of the offset account. If changing the offsetAccountType value, use the `accountType` value from `Offset_Account_Item_V1`.
example: "Checking"
nullable: false
Edit_Ach_Tax_Request:
type: object
required:
- taxPayment
- companyDetailsId
properties:
companyDetailsId:
type: string
description: The temporary unique identifier of a company obtained from `GET /v0/users/userId/ach/companies`. This field allows you to update the company associated with this tax payment. It is nullable in case you do not want to update the company.
nullable: true
taxPayment:
$ref: '#/components/schemas/Edit_Ach_Tax_Payment'
Generic_StandardError_V1:
type: object
required:
- type
- title
- details
properties:
type:
description: |
The error type.
type: string
nullable: false
example: 'jackhenry/operation-failed'
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
Nacha_File_StandardError_V1:
allOf:
- $ref: '#/components/schemas/Generic_StandardError_V1'
- type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/Nacha_Files_Upload_V1'
Nacha_Files_Upload_V1:
type: object
required:
- errors
properties:
errors:
type: array
items:
oneOf:
- $ref: '#/components/schemas/Create_Batch_ValidationError_V1'
nullable: false
Records_StandardError_V1:
allOf:
- $ref: '#/components/schemas/Generic_StandardError_V1'
- type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/Constraint_Violation_Response_V1'
NachaFileInfo_V0:
type: object
required:
- nachaFile
- fileName
properties:
nachaFile:
type: string
nullable: false
description: Nacha file contents.
fileName:
type: string
nullable: false
description: Nacha file name.
Get_Import_Transactions_Formats_List_Response_V0:
type: object
required:
- formats
properties:
formats:
type: array
items:
$ref: '#/components/schemas/Import_Transaction_Format_V0'
Import_Transaction_Format_V0:
type: object
required:
- formatId
- type
- body
properties:
formatId:
type: string
format: UUID
description: The unique identifier of the custom format. When null, indicates that the format is a default format for the format type specified (CSV, TabDelimited, or FixedPosition).
nullable: true
example: "123e4567-e89b-12d3-a456-426614174000"
type:
$ref: '#/components/schemas/Import_Transactions_Format_Type_V0'
body:
oneOf:
- $ref: '#/components/schemas/Import_Transactions_Delimited_Format_Body_V0'
- $ref: '#/components/schemas/Import_Transactions_FixedPosition_Format_Body_V0'
Create_Import_Transactions_Format_Request_V0:
type: object
required:
- type
- body
properties:
type:
$ref: '#/components/schemas/Import_Transactions_Format_Type_V0'
body:
oneOf:
- $ref: '#/components/schemas/Import_Transactions_Delimited_Format_Body_V0'
- $ref: '#/components/schemas/Import_Transactions_FixedPosition_Format_Body_V0'
discriminator:
propertyName: '#/components/schemas/Import_Transactions_Format_Type_V0'
mapping:
CSV: '#/components/schemas/Import_Transactions_Delimited_Format_Body_V0'
TabDelimited: '#/components/schemas/Import_Transactions_Delimited_Format_Body_V0'
FixedPosition: '#/components/schemas/Import_Transactions_FixedPosition_Format_Body_V0'
Update_Import_Transactions_Format_Request_V0:
type: object
required:
- formatId
- type
- body
properties:
formatId:
$ref: '#/components/schemas/Import_Transactions_Format_ID_V0'
type:
$ref: '#/components/schemas/Import_Transactions_Format_Type_V0'
body:
oneOf:
- $ref: '#/components/schemas/Import_Transactions_Delimited_Format_Body_V0'
- $ref: '#/components/schemas/Import_Transactions_FixedPosition_Format_Body_V0'
discriminator:
propertyName: '#/components/schemas/Import_Transactions_Format_Type_V0'
mapping:
CSV: '#/components/schemas/Import_Transactions_Delimited_Format_Body_V0'
TabDelimited: '#/components/schemas/Import_Transactions_Delimited_Format_Body_V0'
FixedPosition: '#/components/schemas/Import_Transactions_FixedPosition_Format_Body_V0'
Import_Transactions_Format_ID_V0:
type: string
format: UUID
description: The unique identifier of the custom format.
nullable: false
example: "123e4567-e89b-12d3-a456-426614174000"
Import_Transactions_Format_Type_V0:
type: string
enum: [ 'CSV', 'TabDelimited', 'FixedPosition' ]
nullable: false
description: The type of the import format either CSV, TabDelimited or FixedPosition.
example: 'CSV'
Import_Transactions_Delimited_File_V0:
type: object
required:
- file
- type
- formatId
- batchName
- secCode
- achCompanyName
- achCompanyId
- entryDescription
- discretionaryData
properties:
file:
type: string
format: binary
nullable: false
description: |
The default CSV and Tab-delimited file format requires a file with the following columns for the recipient data:
| Recipient Name | Dollar Amount | Transaction Type* | Account Number | Routing Number | Account Type* | Recipient ID |
|----------------|---------------|-------------------|----------------|----------------|---------------|--------------|
| Johnny Doe | 11.10 | CR | 123456789 | 022314020 | C | 1110 |
| Bonnie Parker | 11.20 | DR | 987654321 | 022314020 | S | 1120 |
| Jessie James | 11.30 | CR | 567890123 | 022314020 | S | |
### Example CSV File:
```
Johnny Doe,11.10,CR,123456789,022314020,C,1110
Bonnie Parker,11.20,DR,987654321,022314020,C,1120
Jessie James,11.30,CR,567890123,022314020,S,
```
type:
type: string
enum: [ 'CSV', 'TabDelimited' ]
nullable: false
description: The type of the import format either CSV or TabDelimited.
example: 'CSV'
formatId:
type: string
format: UUID
description: the unique identifier of the custom format. When null, the default format will be used according to the format type specified.
nullable: true
example: "123e4567-e89b-12d3-a456-426614174000"
batchName:
type: string
maxLength: 20
description: Name of the batch.
example: "Batch 1"
nullable: false
secCode:
type: string
description: The Standard Entry Class Code (SEC) for the batch.
enum:
- PPD
- CCD
- CTX
- WEB
- TEL
example: "PPD"
nullable: false
achCompanyName:
type: string
maxLength: 16
description: The name of the ACH company.
example: "Company Name"
nullable: false
achCompanyId:
type: string
maxLength: 10
description: Id of the ACH Company of the batch.
example: "1123456780"
nullable: false
entryDescription:
maxLength: 10
type: string
description: Description of the batch.
example: "DIRECTDEP"
nullable: false
discretionaryData:
maxLength: 20
type: string
description: Additional description of the batch.
example: "PAYROLL"
nullable: true
Import_Transactions_FixedPosition_File_V0:
type: object
required:
- file
- type
- formatId
- batchName
- secCode
- achCompanyName
- achCompanyId
- entryDescription
- discretionaryData
properties:
file:
type: string
format: binary
nullable: false
description: |
The default fixed-position file format requires a fixed-position file with the following columns for the recipient data:
| Recipient Name | Dollar Amount | Transaction Type* | Account Number | Routing Number | Account Type* | Recipient ID |
|----------------|---------------|------------------|-----------------|----------------|---------------|-----------------|
| Johnny Doe | 11.10 | CR | 123456789 | 022314020 | C | AINSG154847LI62 |
| Bonnie Parker | 11.20 | DR | 987654321 | 022314020 | C | OUEB97845IOSH77 |
| Jessie James | 11.30 | CR | 567890123 | 022314020 | S | |
Default fixed-position values must be padded with spaces with column value lengths according to the following default format:
| Recipient Name | Dollar Amount | Transaction Type | Account Number | Routing Number | Account Type | Recipient ID |
|----------------|---------------|------------------|----------------|----------------|--------------|--------------|
| 1-22 | 24-33 | 35-36 | 38-54 | 56-64 | 66-66 | 68-82 |
### Example of FixedPosition File:
```
Adam Adamson 121.00 CR 00000000142254145 082901855 C AINSG154847LI62
Ben Benson 144.01 CR 00000000477445471 082901855 C OUEB97845IOSH77
Carl Carlson 584.15 CR 00000000008457474 082901855 S
```
type:
type: string
enum: [ 'FixedPosition' ]
nullable: false
description: The type of the import format.
example: 'FixedPosition'
formatId:
type: string
format: UUID
description: the unique identifier of the custom format. When null, the default format will be used according to the format type specified.
nullable: true
example: "123e4567-e89b-12d3-a456-426614174000"
batchName:
type: string
maxLength: 20
description: Name of the batch.
example: "Batch 1"
nullable: false
secCode:
type: string
description: The Standard Entry Class Code (SEC) for the batch.
enum:
- PPD
- CCD
- CTX
- WEB
- TEL
example: "PPD"
nullable: false
achCompanyName:
type: string
maxLength: 16
description: The name of the ACH company.
example: "Company Name"
nullable: false
achCompanyId:
type: string
maxLength: 10
description: Id of the ACH Company of the batch.
example: "1123456780"
nullable: false
entryDescription:
maxLength: 10
type: string
description: Description of the batch.
example: "DIRECTDEP"
nullable: false
discretionaryData:
maxLength: 20
type: string
description: Additional description of the batch.
example: "Discretionary Data"
nullable: true
Import_Transactions_Delimited_Format_Body_V0:
type: object
required:
- recipientName
- recipientAmount
- recipientTransactionType
- transactionTypeCreditVariable
- transactionTypeDebitVariable
- recipientAccountType
- accountTypeCheckingVariable
- accountTypeSavingsVariable
- recipientAccountNumber
- recipientRoutingNumber
- recipientId
- nachaTranCode
properties:
recipientName:
$ref: '#/components/schemas/Import_Transactions_Delimited_Position_V0'
recipientAmount:
$ref: '#/components/schemas/Import_Transactions_Delimited_Position_V0'
recipientTransactionType:
$ref: '#/components/schemas/Import_Transactions_Delimited_Position_V0'
transactionTypeCreditVariable:
$ref: '#/components/schemas/Import_Transactions_Transaction_Type_Credit_Variable_V0'
transactionTypeDebitVariable:
$ref: '#/components/schemas/Import_Transactions_Transaction_Type_Debit_Variable_V0'
recipientAccountType:
$ref: '#/components/schemas/Import_Transactions_Delimited_Position_V0'
accountTypeCheckingVariable:
$ref: '#/components/schemas/Import_Transactions_Account_Type_Checking_Variable_V0'
accountTypeSavingsVariable:
$ref: '#/components/schemas/Import_Transactions_Account_Type_Savings_Variable_V0'
recipientAccountNumber:
$ref: '#/components/schemas/Import_Transactions_Delimited_Position_V0'
recipientRoutingNumber:
$ref: '#/components/schemas/Import_Transactions_Delimited_Position_V0'
recipientId:
$ref: '#/components/schemas/Import_Transactions_Delimited_Position_V0'
nachaTranCode:
$ref: '#/components/schemas/Import_Transactions_Delimited_Position_V0'
Import_Transactions_Delimited_Position_V0:
type: object
required:
- position
properties:
position:
type: integer
description: The position of the field in the delimited file (the column number). A 0 indicates that the field is unused in the case of optional fields.
nullable: false
example: 1
Import_Transactions_FixedPosition_Format_Body_V0:
type: object
required:
- recipientName
- recipientAmount
- recipientTransactionType
- transactionTypeCreditVariable
- transactionTypeDebitVariable
- recipientAccountType
- accountTypeCheckingVariable
- accountTypeSavingsVariable
- recipientAccountNumber
- recipientRoutingNumber
- recipientId
- nachaTranCode
properties:
recipientName:
$ref: '#/components/schemas/Import_Transactions_FixedPosition_Position_V0'
recipientAmount:
$ref: '#/components/schemas/Import_Transactions_FixedPosition_Position_V0'
recipientTransactionType:
$ref: '#/components/schemas/Import_Transactions_FixedPosition_Position_V0'
transactionTypeCreditVariable:
$ref: '#/components/schemas/Import_Transactions_Transaction_Type_Credit_Variable_V0'
transactionTypeDebitVariable:
$ref: '#/components/schemas/Import_Transactions_Transaction_Type_Debit_Variable_V0'
recipientAccountType:
$ref: '#/components/schemas/Import_Transactions_FixedPosition_Position_V0'
accountTypeCheckingVariable:
$ref: '#/components/schemas/Import_Transactions_Account_Type_Checking_Variable_V0'
accountTypeSavingsVariable:
$ref: '#/components/schemas/Import_Transactions_Account_Type_Savings_Variable_V0'
recipientAccountNumber:
$ref: '#/components/schemas/Import_Transactions_FixedPosition_Position_V0'
recipientRoutingNumber:
$ref: '#/components/schemas/Import_Transactions_FixedPosition_Position_V0'
recipientId:
$ref: '#/components/schemas/Import_Transactions_FixedPosition_Position_V0'
nachaTranCode:
$ref: '#/components/schemas/Import_Transactions_FixedPosition_Position_V0'
Import_Transactions_FixedPosition_Position_V0:
type: object
required:
- begin
- end
properties:
begin:
type: integer
description: The starting position of the field in the fixed-position file. A 0 indicates that the field is unused in the case of optional fields. Will always be less than or equal to the respective end field.
nullable: false
example: 1
end:
type: integer
description: The ending position of the field in the fixed-position file. A 0 indicates that the field is unused in the case of optional fields. Will always be greater than or equal to the respective begin field.
nullable: false
example: 22
Import_Transactions_Transaction_Type_Credit_Variable_V0:
type: string
minLength: 1
maxLength: 20
nullable: true
description: The value that represents a credit transaction in the respective recipientTransactionType column. May be null if nachaTranCode is configured.
example: "CR"
Import_Transactions_Transaction_Type_Debit_Variable_V0:
type: string
minLength: 1
maxLength: 20
nullable: true
description: The value that represents a debit transaction in the respective recipientTransactionType column. May be null if nachaTranCode is configured.
example: "DR"
Import_Transactions_Account_Type_Checking_Variable_V0:
type: string
minLength: 1
maxLength: 20
nullable: true
description: The value that represents a checking account in the respective recipientAccountType column. May be null if nachaTranCode is configured.
example: "C"
Import_Transactions_Account_Type_Savings_Variable_V0:
type: string
minLength: 1
maxLength: 20
nullable: true
description: The value that represents a savings account in the respective recipientAccountType column. May be null if nachaTranCode is configured.
example: "S"
Create_Import_Transactions_Format_Response_V0:
type: object
required:
- formatId
properties:
formatId:
type: string
format: UUID
description: The unique identifier of the custom import transaction format.
nullable: false
example: "123e4567-e89b-12d3-a456-426614174000"
Bulk_Initiate_Bad_Request_V1:
type: object
required:
- type
- title
- details
properties:
type:
type: string
nullable: false
title:
type: string
nullable: false
details:
type: array
items:
type: string
data:
type: array
items:
type: object
required:
- batchId
- field
- message
properties:
batchId:
type: string
description: The batchId containing the error.
field:
type: string
description: The field containing the error.
enum: [batchId, effectiveDate, sameDay]
example: sameDay
message:
type: string
description: Human readable message of the error.
example: Only one effective date OR same day can be supplied.
BadRequest_Edit_TaxPayment_V1:
type: object
required:
- type
- title
- details
properties:
type:
type: string
nullable: false
title:
type: string
nullable: false
details:
type: array
items:
type: string
data:
type: array
items:
type: object
required:
- field
- message
properties:
field:
type: string
description: The field containing the error.
message:
type: string
description: Human readable message of the error.
Bulk_Delete_Result_V0:
type: object
required:
- results
properties:
results:
type: array
items:
$ref: '#/components/schemas/Bulk_Delete_V1'
example:
- batchId: 123456
success: true
message: Batch '123456' marked to be deleted.
- batchId: 555555
success: false
message: Batch '555555' has the wrong status (Initiated) and cannot be deleted.
Bulk_Delete_V1:
type: object
nullable: false
required:
- batchId
- success
- message
properties:
batchId:
description: Unique identifier of the deleted batch.
type: string
nullable: false
success:
description: True if the batch was successfully deleted; else false.
type: boolean
example: false
nullable: false
message:
description: Human readable result from deleting the ACH batch.
type: string
example: Batch '555555' has the wrong status (Initiated) and cannot be deleted.
nullable: true
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 Fri Feb 13 2026