Details
Consumer API
>
API Reference
>
v0
>
Positive Pay
>
Details
openapi: 3.0.0
info:
version: '0.0'
title: Positive Pay
tags:
- name: File Formats
- name: Entitlements
- name: Check Exceptions
servers:
- url: 'https://{API_ENVIRONMENT}/a/consumer/api/v0'
variables:
API_ENVIRONMENT:
default: digital.garden-fi.com
description: FI specific hostname
paths:
'/users/{userId}/positive-pay/file-formats':
get:
tags:
- File Formats
description: Get positive pay file formats for the given Banno User.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/positivepay.readonly'
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/fileFormats'
"403":
description: Forbidden
"500":
description: Internal Service Error
"503":
description: Service is not available.
post:
tags:
- File Formats
description: Create a new positive pay file format for the given Banno User.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/positivepay.readonly'
- 'https://api.banno.com/consumer/auth/positivepay.readwrite'
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/fileFormat'
responses:
"200":
description: OK - The new file format was created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/fileFormatId'
"400":
description: Bad Request - The request JSON was malformed, or was missing required information
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
"403":
description: Forbidden
"500":
description: Internal Service Error
"503":
description: Service is not available.
'/users/{userId}/positive-pay/file-formats/{fileFormatId}':
get:
tags:
- File Formats
description: Get a positive pay file format for the given Banno User.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/positivepay.readonly'
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- in: path
name: fileFormatId
description: Id of the positive pay file format to be retrieved
required: true
schema:
type: string
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/fileFormatWithId'
"403":
description: Forbidden
"404":
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
"500":
description: Internal Service Error
"503":
description: Service is not available.
put:
tags:
- File Formats
description: Update an existing postive pay file format for the given Banno User.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/positivepay.readonly'
- 'https://api.banno.com/consumer/auth/positivepay.readwrite'
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- in: path
name: fileFormatId
description: Id of the positive pay file format to be updated
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/fileFormatWithId'
responses:
"202":
description: Accepted -The request was accepted, and will be processed by the server.
"400":
description: Bad Request - The request JSON was malformed, or was missing required information
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
"500":
description: Internal Service Error
"503":
description: Service is not available.
delete:
tags:
- File Formats
description: Delete a positive pay file format for the given Banno User.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/positivepay.readonly'
- 'https://api.banno.com/consumer/auth/positivepay.readwrite'
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- in: path
name: fileFormatId
description: Id of the positive pay file format to be deleted.
required: true
schema:
type: string
responses:
"204":
description: No Content.
"400":
description: Bad Reqeust.
content:
application/json:
schema:
$ref: '#/components/schemas/Delete_Format_BadRequestV1'
"403":
description: Forbidden.
"404":
description: Not Found.
"500":
description: Internal Service Error.
'/users/{userId}/positive-pay/file-uploads/{uploadId}/issued-items':
get:
tags:
- Issued Items
description: |
Get details about previously uploaded issued items.
**Please note: this endpoint has behavioral difference for Banks vs Credit Unions.**
Bank users are only able to view their most recently uploaded file. Credit Union users are able to view any unapproved files.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/positivepay.readonly'
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- in: path
name: uploadId
description: Id of the upload
required: true
schema:
type: string
- in: query
name: offset
description: Number of starting result. The first result's index is 0
required: false
schema:
type: integer
minimum: 0
default: 0
- in: query
name: limit
description: Number of results requested (must be positive)
required: false
schema:
type: integer
minimum: 1
default: 1000
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/uploadedIssuedItems'
"400":
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
"404":
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/errorResponse'
"410":
description: Gone - the resource with that uploadId is no longer available
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"500":
description: Internal Service Error
"503":
description: Service is not available.
'/users/{userId}/positive-pay/file-uploads':
get:
tags:
- Issued Items
description: Get information about already uploaded files
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/positivepay.readonly'
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/fileUploads'
"400":
description: Bad request - check userId
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
"500":
description: Internal Service Error
"503":
description: Service is not available.
'/users/{userId}/accounts/{accountId}/positive-pay/file-uploads':
post:
tags:
- Issued Items
description: Upload a file containing a list of issued items in delimited or fixed position format.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/positivepay.readonly'
- 'https://api.banno.com/consumer/auth/positivepay.readwrite'
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- $ref: '#/components/parameters/Account_Identifier_Param_V1'
requestBody:
content:
multipart/form-data:
schema:
type: object
description: |
File containing a list of issued items in delimited or fixed position format.
Supported file types are (CSV, XLS, XLSX). Ensure file extension in name matches file type.
required:
- file
- filename
- formatName
properties:
file:
type: string
description: |
The default file format requires a CSV or XLS/XLSX file with the following columns:
| Column Number | Input | Details | Example | Required |
|---------------|-----------------|----------------------------------------------------------------------|---------------------|----------|
| 1 | Item Number | | 1000 | * |
| 2 | Item Amount | No currency symbols Decimals accepted | 10.00 | * |
| 3 | Issue Date | Date format: mm/dd/yyyy | 07/01/2022 | |
| 4 | Payee | Current limit is 35 characters | John Doe | |
| 5 | Void Indicator | If yes = V If no = blank | V | |
| 6 | Account Type | Indicators for each: Checking = Chk Saving = Sav General Ledger = GL | Chk | |
| 7 | Debit / Credit | Indicators for each: Debit = D Credit = C | D | |
| 8 | Void Date | Date format: mm/dd/yyyy | 08/01/2022 | |
| 9 | Payee Address 1 | Address line 1 | 1100 Main Street | |
| 10 | Payee Address 2 | Address line 2 | Suite C | |
| 11 | Payee Address 3 | City, State and Zip | "Fortuna, CA 95540" | |
| 12 | Payee Address 4 | | | |
| 13 | Stop Indicator | If yes = Stop If no = blank | Stop | |
### Example
```
1000,10.00,4/5/2022,Jane Doe,V,Chk,D,7/5/2022,100 Main Street,,"Lenexa, KS 66215",,
1001,20.00,4/5/2022,JONES CORP.,,Chk,D,7/6/2022,222 Brookwood Blvd,Suite 100,"Lenexa, KS 66216",,Stop
```
format: binary
nullable: false
filename:
type: string
description: Name of the file.
format: text
nullable: false
formatName:
type: string
maxLength: 50
description: Name of the custom file-format the associated file is in. When null the default CSV file-format will be used.
format: text
nullable: true
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/fileUploadInfoBasics'
"400":
description: Bad Request. Ensure FileName and FileAsBytes are present in the request.
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
"404":
description: Not found. No account designator for accountId
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"409":
description: Conflict. Duplicate records in the request caused a failure.
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"500":
description: Internal Service Error
"503":
description: Service is not available.
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
'/users/{userId}/positive-pay/file-uploads/{uploadId}/approve':
post:
tags:
- Issued Items
description: |
Approve and submit to the Core a designated upload of issued items.
**Please note: this endpoint has behavioral difference for Banks vs Credit Unions.**
Bank users are only able to approve their most recently uploaded file. Credit Union users are able to approve any unapproved files.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/positivepay.readonly'
- 'https://api.banno.com/consumer/auth/positivepay.readwrite'
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- in: path
name: uploadId
description: The unique identifier for the uploaded file
required: true
schema:
type: string
responses:
"204":
description: No Content - The designated upload was successfully submitted
"400":
description:
Bad Request - No issued items in the provided upload had a successful status
because all the items have already been submitted to the Core
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
"404":
description: Not Found - The provided userId or uploadId could not be found
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"409":
description: |
**This response code applies only to Banks.**
This status code is returned when attempting to approve a file which is _not_ the most recently uploaded.
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"500":
description: Internal Service Error
"503":
description: Service is not available.
'/users/{userId}/accounts/{accountId}/positive-pay/issued-items':
post:
tags:
- Issued Items
description: Manually supply a list of issued items
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/positivepay.readonly'
- 'https://api.banno.com/consumer/auth/positivepay.readwrite'
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- $ref: '#/components/parameters/Account_Identifier_Param_V1'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/manuallyUploadedIssuedItems'
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/fileUploadInfoBasics'
"400":
description: Bad Request - The request JSON was malformed, or was missing required information
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
"409":
description: Conflict.
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"500":
description: Internal Service Error
"503":
description: Service is not available.
'/users/{userId}/positive-pay/entitlements':
get:
tags:
- Entitlements
summary: Get Positive Pay related Entitlements for a user.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/positivepay.readonly'
responses:
"200":
description: Valid user with Entitlements found.
content:
application/json:
schema:
$ref: '#/components/schemas/positive_pay_entitlements_v0'
"403":
description: Forbidden
"500":
description: Internal Service Error
"503":
description: Service is not available.
'/users/{userId}/accounts/{accountId}/positive-pay/entitlements':
get:
tags:
- Entitlements
description: |
Retrieves the account-level positive pay entitlements of this user on this account.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/positivepay.readonly'
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- $ref: '#/components/parameters/Account_Identifier_Param_V1'
responses:
"200":
description: successfully retrieved Wire entitlements for this account
content:
application/json:
schema:
$ref: '#/components/schemas/positive_pay_account_entitlements_v0'
"400":
description: Bad request - accountId or userId invalid
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
"404":
description: |
The `userId` or `accountId` may correspond to a non-existing user or account,
or they may correspond to an Account that does not belong to this user.
"500":
description: Internal service error.
"503":
description: Service is not available.
'/users/{userId}/accounts/{accountId}/positive-pay/check-exceptions':
get:
tags:
- Check Exceptions
description: |
Retrieves the account-level positive pay check exceptions of this user on this account.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- $ref: '#/components/parameters/Account_Identifier_Param_V1'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/positivepay.readonly'
responses:
"200":
description: successfully retrieved check exceptions for this account
content:
application/json:
schema:
$ref: '#/components/schemas/account_check_exceptions_v0'
"400":
description: Bad request - userId or accountId is not a valid UUID
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
"404":
description: Not Found - The provided userId or accountId could not be found
"500":
description: Internal service error.
"503":
description: Service is not available.
post:
tags:
- Check Exceptions
description: |
Approve or deny the account-level positive pay check exceptions of this user on this account.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- $ref: '#/components/parameters/Account_Identifier_Param_V1'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/positivepay.readonly'
- 'https://api.banno.com/consumer/auth/positivepay.readwrite'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/account_work_check_exceptions_request_v0'
responses:
"200":
description: successfully retrieved check exceptions for this account
content:
application/json:
schema:
$ref: '#/components/schemas/account_work_check_exceptions_response_v0'
"400":
description: Bad request - see details
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
"404":
description: Not Found - The provided userId or accountId could not be found or no exceptions found
"409":
description: Exceptions already processed
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"500":
description: Internal service error.
"503":
description: Service is not available.
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
'/users/{userId}/accounts/{accountId}/positive-pay/check-exceptions/images/{imageId}':
get:
tags:
- Check Exceptions
description: |
Retrieves the front and back image associated with a check exception, if available.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- $ref: '#/components/parameters/Account_Identifier_Param_V1'
- $ref: '#/components/parameters/Image_Identifier_Param_V0'
- $ref: '#/components/parameters/Image_Provider_Type_Param_V0'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/positivepay.readonly'
responses:
"200":
description: successfully retrieved images associated with the image
content:
application/json:
schema:
$ref: '#/components/schemas/check_exception_images_v0'
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
"404":
description: No images found.
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"500":
description: Internal service error.
"503":
description: Service is not available.
'/users/{userId}/accounts/{accountId}/positive-pay/ach-exceptions':
get:
tags:
- ACH Exceptions
description: |
Retrieves the account-level positive pay ACH exceptions for the user on the account.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- $ref: '#/components/parameters/Account_Identifier_Param_V1'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/positivepay.readonly'
responses:
"200":
description: Successfully retrieved ACH exceptions for the account.
content:
application/json:
schema:
$ref: '#/components/schemas/Ach_Exceptions_Response_V0'
"403":
description: Forbidden
"404":
description: Not Found - An account for the provided userId and/or accountId could not be found.
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"500":
description: Internal service error.
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"503":
description: Service is not available.
post:
tags:
- ACH Exceptions
description: |
Approve or deny the account-level positive pay ACH exceptions for the user on the account.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- $ref: '#/components/parameters/Account_Identifier_Param_V1'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/positivepay.readonly'
- 'https://api.banno.com/consumer/auth/positivepay.readwrite'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Work_Ach_Exceptions_Request_V0'
responses:
"200":
description: Successfully retrieved ACH exceptions for the account.
content:
application/json:
schema:
$ref: '#/components/schemas/Work_Ach_Exceptions_Response_V0'
"403":
description: Forbidden
"404":
description: Not Found - An account for the provided userId and/or accountId could not be found.
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"500":
description: Internal service error.
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"503":
description: Service is not available.
'/users/{userId}/accounts/{accountId}/positive-pay/ach-list-filters':
get:
tags:
- ACH Filters
description: |
Retrieves the account-level positive pay ACH filters for the user on the account.
parameters:
- $ref: '#/components/parameters/User_Identifier_Param_V1'
- $ref: '#/components/parameters/Account_Identifier_Param_V1'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/positivepay.readonly'
responses:
"200":
description: Successfully retrieved ACH filters for the account.
content:
application/json:
schema:
$ref: '#/components/schemas/Get_Ach_Filters_Response_V1'
"400":
description: Bad request - The account or user ID is invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/Generic_StandardError_V1'
"403":
description: Forbidden
"404":
description: Not Found - An account for the provided userId and/or accountId could not be found.
"500":
description: Internal service error.
"503":
description: Service is not available.
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
Account_Identifier_Param_V1:
in: path
name: accountId
description: Id of the Banno users account
required: true
schema:
type: string
format: uuid
Image_Identifier_Param_V0:
in: path
name: imageId
description: the identifier of the images associated with the check exception. For Banks the length will always be 15.
required: true
schema:
type: string
Image_Provider_Type_Param_V0:
in: query
name: imageProvider
schema:
$ref: '#/components/schemas/image_provider_type_v0'
required: true
schemas:
fileFormats:
type: object
required:
- formats
properties:
formats:
type: array
description: An array of file formats with basic information
items:
$ref: '#/components/schemas/fileFormatList'
fileFormatWithId:
oneOf:
- $ref: '#/components/schemas/fixedPositionFileFormatWithId'
- $ref: '#/components/schemas/delimitedFileFormatWithId'
discriminator:
propertyName: '#/components/schemas/formatType'
mapping:
FixedPosition: '#/components/schemas/fixedPositionFileFormatWithId'
Delimited: '#/components/schemas/delimitedFileFormatWithId'
fileFormat:
oneOf:
- $ref: '#/components/schemas/fixedPositionFileFormat'
- $ref: '#/components/schemas/delimitedFileFormat'
discriminator:
propertyName: '#/components/schemas/formatType'
mapping:
FixedPosition: '#/components/schemas/fixedPositionFileFormat'
Delimited: '#/components/schemas/delimitedFileFormat'
fixedPositionFileFormatWithId:
allOf:
- $ref: '#/components/schemas/fileFormatId'
- $ref: '#/components/schemas/formatName'
- $ref: '#/components/schemas/formatType'
- $ref: '#/components/schemas/fixedPositionFileFormat'
fileFormatList:
allOf:
- $ref: '#/components/schemas/fileFormatId'
- $ref: '#/components/schemas/formatName'
- $ref: '#/components/schemas/formatType'
fixedPositionFileFormat:
allOf:
- $ref: '#/components/schemas/formatName'
- $ref: '#/components/schemas/formatType'
- type: object
required:
- body
properties:
body:
$ref: '#/components/schemas/fixedPositionFileFormatBody'
fixedPositionFileFormatBody:
type: object
required:
- itemNumber
- itemAmount
- amountFormat
- decimalFormat
properties:
itemNumber:
$ref: '#/components/schemas/fixedPositionType'
itemAmount:
$ref: '#/components/schemas/fixedPositionType'
accountNumber:
$ref: '#/components/schemas/fixedPositionType'
accountType:
allOf:
- $ref: '#/components/schemas/fixedPositionType'
- $ref: '#/components/schemas/accountTypeIndicators'
transactionType:
allOf:
- $ref: '#/components/schemas/fixedPositionType'
- $ref: '#/components/schemas/transactionTypeIndicators'
issueDate:
allOf:
- $ref: '#/components/schemas/fixedPositionType'
- $ref: '#/components/schemas/dateFormat'
voidDate:
allOf:
- $ref: '#/components/schemas/fixedPositionType'
- $ref: '#/components/schemas/dateFormat'
payee:
$ref: '#/components/schemas/fixedPositionType'
payeeAddress1:
$ref: '#/components/schemas/fixedPositionType'
payeeAddress2:
$ref: '#/components/schemas/fixedPositionType'
payeeAddress3:
$ref: '#/components/schemas/fixedPositionType'
payeeAddress4:
$ref: '#/components/schemas/fixedPositionType'
voidIndicator:
allOf:
- $ref: '#/components/schemas/fixedPositionType'
- $ref: '#/components/schemas/yesIndicator'
stopIndicator:
allOf:
- $ref: '#/components/schemas/fixedPositionType'
- $ref: '#/components/schemas/yesIndicator'
amountFormat:
$ref: '#/components/schemas/amountFormatType'
decimalFormat:
$ref: '#/components/schemas/decimalFormatType'
delimitedFileFormatWithId:
allOf:
- $ref: '#/components/schemas/fileFormatId'
- $ref: '#/components/schemas/formatName'
- $ref: '#/components/schemas/formatType'
- $ref: '#/components/schemas/delimitedFileFormat'
delimitedFileFormat:
allOf:
- $ref: '#/components/schemas/formatName'
- $ref: '#/components/schemas/formatType'
- type: object
required:
- body
properties:
body:
$ref: '#/components/schemas/delimitedFileFormatBody'
delimitedFileFormatBody:
type: object
required:
- itemNumber
- itemAmount
- amountFormat
- fieldDelimiter
- textQualifier
- decimalFormat
properties:
itemNumber:
$ref: '#/components/schemas/delimitedPositionType'
itemAmount:
$ref: '#/components/schemas/delimitedPositionType'
accountNumber:
$ref: '#/components/schemas/delimitedPositionType'
accountType:
allOf:
- $ref: '#/components/schemas/delimitedPositionType'
- $ref: '#/components/schemas/accountTypeIndicators'
transactionType:
allOf:
- $ref: '#/components/schemas/delimitedPositionType'
- $ref: '#/components/schemas/transactionTypeIndicators'
issueDate:
allOf:
- $ref: '#/components/schemas/delimitedPositionType'
- $ref: '#/components/schemas/dateFormat'
voidDate:
allOf:
- $ref: '#/components/schemas/delimitedPositionType'
- $ref: '#/components/schemas/dateFormat'
payee:
$ref: '#/components/schemas/delimitedPositionType'
payeeAddress1:
$ref: '#/components/schemas/delimitedPositionType'
payeeAddress2:
$ref: '#/components/schemas/delimitedPositionType'
payeeAddress3:
$ref: '#/components/schemas/delimitedPositionType'
payeeAddress4:
$ref: '#/components/schemas/delimitedPositionType'
voidIndicator:
allOf:
- $ref: '#/components/schemas/delimitedPositionType'
- $ref: '#/components/schemas/yesIndicator'
stopIndicator:
allOf:
- $ref: '#/components/schemas/delimitedPositionType'
- $ref: '#/components/schemas/yesIndicator'
amountFormat:
$ref: '#/components/schemas/amountFormatType'
fieldDelimiter:
$ref: '#/components/schemas/fieldDelimiterType'
textQualifier:
$ref: '#/components/schemas/textQualifierType'
decimalFormat:
$ref: '#/components/schemas/decimalFormatType'
fileFormatId:
type: object
required:
- id
properties:
id:
type: string
description: The unique identifier for a given file format
example: "1234"
formatName:
type: object
required:
- name
properties:
name:
type: string
description: The name given to any given file format
minLength: 1
maxLength: 50
pattern: '[0-9a-zA-Z]{1,50}'
example: "MyCustomFormat2"
formatType:
type: object
required:
- type
properties:
type:
type: string
description: The type associated with a given file format
enum:
- FixedPosition
- Delimited
fileFormatType:
type: string
description: The format type associated with a given upload
enum:
- FixedPosition
- Delimited
- ManualEntry
fixedPositionType:
type: object
required:
- begin
- end
properties:
begin:
type: integer
description: The position at which the field begins in a fixed-position-formatted file
minimum: 1
maximum: 256
end:
type: integer
description: The position at which the field ends in a fixed-position-formatted file
minimum: 1
maximum: 256
delimitedPositionType:
type: object
required:
- position
properties:
position:
type: integer
description: The position of the field in a delimited-position-formatted file
accountTypeIndicators:
type: object
description: Contains the values which should be used to indicate the given account type in a formatted file
minProperties: 1
properties:
checking:
$ref: '#/components/schemas/indicatorType'
savings:
$ref: '#/components/schemas/indicatorType'
christmasClub:
$ref: '#/components/schemas/indicatorType'
gl:
$ref: '#/components/schemas/indicatorType'
transactionTypeIndicators:
type: object
description: Contains the values which should be used to indicate a debit and/or credit in a formatted file
minProperties: 1
properties:
debit:
$ref: '#/components/schemas/indicatorType'
credit:
$ref: '#/components/schemas/indicatorType'
yesIndicator:
type: object
description: Contains the value which should indicate "YES" in a formatted file. The meaning of "YES" will be context-specific, e.g. that a check should be voided, or that payment on a check should be stopped
required:
- yes
properties:
yes:
$ref: '#/components/schemas/indicatorType'
indicatorType:
type: string
description: The value to be used to indicate a particular type in a formatted file
minLength: 1
maxLength: 10
pattern: '[0-9a-zA-Z]{1,10}'
dateFormat:
type: object
required:
- dateFormat
properties:
dateFormat:
type: string
description: The format to be used for dates in a formatted file
amountFormatType:
type: string
description: Indicates how amounts are expected to be formatted in a formatted file
enum:
- NoValidation
- DecimalIncluded
- DecimalNotIncluded
decimalFormatType:
type: string
description: Indicates how decimals are expected to be formatted in a formatted file (NoValidation - "No format validation"; WholeDollar - "ex. 789 = 789.00"; DecimalImplied - "ex. 789 = 7.89")
enum:
- NoValidation
- WholeDollar
- DecimalImplied
fieldDelimiterType:
type: string
description: In delimited-position-formatted files, indicates the character used to separate (delimit) fields
enum:
- Comma
- Dash
- Semicolon
- Tab
textQualifierType:
type: string
description: In delimited-position-formatted files, indicates the characters used to wrap text values
enum:
- None
- SingleQuotes
- DoubleQuotes
fileUploads:
type: object
required:
- uploads
properties:
uploads:
type: array
description: An array of objects containing information about uploaded files
items:
$ref: '#/components/schemas/fileUploadInfo'
fileUploadInfo:
type: object
required:
- id
- fileName
- accountId
- status
- uploadedAt
properties:
id:
type: string
description: The unique identifier for the uploaded file
example: "123"
fileName:
type: string
description: The name of the file.
example: my_uploaded_file.csv
accountDesignator:
type: string
example: Bus Chk 003
description: An identifier for the account associated with the uploaded file.
status:
type: string
description: Queued, Unapproved, and Uploaded are the most common statuses. Listing all of the potential values for completeness, though.
enum:
- Queued
- Unapproved
- Uploaded
- InProgress
- Stalled
- Done
- Error
- Deleted
- Cannot Open File
- Not successful
- Successful
uploadedAt:
type: string
format: date-time
description: The date and time at which the file was uploaded
fileUploadInfoBasics:
type: object
required:
- id
- fileName
properties:
id:
type: string
description: The unique identifier for the uploaded file
example: "123"
fileName:
type: string
description: The name of the file.
example: my_uploaded_file.csv
uploadedIssuedItems:
type: object
required:
- items
properties:
totalItems:
type: integer
description: The total count of items in the file
totalAmount:
type: string
example: "1000.00"
description: The total amount of all items in the file
items:
type: array
description: An array of items that have been issued
items:
type: object
properties:
status:
type: string
enum: ["successful", "duplicate", "not successful"]
itemNumber:
type: string
pattern: '^\d+$'
description: The number associated with the item (check) being uploaded. This is a string containing only digits, which allows for leading zeros.
dateIssued:
type: string
description: The date when the item was issued
format: date-time
payee:
type: string
description: A string representation of the payee for the given item
amount:
type: string
description: Amount of item
example: "10.00"
manuallyUploadedIssuedItems:
type: object
required:
- items
properties:
items:
type: array
description: An array of items which have been manually provided by the user
items:
type: object
required:
- itemNumber
- amount
properties:
itemNumber:
type: string
pattern: '^\d+$'
description: The number associated with the item (check) being uploaded. This is a string containing only digits, which allows for leading zeros.
amount:
type: string
description: Amount of item
example: "10.00"
dateIssued:
type: string
description: The date when the item was issued
nullable: true
format: date
payee:
type: string
description: A string representation of the payee for the given item
nullable: true
itemType:
type: string
description: A type to indicate how this item entry should be handled in the core
nullable: true
enum:
- Credit
- Debit
- Void
positive_pay_entitlements_v0:
type: object
required:
- uploadArpFile
- createArpTemplate
- editArpTemplate
- deleteArpTemplate
- workArpItems
- downloadArpFile
- workAchExceptions
- accounts
properties:
uploadArpFile:
type: boolean
example: true
nullable: false
createArpTemplate:
type: boolean
example: true
nullable: false
editArpTemplate:
type: boolean
example: true
nullable: false
deleteArpTemplate:
type: boolean
example: true
nullable: false
workArpItems:
type: boolean
example: true
nullable: false
downloadArpFile:
type: boolean
example: true
nullable: true
workAchExceptions:
type: boolean
example: true
description: Indicates the user can work ACH exceptions.
nullable: true
accounts:
type: array
nullable: false
items:
$ref: '#/components/schemas/positive_pay_account_entitlements_v1'
positive_pay_account_entitlements_v1:
type: object
required:
- accountId
- uploadArpFile
- manuallyAddArpItem
- viewArpUploadedFile
- viewArpManualItem
- approveArpUploadedFile
- approveArpManualItem
- viewArpUploadHistory
- viewArpManualItemHistory
- viewArpExceptionItem
- viewArpExceptionItemDetail
- workArpExceptionItem
- downloadArpFile
- viewAchExceptionFilter
- viewAchExceptionItem
- workAchExceptionItem
properties:
accountId:
type: string
format: uuid
nullable: false
uploadArpFile:
type: boolean
example: true
nullable: false
manuallyAddArpItem:
type: boolean
example: true
nullable: false
viewArpUploadedFile:
type: boolean
example: true
nullable: false
viewArpManualItem:
type: boolean
example: true
nullable: false
approveArpUploadedFile:
type: boolean
example: true
nullable: false
approveArpManualItem:
type: boolean
example: true
nullable: false
viewArpUploadHistory:
type: boolean
example: true
nullable: false
viewArpManualItemHistory:
type: boolean
example: true
nullable: false
viewArpExceptionItem:
type: boolean
example: true
nullable: false
viewArpExceptionItemDetail:
type: boolean
example: true
nullable: false
workArpExceptionItem:
type: boolean
example: true
nullable: false
downloadArpFile:
type: boolean
example: true
nullable: true
viewAchExceptionFilter:
type: boolean
example: true
description: Indicates the user can view ACH exceptions filter.
nullable: true
viewAchExceptionItem:
type: boolean
example: true
description: Indicates the user can view ACH exceptions.
nullable: true
workAchExceptionItem:
type: boolean
example: true
description: Indicates the user can work ACH exceptions.
nullable: true
positive_pay_account_entitlements_v0:
type: object
required:
- uploadArpFile
- manuallyAddArpItem
- viewArpUploadedFile
- viewArpManualItem
- approveArpUploadedFile
- approveArpManualItem
- viewArpUploadHistory
- viewArpManualItemHistory
- viewArpExceptionItem
- viewArpExceptionItemDetail
- workArpExceptionItem
- downloadArpFile
- viewAchExceptionFilter
- viewAchExceptionItem
- workAchExceptionItem
properties:
uploadArpFile:
type: boolean
example: true
nullable: false
manuallyAddArpItem:
type: boolean
example: true
nullable: false
viewArpUploadedFile:
type: boolean
example: true
nullable: false
viewArpManualItem:
type: boolean
example: true
nullable: false
approveArpUploadedFile:
type: boolean
example: true
nullable: false
approveArpManualItem:
type: boolean
example: true
nullable: false
viewArpUploadHistory:
type: boolean
example: true
nullable: false
viewArpManualItemHistory:
type: boolean
example: true
nullable: false
viewArpExceptionItem:
type: boolean
example: true
nullable: false
viewArpExceptionItemDetail:
type: boolean
example: true
nullable: false
workArpExceptionItem:
type: boolean
example: true
nullable: false
downloadArpFile:
type: boolean
example: true
nullable: false
viewAchExceptionFilter:
type: boolean
example: true
description: Indicates the user can view ACH exceptions filter.
nullable: false
viewAchExceptionItem:
type: boolean
example: true
description: Indicates the user can view ACH exceptions.
nullable: false
workAchExceptionItem:
type: boolean
example: true
description: Indicates the user can work ACH exceptions.
nullable: false
account_check_exceptions_v0:
type: object
required:
- accountId
- checkExceptions
properties:
accountId:
type: string
description: A string identifier for the account associated with the check exceptions
nullable: false
checkExceptions:
type: array
items:
$ref: '#/components/schemas/checkException'
nullable: false
account_work_check_exceptions_request_v0:
type: object
required:
- workedCheckExceptions
properties:
workedCheckExceptions:
type: array
items:
$ref: '#/components/schemas/workedCheckException'
nullable: false
account_work_check_exceptions_response_v0:
type: object
required:
- accountId
- results
properties:
accountId:
type: string
description: A string identifier for the account associated with the check exceptions
nullable: false
results:
type: array
items:
$ref: '#/components/schemas/workedCheckExceptionResults'
nullable: false
checkException:
type: object
required:
- checkId
- amount
- sourceOfEntry
- exceptionReason
- decision
- decisionAuthorization
- decisionTime
- decisionWorkstation
- imageId
- checkImageLink
- readOnly
- arpBatchNumber
- arpSequenceNumber
- imageType
- capturedPayeeName
- resolvedFlag
- issuedDate
- issuedAmount
- payee
properties:
checkId:
type: string
description: Unique identifier of the item that was presented for payment
nullable: false
amount:
type: string
description: The amount of the item presented for payment
format: UScurrency
example: 4712.21
nullable: false
sourceOfEntry:
type: string
description: Means in which item was presented for payment
nullable: true
exceptionReason:
type: string
description: Type of violation (paid no issue, wrong amount, duplicate, etc.)
nullable: false
decision:
type: string
description: Identifies if the check exception will be paid or returned.
enum:
- pay
- return
- undecided
nullable: false
decisionAuthorization:
type: string
description: Person/entity that authorized payment of item
nullable: true
decisionTime:
type: string
description: Time item was decisioned to pay (formatted HH:MM:SS)
format: HH:MM:SS
example: 12:34:56
nullable: true
decisionWorkstation:
type: string
description: Terminal item was decisioned to pay (NETTELLER, FI employee user ID)
nullable: true
imageId:
type: string
description: Identification number of item with Image Processor
nullable: true
checkImageLink:
type: string
description: Link to retrieve an image of the item
nullable: true
readOnly:
type: boolean
description: Indicates if item can be worked by a cash user online. If true, the user can view item but not work item
nullable: false
arpBatchNumber:
type: string
description: Account Recon / Positive Pay processing batch file number that contains item
nullable: false
arpSequenceNumber:
type: string
description: Account Recon / Positive Pay identifying number of item within the batch
nullable: false
imageType:
type: string
allOf:
- $ref: '#/components/schemas/image_provider_type_v0'
- nullable: true
nullable: true
capturedPayeeName:
type: string
description: Name of person/entity that appears on the incoming check
nullable: true
resolvedFlag:
type: boolean
description: Item has been worked by cash user or FI
nullable: true
issuedDate:
type: string
description: Date the company defined as being issued. Formatted YYYY-MM-DD.
example: '2024-03-02'
format: YYYY-MM-DD
nullable: true
issuedAmount:
type: string
description: Amount the company defined as being issued
format: UScurrency
example: 4712.21
nullable: true
payee:
type: string
description: Name of person/entity the company defined as being issued to
nullable: true
workedCheckException:
type: object
required:
- checkId
- amount
- decision
- arpBatchNumber
- arpSequenceNumber
properties:
checkId:
type: string
description: Unique identifier of the item that was presented for payment
amount:
type: string
description: The amount of the item presented for payment
format: UScurrency
example: 4712.21
decision:
type: string
description: Identifies if the check exception will be paid or returned.
enum:
- pay
- return
arpBatchNumber:
type: string
description: Processing batch file number that contains item
arpSequenceNumber:
type: string
description: Identifying number of item within the batch.
workedCheckExceptionResults:
type: object
required:
- checkId
- statusCode
- success
- errorCode
- message
properties:
checkId:
type: string
description: Unique identifier of the item that was presented for payment
statusCode:
type: string
description: Status condition of the exception. A=active R=reorder H=hot card W=warm card/deposits only
nullable: true
success:
type: boolean
description: This value indicates whether the work exception was successful or not
errorCode:
type: string
description: Code returned if the work exception fails
nullable: true
message:
type: string
description: Detailed note about the work exception's status
nullable: true
errorResponse:
type: object
required:
- error
properties:
error:
type: string
description: An error message providing a description of what went wrong
Base_Error:
type: object
required:
- type
- title
properties:
type:
type: string
description: The type of error being returned.
title:
type: string
description: A human readable message of the error.
Delete_Format_BadRequestV1:
type: object
allOf:
- $ref: '#/components/schemas/Base_Error'
- properties:
details:
description: additional details for why the request failed.
type: array
items:
type: string
enum: ['Invalid File Format Id']
check_exception_images_v0:
type: object
description: returns the images available for a check exception. If an imageId exists, at least one side will not be null.
required:
- frontImage
- backImage
properties:
frontImage:
$ref: '#/components/schemas/check_image_url_v0'
backImage:
$ref: '#/components/schemas/check_image_url_v0'
image_provider_type_v0:
type: string
description: |
"J" = JhaImage<br>
"X" = Other<br>
"Y" = Other with check21 imaging<br>
"K" = JhaImage with check21 imaging<br>
enum:
- 'J'
- 'X'
- 'Y'
- 'K'
check_image_url_v0:
type: string
description: |
Image in data URL format. All images will be jpegs.
example: 'data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII='
nullable: true
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
Ach_Exceptions_Response_V0:
type: object
required:
- accountId
- exceptions
properties:
accountId:
type: string
description: Id of the account
exceptions:
type: array
items:
$ref: '#/components/schemas/Ach_Exception'
description: List of ACH exceptions.
Ach_Exception:
type: object
required:
- issuingCompany
- transactionType
- amount
- description
- secCode
- exceptionReasons
- decision
- protected
- sequenceNumber
- branchNumber
properties:
issuingCompany:
type: string
description: Company that originated the credit/debit.
transactionType:
type: string
description: Indicates whether the transaction is a credit or debit.
enum:
- Credit
- Debit
amount:
type: string
description: Dollar amount of the transaction.
description:
type: string
description: Entry description defined by originator.
secCode:
type: string
description: Three character NACHA standard entry class code that indicates the general purpose of the transaction.
exceptionReasons:
type: array
description: Description of the ACH filter that caused the item to be an exception. (i.e. debits not allowed, CTX SEC code not allowed, etc.)
items:
type: string
decision:
type: string
description: Identifies if the ACH exception will be paid or returned the originator.
enum:
- pay
- return
- undecided
protected:
type: boolean
description: If true, user is not able to work the exception item. This usually occurs when it is outside of the FI-defined timeframe to work exceptions.
sequenceNumber:
type: string
description: Host defined identifier.
minLength: 5
maxLength: 5
example: "01550"
branchNumber:
type: string
description: Host defined identifier.
minLength: 3
maxLength: 3
example: "001"
Work_Ach_Exceptions_Request_V0:
type: object
required:
- achExceptions
properties:
achExceptions:
type: array
description: List of ACH exceptions to be updated.
items:
$ref: '#/components/schemas/WorkAchException'
nullable: false
WorkAchException:
type: object
required:
- sequenceNumber
- branchNumber
- decision
properties:
sequenceNumber:
type: string
description: Host defined identifier.
minLength: 5
maxLength: 5
nullable: false
example: "01550"
branchNumber:
type: string
description: Host defined identifier.
minLength: 3
maxLength: 3
nullable: false
example: "001"
decision:
type: string
description: Identifies if the ACH exception will be paid or returned the originator.
enum:
- pay
- return
Work_Ach_Exceptions_Response_V0:
type: object
required:
- accountId
- workedAchExceptions
properties:
accountId:
type: string
description: Account Id
workedAchExceptions:
type: array
description: List of ACH exceptions that have been updated.
items:
$ref: '#/components/schemas/Work_Ach_Exception'
nullable: false
Work_Ach_Exception:
type: object
required:
- decision
- sequenceNumber
- branchNumber
- isSuccessful
properties:
decision:
type: string
description: Identifies if the ACH exception will be paid or returned the originator.
enum:
- pay
- return
sequenceNumber:
type: string
description: Host defined identifier.
minLength: 5
maxLength: 5
example: "01550"
branchNumber:
type: string
description: Host defined identifier.
minLength: 3
maxLength: 3
example: "001"
isSuccessful:
type: boolean
description: When true, the pay/return update was successful. When false, the pay/return update failed.
error:
type: string
description: The reason the ACH exception failed.
Ach_Filter_V0:
type: object
required:
- companyId
- companyName
- secCode
- fromAmount
- toAmount
- routingTransitNumber
- transactionType
- allowDisallowFlag
- expirationDate
properties:
companyId:
type: string
description: Identifier of the company
nullable: false
companyName:
type: string
description: Name of the company
nullable: false
secCode:
type: string
description: A specific SEC code that attempts to credit/debit org account via ACH
nullable: false
fromAmount:
type: string
description: A specific low amount that attempts to credit/debit org account via ACH
format: UScurrency
example: 4712.21
nullable: false
toAmount:
type: string
description: A specific high amount that attempts to credit/debit org account via ACH
format: UScurrency
example: 4712.21
nullable: false
routingTransitNumber:
type: string
description: A specific routing number that attempts to credit/debit org account via ACH
nullable: false
transactionType:
type: string
enum: [Credit, Debit]
description: Indicates if a detailed filter pertains to debits or credits
nullable: false
allowDisallowFlag:
type: string
enum: [Allow, Disallow]
description: Indicates if a detailed filter is allowing or disallowing debits or credits. Works in conjunction with transactionType
nullable: false
expirationDate:
type: string
description: Date that ACH filter expires
example: '2024-03-02'
format: YYYY-MM-DD
nullable: false
Ach_Filter_V1:
type: object
required:
- companyId
- companyName
- secCode
- fromAmount
- toAmount
- routingTransitNumber
- transactionType
- allowDisallowFlag
- expirationDate
properties:
companyId:
type: string
description: Identifier of the company
nullable: false
companyName:
type: string
description: Name of the company
nullable: false
secCode:
type: string
description: A specific SEC code that attempts to credit/debit org account via ACH
nullable: false
fromAmount:
type: string
description: A specific low amount that attempts to credit/debit org account via ACH
format: UScurrency
example: 4712.21
nullable: false
toAmount:
type: string
description: A specific high amount that attempts to credit/debit org account via ACH
format: UScurrency
example: 4712.21
nullable: false
routingTransitNumber:
type: string
description: A specific routing number that attempts to credit/debit org account via ACH
nullable: false
transactionType:
type: string
enum: [Credit, Debit]
description: Indicates if a detailed filter pertains to debits or credits
nullable: false
allowDisallowFlag:
type: string
enum: [Allow, Disallow]
description: Indicates if a detailed filter is allowing or disallowing debits or credits. Works in conjunction with transactionType
nullable: false
expirationDate:
type: string
description: Date that ACH filter expires
example: '2024-03-02'
format: YYYY-MM-DD
nullable: true
Get_Ach_Filters_Response_V0:
type: object
required:
- accountId
- accountType
- creditsAllowed
- debitsAllowed
- achFilters
properties:
accountId:
type: string
description: Account identifier that filters were retrieved for
nullable: false
accountType:
type: string
description: Account type that filters were retrieved for
nullable: false
creditsAllowed:
type: boolean
description: Indicates if the account allows all ACH credits by default
nullable: false
debitsAllowed:
type: boolean
description: Indicates if the account allows all ACH debits by default
nullable: false
achFilters:
type: array
description: List of ACH filters associated with account.
items:
$ref: '#/components/schemas/Ach_Filter_V0'
nullable: true
Get_Ach_Filters_Response_V1:
type: object
required:
- accountId
- accountType
- creditsAllowed
- debitsAllowed
- achFilters
properties:
accountId:
type: string
description: Account identifier that filters were retrieved for
nullable: false
accountType:
type: string
description: Account type that filters were retrieved for
nullable: false
creditsAllowed:
type: boolean
description: Indicates if the account allows all ACH credits by default
nullable: false
debitsAllowed:
type: boolean
description: Indicates if the account allows all ACH debits by default
nullable: false
achFilters:
type: array
description: List of ACH filters associated with account.
items:
$ref: '#/components/schemas/Ach_Filter_V1'
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