Use the ACH Origination API to submit a payment. This API is more than a single action. With the ACH Origination API, you can submit a payment, check on its status, and undo a request.
Request a payment
The ACH Origination process starts with a payment request made by a financial institution or client. Request values are validated to make sure the input matches the correct schema for the SEC code. Effective date and other data, like the trace number, are automatically assigned. Records from the batch, detail, and addenda schemas are stored for the consolidation process.
This request generates a batch response that includes the status and payment details by SEC code. You can include up to ten accounts with each request. For each submitted request, you can check on the status and progress of the payment or addenda report.
Addenda information
Each SEC code will include addenda information with the response, except for TEL. If an addenda item returns a large set of records (common with CTX), it initiates the addenda request. This request adds additional addenda records to a detail item. Currently, only details that are associated to a batch having a CTX SEC code can have additional addenda records added.
Prerequisites and best practices
KeyBank has some common prerequisites and best practices. All KeyBank APIs require certifications, user credentials, and certain permissions. Make sure to satisfy all prerequisites before building your API.
Follow these steps to prepare for operations:
-
Have valid certificates for a secure connection.
-
Make sure you have the API keys needed for basic authentication and API access.
-
Request a bearer token before you start.
-
Check the health of the API.
-
Create a UUID.
-
Have the required client information fields for calls using a SEC code, provided by KeyBank.
-
Know the SEC code.
-
Get a trace number.
Certificates
Certificates are a digital authentication method we use to encrypt the information exchanged between KeyBank and your app or service. To access KeyBank environments, you must exchange valid certificates with KeyBank. These certificates must be properly installed on your system before you start to send API calls.
API keys
You need API keys to get a bearer token and to grant access to the APIs and the Pre-Production or Production environments. These API keys are created only for authenticated users that have partnered with KeyBank. For more information, see API security or sign up to become a KeyBank API consumer.
Bearer token
Get a bearer token before you start. Only authenticated users with client credentials can request a bearer token. For more information, see API security or sign up to become a KeyBank API consumer.
Health check
Before you start building your API, perform a quick health check. A health check verifies that the API is operational and responding correctly with your system. A bearer token is required to perform a health check. For more information, see Health check.
Create a UUID
UUID stands for Universally Unique Identifier. This is a useful attribute to recall a transaction before the next batch cycle runs. Since the UUID field is required to undo an ACH payment request, KeyBank strongly encourages the UUID is included with all ACH Origination calls.
You create this value. The can be an alphanumeric value with a maximum length of 45 characters. For example, a random UUID value can be 5ea39056-49gb-4714-b941-e52b1bec7. The batch and the individual UUID can be the same. KeyBank recommends that you use different UUID values.
Client information
After you have completed the onboarding process with KeyBank, KeyBank provides the client (point
) and client account (colllectionApplicationId
, collectionApplicationType
) information via secure email. These fields are required for any ACH Origination call with a SEC code.
SEC code
In the request payload, you must specify the Standard Entry Class (SEC) code for the transaction. The ACH Origination API supports these SEC codes: CCD, CTX, IAT, PPD, TEL, WEB.
SEC CODE | DEFINITION | DESCRIPTION |
---|---|---|
CCD | Corporate Credit or Debit | A CCD entry can be either a buyer-initiated or seller-initiated transaction used to move funds between the buyer’s and seller’s financial institution accounts. It is also used by companies to move funds from outlying depository locations to a central bank account. A CCD entry is typically used when paying for one item, since there is no mechanism for transmitting addenda. |
CTX | Corporate Trade Exchange | A CTX entry is like a CCD entry, but it supports including multiple addenda. |
IAT | International ACH Transactions | An IAT entry is a debit or credit payment transaction involving a financial agency’s office that is not located in the territorial jurisdiction of the United States. |
PPD | Prearranged Payment and Deposit | A PPD entry is a credit or debit entry originated by an organization to a consumer’s account, based on a standing or single-entry authorization from that consumer. A PPD entry supports including one addendum. |
TEL | Telephone Initiated Entries | TEL entries are initiated in response to a receiver’s oral authorization that is spoken over the telephone. These entries can be debit only. |
WEB | Internet Initiated/Mobile Entries | WEB entries are entries transmitted to a consumer receiver’s account. These entries can be either debits or credits. WEB entries can be either recurring or non-recurring transactions. |
Trace number
You get a trace number after you initiate an ACH transaction. The trace number is a unique identifier for an ACH transaction generated by the API. The trace number is useful for transaction inquiries and traceability. Save this trace number if you intend to check on the progress of the ACH transaction. For multiple payment requests, the trace number may not be in sequential order.
Endpoints
Endpoint | Result | Description |
---|---|---|
post /ach/payments/v1/status | Check the status of a payment | Return status of one or more Detail Item(s). |
post /ach/payments/v1/status/addenda | Check the status of addenda records | Check the status for large addenda reports. |
post /ach/payments/v1/ccd | Send a payment | ACH payment origination for credit or debits. |
post /ach/payments/v1/ctx | Send a payment between two businesses | Submit a payment from one business/entity to another. |
post /ach/payments/v1/ppd | Send a payment from written authorization | Submit a payment based on terms of service, like a subscription or membership. |
post /ach/payments/v1/tel | Send a payment over the phone | Authorize and submit a payment by the phone. |
post /ach/payments/v1/web | Send a payment on a website | Authorize and submit a payment on a website. |
post /ach/payments/v1/undo | Undo a payment request | Reverse a payment request before it enters consolidation. |
post /ach/payments/v1/addenda | Send additional addenda information | Add records to an existing ACH transaction. |
Check the status of a payment request
post /ach/payments/v1/status
Check the return status of one or more transactions. Use this request to see if the originated item failed, was accepted, is waiting for one or more addenda items, or is being processed.
Request
HEADER FIELD | TYPE | DESCRIPTION |
---|---|---|
X-Pointrequired | string | A short name specific to your company provided by KeyBank. The name must not exceed 9 characters. This is appended to the file name and improves security. |
BODY FIELD | TYPE | DESCRIPTION |
---|---|---|
detailStatusoptional | array | paymentInquiryDetailRequest |
Request example

{ "detailStatus": [ { "uuid": "qas220602x-49eb-47664-b94rhd1-e52e2re11001" } ] }
Responses
Successful response
NAME | TYPE | DESCRIPTION |
---|---|---|
detailsoptional | array | detailStatusResponse |
Missing data
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (400)

{ "ErrorMessage": "Mandatory data not provided. Please verify the data and resubmit the request.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Unauthorized request
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (401)

{ "ErrorMessage": "Please make sure you're using the correct credentials. Then log in again.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Request is forbidden to access the resource
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (403)

{ "ErrorMessage": "You don't have access to this resource. Contact developers@keybank.com for more information.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Not found
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (404)

{ "ErrorMessage": "We can't seem to find what you're looking for. Please verify the resource and try again.", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionTime": "2021-06-11T16:31:34.041Z", "ServiceError": { "details": { "uuid": "qas220602x-49eb-47664-b94rhd1-e52e2re11001", "status": "notFound", "errorMessages": { "code": "1003040-66E", "moreInfo": "Detail transaction not found." }, "informationMessages": "", "traceNumber": "null" } } }
Requested method denied
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (405)

{ "ErrorMessage": "Looks like something went wrong. Please check your request method and try again.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Media type not supported
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (415)

{ "ErrorMessage": "We currently don't support that format. Please check the format type defined in your request and try again. Contact developers@keybank.com if you experience more issues.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Too many requests
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (429)

{ "ErrorMessage": "Looks like you've sent too many requests. Please wait a moment and try again later.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Internal server error
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (500)

{ "ErrorMessage": "Looks like something went wrong. Please try again when you're ready. Contact developers@keybank.com if you experience more issues.", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Bad gateway
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (502)

{ "ErrorMessage": "Looks like something went wrong. Submit your request again. Contact developers@keybank.com if you experience more issues.", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z", "ServiceError": { "ConnectError": "Connectivity error occured with the downstream service(Unexpected EOF at target), please check with appplication support team before resubmitting the request." } }
Service unavailable
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (503)

{ "ErrorMessage": "Looks like something went wrong. Please contact developers@keybank.com for more information and try again later.", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z", "ServiceError": { "ConnectError": "Service is currently unavailable. Please check with appplication support before resubmitting the request." } }
Gateway timeout
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (504)

{ "ErrorMessage": "Your request took too long to process. Please try again. Contact developers@keybank.com if you experience more issues.", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z", "ServiceError": { "ConnectError": "Request could not be processed on time. Please wait a moment and resubmit the request." } }
Check the status of addenda records
post /ach/payments/v1/status/addenda
Check the return status of one or more addenda records.
Request
HEADER FIELD | TYPE | DESCRIPTION |
---|---|---|
X-Pointrequired | string | A short name specific to your company provided by KeyBank. The name must not exceed 9 characters. This is appended to the file name and improves security. |
BODY FIELD | TYPE | DESCRIPTION |
---|---|---|
uuidrequired | string | A custom value used to idenitfy each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters. |
pageSizeoptional | string | The number of records to be returned in the pagination search. |
startAddendaSequenceNumberoptional | string | The starting number for the addenda record sequence. |
Request example

{ "uuid": "qas220517x-49eb-47664-b94rhd1-e52e2re13001", "pageSize": "10", "startAddendaSequenceNumber": "0001" }
Responses
Successful response
NAME | TYPE | DESCRIPTION |
---|---|---|
uuidoptional | string | A custom value used to idenitfy each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters. |
statusoptional | string | The status of the batch can be accepted or rejected. |
errorMessagesoptional | array | detailMessage |
traceNumberoptional | string | The unique number for the transaction from the TBDACHDETAIL table. Record this number for possible ACH inquiry requests. |
informationMessagesoptional | array | detailMessage |
addendaoptional | array | baseAddendaDetailResponse |
Response example (200)

{ "uuid": "qas220517x-49eb-47664-b94rhd1-e52e2re13001", "status": "accepted", "traceNumber": "041001030009004", "informationMessages": [ { "code": "1002040-50I", "moreInfo": "All addenda have been received." } ], "errorMessages": [], "addenda": [ { "addendaTypeCode": "05", "addendaSequenceNumber": "0001", "paymentRelatedInformation": "Undo WEB PAYMENT GOOD ITEM" } ] }
Missing data
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (400)

{ "ErrorMessage": "Mandatory data not provided. Please verify the data and resubmit the request.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Unauthorized request
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (401)

{ "ErrorMessage": "Please make sure you're using the correct credentials. Then log in again.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Access denied
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (403)

{ "ErrorMessage": "You don't have access to this resource. Contact developers@keybank.com for more information.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Not found
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (404)

{ "ErrorMessage": "We can't seem to find what you're looking for. Please verify the resource and try again.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Requested method denied
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (405)

{ "ErrorMessage": "Looks like something went wrong. Please check your request method and try again.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Media type not supported
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (415)

{ "ErrorMessage": "We currently don't support that format. Please check the format type defined in your request and try again. Contact developers@keybank.com if you experience more issues.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Too many requests
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (429)

{ "ErrorMessage": "Looks like you've sent too many requests. Please wait a moment and try again later.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Internal server error
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (500)

{ "ErrorMessage": "Looks like something went wrong. Please try again when you're ready. Contact developers@keybank.com if you experience more issues.", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Bad gateway
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (502)

{ "ErrorMessage": "Looks like something went wrong. Submit your request again. Contact developers@keybank.com if you experience more issues.", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z", "ServiceError": { "ConnectError": "Connectivity error occured with the downstream service (unexpected end of file at target). Please check with appplication support team before resubmitting the request" } }
Service unavailable
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (503)

{ "ErrorMessage": "Looks like something went wrong. Please contact developers@keybank.com for more information and try again later.", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z", "ServiceError": { "ConnectError": "Service is currently unavailable. Please check with appplication support before resubmitting the request." } }
Gateway timeout
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (504)

{ "ErrorMessage": "Your request took too long to process. Please try again. Contact developers@keybank.com if you experience more issues.", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z", "ServiceError": { "ConnectError": "Request could not be processed on time. Please wait a moment and resubmit the request." } }
Send a payment
post /ach/payments/v1/ccd
Send a payment for an item. This call originates an ACH transaction for SEC code CCD (Corporate Credit or Debit). Use this request to send cash, debit, or credit transactions between the buyer and seller financial institution accounts. This can also be used by companies to move funds and deposit to a central bank account.
Request
HEADER FIELD | TYPE | DESCRIPTION |
---|---|---|
X-Pointrequired | string | A short name specific to your company provided by KeyBank. The name must not exceed 9 characters. This is appended to the file name and improves security. |
BODY FIELD | TYPE | DESCRIPTION |
---|---|---|
batchrequired | Object | batchRequestCCDDetailRequest |
Request example

{ "batch": { "collectionApplicationId": "TEST", "point": "APITEST1", "secCode": "CCD", "uuid": "daily001-qas230109-010300-005", "collectionApplicationType": "", "effectiveDate": "230211", "companyDescriptiveDate": "230211", "companyEntryDescription": "Payroll", "details": [ { "DFIAccountNumber": "123456", "accountType": "C", "amount": "0.01", "checkDigit": "9", "creditDebitCode": "C", "receivingCompanyName": "ProdTest001", "receivingDFIId": "04100103", "transactionType": "L", "uuid": "daily001-qas230109-010301-0026", "identificationNumber": "517220101A", "discretionaryData": "AB", "addenda": [ { "paymentRelatedInformation": "DAILYTEST0103A" } ] } ] } }
Responses
Successful response
NAME | TYPE | DESCRIPTION |
---|---|---|
batchrequired | Object | acceptedBatchResponseAcceptedDetailResponse |
Response example (200)

{ "batch": { "uuid": "daily001-qas230109-010300-005", "status": "accepted", "requestAcceptedUTCTime": "2023-05-03T17:04:03Z", "effectiveDate": "230211", "informationMessages": [ { "code": "1006040-65I", "moreInfo": "Effective date assigned 230211." } ], "errorMessages": [], "details": [ { "uuid": "daily001-qas230109-010301-0026", "status": "accepted", "errorMessages": [], "informationMessages": [], "traceNumber": "041001030013025", "requestAcceptedUTCTime": "2023-05-03T17:04:03Z", "addenda": [ { "status": "accepted", "errorMessages": [], "informationMessages": [] } ] } ] } }
Missing data in the request
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (400)

{ "ErrorMessage": "Mandatory data not provided. Please verify the data and resubmit the request.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Unauthorized request
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (401)

{ "ErrorMessage": "Received request is unauthorized. Please provide valid credentials.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Access denied
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (403)

{ "ErrorMessage": "Access to requested resource is forbidden.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Not found
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (404)

{ "ErrorMessage": "Requested resource is not found. Please verify the resource and resubmit the request.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Requested method denied
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (405)

{ "ErrorMessage": "Requested method is not allowed. Please verify the method and resubmit the request.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Media type not supported
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (415)

{ "ErrorMessage": "Requested media type is not allowed. Please verify the media type and resubmit the request.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Too many requests
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (429)

{ "ErrorMessage": "Number requests threshold reached. Please wait 2 minutes and resubmit the request again.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Internal server error
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (500)

{ "ErrorMessage": "Runtime error occured in the service. Please check with application support team before resubmitting the request.", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Bad gateway
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (502)

{ "ErrorMessage": "Error received from backend service", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z", "ServiceError": { "ConnectError": "Connectivity error occured with the downstream service (unexpected end of file at target). Please check with application support team before resubmitting the request." } }
Service unavailable
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (503)

{ "ErrorMessage": "Error received from backend service.", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z", "ServiceError": { "ConnectError": "Service is currently unavailable (NoActiveTargets). Please check with application support before resubmitting the request." } }
Gateway timeout
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (504)

{ "ErrorMessage": "Error received from backend service.", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z", "ServiceError": { "ConnectError": "Request could not be processed on time (gateway timeout). Please wait a moment and resubmit the request." } }
Send a payment between two businesses
post /ach/payments/v1/ctx
Submit a payment from one business/entity to another.
Request
HEADER FIELD | TYPE | DESCRIPTION |
---|---|---|
X-Pointrequired | string | A short name specific to your company provided by KeyBank. The name must not exceed 9 characters. This is appended to the file name and improves security. |
BODY FIELD | TYPE | DESCRIPTION |
---|---|---|
batchrequired | Object | batchRequestCTXDetailRequest |
Request example

{ "batch": { "collectionApplicationId": "TEST2", "point": "APITEST1", "secCode": "CTX", "uuid": "test3c377-bat338-ctxf-bcd6fehdd0-031103", "collectionApplicationType": "", "effectiveDate": "230411", "companyDescriptiveDate": "230411", "companyEntryDescription": "Payroll", "details": [ { "DFIAccountNumber": "111011", "accountType": "S", "checkDigit": "0", "creditDebitCode": "C", "numberOfAddendaRecords": "1", "receivingCompanyNameIDNumber": "YourTest301", "receivingDFIId": "06100001", "totalAmount": "1.31", "transactionType": "L", "uuid": "test3c377-det338-ctxf-dcd6fehdd0-030104", "identificationNumber": "1123456789", "discretionaryData": "AK", "addenda": [ { "paymentRelatedInformation": "YourTest03.01" } ] } ] } }
Responses
Successful response
NAME | TYPE | DESCRIPTION |
---|---|---|
batchrequired | Object | acceptedBatchResponseAcceptedDetailResponse |
Response example (200)

{ "batch": { "uuid": "test3c377-bat338-ctxf-bcd6fehdd0-031103", "status": "accepted", "requestAcceptedUTCTime": "2023-05-03T17:06:02Z", "effectiveDate": "230411", "informationMessages": [ { "code": "1006040-65I", "moreInfo": "Effective date assigned 230411." } ], "errorMessages": [], "details": [ { "uuid": "test3c377-det338-ctxf-dcd6fehdd0-030104", "status": "accepted", "errorMessages": [], "informationMessages": [], "traceNumber": "041001030013026", "requestAcceptedUTCTime": "2023-05-03T17:06:02Z", "addenda": [ { "status": "accepted", "errorMessages": [], "informationMessages": [] } ] } ] } }
Missing data in the request
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (400)

{ "ErrorMessage": "Mandatory data not provided. Please verify the data and resubmit the request.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Unauthorized request
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (401)

{ "ErrorMessage": "Received request is unauthorized. Please provide valid credentials.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Access denied
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (403)

{ "ErrorMessage": "Access to requested resource is forbidden.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Not found
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (404)

{ "ErrorMessage": "Requested resource is not found. Please verify the resource and resubmit the request.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Requested method denied
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (405)

{ "ErrorMessage": "Requested method is not allowed. Please verify the method and resubmit the request.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Media type not supported
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (415)

{ "ErrorMessage": "Requested media type is not allowed. Please verify the media type and resubmit the request.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Too many requests
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (429)

{ "ErrorMessage": "Number requests threshold reached. Please wait 2 minutes and resubmit the request again.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Internal server error
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (500)

{ "ErrorMessage": "Runtime error occured in the service. Please check with application support team before resubmitting the request.", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Bad gateway
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (502)

{ "ErrorMessage": "Error received from backend service", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z", "ServiceError": { "ConnectError": "Connectivity error occured with the downstream service (unexpected end of file at target). Please check with application support team before resubmitting the request." } }
Service unavailable
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (503)

{ "ErrorMessage": "Error received from backend service.", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z", "ServiceError": { "ConnectError": "Service is currently unavailable (NoActiveTargets). Please check with application support before resubmitting the request." } }
Gateway timeout
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (504)

{ "ErrorMessage": "Error received from backend service.", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z", "ServiceError": { "ConnectError": "Request could not be processed on time (gateway timeout). Please wait a moment and resubmit the request." } }
Send a payment from written authorization
post /ach/payments/v1/ppd
Submit a payment based on terms of service, like a subscription or membership.
Request
HEADER FIELD | TYPE | DESCRIPTION |
---|---|---|
X-Pointrequired | string | A short name specific to your company provided by KeyBank. The name must not exceed 9 characters. This is appended to the file name and improves security. |
BODY FIELD | TYPE | DESCRIPTION |
---|---|---|
batchrequired | Object | batchRequestPPDDetailRequest |
Request example

{ "batch": { "collectionApplicationId": "TEST", "point": "APITEST1", "secCode": "PPD", "uuid": "qas22517-4d3338-4c6f-bcd6fehdd0-1234360", "collectionApplicationType": "", "effectiveDate": "230211", "companyDescriptiveDate": "230211", "companyEntryDescription": "Payroll", "details": [ { "DFIAccountNumber": "123456789", "accountType": "S", "amount": "520.25", "checkDigit": "9", "creditDebitCode": "C", "individualName": "QASTest005", "receivingDFIId": "04100103", "transactionType": "L", "uuid": "qas220330A-49eb-47664-b94rhd1-12361", "individualIdentificationNumber": "517220202A", "discretionaryData": "AB", "addenda": [ { "paymentRelatedInformation": "QASTest02.02A" } ] }, { "DFIAccountNumber": "234567891", "accountType": "S", "amount": "0.00", "checkDigit": "2", "creditDebitCode": "C", "individualName": "QASTest006", "receivingDFIId": "24107121", "transactionType": "P", "uuid": "qas220330A-49eb-47664-b94rhd1-12362", "individualIdentificationNumber": "517220202B", "discretionaryData": "BC" }, { "DFIAccountNumber": "345678912", "accountType": "S", "amount": "1794.91", "checkDigit": "2", "creditDebitCode": "D", "individualName": "QASTest006", "receivingDFIId": "24107121", "transactionType": "L", "uuid": "qas220330A-49eb-47664-b94rhd1-12363", "individualIdentificationNumber": "517220202C", "discretionaryData": "BC", "addenda": [ { "paymentRelatedInformation": "QASTest02.02C" } ] } ] } }
Responses
Successful response
NAME | TYPE | DESCRIPTION |
---|---|---|
batchrequired | Object | acceptedBatchResponseAcceptedDetailResponse |
Response example (200)

{ "batch": { "uuid": "qas22517-4d3338-4c6f-bcd6fehdd0-1234360", "status": "accepted", "requestAcceptedUTCTime": "2023-05-03T17:08:45Z", "effectiveDate": "230211", "informationMessages": [ { "code": "1006040-65I", "moreInfo": "Effective date assigned 230211." } ], "errorMessages": [], "details": [ { "uuid": "qas220330A-49eb-47664-b94rhd1-12361", "status": "accepted", "errorMessages": [], "informationMessages": [], "traceNumber": "041001030012784", "requestAcceptedUTCTime": "2023-05-03T17:08:45Z", "addenda": [ { "status": "accepted", "errorMessages": [], "informationMessages": [] } ] }, { "uuid": "qas220330A-49eb-47664-b94rhd1-12362", "status": "accepted", "errorMessages": [], "informationMessages": [], "traceNumber": "041001030012785", "requestAcceptedUTCTime": "2023-05-03T17:08:45Z" }, { "uuid": "qas220330A-49eb-47664-b94rhd1-12363", "status": "accepted", "errorMessages": [], "informationMessages": [], "traceNumber": "041001030012786", "requestAcceptedUTCTime": "2023-05-03T17:08:45Z", "addenda": [ { "status": "accepted", "errorMessages": [], "informationMessages": [] } ] } ] } }
Missing data in the request
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (400)

{ "ErrorMessage": "Mandatory data not provided, please verify the data and resubmit the request", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Unauthorized request
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (401)

{ "ErrorMessage": "Received request is unauthorized, please provide valid credentials", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Access denied
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (403)

{ "ErrorMessage": "Access to requested resource is forbidden", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Requested resource is not found
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (404)

{ "ErrorMessage": "Requested resource is not found, please verify the resource and resubmit the request", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Requested method denied
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (405)

{ "ErrorMessage": "Requested method is not allowed, please verify the method and resubmit the request", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Media type not supported
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (415)

{ "ErrorMessage": "Requested media type is not allowed, please verify the media type and resubmit the request", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Too many requests
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (429)

{ "ErrorMessage": "Number requests threshold reached, please resubmit the request after sometime", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Internal server error
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (500)

{ "ErrorMessage": "Runtime error occured in the service, please check with appplication support team before resubmitting the request", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Bad gateway
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (502)

{ "ErrorMessage": "Error received from backend service", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z", "ServiceError": { "ConnectError": "Connectivity error occured with the downstream service(Unexpected EOF at target), please check with appplication support team before resubmitting the request" } }
Service unavailable
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (503)

{ "ErrorMessage": "Error received from backend service", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z", "ServiceError": { "ConnectError": "Service is currently unavailable(NoActiveTargets), please check with appplication support before resubmitting the request." } }
Gateway timeout
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (504)

{ "ErrorMessage": "Error received from backend service", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z", "ServiceError": { "ConnectError": "Request could not be processed on time(GatewayTimeout), please wait a moment and resubmit the request." } }
Send a payment over the phone
post /ach/payments/v1/tel
Authorize and submit a payment by the phone.
Request
HEADER FIELD | TYPE | DESCRIPTION |
---|---|---|
X-Pointrequired | string | A short name specific to your company provided by KeyBank. The name must not exceed 9 characters. This is appended to the file name and improves security. |
BODY FIELD | TYPE | DESCRIPTION |
---|---|---|
batchrequired | Object | batchRequestTELDetailRequest |
Request example

{ "batch": { "collectionApplicationId": "TEST", "point": "APITEST1", "secCode": "TEL", "uuid": "qas22523-4d3338-4c6f-bcd6fehdd0-12349", "collectionApplicationType": "", "effectiveDate": "230211", "companyDescriptiveDate": "230211", "companyEntryDescription": "Payroll", "details": [ { "DFIAccountNumber": "1234567890123452", "accountType": "C", "amount": "5963.88", "checkDigit": "0", "creditDebitCode": "D", "individualName": "QASTest014", "receivingDFIId": "06100001", "transactionType": "L", "uuid": "qas22523-f76-44eb-a7014041047", "individualIdentificationNumber": "317220401", "paymentTypeCode": "R" } ] } }
Responses
Successful response
NAME | TYPE | DESCRIPTION |
---|---|---|
batchrequired | Object | acceptedBatchResponseAcceptedDetailResponse |
Response example (200)

{ "batch": { "uuid": "qas22523-4d3338-4c6f-bcd6fehdd0-12349", "status": "accepted", "requestAcceptedUTCTime": "2023-05-03T17:10:58Z", "effectiveDate": "230211", "informationMessages": [ { "code": "1006040-65I", "moreInfo": "Effective date assigned 230211." } ], "errorMessages": [], "details": [ { "uuid": "qas22523-f76-44eb-a7014041047", "status": "accepted", "errorMessages": [], "informationMessages": [], "traceNumber": "041001030013030", "requestAcceptedUTCTime": "2023-05-03T17:10:58Z" } ] } }
Missing data in the request
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (400)

{ "ErrorMessage": "Mandatory data not provided, please verify the data and resubmit the request", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Unauthorized request
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (401)

{ "ErrorMessage": "Received request is unauthorized, please provide valid credentials", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Request is forbidden to access the resource
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (403)

{ "ErrorMessage": "Access to requested resource is forbidden", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Requested resource is not found
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (404)

{ "ErrorMessage": "Requested resource is not found, please verify the resource and resubmit the request", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Requested method denied
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (405)

{ "ErrorMessage": "Requested method is not allowed, please verify the method and resubmit the request", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Media type not supported
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (415)

{ "ErrorMessage": "Requested media type is not allowed, please verify the media type and resubmit the request", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Too many requests
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (429)

{ "ErrorMessage": "Number requests threshold reached, please resubmit the request after sometime", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Internal server error
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (500)

{ "ErrorMessage": "Runtime error occured in the service, please check with appplication support team before resubmitting the request", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Bad Gateway
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (502)

{ "ErrorMessage": "Error received from backend service", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z", "ServiceError": { "ConnectError": "Connectivity error occured with the downstream service(Unexpected EOF at target), please check with appplication support team before resubmitting the request" } }
Service unavailable
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (503)

{ "ErrorMessage": "Error received from backend service", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z", "ServiceError": { "ConnectError": "Service is currently unavailable(NoActiveTargets), please check with appplication support before resubmitting the request." } }
Gateway timeout
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (504)

{ "ErrorMessage": "Error received from backend service", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z", "ServiceError": { "ConnectError": "Request could not be processed on time(GatewayTimeout), please wait a moment and resubmit the request." } }
Send a payment on a website
post /ach/payments/v1/web
Authorize and submit a payment on a website.
Request
HEADER FIELD | TYPE | DESCRIPTION |
---|---|---|
X-Pointrequired | string | A short name specific to your company provided by KeyBank. The name must not exceed 9 characters. This is appended to the file name and improves security. |
BODY FIELD | TYPE | DESCRIPTION |
---|---|---|
batchrequired | Object | batchRequestWEBDetailRequest |
Request example

{ "batch": { "collectionApplicationId": "TEST", "point": "APITEST1", "secCode": "WEB", "uuid": "qas22523-4d3338-4c6f-bcd6fehdd0-41033", "collectionApplicationType": "", "effectiveDate": "230211", "companyDescriptiveDate": "", "companyEntryDescription": "Payroll", "details": [ { "DFIAccountNumber": "123546789", "accountType": "C", "amount": "0.00", "checkDigit": "0", "creditDebitCode": "D", "individualName": "QASTest014", "receivingDFIId": "06100001", "transactionType": "P", "uuid": "qas22523-f76-44eb-a7014041034", "individualIdentificationNumber": "317220401", "paymentTypeCode": "R", "addenda": [ { "paymentRelatedInformation": "DAILYTEST0103A" } ] } ] } }
Responses
Successful response
NAME | TYPE | DESCRIPTION |
---|---|---|
batchrequired | Object | acceptedBatchResponseAcceptedDetailResponse |
Response example (200)

{ "batch": { "uuid": "qas22523-4d3338-4c6f-bcd6fehdd0-41033", "status": "accepted", "requestAcceptedUTCTime": "2023-05-03T17:13:45Z", "effectiveDate": "230211", "informationMessages": [ { "code": "1006040-65I", "moreInfo": "Effective date assigned 230211." } ], "errorMessages": [], "details": [ { "uuid": "qas22523-f76-44eb-a7014041034", "status": "accepted", "errorMessages": [], "informationMessages": [], "traceNumber": "041001030012787", "requestAcceptedUTCTime": "2023-05-03T17:13:45Z", "addenda": [ { "status": "accepted", "errorMessages": [], "informationMessages": [] } ] } ] } }
Missing data in the request
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (400)

{ "ErrorMessage": "Mandatory data not provided. Please verify the data and resubmit the request.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Unauthorized request
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (401)

{ "ErrorMessage": "Received request is unauthorized, please provide valid credentials", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Access denied
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (403)

{ "ErrorMessage": "Access to requested resource is forbidden", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Not found
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (404)

{ "ErrorMessage": "Requested resource is not found, please verify the resource and resubmit the request", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Requested method denied
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (405)

{ "ErrorMessage": "Requested method is not allowed, please verify the method and resubmit the request", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Media type not supported
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (415)

{ "ErrorMessage": "Requested media type is not allowed, please verify the media type and resubmit the request", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Too many requests
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (429)

{ "ErrorMessage": "Number requests threshold reached, please resubmit the request after sometime", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Internal server error
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (500)

{ "ErrorMessage": "Runtime error occured in the service, please check with appplication support team before resubmitting the request", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Bad gateway
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (502)

{ "ErrorMessage": "Error received from backend service", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z", "ServiceError": { "ConnectError": "Connectivity error occured with the downstream service(Unexpected EOF at target), please check with appplication support team before resubmitting the request" } }
Service unavailable
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (503)

{ "ErrorMessage": "Error received from backend service", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z", "ServiceError": { "ConnectError": "Service is currently unavailable(NoActiveTargets), please check with appplication support before resubmitting the request." } }
Gateway timeout
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (504)

{ "ErrorMessage": "Error received from backend service", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z", "ServiceError": { "ConnectError": "Request could not be processed on time(GatewayTimeout), please wait a moment and resubmit the request." } }
Undo a payment request
post /ach/payments/v1/undo
Reverse a payment request before it enters consolidation.
Request
HEADER FIELD | TYPE | DESCRIPTION |
---|---|---|
X-Pointrequired | string | A short name specific to your company provided by KeyBank. The name must not exceed 9 characters. This is appended to the file name and improves security. |
BODY FIELD | TYPE | DESCRIPTION |
---|---|---|
uuidrequired | string | A custom value used to idenitfy each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters. |
Request example

{ "uuid": "qas220517x-49eb-47664-b94rhd1-e52e2re13001" }
Responses
Successful response
NAME | TYPE | DESCRIPTION |
---|---|---|
uuidrequired | string | A custom value used to idenitfy each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters. |
statusoptional | string | The status of a batch record can be accepted or rejected. The status of a detailed record can be deleted, accepted, rejected, notFound, or waitingForAddenda. |
errorMessagesoptional | array | detailMessage |
informationMessagesoptional | array | detailMessage |
traceNumberoptional | string | The unique number for the transaction from the TBDACHDETAIL table. Record this number for possible ACH inquiry requests. |
Response example (200)

{ "uuid": "qas220517x-49eb-47664-b94rhd1-e52e2re13001", "status": "accepted", "errorMessages": [ { "code": "1006040-651" }, { "moreInfo": "Effective date assigned 220411" } ], "informationMessages": [ { "code": "1006040-651" }, { "moreInfo": "Effective date assigned 220411" } ], "traceNumber": "041001030008013" }
Missing data
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (400)

{ "ErrorMessage": "Mandatory data not provided, please verify the data and resubmit the request", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Unauthorized request
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (401)

{ "ErrorMessage": "Received request is unauthorized, please provide valid credentials", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Access denied
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (403)

{ "ErrorMessage": "Access to requested resource is forbidden", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Requested resource is not found
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (404)

{ "ErrorMessage": "Requested resource is not found, please verify the resource and resubmit the request", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Requested method denied
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (405)

{ "ErrorMessage": "Requested method is not allowed, please verify the method and resubmit the request", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Requested unsupported media type
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (415)

{ "ErrorMessage": "Requested media type is not allowed, please verify the media type and resubmit the request", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Too many requests
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (429)

{ "ErrorMessage": "Number requests threshold reached, please resubmit the request after sometime", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Internal server error
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (500)

{ "ErrorMessage": "Runtime error occured in the service, please check with appplication support team before resubmitting the request", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Bad Gateway
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (502)

{ "ErrorMessage": "Error received from backend service", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z", "ServiceError": { "ConnectError": "Connectivity error occured with the downstream service(Unexpected EOF at target), please check with appplication support team before resubmitting the request" } }
Service unavailable
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (503)

{ "ErrorMessage": "Error received from backend service", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z", "ServiceError": { "ConnectError": "Service is currently unavailable(NoActiveTargets), please check with appplication support before resubmitting the request." } }
Gateway timeout
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (504)

{ "ErrorMessage": "Error received from backend service", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z", "ServiceError": { "ConnectError": "Request could not be processed on time(GatewayTimeout), please wait a moment and resubmit the request." } }
Send additional addenda information
post /ach/payments/v1/addenda
Add records to an existing ACH transaction.
Request
HEADER FIELD | TYPE | DESCRIPTION |
---|---|---|
X-Pointrequired | string | This short name will be provided during API onboarding and is specific to your Company Name. |
BODY FIELD | TYPE | DESCRIPTION |
---|---|---|
addendarequired | array | addendaRequest |
uuidrequired | string | A custom value used to idenitfy each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters. |
Request example

{ "addenda": [ { "paymentRelatedInformation": "0410*820412***PER*AP*QAS TESTING*IT*N1*PR*THE QAS COMPANY* 0", "addendaSequenceNumber": "002" }, { "paymentRelatedInformation": "3*ROUTE 1234*BOX 1234\\N5*TESTING*BF*01234*BF*RMT*RMT*IV*01234**112345*112345* 0", "addendaSequenceNumber": "003" }, { "paymentRelatedInformation": "TM*003*820311\\RMT*IV*0302892**252640\\DTM*003*820315\\RMT*IV*0302960**593835\\", "addendaSequenceNumber": "004" } ], "uuid": "qas220517x-49eb-47664-b94rhd1-e52e2re13001" }
Responses
Successfully staged ACH file data into ACH Origination API.
NAME | TYPE | DESCRIPTION |
---|---|---|
uuidoptional | string | A custom value used to idenitfy each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters. |
statusoptional | string | The overall status of the addenda request can be accepted or rejected. |
traceNumberoptional | string | The unique number for the transaction from the TBDACHDETAIL table. Record this number for possible ACH inquiry requests. |
informationMessagesoptional | array | detailMessage |
errorMessagesoptional | array | detailMessage |
addendaoptional | array | addendaResponse |
requestAcceptedUTCTimeoptional | string | The date and time the request was accepted in UTC time. Format: YYYY-MM-DDTHH:MM:SS. |
Response example (200)

{ "uuid": "qas220517x-49eb-47664-b94rhd1-e52e2re13001", "status": "accepted", "traceNumber": "41001030008011", "informationMessages": [ { "code": "1002040-50II", "moreInfo": "All addenda have been received." } ], "errorMessages": [], "addenda": [ { "status": "accepted", "errorMessages": [], "informationMessages": [] } ], "detailMessage": [ { "code": "1002040-50I", "moreInfo": "All addenda have been received." } ], "requestAcceptedUTCTime": "2022-05-25T16:33:46Z" }
Missing data in the request
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (400)

{ "ErrorMessage": "Mandatory data not provided. Please verify the data and resubmit the request.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Unauthorized request
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (401)

{ "ErrorMessage": "Received request is unauthorized. Please provide valid credentials.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Access denied
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (403)

{ "ErrorMessage": "Access to requested resource is forbidden.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Not found
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (404)

{ "ErrorMessage": "Requested resource is not found. Please verify the resource and resubmit the request.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Requested method denied
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (405)

{ "ErrorMessage": "Requested method is not allowed. Please verify the method and resubmit the request.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Media type not supported
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (415)

{ "ErrorMessage": "Requested media type is not allowed. Please verify the media type and resubmit the request.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Too many requests
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (429)

{ "ErrorMessage": "Number requests threshold reached. Please wait 2 minutes and resubmit the request again.", "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Internal server error
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (500)

{ "ErrorMessage": "Runtime error occured in the service. Please check with application support team before resubmitting the request.", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z" }
Bad gateway
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (502)

{ "ErrorMessage": "Error received from backend service", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z", "ServiceError": { "ConnectError": "Connectivity error occured with the downstream service (unexpected end of file at target). Please check with application support team before resubmitting the request." } }
Service unavailable
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (503)

{ "ErrorMessage": "Error received from backend service.", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z", "ServiceError": { "ConnectError": "Service is currently unavailable (NoActiveTargets). Please check with application support before resubmitting the request." } }
Gateway timeout
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
Response example (504)

{ "ErrorMessage": "Error received from backend service.", "X-CorrelationId": "abcgd133", "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1", "TransactionTime": "2021-06-11T16:31:34.041Z", "ServiceError": { "ConnectError": "Request could not be processed on time (gateway timeout). Please wait a moment and resubmit the request." } }
Schemas
exception
NAME | TYPE | DESCRIPTION |
---|---|---|
ErrorMessageoptional | string | Error message related to system generating this error. |
TransactionIdoptional | string | Unique functional identifier from the data to identify a message. |
X-CorrelationIdoptional | string | A universal ID to trace the transaction across all the systems involved, useful for system logging and identification. |
TransactionTimeoptional | string | Time of the occurrence of the error of the message. |
ServiceErroroptional | oneOf | detailMessage connectError |
connectError
NAME | TYPE | DESCRIPTION |
---|---|---|
ConnectErroroptional | string | Error information of the connectivity with downstream service. |
acceptedAddendaResponseEnvelope
NAME | TYPE | DESCRIPTION |
---|---|---|
uuidoptional | string | A custom value used to idenitfy each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters. |
statusoptional | string | The overall status of the addenda request can be accepted or rejected. |
traceNumberoptional | string | The unique number for the transaction from the TBDACHDETAIL table. Record this number for possible ACH inquiry requests. |
informationMessagesoptional | array | detailMessage |
errorMessagesoptional | array | detailMessage |
addendaoptional | array | addendaResponse |
requestAcceptedUTCTimeoptional | string | The date and time the request was accepted in UTC time. Format: YYYY-MM-DDTHH:MM:SS. |
acceptedBatchResponseAcceptedDetailResponse
NAME | TYPE | DESCRIPTION |
---|---|---|
uuidrequired | string | A custom value used to idenitfy each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters. |
statusrequired | string | The status of the batch can be accepted or rejected. |
requestAcceptedUTCTimeoptional | string | The date and time the request was accepted in UTC time. Format: YYYY-MM-DDTHH:MM:SS. |
effectiveDateoptional | string | The date the transaction is posted. This date must be within 90 days of the current date. Format:YYMMDD |
informationMessagesoptional | array | detailMessage |
errorMessagesoptional | array | detailMessage |
detailsoptional | array | acceptedDetailResponse |
acceptedDetailResponse
NAME | TYPE | DESCRIPTION |
---|---|---|
uuidrequired | string | A custom value used to idenitfy each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters. |
statusoptional | string | The overall status of the addenda can be accepted or rejected. |
errorMessagesoptional | array | detailMessage |
informationMessagesoptional | array | detailMessage |
traceNumberoptional | string | The unique number for the transaction from the TBDACHDETAIL table. Record this number for possible ACH inquiry requests. |
requestAcceptedUTCTimeoptional | string | The date and time the request was accepted in UTC time. Format: YYYY-MM-DDTHH:MM:SS. |
addendaRequest
NAME | TYPE | DESCRIPTION |
---|---|---|
paymentRelatedInformationrequired | string | The related payment information for the addenda records. The limit is 80 characters. |
addendaSequenceNumberrequired | string | The sequence number of the addenda. The number cannot exceed 4 digits. |
addendaRequestEnvelope
NAME | TYPE | DESCRIPTION |
---|---|---|
addendarequired | array | addendaRequest |
uuidrequired | string | A custom value used to idenitfy each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters. |
addendaResponse
NAME | TYPE | DESCRIPTION |
---|---|---|
statusoptional | string | The overall status of the addenda request can be accepted or rejected. |
errorMessagesoptional | array | detailMessage |
informationMessagesoptional | array | detailMessage |
addendaStatusRequestEnvelope
NAME | TYPE | DESCRIPTION |
---|---|---|
uuidrequired | string | A custom value used to idenitfy each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters. |
pageSizeoptional | string | The number of records to be returned in the pagination search. |
startAddendaSequenceNumberoptional | string | The starting number for the addenda record sequence. |
addendaStatusResponseEnvelope
NAME | TYPE | DESCRIPTION |
---|---|---|
uuidoptional | string | A custom value used to idenitfy each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters. |
statusoptional | string | The status of the batch can be accepted or rejected. |
errorMessagesoptional | array | detailMessage |
traceNumberoptional | string | The unique number for the transaction from the TBDACHDETAIL table. Record this number for possible ACH inquiry requests. |
informationMessagesoptional | array | detailMessage |
addendaoptional | array | baseAddendaDetailResponse |
baseAddendaDetailResponse
NAME | TYPE | DESCRIPTION |
---|---|---|
addendaTypeCodeoptional | string | The type code for the addenda. The value is '05'. |
addendaSequenceNumberoptional | string | The sequence number of the addenda. The number cannot exceed 4 digits. |
paymentRelatedInformationoptional | string | The related payment information from the addenda records. The maximum character limit is 80. |
baseAddendaRequest
NAME | TYPE | DESCRIPTION |
---|---|---|
paymentRelatedInformationrequired | string | The related payment information for the addenda records. The limit is 80 characters. |
baseDetailResponse
NAME | TYPE | DESCRIPTION |
---|---|---|
uuidrequired | string | A custom value used to idenitfy each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters. |
statusoptional | string | The status of a batch record can be accepted or rejected. The status of a detailed record can be deleted, accepted, rejected, notFound, or waitingForAddenda. |
errorMessagesoptional | array | detailMessage |
informationMessagesoptional | array | detailMessage |
traceNumberoptional | string | The unique number for the transaction from the TBDACHDETAIL table. Record this number for possible ACH inquiry requests. |
batchRequestCCDDetailRequest
NAME | TYPE | DESCRIPTION |
---|---|---|
uuidrequired | string | A custom value used to idenitfy each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters. |
pointrequired | string | A short name specific to your company provided by KeyBank. This is included in the file name and improves security for file transfers. |
collectionApplicationIdrequired | string | This ID is provided by KeyBank and cannot exceed the maximum of 9 alphanumeric characters. |
collectionApplicationTypeoptional | string | The collection application type is provided by KeyBank and cannot exceed the maximum of 6 alphanumeric characters. |
secCoderequired | string | The three-digit Standard Entry Class code based on Nacha rules. Valid values: CCD, CTX, IAT, PPD, TEL, WEB. |
effectiveDateoptional | string | The date the transaction is posted. This date must be within 90 days of the current date. Format:YYMMDD |
companyDescriptiveDateoptional | string | Company descriptive date. Format: YMMDD |
companyEntryDescriptionrequired | string | Provides the receiver a description of the payment purpose, like “Payroll”, “REFUND”, “CLOSING”, or “Payment”. The value cannot exceed 10 characters and cannot be blank. |
detailsoptional | array | cCDDetailRequest |
batchRequestCTXDetailRequest
NAME | TYPE | DESCRIPTION |
---|---|---|
uuidrequired | string | A custom value used to idenitfy each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters. |
pointrequired | string | A short name specific to your company provided by KeyBank. This is included in the file name and improves security for file transfers. |
collectionApplicationIdrequired | string | This ID is provided by KeyBank and cannot exceed the maximum of 9 alphanumeric characters. |
collectionApplicationTypeoptional | string | The collection application type is provided by KeyBank and cannot exceed the maximum of 6 alphanumeric characters. |
secCoderequired | string | The three-digit Standard Entry Class code based on Nacha rules. Valid values: CCD, CTX, IAT, PPD, TEL, WEB. |
effectiveDateoptional | string | The date the transaction is posted. This date must be within 90 days of the current date. Format:YYMMDD |
companyDescriptiveDateoptional | string | Company descriptive date. Format: YMMDD |
companyEntryDescriptionrequired | string | Provides the receiver a description of the payment purpose, like “Payroll”, “REFUND”, “CLOSING”, or “Payment”. The value cannot exceed 10 characters and cannot be blank. |
detailsoptional | array | cTXDetailRequest |
batchRequestEnvelopeBatchRequestCCDDetailRequest
NAME | TYPE | DESCRIPTION |
---|---|---|
batchrequired | Object | batchRequestCCDDetailRequest |
batchRequestEnvelopeBatchRequestCTXDetailRequest
NAME | TYPE | DESCRIPTION |
---|---|---|
batchrequired | Object | batchRequestCTXDetailRequest |
batchRequestEnvelopeBatchRequestPPDDetailRequest
NAME | TYPE | DESCRIPTION |
---|---|---|
batchrequired | Object | batchRequestPPDDetailRequest |
batchRequestEnvelopeBatchRequestTELDetailRequest
NAME | TYPE | DESCRIPTION |
---|---|---|
batchrequired | Object | batchRequestTELDetailRequest |
batchRequestEnvelopeBatchRequestWEBDetailRequest
NAME | TYPE | DESCRIPTION |
---|---|---|
batchrequired | Object | batchRequestWEBDetailRequest |
batchRequestPPDDetailRequest
NAME | TYPE | DESCRIPTION |
---|---|---|
uuidrequired | string | A custom value used to idenitfy each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters. |
pointrequired | string | A short name specific to your company provided by KeyBank. This is included in the file name and improves security for file transfers. |
collectionApplicationIdrequired | string | This ID is provided by KeyBank and cannot exceed the maximum of 9 alphanumeric characters. |
collectionApplicationTypeoptional | string | The collection application type is provided by KeyBank and cannot exceed the maximum of 6 alphanumeric characters. |
secCoderequired | string | The three-digit Standard Entry Class code based on Nacha rules. Valid values: CCD, CTX, IAT, PPD, TEL, WEB. |
effectiveDateoptional | string | The date the transaction is posted. This date must be within 90 days of the current date. Format:YYMMDD |
companyDescriptiveDateoptional | string | Company descriptive date. Format: YMMDD |
companyEntryDescriptionrequired | string | Provides the receiver a description of the payment purpose, like “Payroll”, “REFUND”, “CLOSING”, or “Payment”. The value cannot exceed 10 characters and cannot be blank. |
detailsoptional | array | pPDDetailRequest |
batchRequestTELDetailRequest
NAME | TYPE | DESCRIPTION |
---|---|---|
uuidrequired | string | A custom value used to idenitfy each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters. |
pointrequired | string | A short name specific to your company provided by KeyBank. This is included in the file name and improves security for file transfers. |
collectionApplicationIdrequired | string | This ID is provided by KeyBank and cannot exceed the maximum of 9 alphanumeric characters. |
collectionApplicationTypeoptional | string | The collection type is provided by KeyBank and cannot exceed the maximum of 6 alphanumeric characters. |
secCoderequired | string | Standard Entry Class Code. Length must be exactly 3 alphabetical characters and adhere to Nacha rules. |
effectiveDateoptional | string | The date the transaction is posted. This date must be within 90 days of the current date. Format:YYMMDD |
companyDescriptiveDateoptional | string | Company descriptive date. Format: YMMDD |
companyEntryDescriptionrequired | string | Provides the receiver a description of the payment purpose, like “Payroll”, “REFUND”, “CLOSING”, or “Payment”. The value cannot exceed 10 characters and cannot be blank. |
detailsoptional | array | telDetailRequest |
batchRequestWEBDetailRequest
NAME | TYPE | DESCRIPTION |
---|---|---|
uuidrequired | string | A custom value used to idenitfy each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters. |
pointrequired | string | A short name specific to your company provided by KeyBank. This is included in the file name and improves security for file transfers. |
collectionApplicationIdrequired | string | This ID is provided by KeyBank and cannot exceed the maximum of 9 alphanumeric characters. |
collectionApplicationTypeoptional | string | The collection application type is provided by KeyBank and cannot exceed the maximum of 6 alphanumeric characters. |
secCoderequired | string | The three-digit Standard Entry Class code based on Nacha rules. Valid values: CCD, CTX, IAT, PPD, TEL, WEB. |
effectiveDateoptional | string | The date the transaction is posted. This date must be within 90 days of the current date. Format:YYMMDD |
companyDescriptiveDateoptional | string | Company descriptive date. Format: YMMDD |
companyEntryDescriptionrequired | string | Provides the receiver a description of the payment purpose, like “Payroll”, “REFUND”, “CLOSING”, or “Payment”. The value cannot exceed 10 characters and cannot be blank. |
detailsoptional | array | webDetailRequest |
batchResponseEnvelopeAccepted
NAME | TYPE | DESCRIPTION |
---|---|---|
batchrequired | Object | acceptedBatchResponseAcceptedDetailResponse |
batchResponseEnvelopeRejected
NAME | TYPE | DESCRIPTION |
---|---|---|
batchrequired | Object | rejectedBatchResponseBaseDetailResponse |
cCDDetailRequest
NAME | TYPE | DESCRIPTION |
---|---|---|
uuidrequired | string | A custom value used to idenitfy each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters. |
accountTyperequired | string | The account type can be checking (C) or savings (S). Valid values: C, S. |
creditDebitCoderequired | string | One-character field indicates if the ACH transaction is a credit (C) or debit (D). Valid values: C, D. |
transactionTyperequired | string | NACHA-defined transaction types can be live (L), prenote (P), or zero (Z). Valid values: L, P, Z. |
receivingDFIIdrequired | string | Receiving DFI ID can be maximum of 8 digits. |
checkDigitrequired | string | Check digit is a single numeric digit. |
DFIAccountNumberrequired | string | The account number of the depository financial institution (the recipient's bank). The account number can be a maximum of 17 characters. |
amountrequired | string | The transaction amount in valid currency format. The amount can have up to 8 digits before the decimal and 2 digits after the decimal. |
identificationNumberoptional | string | Identifcation number for the detail record. The number cannot exceed 15 characters. |
receivingCompanyNamerequired | string | The name of the receiving company. The name cannot exceed a maximum of 22 characters. |
discretionaryDataoptional | string | Further identification of the company or used to describe the type of entries being processed. The ID can be a maximum of 2 characters. |
addendaoptional | array | baseAddendaRequest |
cTXDetailRequest
NAME | TYPE | DESCRIPTION |
---|---|---|
uuidrequired | string | A custom value used to idenitfy each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters. |
accountTyperequired | string | One-character field indicates if the ACH transaction is a credit (C) or debit (D). Valid values: C, D. |
creditDebitCoderequired | string | One-character field indicates if the ACH transaction is a credit (C) or debit (D). Valid values: C, D. |
transactionTyperequired | string | NACHA-defined transaction types can be live (L), prenote (P), or zero (Z). Valid values: L, P, Z. |
receivingDFIIdrequired | string | Receiving DFI ID can be maximum of 8 digits. |
checkDigitrequired | string | Check digit is a single numeric digit. |
DFIAccountNumberrequired | string | The account number of the depository financial institution (the recipient's bank). The account number can be a maximum of 17 characters. |
totalAmountrequired | string | The total amount of the transactions in valid currency format. The amount can have up to 8 digits before the decimal and 2 digits after the decimal. |
identificationNumberoptional | string | Identifcation number for the detail record. The number cannot exceed 15 characters. |
numberOfAddendaRecordsrequired | string | Count of addenda records. This cannot exceed 4 digits. |
receivingCompanyNameIDNumberrequired | string | The name and ID of the receiving company. This field cannot exceed 16 characters. |
discretionaryDataoptional | string | Discretionary Data can be a maximum of 2 characters. |
addendaoptional | array | baseAddendaRequest |
detailMessage
NAME | TYPE | DESCRIPTION |
---|---|---|
codeoptional | string | A static status code assigned by the network or payment system. |
moreInfooptional | string | Detailed descriptive message. |
detailStatusRequestEnvelopePaymentInquiryDetailRequest
NAME | TYPE | DESCRIPTION |
---|---|---|
detailStatusoptional | array | paymentInquiryDetailRequest |
detailStatusResponse
NAME | TYPE | DESCRIPTION |
---|---|---|
uuidrequired | string | A custom value used to idenitfy each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters. |
statusoptional | string | The status of the batch can be accepted or rejected. |
errorMessagesoptional | array | detailMessage |
informationMessagesoptional | array | detailMessage |
traceNumberoptional | string | The unique number for the transaction from the TBDACHDETAIL table. Record this number for possible ACH inquiry requests. |
requestAcceptedUTCTimeoptional | string | The date and time the request was accepted in UTC time. Format: YYYY-MM-DDTHH:MM:SS. |
requestDeletedUTCTimeoptional | string | The date and time the request was deleted in UTC time. Format: YYYY-MM-DDTHH:MM:SS. |
requestLastUpdatedUTCTimeoptional | string | The date and time the request was updated in UTC time. Format: YYYY-MM-DDTHH:MM:SS. |
pointoptional | string | A short name specific to your company provided by KeyBank. This is included in the file name and improves security for file transfers. |
collectionApplicationIdoptional | string | This ID is provided by KeyBank and cannot exceed the maximum of 9 alphanumeric characters. |
collectionApplicationTypeoptional | string | The collection application type is provided by KeyBank and cannot exceed the maximum of 6 alphanumeric characters. |
secCodeoptional | string | The three-digit Standard Entry Class code based on Nacha rules. Valid values: CCD, CTX, IAT, PPD, TEL, WEB. |
effectiveDateoptional | string | The date the transaction is posted. This date must be within 90 days of the current date. Format:YYMMDD |
companyDescriptiveDateoptional | string | Company descriptive date. Format: YMMDD |
batchNumberoptional | string | The number associated with the batch. It can be a maximum of 7 digits. |
companyNameoptional | string | The name of the corporation or institution making the request. The name cannot exceed 16 characters or have spaces. |
companyDiscretionaryDataoptional | string | Discretionary data for the company. |
companyIdentificationoptional | string | The identification number of the company. This cannot exceed 15 digits. |
companyEntryDescriptionoptional | string | The entry description for the company. |
originatingDFIIdoptional | string | The ID of the originating depository financial institution. This cannot exceed the maximum of 8 digits. |
accountTypeoptional | string | The account type can be checking (C) or savings (S). Valid values: C, S. |
creditDebitCodeoptional | string | One-character field indicates if the ACH transaction is a credit (C) or debit (D). Valid values: C, D. |
transactionTypeoptional | string | NACHA-defined transaction types can be L (live), P (prenote), or Z (zero). Valid values: L, P, Z. |
transcationCodeoptional | string | A two-character field that specifies the billing credit transaction code. |
receivingDFIIdoptional | string | The ID of the receiving depository financial institution. This cannot exceed the maximum of 8 digits. |
checkDigitoptional | string | Check digit is a single numeric digit. |
dfiAccountNumberoptional | string | The account number of the depository financial institution (the recipient's bank). |
amountoptional | string | The transaction amount in valid currency format. The amount can have up to 8 digits before the decimal and 2 digits after the decimal. |
identificationNumberoptional | string | Identifcation number for the detail record. The number cannot exceed 15 characters. |
receivingCompanyNameoptional | string | The name of the receiving company. The name cannot exceed a maximum of 22 characters. |
discretionaryDataoptional | string | Further identification of the company or used to describe the type of entries being processed. The ID cannot exceed the maximum of 20 characters. |
totalAmountoptional | string | The total amount of the transactions in valid currency format. The amount can have up to 8 digits before the decimal and 2 digits after the decimal. |
receivingCompanyNameIDNumberoptional | string | The name and ID of the receiving company. This field cannot exceed 16 characters. |
individualIdentificationNumberoptional | string | The ID number for the individual. This cannot exceed 15 characters. |
individualNameoptional | string | The name of the individual. This cannot exceed 22 characters. |
paymentTypeCodeoptional | string | The code is a maximum of four characters. This field returns two empty spaces if the code is not provided by the client. |
numberOfAddendaRecordsoptional | string | Count of addenda records. This cannot exceed 4 digits. |
numberOfAddendaReceivedoptional | string | Count of addenda records received. |
addendaoptional | array | baseAddendaDetailResponse |
fileCreationDateoptional | string | The date the file was create in YYMMDD format. |
fileCreationTimeoptional | string | The time the file was created. |
fileIdModifieroptional | string | The file ID modifier to control the totals with a single alphanumeric value. |
detailStatusResponseEnvelopeDetailStatusResponse
NAME | TYPE | DESCRIPTION |
---|---|---|
detailsoptional | array | detailStatusResponse |
detailUndoRequestEnvelope
NAME | TYPE | DESCRIPTION |
---|---|---|
uuidrequired | string | A custom value used to idenitfy each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters. |
notificationEventResponse
NAME | TYPE | DESCRIPTION |
---|---|---|
pointoptional | string | This short name will be provided during API onboarding and is specific to your Company Name. |
collectionApplicationIdoptional | string | This short name will be provided during API onboarding and is specific to your account. |
collectionApplicationTypeoptional | string | Collection Application Type can be a maximum of 6 characters. |
eventIdoptional | string | Unique Id of an event. Contains up to 6 alphanumeric characters. |
eventMessageoptional | string | Description of the event generated. Contains up to 500 alphanumeric characters. |
pPDDetailRequest
NAME | TYPE | DESCRIPTION |
---|---|---|
uuidrequired | string | A custom value used to idenitfy each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters. |
accountTyperequired | string | The account type can be checking (C) or savings (S). Valid values: C, S. |
creditDebitCoderequired | string | One-character field indicates if the ACH transaction is a credit (C) or debit (D). Valid values: C, D. |
transactionTyperequired | string | NACHA-defined transaction types can be live (L), prenote (P), or zero (Z). Valid values: L, P, Z. |
receivingDFIIdrequired | string | The ID of the receiving depository financial institution. This cannot exceed the maximum of 8 digits. |
checkDigitrequired | string | Check digit is a single numeric digit. |
DFIAccountNumberrequired | string | The account number of the depository financial institution (the recipient's bank). The account number can be a maximum of 17 characters. |
amountrequired | string | The transaction amount in valid currency format. The amount can have up to 8 digits before the decimal and 2 digits after the decimal. |
individualNamerequired | string | The name of the individual. This cannot exceed 22 characters. |
individualIdentificationNumberoptional | string | The ID number for the individual. This cannot exceed 15 characters. |
discretionaryDataoptional | string | Further identification of the company or used to describe the type of entries being processed. The ID can be a maximum of 2 characters. |
addendaoptional | array | baseAddendaRequest |
paymentInquiryDetailRequest
NAME | TYPE | DESCRIPTION |
---|---|---|
uuidrequired | string | A custom value used to idenitfy each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters. |
rejectedBatchResponseBaseDetailResponse
NAME | TYPE | DESCRIPTION |
---|---|---|
uuidrequired | string | UUID is customer-populated value to identify each transaction. It is required to delete a transaction using the Undo function. It is not maintained throughout the lifecycle of the transaction. |
statusrequired | string | Overall Status of the batch can be either accepted/rejected. |
errorsoptional | array | detailMessage |
detailsoptional | array | baseDetailResponse |
sortControl
NAME | TYPE | DESCRIPTION |
---|---|---|
sortByoptional | string | Contains fields on which sorting is done. |
sortOrderoptional | string | Order on which sorting is done. It can contain a value of asc or desc. |
successMetaResponse
NAME | TYPE | DESCRIPTION |
---|---|---|
pageNumberoptional | integer | Page number retrieved in Pagination search. |
sizeUsedoptional | integer | Page size value used by server API. |
sizeRequestedoptional | integer | Page size value sent by client in request payload. |
totalRecordsoptional | integer | Total number of records available for Inquiry. |
sortoptional | array | sortControl |
telDetailRequest
NAME | TYPE | DESCRIPTION |
---|---|---|
uuidrequired | string | A custom value used to idenitfy each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters. |
accountTyperequired | string | The account type can be checking (C) or savings (S). Valid values: C, S. |
creditDebitCoderequired | string | One-character field indicates if the ACH transaction is a credit (C) or debit (D). Valid values: C, D. |
transactionTyperequired | string | NACHA-defined transaction types can be live (L), prenote (P), or zero (Z). Valid values: L, P, Z. |
receivingDFIIdrequired | string | The ID of the receiving depository financial institution. This cannot exceed the maximum of 8 digits. |
checkDigitrequired | string | Check digit is a single numeric digit. |
DFIAccountNumberrequired | string | The account number of the depository financial institution (the recipient's bank). The account number can be a maximum of 17 characters. |
amountrequired | string | The transaction amount in valid currency format. The amount can have up to 8 digits before the decimal and 2 digits after the decimal. |
individualIdentificationNumberoptional | string | The ID number for the individual. This cannot exceed 15 characters. |
individualNamerequired | string | The name of the individual. This cannot exceed 22 characters. |
paymentTypeCodeoptional | string | The code is a maximum of two characters. The code is two empty spaces if the code is not provided by the client. |
webDetailRequest
NAME | TYPE | DESCRIPTION |
---|---|---|
uuidrequired | string | A custom value used to idenitfy each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters. |
accountTyperequired | string | The account type can be checking (C) or savings (S). Valid values: C, S. |
creditDebitCoderequired | string | One-character field indicates if the ACH transaction is a credit (C) or debit (D). Valid values: C, D. |
transactionTyperequired | string | NACHA-defined transaction types can be live (L), prenote (P), or zero (Z). Valid values: L, P, Z. |
receivingDFIIdrequired | string | The ID of the receiving depository financial institution. This cannot exceed the maximum of 8 digits. |
checkDigitrequired | string | Check digit is a single numeric digit. |
DFIAccountNumberrequired | string | The account number of the depository financial institution (the recipient's bank). The account number can be a maximum of 17 characters. |
amountrequired | string | The transaction amount in valid currency format. The amount can have up to 8 digits before the decimal and 2 digits after the decimal. |
individualIdentificationNumberoptional | string | The ID number for the individual. This cannot exceed 15 characters. |
individualNamerequired | string | The name of the individual. This cannot exceed 22 characters. |
paymentTypeCodeoptional | string | The code is a maximum of two characters. The code is two empty spaces if the code is not provided by the client. |
addendaoptional | array | baseAddendaRequest |
Error handling
An error can indicate a problem with the request, the network, or the API itself. Use the error handling information to get a better understanding of what went wrong and possible corrective actions.
Standard error message format
An erroneous response returns the HTTP code number with the content of the exception
schema. Additional information in this schema like the transaction ID and transaction time can help you diagnose the issue.
The schema includes the X-CorrelationId
field to help with traceability.
API-specific error messages
Custom messages are used for API-related functional business messages or faults. Each API can contain custom messages specific to KeyBank operations or the API. These messages can be part of the exception
schema or a separate object.
KeyBank uses the ServiceError
> detailsMessage
object for errors specific to the API.
Error codes and messages
Standard errors use the typical HTTP status codes. Messages specific to KeyBank have an asterisk (*) after the message code number. Look at errorMessages
in the response payload or the detailMessage
object for additional information specific to the API.
HTTP STATUS CODE | DESCRIPTION |
---|---|
400 | Missing data in the request.
|
401 | Received request is unauthorized.
|
403 | Request is forbidden to access the resource.
|
404 | Request resource is not found.
|
405 | Request method is not allowed.
|
415 | Requested unsupported media type.
|
429 | Too many request received.
|
500 | Internal server error.
|
502 | Bad Gateway.
|
503 | Service Unavailable.
|
504 | Gateway timeout.
|
YAML file
