clock 6-minute read calender Rel. 4.0.0 | updated Nov. 12, 2024

Test and move your code in a mock environment

This guide explains how to use the Embedded Banking (EB) API simulator. Whether you are testing your application or practicing your API call, with the simulator you can interact with a mock environment without affecting any live systems.

API simulator high-level flow diagram

You can test APIs right in a production-like environment to get a real sense of how these endpoints operate. It is not a 100% reflection of the production environment, but a close mimic for API data controls and transmission activity. The API simulator is data-driven by the information you provide. You pass values in the request and verify the response returns the same information in data points like account number or name.

Since it is data-driven, this means that the more data you enter, the more scenarios you can test and interpret. The response data is smart and matches the critical data points from the different endpoint requests. You can simulate a series of related API calls that use the data from the previous requests.

  • Simulate API calls
    Make API requests without hitting real servers. This is useful for testing.
  • Test different scenarios
    Simulate different responses, like successful calls, errors, and timeouts.
  • Log and analyze responses
    View the data sent and received during API interactions.
  • Customize requests
    Change parameters, headers, and body content of requests to simulate different conditions.

01

Download the simulator API specifications

Before you begin, you will need the latest version of the simulator API specifications. The YAML file tells you what the API does, how to make request, what information you need to send, and what you'll get back.

Download the simulator YAML file for one of these products:

02

Select an endpoint

We embedded the word “simulator” is embedded into each API simulator endpoint. Make sure that when you download the YAML file, you include the word 'simulator' in its correct location on the path. Or simply copy an endpoint from the table below.

Simulator endpoints

APIDescriptionMethodSimulator endpoint
Account ValidationVerify an accountpost/accounts/validations/v2/simulator/verifyAccount
ACH OriginationCheck the status of addenda recordspost/ach/payments/v1/simulator/status/addenda
Send or collect a paymentpost/ach/payments/v1/simulator/ccd
Make or collect payments to or from a corporate account with attached recordspost/ach/payments/v1/simulator/ctx
Make deposits and withdrawals to or from consumer accountspost/ach/payments/v1/simulator/ppd
Send a payment over the phonepost/ach/payments/v1/simulator/tel
Send an online paymentpost/ach/payments/v1/simulator/web
Undo a payment requestpost/ach/payments/v1/simulator/undo
Send additional addenda informationpost/ach/payments/v1/simulator/addenda
ACH InquirySearch for ACH transactionsGET/accounts/transactions/v1/simulator/ach/detail/{parNumber}
Search for ACH transaction detailspost/accounts/transactions/v1/simulator/ach/list
RTP InquirySearch real-time payment transactionspost/rtp/v1/transactions/simulator/list
View the details of a RTP transaction by its IDGET/rtp/v1/transactions/simulator/detail/{transactionId}

03

Customize your request

In each request, you can change details in the header and body. We recommend beginning with a simple copy and paste of the request body code from the YAML to get familiar with the API. Then, get creative and try some scenarios that are common for you and your clients.

04

Send request and view response

Once you hit send, the simulator returns a response. The response will have the standard HTTP response codes like 200 (success) or 404 (not found). Review the status codes and response body returned. If you get an error response, check for things like typos in the endpoint, missing headers, or incorrect data in the body. Check your logs to see a record of all system interactions.

  • Understand the basics of APIs. While the simulator helps, the basic API knowledge is important. Know the different between GET and POST and how headers and body content work. 
  • Use the logs for debugging. Always check the logs to see if your request was formatted correctly. If the response isn’t what you expect, the logs can help pinpoint errors. 
  • Test different scenarios. Use the simulator to test both success and failures cases, includes edge cases (like testing with missing or incorrect data).
  • Stay organized. Label and document your simulated API tests to keep track of different test cases.
  • You need to be a verified API consumer with the correct credentials, following KeyBank's onboarding requirements as described in our Getting Started Guide. If you are an existing API consumer of an endpoint that is also active in the simulator environment, you should have access to the API simulator. If not, reach out to your Payments Advisor/Technical Account Manager.
  • At KeyBank, we require a separate set of API keys for API simulator and production environments. You cannot use API keys for one environment to access the API in another environment. You need unique application credentials for the simulator environment.
  • There is a unique consumer key for the API simulator to avoid cross-pollinating the environments. You get a unique consumer_id and consumer_secret for the API simulator. You can use the same client credentials (client_id and client_key). All keys are securely provided to you by KeyBank.
  • When you submit a request for an access token, you should see API Simulator listed in the api_product_list_json. This field lists what API products and service you have permission to access.
  • You cannot access the API simulator unless you are a verified API consumer partnering with KeyBank. To learn more, go to the Getting Started Guide
  • ACH data transmission goes to a simulated ACH batch that runs at 6:00 p.m. daily. After the daily batch run, you can inquire about the status of an ACH transaction. 
  • Not all endpoints are currently available in the API simulator for each API product. KeyBank is working to expand simulated experiences for all of our API products. 

RTP and Wire Payments API

clock 5-minute read calender 1.2.4 | updated Aug. 07, 2024

Make a payment immediately and at any time

The RTP and Wire Payments API is a single product with two service capabilities: real-time payments (RTP) and wire transfers (WIRE). Specific permissions are required to access either the RTP Send Payment API or the Wires Transfer API. You can initiate a payment, check on its status, and get information about participating parties.

What you can doEndpoint
Health checkget /rtp/v1/payment/healthCheck
Get a list of RTP participantsget /rtp/v1/payment/rtp/participant
Get information about one RTP participantget /rtp/v1/payment/rtp/participant/{routingNumber}
Get the status with the transaction IDget /rtp/v1/payment/status/transactionId/{transactionId}
Get the status with the request reference numberget /rtp/v1/payment/status/debitAccount/{debitAccount}/reference/{reference}
Send a real-time paymentpost /rtp/v1/payment/initiate
Perform validation checkspost /rtp/v1/payment/validate

Before you begin

All KeyBank APIs require certificates, user credentials, and certain permissions. Check out our Getting Started Guide to learn more.

 

Two in one

At KeyBank, the RTP and wire payment APIs are a single API product with two service capabilities. You need specific permissions to access either the RTP Send Payment API or the Wire Transfer API.

You can initiate a real-time payment, check on its status, and get information about participating parties.

RTP stands for Real-Time Payment. It is a modern payment system that enables immediate and real-time fund transfers between financial institution or individuals. RTP transactions use the clearing house’s RTP network, which operates 24/7, allowing for instant payment settlement. RTP payments are often used for person-to person transfers, bill payments, and business-to-business transactions.

The main difference between RTP payments and wire transfers is in their speed and settlement process. RTP payments are designed for real-time transfers, providing immediate availability of funds, while wire transfers may take longer to process and settle.

The two calls - initiate a payment and validate a payment - have the party object. This is a reusable object that has details about the person or entity sending a payment and the one receiving the payment. The party object reflects the payment chain of events. Use the request fields to direct the payment transaction from one account to another.

ORDERPAYMENT CHAINREQUEST FIELDS TO USE
1The individual or organization sends the payment.Enter the debit account number of the individual or organization in debitParty.
2The financial institution of the debit account holder transfers the funds.We assume this is KeyBank. Enter the ABA or routing number for the financial institution in debitPartyBank.
3The financial institution that services the recipient’s account receives the funds.Enter the US ABA number for the financial institution in creditPartyBank.
4The beneficiary party receives the funds.Enter the account number of the beneficiary in creditParty.

 

API requirements

KeyClientId: When you initiate or validate a payment, you are required to provide the KeyClientId in the request header. The KeyClientId is a 32-character string provided by KeyBank during the onboarding process. This field is not the same as your client credentials (part of your API keys needed to obtain an access token).


get /rtp/v1/payment/healthCheck

Verify you can connect to the API service. A bearer token is required.

 
NAMETYPEDESCRIPTION
StatusoptionalstringThe status of the health check response.
SourceoptionalstringThe system that produces the health response. The origin of the response can be 'Gateway' or 'Roundtrip.' Roundtrip returns a response from the farthest system involved.
TimestampoptionalstringThe date (YYYY-MM-DD) and time (HH:MM:SS) of response from the API service.
ClientIpoptionalstringThe client IP address the gateway receives from the request.
X-Forwarded-ForoptionalstringThe sequence of the IP addresses for systems between the client and the gateway. Addresses are separated by a comma.

Response example (200)

copylink
{
   "Status": "Ok",
   "Source": "Roundtrip",
   "Timestamp": "2022-09-16T02:36:20",
   "ClientIp": "156.77.111.28",
   "X-Forwarded-For": "[156.77.111.28]"
}

get /rtp/v1/payment/rtp/participant

Retrieve a list of active, online RTP banks. Use the limit and offset fields to control how many records to return and what records to skip.

query FIELDTYPEDESCRIPTION
limitrequiredintegerPagination parameter that indicates the maximum number of records to return in the response.
offsetrequiredintegerPagination parameter that indicates the number of records skipped before generating the output.
header FIELDTYPEDESCRIPTION
KeyClientIdrequiredstringThis value is provided by KeyBank during onboarding and is different from your client credentials. This is required for each call for RTP or Wire transactions.

Request example

curl --location: 'https://partner-api-qv.keybank.com/rtp/v1/payment/rtp/participant?limit=15&offset=0'
--header 'KeyClientId: testwUhSQADUD4DwYyZz2hZkwLqsoFGK'
--header 'Accept: application/json'
--header 'Bearer testZcKJDWnwDWmmf9qah6PJvPy8'
NAMETYPEDESCRIPTION
countrequiredstringThe count of records that match the initial query.
limitrequiredintegerThe maximum number of records returned in the response.
offsetrequiredintegerThe number of records skipped before the response is returned.
partiesoptionalObjectparty

Response example (200)

copylink
{
   "count": "65",
   "limit": 10,
   "offset": 0, 
   "parties": {
                                                                                                            "name": "CITIZENS BANK, NA",
                                                                                                            "accountNumber": "102258001",
                                                                                                            "aba": "100001995",
                                                                                                            "bic": "CITZUSL2XXX",
                                                                                                            "txid": "fa1354bkg3153kj13b4h34",
                                                                                                            "foreignBankSystemId": {
                                                                                                                "type": "USABA"
                                                                                                            },
                                                                                                            "postalAddress": {
                                                                                                                "adrLine": [
                                                                                                                    "BENEFICIARY ADDRESS LINE 1",
                                                                                                                    "BENEFICIARY ADDRESS LINE 2"
                                                                                                                ]
                                                                                                            }
                                                                                                        }
                                                                                                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (400)

copylink
{
                                                                                                        "ErrorMessage": "Error received from backend service.",
                                                                                                        "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
                                                                                                        "TransactionId": "US21052400000000",
                                                                                                        "TransactionTime": "2021-06-11T16:31:34.041Z",
                                                                                                        "ServiceError": {
                                                                                                            "status": "FAILED",
                                                                                                            "transactionId": "rrt-770941720727587-2383364-1",
                                                                                                            "requestReference": "RR-220818-01",
                                                                                                            "sendersReference": "SR-220818-01",
                                                                                                            "valueDate": 1683676800,
                                                                                                            "error": {
                                                                                                                "code": "KEY-1006",
                                                                                                                "title": "Required field missing",
                                                                                                                "description": "The object creditPartyBank is required in the request."
                                                                                                            }
                                                                                                        }
                                                                                                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (401)

copylink
{
                                                                                                        "ErrorMessage": "Error received from backend service.",
                                                                                                        "TransactionId": "rrt-621075741872460927-c-gce-9129-15867185-4",
                                                                                                        "X-CorrelationId": "80457bcb-2c3b-8c55-8cd6-3520c3157e8f",
                                                                                                        "TransactionTime": "2022-04-04T11:41:13.754Z",
                                                                                                        "ServiceError": {
                                                                                                            "status": "ERROR",
                                                                                                            "transactionId": "rrt-621075741872460927",
                                                                                                            "requestReference": "REQUEST-REF-220314.1",
                                                                                                            "sendersReference": "SENDER-REF-220314.1",
                                                                                                            "valueDate": "06-10-2023",
                                                                                                            "error": {
                                                                                                                "code": "KEY-0006",
                                                                                                                "title": "Not authorized for requested service",
                                                                                                                "description": "Check your credentials."
                                                                                                            },
                                                                                                            "doddFrank": "NO"
                                                                                                        }
                                                                                                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (403)

copylink
{
                                                                                                        "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"
                                                                                                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (404)

copylink
{
                                                                                                        "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"
                                                                                                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (405)

copylink
{
                                                                                                        "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"
                                                                                                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (415)

copylink
{
                                                                                                        "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"
                                                                                                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (429)

copylink
{
                                                                                                        "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"
                                                                                                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (500)

copylink
{
                                                                                                        "ErrorMessage": "Error received from backend service.",
                                                                                                        "TransactionId": "359681587523_SR-RMC-210729-11081",
                                                                                                        "X-CorrelationId": "7ad7fdfb-2ade-a3ab-b97c-523dc5312688",
                                                                                                        "TransactionTime": "2022-04-05T07:59:15.422Z",
                                                                                                        "ServiceError": {
                                                                                                            "status": "ERROR",
                                                                                                            "transactionId": "rrt-621075741872460927",
                                                                                                            "requestReference": "RR-RMC-210720-0123458981",
                                                                                                            "sendersReference": "SR-RMC-210729-11081",
                                                                                                            "valueDate": "06-10-2023",
                                                                                                            "error": {
                                                                                                                "code": "KEY-9999",
                                                                                                                "title": "Unknown error",
                                                                                                                "description": "Payment Initiation ServiceException: AUTHENTICATION_FAILURE Unable to logon with the supplied credentials.",
                                                                                                                "detail": {
                                                                                                                    "code": "KEY-9999",
                                                                                                                    "title": "Unknown error",
                                                                                                                    "description": "Additional information about error code."
                                                                                                                }
                                                                                                            },
                                                                                                            "doddFrank": "NO"
                                                                                                        }
                                                                                                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (502)

copylink
{
                                                                                                        "ErrorMessage": "Error received from backend service.",
                                                                                                        "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
                                                                                                        "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
                                                                                                        "TransactionTime": "2021-06-11T16:31:34.041Z",
                                                                                                        "ServiceError": {
                                                                                                            "ConnectError": "Connectivity error occurred with the downstream service (unexpected EOF at target). Please check with application support team before resubmitting the request"
                                                                                                        }
                                                                                                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (503)

copylink
{
                                                                                                        "ErrorMessage": "Error received from backend service.",
                                                                                                        "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
                                                                                                        "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."
                                                                                                        }
                                                                                                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (504)

copylink
{
                                                                                                        "ErrorMessage": "Your request took too long to process. Please try again.",
                                                                                                        "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
                                                                                                        "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."
                                                                                                        }
                                                                                                    }

get /rtp/v1/payment/rtp/participant/{routingNumber}

This call returns information about a single RTP participant. Use the routing number of the financial institution to search for the RTP participant.

path FIELDTYPEDESCRIPTION
routingNumberrequiredstringRouting number of the participating RTP bank.
header FIELDTYPEDESCRIPTION
KeyClientIdrequiredstringThis value is provided by KeyBank during onboarding and is different from your client credentials. This is required for each call for RTP or Wire transactions.

Request example

curl --location: 'https://partner-api-qv.keybank.com/rtp/v1/payment/rtp/participant/12345678
                    --header 'KeyClientId: testwUhSQADUD4DwYyZz2hZkwLqsoFGK'
                    --header 'Accept: application/json'
                    --header 'Authorization: Bearer testZcKJDWnwDWmmf9qah6PJvPy8'
NAMETYPEDESCRIPTION
namerequiredstringName of the party. This can be an individual, a financial institution, or a beneficiary. The name cannot exceed 140 characters.
accountNumberoptionalstringAccount number of the party.
abaoptionalstringIf the party is a financial institution, this is the ABA number or routing number. This cannot exceed 9 numbers.
bicoptionalstringThe bank identifier code (BIC) for the party. This is a combination code that identifies the bank, country, location, and possibly the bank branch.
txidoptionalstringThe tax identification number for the party.
foreignBankSystemIdoptionalObjectforeignBankSystemType
adrLineoptionalarrayAn unstructured address line. You can have up to three lines of text that each cannot exceed 70 characters.

Response example (200)

copylink
{
                                            "name": "KeyBank National Association",
                                            "accountNumber": "8756654",
                                            "aba": "125200879",
                                            "bic": "KEYUSL2XXX",
                                            "txid": "fa125da513hj135j42b5",
                                            "foreignBankSystemId": {
                                                "type": "USABA"
                                            },
                                            "postalAddress": {
                                                "adrLine": [
                                                    "123 Keybank Street",
                                                    "Cleveland, OH"
                                                ]
                                            }
                                        }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (400)

copylink
{
                                            "ErrorMessage": "Error received from backend service.",
                                            "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
                                            "TransactionId": "US21052400000000",
                                            "TransactionTime": "2021-06-11T16:31:34.041Z",
                                            "ServiceError": {
                                                "status": "FAILED",
                                                "transactionId": "rrt-770941720727587-2383364-1",
                                                "requestReference": "RR-220818-01",
                                                "sendersReference": "SR-220818-01",
                                                "valueDate": 1683676800,
                                                "error": {
                                                    "code": "KEY-1006",
                                                    "title": "Required field missing",
                                                    "description": "The object creditPartyBank is required in the request."
                                                }
                                            }
                                        }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (401)

copylink
{
                                            "ErrorMessage": "Error received from backend service.",
                                            "TransactionId": "rrt-621075741872460927-c-gce-9129-15867185-4",
                                            "X-CorrelationId": "80457bcb-2c3b-8c55-8cd6-3520c3157e8f",
                                            "TransactionTime": "2022-04-04T11:41:13.754Z",
                                            "ServiceError": {
                                                "status": "ERROR",
                                                "transactionId": "rrt-621075741872460927",
                                                "requestReference": "REQUEST-REF-220314.1",
                                                "sendersReference": "SENDER-REF-220314.1",
                                                "valueDate": "06-10-2023",
                                                "error": {
                                                    "code": "KEY-0006",
                                                    "title": "Not authorized for requested service",
                                                    "description": "Check your credentials."
                                                },
                                                "doddFrank": "NO"
                                            }
                                        }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (403)

copylink
{
                                            "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"
                                        }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (404)

copylink
{
                                            "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"
                                        }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (405)

copylink
{
                                            "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"
                                        }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (415)

copylink
{
                                            "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"
                                        }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (429)

copylink
{
                                            "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"
                                        }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (500)

copylink
{
                                            "ErrorMessage": "Error received from backend service",
                                            "TransactionId": "359681587523_SR-RMC-210729-11081",
                                            "X-CorrelationId": "7ad7fdfb-2ade-a3ab-b97c-523dc5312688",
                                            "TransactionTime": "2022-04-05T07:59:15.422Z",
                                            "ServiceError": {
                                                "status": "ERROR",
                                                "transactionId": "rrt-621075741872460927",
                                                "requestReference": "REQUEST-REF-220314.1",
                                                "sendersReference": "SENDER-REF-220314.1",
                                                "valueDate": "06-10-2023",
                                                "error": {
                                                    "code": "KEY-9999",
                                                    "title": "Unknown error",
                                                    "description": "Payment Initiation ServiceException: AUTHENTICATION_FAILURE Unable to logon with the supplied credentials."
                                                },
                                                "doddFrank": "NO"
                                            }
                                        }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (502)

copylink
{
                                            "ErrorMessage": "Error received from backend service.",
                                            "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
                                            "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
                                            "TransactionTime": "2021-06-11T16:31:34.041Z",
                                            "ServiceError": {
                                                "ConnectError": "Connectivity error occurred with the downstream service (unexpected EOF at target). Please check with application support team before resubmitting the request"
                                            }
                                        }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (503)

copylink
{
                                            "ErrorMessage": "Error received from backend service.",
                                            "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
                                            "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."
                                            }
                                        }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (504)

copylink
{
                                            "ErrorMessage": "Error received from backend service.",
                                            "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
                                            "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."
                                            }
                                        }

get /rtp/v1/payment/status/transactionId/{transactionId}

Get the status of a RTP transaction or a wire transfer.

path FIELDTYPEDESCRIPTION
transactionIdrequiredstringThe clearing system reference number (the US transaction number).
header FIELDTYPEDESCRIPTION
KeyClientIdrequiredstringThis value is provided by KeyBank during onboarding and is different from your client credentials. This is required for each call for RTP or Wire transactions.

Request example

curl --location: 'https://partner-api-qv.keybank.com/rtp/v1/payment/status/transactionId/test123321'
--header 'KeyClientId: testwUhSQADUD4DwYyZz2hZkwLqsoFGK'
--header 'Accept: application/json'
--header 'Authorization: Bearer testZcKJDWnwDWmmf9qah6PJvPy8'
NAMETYPEDESCRIPTION
statusrequiredObjectpaymentStatus
transactionIdoptionalstringThe unique ID number associated with the original payment request.
requestReferenceoptionalstringA reference value for the original request that is useful for traceability and reporting. The ID cannot exceed 35 characters.
sendersReferenceoptionalstringA reference value provided by the sender. For outbound payments, this value is the same as the transaction ID. The ID cannot exceed 32 characters.
receiversReferenceoptionalstringA reference value for the beneficiary. This value cannot exceed 140 characters.
debitAccountNumberoptionalstringDebit account number. This cannot exceed 34 digits.
creditAccountNumberoptionalstringCredit account number. This cannot exceed 34 digits.
valueDateoptionalstringThe date (YYYY-MM-DD) the transfer occurred.
transferAmountoptionalintegerAmount of money to transfer in the correct currency format.
transferCurrencyoptionalstringCurrency code for the transfer amount.
erroroptionalObjectpaymentError
doddFrankoptionalObjectnoYesType
clearingSystemReferenceoptionalstringA reference value for the beneficiary. This value cannot exceed 140 characters.

Response example (200)

copylink
{
                        "status": "COMPLETED",
                        "transactionId": "US21052400000000",
                        "requestReference": "RR-KEY-999999-01",
                        "sendersReference": "SR-KEY-999999-01",
                        "receiversReference": "INVC0054321",
                        "debitAccountNumber": "12345",
                        "creditAccountNumber": "987654321",
                        "valueDate": "2023-05-08",
                        "transferAmount": 10,
                        "transferCurrency": "USD",
                        "doddFrank": "NO"
                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (400)

copylink
{
                        "ErrorMessage": "Error received from backend service.",
                        "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
                        "TransactionId": "US21052400000000",
                        "TransactionTime": "2021-06-11T16:31:34.041Z",
                        "ServiceError": {
                            "status": "FAILED",
                            "transactionId": "rrt-770941720727587-2383364-1",
                            "requestReference": "RR-220818-01",
                            "sendersReference": "SR-220818-01",
                            "valueDate": 1683676800,
                            "error": {
                                "code": "KEY-1006",
                                "title": "Required field missing",
                                "description": "The object creditPartyBank is required in the request."
                            }
                        }
                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (401)

copylink
{
                        "ErrorMessage": "Error received from backend service.",
                        "TransactionId": "rrt-621075741872460927-c-gce-9129-15867185-4",
                        "X-CorrelationId": "80457bcb-2c3b-8c55-8cd6-3520c3157e8f",
                        "TransactionTime": "2022-04-04T11:41:13.754Z",
                        "ServiceError": {
                            "status": "ERROR",
                            "transactionId": "rrt-621075741872460927",
                            "requestReference": "REQUEST-REF-220314.1",
                            "sendersReference": "SENDER-REF-220314.1",
                            "valueDate": "06-10-2023",
                            "error": {
                                "code": "KEY-0006",
                                "title": "Not authorized for requested service",
                                "description": "Check your credentials."
                            },
                            "doddFrank": "NO"
                        }
                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (403)

copylink
{
                        "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"
                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (404)

copylink
{
                        "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"
                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (405)

copylink
{
                        "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"
                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (415)

copylink
{
                        "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"
                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (429)

copylink
{
                        "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"
                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (500)

copylink
{
                        "ErrorMessage": "Error received from backend service.",
                        "TransactionId": "359681587523_SR-RMC-210729-11081",
                        "X-CorrelationId": "7ad7fdfb-2ade-a3ab-b97c-523dc5312688",
                        "TransactionTime": "2022-04-05T07:59:15.422Z",
                        "ServiceError": {
                            "status": "ERROR",
                            "transactionId": "rrt-621075741872460927",
                            "requestReference": "REQUEST-REF-220314.1",
                            "sendersReference": "SENDER-REF-220314.1",
                            "valueDate": "06-10-2023",
                            "error": {
                                "code": "KEY-9999",
                                "title": "Unknown error",
                                "description": "Payment Initiation ServiceException: AUTHENTICATION_FAILURE Unable to logon with the supplied credentials."
                            },
                            "doddFrank": "NO"
                        }
                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (502)

copylink
{
                        "ErrorMessage": "Error received from backend service",
                        "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
                        "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
                        "TransactionTime": "2021-06-11T16:31:34.041Z",
                        "ServiceError": {
                            "ConnectError": "Connectivity error occurred with the downstream service (unexpected EOF at target). Please check with application support team before resubmitting the request"
                        }
                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (503)

copylink
{
                        "ErrorMessage": "Error received from backend service.",
                        "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
                        "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."
                        }
                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (504)

copylink
{
                        "ErrorMessage": "Your request took too long to process. Please try again.",
                        "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
                        "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."
                        }
                    }

get /rtp/v1/payment/status/debitAccount/{debitAccount}/reference/{reference}

Get the status of a payment with the debit account number of the payment originator and the request reference number. This call is typically used for troubleshooting an issue with timing or a technical error with a payment transaction. You can assign a request reference number when you initiate or validate a payment. This number is metadata for backend traceability and is not sent with the payment. Use this number with the debit account number for the originating payment. The account number and request reference number must be unique; you cannot use the same request reference number for different transactions.

path FIELDTYPEDESCRIPTION
debitAccountrequiredstringThe debit account number of the originator.
referencerequiredstringThe clearing system reference number (the US transaction number).
header FIELDTYPEDESCRIPTION
KeyClientIdrequiredstringThis value is provided by KeyBank during onboarding and is different from your client credentials. This is required for each call for RTP or Wire transactions.

Request example

curl --location: 'https://partner-api-qv.keybank.com/rtp/v1/payment/status/debitAccount/12345/reference/RR-KEY-999999-01'
--header 'KeyClientId: testwUhSQADUD4DwYyZz2hZkwLqsoFGK'
--header 'Accept: application/json'
--header 'Authorization: Bearer testZcKJDWnwDWmmf9qah6PJvPy8'
NAMETYPEDESCRIPTION
statusrequiredObjectpaymentStatus
transactionIdoptionalstringThe unique ID number associated with the original payment request.
requestReferenceoptionalstringA reference value for the original request that is useful for traceability and reporting. The ID cannot exceed 35 characters.
sendersReferenceoptionalstringA reference value provided by the sender. For outbound payments, this value is the same as the transaction ID. The ID cannot exceed 32 characters.
receiversReferenceoptionalstringA reference value for the beneficiary. This value cannot exceed 140 characters.
debitAccountNumberoptionalstringDebit account number. This cannot exceed 34 digits.
creditAccountNumberoptionalstringCredit account number. This cannot exceed 34 digits.
valueDateoptionalstringThe date (YYYY-MM-DD) the transfer occurred.
transferAmountoptionalintegerAmount of money to transfer in the correct currency format.
transferCurrencyoptionalstringCurrency code for the transfer amount.
erroroptionalObjectpaymentError
doddFrankoptionalObjectnoYesType
clearingSystemReferenceoptionalstringA reference value for the beneficiary. This value cannot exceed 140 characters.

Response example (200)

copylink
{
                        "status": "COMPLETED",
                        "transactionId": "US21052400000000",
                        "requestReference": "RR-KEY-999999-01",
                        "sendersReference": "SR-KEY-999999-01",
                        "receiversReference": "INVC0054321",
                        "debitAccountNumber": "12345",
                        "creditAccountNumber": "987654321",
                        "valueDate": "2023-05-08",
                        "transferAmount": 10,
                        "transferCurrency": "USD",
                        "doddFrank": "NO"
                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (400)

copylink
{
                        "ErrorMessage": "Error received from backend service.",
                        "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
                        "TransactionId": "US21052400000000",
                        "TransactionTime": "2021-06-11T16:31:34.041Z",
                        "ServiceError": {
                            "status": "FAILED",
                            "transactionId": "rrt-770941720727587-2383364-1",
                            "requestReference": "RR-220818-01",
                            "sendersReference": "SR-220818-01",
                            "valueDate": 1683676800,
                            "error": {
                                "code": "KEY-1006",
                                "title": "Required field missing",
                                "description": "The object creditPartyBank is required in the request."
                            }
                        }
                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (401)

copylink
{
                        "ErrorMessage": "Error received from backend service.",
                        "TransactionId": "rrt-621075741872460927-c-gce-9129-15867185-4",
                        "X-CorrelationId": "80457bcb-2c3b-8c55-8cd6-3520c3157e8f",
                        "TransactionTime": "2022-04-04T11:41:13.754Z",
                        "ServiceError": {
                            "status": "ERROR",
                            "transactionId": "rrt-621075741872460927",
                            "requestReference": "REQUEST-REF-220314.1",
                            "sendersReference": "SENDER-REF-220314.1",
                            "valueDate": "06-10-2023",
                            "error": {
                                "code": "KEY-0006",
                                "title": "Not authorized for requested service",
                                "description": "Check your credentials."
                            },
                            "doddFrank": "NO"
                        }
                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (403)

copylink
{
                        "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"
                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (404)

copylink
{
                        "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"
                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (405)

copylink
{
                        "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"
                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (415)

copylink
{
                        "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"
                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (429)

copylink
{
                        "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"
                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (500)

copylink
{
                        "ErrorMessage": "Error received from backend service",
                        "TransactionId": "359681587523_SR-RMC-210729-11081",
                        "X-CorrelationId": "7ad7fdfb-2ade-a3ab-b97c-523dc5312688",
                        "TransactionTime": "2022-04-05T07:59:15.422Z",
                        "ServiceError": {
                            "status": "ERROR",
                            "transactionId": "rrt-621075741872460927",
                            "requestReference": "REQUEST-REF-220314.1",
                            "sendersReference": "SENDER-REF-220314.1",
                            "valueDate": "06-10-2023",
                            "error": {
                                "code": "KEY-9999",
                                "title": "Unknown error",
                                "description": "Payment Initiation ServiceException: AUTHENTICATION_FAILURE Unable to logon with the supplied credentials."
                            },
                            "doddFrank": "NO"
                        }
                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (502)

copylink
{
                        "ErrorMessage": "Error received from backend service",
                        "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
                        "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
                        "TransactionTime": "2021-06-11T16:31:34.041Z",
                        "ServiceError": {
                            "ConnectError": "Connectivity error occurred with the downstream service (unexpected EOF at target). Please check with application support team before resubmitting the request"
                        }
                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (503)

copylink
{
                        "ErrorMessage": "Error received from backend service.",
                        "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
                        "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."
                        }
                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (504)

copylink
{
                        "ErrorMessage": "Error received from backend service",
                        "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
                        "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."
                        }
                    }

post /rtp/v1/payment/initiate

Initiate a RTP payment. Use the requestedService parameter to define the transaction as RTP or Wire. With the party object, you can define the receiver as an individual, corporation, or financial institution in the payment chain.

header FIELDTYPEDESCRIPTION
KeyClientIdrequiredstringThis value is provided by KeyBank during onboarding and is different from your client credentials. This is required for each call for RTP or Wire transactions.
BODY FIELDTYPEDESCRIPTION
requestedServicerequiredstringThe type of payment transaction. The transaction request is valid only for the API products with granted access. Valid values: RTP, WIRE
requestReferencerequiredstringA reference value for the original request that is useful for traceability and reporting. The ID cannot exceed 32 characters.
typerequiredstringFor RTP, the type can show if the transaction is a PAYMENT or a DRAFT. For Wire transfers, the type is always DRAFT.
requestedValueDaterequiredstringDate (YYYY-MM-DD) the transfer will occur.
originatorReferenceoptionalstringAn additional reference value that is meaningful to the party originating the payment.
sendersReferencerequiredstringA reference value provided by the sender. For outbound payments, this value is the same as the transaction ID. The ID cannot exceed 35 characters.
receiversReferenceoptionalstringA reference value for the beneficiary. This value cannot exceed 140 characters.
bankToBankInstructionsoptionalstringArea to share messages or instructions from one bank to another bank. This cannot exceed 140 characters.
ultimateDebitPartyoptionalObjectultParty
debitPartyrequiredObjectparty
debitPartyBankoptionalObjectparty
intermediaryBank1optionalObjectparty
intermediaryBank2optionalObjectparty
intermediaryBank3optionalObjectparty
creditPartyBankrequiredObjectparty
creditPartyrequiredObjectparty
transferAmountrequirednumberAmount of money to transfer in the correct currency format.
transferCurrencyrequiredstringCurrency code for the transfer amount.
externalTemplateNameoptionalstringName of the external template. Text cannot exceed 2048 characters.
customDataoptionalstringThe values for custom data is defined by the client. This free-form text field can contain up to 500 alphanumeric characters. Custom information stays with the transaction through its lifecycle.

Request example

copylink
{
                        "requestedService": "RTP",
                        "requestReference": "AZX01234567891011",
                        "type": "PAYMENT",
                        "sendersReference": "INVC0012345",
                        "receiversReference": "INVC0054321",
                        "requestedValueDate": 1621814400,
                        "debitParty": {
                            "name": "YOUR COMPANY NAME HERE",
                            "accountNumber": "001122334455"
                        },
                        "creditPartyBank": {
                            "name": "BENEFICIARY BANK NAME",
                            "aba": "000000000"
                        },
                        "creditParty": {
                            "name": "BENEFICIARY NAME",
                            "accountNumber": "987654321",
                            "postalAddress": {
                                "adrLine": [
                                    "BENEFICIARY ADDRESS LINE 1",
                                    "BENEFICIARY ADDRESS LINE 2"
                                ]
                            }
                        },
                        "transferAmount": 10,
                        "transferCurrency": "USD"
                    }
NAMETYPEDESCRIPTION
statusrequiredObjectpaymentStatus
transactionIdoptionalstringThe unique ID number associated with the original payment request.
requestReferenceoptionalstringA reference value for the original request that is useful for traceability and reporting. The ID cannot exceed 35 characters.
sendersReferenceoptionalstringA reference value provided by the sender. For outbound payments, this value is the same as the transaction ID. The ID cannot exceed 32 characters.
receiversReferenceoptionalstringA reference value for the beneficiary. This value cannot exceed 140 characters.
debitAccountNumberoptionalstringDebit account number. This cannot exceed 34 digits.
creditAccountNumberoptionalstringCredit account number. This cannot exceed 34 digits.
valueDateoptionalstringThe date (YYYY-MM-DD) the transfer occurred.
transferAmountoptionalintegerAmount of money to transfer in the correct currency format.
transferCurrencyoptionalstringCurrency code for the transfer amount.
erroroptionalObjectpaymentError
doddFrankoptionalObjectnoYesType
clearingSystemReferenceoptionalstringA reference value for the beneficiary. This value cannot exceed 140 characters.

Response example (200)

copylink
{
                        "status": "IN_PROCESS",
                        "transactionId": "US23050800214592",
                        "requestReference": "AZX01234567891011",
                        "sendersReference": "INVC0012345",
                        "receiversReference": "INVC0054321",
                        "debitAccountNumber": "001122334455",
                        "creditAccountNumber": "987654321",
                        "valueDate": "2023-05-08",
                        "transferAmount": 10,
                        "transferCurrency": "USD"
                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (400)

copylink
{
                        "ErrorMessage": "Error received from backend service.",
                        "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
                        "TransactionId": "US21052400000000",
                        "TransactionTime": "2021-06-11T16:31:34.041Z",
                        "ServiceError": {
                            "status": "FAILED",
                            "transactionId": "rrt-770941720727587-2383364-1",
                            "requestReference": "RR-220818-01",
                            "sendersReference": "SR-220818-01",
                            "valueDate": 1683676800,
                            "error": {
                                "code": "KEY-1006",
                                "title": "Required field missing",
                                "description": "The object creditPartyBank is required in the request."
                            }
                        }
                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (401)

copylink
{
                        "ErrorMessage": "Error received from backend service.",
                        "TransactionId": "rrt-621075741872460927-c-gce-9129-15867185-4",
                        "X-CorrelationId": "80457bcb-2c3b-8c55-8cd6-3520c3157e8f",
                        "TransactionTime": "2022-04-04T11:41:13.754Z",
                        "ServiceError": {
                            "status": "ERROR",
                            "transactionId": "rrt-621075741872460927",
                            "requestReference": "REQUEST-REF-220314.1",
                            "sendersReference": "SENDER-REF-220314.1",
                            "valueDate": "06-10-2023",
                            "error": {
                                "code": "KEY-0006",
                                "title": "Not authorized for requested service",
                                "description": "Check your credentials."
                            },
                            "doddFrank": "NO"
                        }
                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (403)

copylink
{
                        "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"
                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (404)

copylink
{
                        "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"
                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (405)

copylink
{
                        "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"
                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (415)

copylink
{
                        "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"
                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (429)

copylink
{
                        "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"
                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (500)

copylink
{
                        "ErrorMessage": "Error received from backend service.",
                        "TransactionId": "359681587523_SR-RMC-210729-11081",
                        "X-CorrelationId": "7ad7fdfb-2ade-a3ab-b97c-523dc5312688",
                        "TransactionTime": "2022-04-05T07:59:15.422Z",
                        "ServiceError": {
                            "status": "ERROR",
                            "transactionId": "rrt-621075741872460927",
                            "requestReference": "RR-RMC-210720-0123458981",
                            "sendersReference": "SR-RMC-210729-11081",
                            "valueDate": "06-10-2023",
                            "error": {
                                "code": "KEY-9999",
                                "title": "Unknown error",
                                "description": "Payment Initiation ServiceException: AUTHENTICATION_FAILURE Unable to logon with the supplied credentials."
                            },
                            "doddFrank": "NO"
                        }
                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (502)

copylink
{
                        "ErrorMessage": "Error received from backend service.",
                        "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
                        "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
                        "TransactionTime": "2021-06-11T16:31:34.041Z",
                        "ServiceError": {
                            "ConnectError": "Connectivity error occurred with the downstream service (unexpected EOF at target). Please check with application support team before resubmitting the request"
                        }
                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (503)

copylink
{
                        "ErrorMessage": "Error received from backend service.",
                        "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
                        "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."
                        }
                    }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (504)

copylink
{
                        "ErrorMessage": "Error received from backend service",
                        "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
                        "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."
                        }
                    }

post /rtp/v1/payment/validate

This call performs all the validation checks needed to initiate a payment without creating a payment.

header FIELDTYPEDESCRIPTION
KeyClientIdrequiredstringThis value is provided by KeyBank during onboarding and is different from your client credentials. This is required for each call for RTP or Wire transactions.
BODY FIELDTYPEDESCRIPTION
requestedServicerequiredstringThe type of payment transaction. The transaction request is valid only for the API products with granted access. Valid values: RTP, WIRE
requestReferencerequiredstringA reference value for the original request that is useful for traceability and reporting. The ID cannot exceed 32 characters.
typerequiredstringFor RTP, the type can show if the transaction is a PAYMENT or a DRAFT. For Wire transfers, the type is always DRAFT.
requestedValueDaterequiredstringDate (YYYY-MM-DD) the transfer will occur.
originatorReferenceoptionalstringAn additional reference value that is meaningful to the party originating the payment.
sendersReferencerequiredstringA reference value provided by the sender. For outbound payments, this value is the same as the transaction ID. The ID cannot exceed 35 characters.
receiversReferenceoptionalstringA reference value for the beneficiary. This value cannot exceed 140 characters.
bankToBankInstructionsoptionalstringArea to share messages or instructions from one bank to another bank. This cannot exceed 140 characters.
ultimateDebitPartyoptionalObjectultParty
debitPartyrequiredObjectparty
debitPartyBankoptionalObjectparty
intermediaryBank1optionalObjectparty
intermediaryBank2optionalObjectparty
intermediaryBank3optionalObjectparty
creditPartyBankrequiredObjectparty
creditPartyrequiredObjectparty
transferAmountrequirednumberAmount of money to transfer in the correct currency format.
transferCurrencyrequiredstringCurrency code for the transfer amount.
externalTemplateNameoptionalstringName of the external template. Text cannot exceed 2048 characters.
customDataoptionalstringThe values for custom data is defined by the client. This free-form text field can contain up to 500 alphanumeric characters. Custom information stays with the transaction through its lifecycle.

Request example

copylink
{
    "requestedService": "RTP",
    "requestReference": "AZX01234567891011",
    "type": "PAYMENT",
    "requestedValueDate": 1621814400,
    "originatorReference": "",
    "sendersReference": "INVC0012345",
    "receiversReference": "INVC0054321",
    "ultimateDebitParty": {
        "name": ""
    },
    "debitParty": {
        "name": "YOUR COMPANY NAME HERE",
        "accountNumber": "001122334455"
    },
    "debitPartyBank": {
        "name": ""
    },
    "creditPartyBank": {
        "name": "BENEFICIARY BANK NAME",
        "aba": "000000000"
    },
    "creditParty": {
        "name": "BENEFICIARY NAME",
        "accountNumber": "987654321",
        "postalAddress": {
            "adrLine": [
                "BENEFICIARY ADDRESS LINE 1",
                "BENEFICIARY ADDRESS LINE 2"
            ]
        }
    },
    "transferAmount": 10,
    "transferCurrency": "USD",
    "customData": ""
}
NAMETYPEDESCRIPTION
statusrequiredObjectpaymentStatus
transactionIdoptionalstringThe unique ID number associated with the original payment request.
requestReferenceoptionalstringA reference value for the original request that is useful for traceability and reporting. The ID cannot exceed 35 characters.
sendersReferenceoptionalstringA reference value provided by the sender. For outbound payments, this value is the same as the transaction ID. The ID cannot exceed 32 characters.
receiversReferenceoptionalstringA reference value for the beneficiary. This value cannot exceed 140 characters.
debitAccountNumberoptionalstringDebit account number. This cannot exceed 34 digits.
creditAccountNumberoptionalstringCredit account number. This cannot exceed 34 digits.
valueDateoptionalstringThe date (YYYY-MM-DD) the transfer occurred.
transferAmountoptionalintegerAmount of money to transfer in the correct currency format.
transferCurrencyoptionalstringCurrency code for the transfer amount.
erroroptionalObjectpaymentError
doddFrankoptionalObjectnoYesType
clearingSystemReferenceoptionalstringA reference value for the beneficiary. This value cannot exceed 140 characters.

Response example (200)

copylink
{
    "status": "VALID",
    "transactionId": "XZ23050714000000",
    "requestReference": "testWBB25889710252",
    "sendersReference": "INVC0012345",
    "receiversReference": "INVC0054321",
    "debitAccountNumber": "12345",
    "creditAccountNumber": "987654321",
    "transferAmount": 10,
    "transferCurrency": "USD"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (400)

copylink
{
    "ErrorMessage": "Error received from backend service.",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionId": "US21052400000000",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "ServiceError": {
        "status": "FAILED",
        "transactionId": "rrt-770941720727587-2383364-1",
        "requestReference": "RR-220818-01",
        "sendersReference": "SR-220818-01",
        "valueDate": 1683676800,
        "error": {
            "code": "KEY-1006",
            "title": "Required field missing",
            "description": "The object creditPartyBank is required in the request."
        }
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (401)

copylink
{
    "ErrorMessage": "Error received from backend service.",
    "TransactionId": "rrt-621075741872460927-c-gce-9129-15867185-4",
    "X-CorrelationId": "80457bcb-2c3b-8c55-8cd6-3520c3157e8f",
    "TransactionTime": "2022-04-04T11:41:13.754Z",
    "ServiceError": {
        "status": "ERROR",
        "transactionId": "rrt-621075741872460927",
        "requestReference": "REQUEST-REF-220314.1",
        "sendersReference": "SENDER-REF-220314.1",
        "valueDate": "06-10-2023",
        "error": {
            "code": "KEY-0006",
            "title": "Not authorized for requested service",
            "description": "Check your credentials."
        },
        "doddFrank": "NO"
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (403)

copylink
{
    "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"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (404)

copylink
{
    "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"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (405)

copylink
{
    "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"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (415)

copylink
{
    "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"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (429)

copylink
{
    "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"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (500)

copylink
{
    "ErrorMessage": "Error received from backend service.",
    "TransactionId": "359681587523_SR-RMC-210729-11081",
    "X-CorrelationId": "7ad7fdfb-2ade-a3ab-b97c-523dc5312688",
    "TransactionTime": "2022-04-05T07:59:15.422Z",
    "ServiceError": {
        "status": "ERROR",
        "transactionId": "rrt-621075741872460927",
        "requestReference": "REQUEST-REF-220314.1",
        "sendersReference": "SENDER-REF-220314.1",
        "valueDate": "06-10-2023",
        "error": {
            "code": "KEY-9999",
            "title": "Unknown error",
            "description": "Payment Initiation ServiceException: AUTHENTICATION_FAILURE Unable to logon with the supplied credentials.",
            "detail": {
                "code": "KEY-1005",
                "title": "Error",
                "description": "Additional information about error code."
            }
        },
        "doddFrank": "NO"
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (502)

copylink
{
    "ErrorMessage": "Error received from backend service.",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "ServiceError": {
        "ConnectError": "Connectivity error occurred with the downstream service (unexpected EOF at target). Please check with application support team before resubmitting the request"
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (503)

copylink
{
    "ErrorMessage": "Error received from backend service.",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "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."
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (504)

copylink
{
    "ErrorMessage": "Your request took too long to process. Please try again.",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "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."
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError
NAMETYPEDESCRIPTION
statusrequiredObjectpaymentStatus
transactionIdoptionalstringThe unique ID number associated with the original payment request.
requestReferenceoptionalstringA reference value for the original request that is useful for traceability and reporting. The ID cannot exceed 35 characters.
sendersReferenceoptionalstringA reference value provided by the sender. For outbound payments, this value is the same as the transaction ID. The ID cannot exceed 35 characters.
receiversReferenceoptionalstringThe sender reference value from the original request. This is useful for traceability and reporting.
debitAccountNumberoptionalstringThe sender reference value from the original request. This is useful for traceability and reporting.
creditAccountNumberoptionalstringThe sender reference value from the original request. This is useful for traceability and reporting.
valueDateoptionalstringThe date (YYYY-MM-DD) the transferred occurred.
erroroptionalObjectpaymentError
doddFrankoptionalObjectnoYesType
NAMETYPEDESCRIPTION
ConnectErroroptionalstringAPI connectivity error information, if available.
NAMETYPEDESCRIPTION
requestedServicerequiredstringThe type of payment transaction. The transaction request is valid only for the API products with granted access. Valid values: RTP, WIRE
requestReferencerequiredstringA reference value for the original request that is useful for traceability and reporting. The ID cannot exceed 32 characters.
typerequiredstringFor RTP, the type can show if the transaction is a PAYMENT or a DRAFT. For Wire transfers, the type is always DRAFT.
requestedValueDaterequiredstringDate (YYYY-MM-DD) the transfer will occur.
originatorReferenceoptionalstringAn additional reference value that is meaningful to the party originating the payment.
sendersReferencerequiredstringA reference value provided by the sender. For outbound payments, this value is the same as the transaction ID. The ID cannot exceed 35 characters.
receiversReferenceoptionalstringA reference value for the beneficiary. This value cannot exceed 140 characters.
bankToBankInstructionsoptionalstringArea to share messages or instructions from one bank to another bank. This cannot exceed 140 characters.
ultimateDebitPartyoptionalObjectultParty
debitPartyrequiredObjectparty
debitPartyBankoptionalObjectparty
intermediaryBank1optionalObjectparty
intermediaryBank2optionalObjectparty
intermediaryBank3optionalObjectparty
creditPartyBankrequiredObjectparty
creditPartyrequiredObjectparty
transferAmountrequirednumberAmount of money to transfer in the correct currency format.
transferCurrencyrequiredstringCurrency code for the transfer amount.
externalTemplateNameoptionalstringName of the external template. Text cannot exceed 2048 characters.
customDataoptionalstringThe values for custom data is defined by the client. This free-form text field can contain up to 500 alphanumeric characters. Custom information stays with the transaction through its lifecycle.
NAMETYPEDESCRIPTION
namerequiredstringName of the party. This can be an individual, a financial institution, or a beneficiary. The name cannot exceed 140 characters.
accountNumberoptionalstringAccount number of the party.
abaoptionalstringIf the party is a financial institution, this is the ABA number or routing number. This cannot exceed 9 numbers.
bicoptionalstringThe bank identifier code (BIC) for the party. This is a combination code that identifies the bank, country, location, and possibly the bank branch.
txidoptionalstringThe tax identification number for the party.
foreignBankSystemIdoptionalObjectforeignBankSystemType
adrLineoptionalarrayAn unstructured address line. You can have up to three lines of text that each cannot exceed 70 characters.
NAMETYPEDESCRIPTION
countrequiredstringThe count of records that match the initial query.
limitrequiredintegerThe maximum number of records returned in the response.
offsetrequiredintegerThe number of records skipped before the response is returned.
partiesoptionalObjectparty
NAMETYPEDESCRIPTION
typeoptionalstringThe five-digit global routing code for a foreign financial institution.
idoptionalstringThe identification number associated with the foreign financial institution.
NAMETYPEDESCRIPTION
statusrequiredObjectpaymentStatus
transactionIdoptionalstringThe unique ID number associated with the original payment request.
requestReferenceoptionalstringA reference value for the original request that is useful for traceability and reporting. The ID cannot exceed 35 characters.
sendersReferenceoptionalstringA reference value provided by the sender. For outbound payments, this value is the same as the transaction ID. The ID cannot exceed 32 characters.
receiversReferenceoptionalstringA reference value for the beneficiary. This value cannot exceed 140 characters.
debitAccountNumberoptionalstringDebit account number. This cannot exceed 34 digits.
creditAccountNumberoptionalstringCredit account number. This cannot exceed 34 digits.
valueDateoptionalstringThe date (YYYY-MM-DD) the transfer occurred.
transferAmountoptionalintegerAmount of money to transfer in the correct currency format.
transferCurrencyoptionalstringCurrency code for the transfer amount.
erroroptionalObjectpaymentError
doddFrankoptionalObjectnoYesType
clearingSystemReferenceoptionalstringA reference value for the beneficiary. This value cannot exceed 140 characters.
NAMETYPEDESCRIPTION
paymentStatusoptionalstringThe status of the payment transaction. Valid values: IN_PROCESS, IN_REVIEW, COMPLETED, FAILED, RETURNED, ERROR, VALID
NAMETYPEDESCRIPTION
coderequiredstringStatus code assigned to each error type.
titlerequiredstringBrief title about the error associated with the status code.
descriptionoptionalstringDescription of the error.
codeoptionalstringA static code assigned by the network or payment system.
titleoptionalstringBrief title about the error associated with the status code.
descriptionoptionalstringDescription of the error
NAMETYPEDESCRIPTION
noYesTypeoptionalstringThis field indicates whether the transaction qualifies for Dodd-Frank.
NAMETYPEDESCRIPTION
nameoptionalstringTypically this is the name of the party that instructed the debit party to initiate a payment. This value cannot exceed 140 characters.

When an error occurs, the paymentTransactionResponse object returns with the paymentStatus of ERROR or FAILED. Certain violations report with an HTTP 200 response for issues where the API service successfully receives the request, but it encounters errors. KeyBank may include additional information about the error in API-specific error messages.

For more information about errors, see Error handling.

API-specific KeyBank error codes and details are in the error object of the response payload. Issues signify a failed payment that could have been caused by account restrictions, network timeout, or invalid data in the request.

CODEMESSAGE
KEY-0001Not authorized
KEY-0002Not authorized for requested action
KEY-0003Request exceeds authorized limit
KEY-0004Unauthorized for account
KEY-0005Internal use only fields
KEY-0006Not authorized for requested service
KEY-1000Transformation Error
KEY-1001Invalid Data
KEY-1002Invalid Bank Identifier
KEY-1003Invalid or unknown template
KEY-1004Invalid account
KEY-1005Invalid Currency
KEY-1006Required field missing
KEY-1007Transaction Not Found
KEY-1008Insufficient Funds
KEY-1009Account has restrictions
KEY-1010Duplicate Request
KEY-1011Payor Account Restrictions
KEY-1012Payee Account Restrictions
KEY-3001Exceeds transaction limit for RTP transactions
KEY-3002Field not usable for RTP transactions
KEY-3003Payment network timeout. Please retry.
KEY-3004Payment rejected by payment network
KEY-9997Failed payment review
KEY-9998Payment failed during processing
KEY-9999Unknown error

 

API-specific error example

paymentTransactionResponse:
  { 
      "status": "FAILED", 
      "requestReference": "RR-999999-01", 
      "sendersReference": "SR-999999-01", 
      "error": { 
          "code": "KEY-1002", 
          "title": "Invalid Bank Identifier", 
          "description": "Credit Party Bank must be a valid USRTP Participant" 
      } 
  }
ReleaseAPI versionChange descriptionImpact
August 20241.2.4
  • Added clarification to type parameter. For RTP the type can be PAYMENT or DRAFT. For wire transfers, the type will always be DRAFT.
MID
May 20241.2.3
  • KeyClientId is required for all endpoints, including GET calls.
MID
March 20241.2.1
  • Added 'IN_REVIEW' as a valid value for status in the paymentStatus object.
  • Added new parameters to paymentTransactionRequestV1:
    • bankToBankInstructions
    • debitPartyInstructions
    • intermediaryBank1
    • intermediaryBank2
    • intermediaryBank3
    • externalTemplateName
  • Added the clearingSystemReference in the paymentTransactionResponse object.
  • Added the following parameter to serviceErrorData:
    • receiversReference
    • debitAccountNumber
    • creditAccountNumber
  • Changed min/max limits for the following parameters:
    • requestReference and sendersReference changed from maxLength 35 to 32 with a minLength of 1.
    • Added parameter limits for originatorReference with a minLength of 1 and a maxLength of 35.
    • Added parameter limit for transferAmount with a maximum of 18 digits (which is like quintillion).
    • Added parameter limit for accountNumber in the party to a minLength of 1.
    • Added parameter limit for aba to a maxLength of 9 digits.
    • Added parameter limit for debitAccountNumber to a maxLength 34 characters.
HIGH
September 20231.1.5
  • Parameter description updates. This change is for technical content only. The code and operations of the API remain the same.
  •  Clarified the transactionId for RTP payments is the clearing system reference number.
LOW
December 20221.1.3
  • Released on the Developer Portal.
 

Impact levels

  • LOW: This is a minor change or enhancement that does not alter the operations of the API. Upgrading to the latest specifications is preferable but not required.
  • MID: The previous API version is valid and operates, but does not contain latest enhancements. You need to update your specifications to get these enhancements.
  • HIGH: The previous API version is no longer operable. You must upgrade to the latest specifications to access and use this API product.

YAML file download

Pagination

clock 3-minute read calender Rel. 4.0.0 | updated Nov. 12, 2024

It's a real page-turner

Pagination keeps data manageable by breaking it into chunks, so systems handle large data requests without slowing down.

 

Common pagination controls

Row pagination

There are common pagination parameters like startRowIndex and endRowIndex that help retrieve and organize large data sets into separate, scrollable pages. This is commonly used with information reporting and transaction inquiry APIs. These are optional fields and not required for the request.

  • The startRowIndex query string parameter sets the first row of data of the response. The default value is 1.
  • The endRowIndex query string parameter sets the final row of data of the response. The default value is 1000 records and is also the maximum number of records allowed in a single transaction.
  • If the startRowIndex or endRowIndex parameters are blank, all the rows of data return up to the maximum limit of the endRowIndex value for transaction records.
  • In the response header of the API, an endpoint may return totalRows or retrievedRows. These parameters provide a summary of the total number of transactions that match the request criteria or were retrieved based on the request criteria.

Example

This is an example of a request with general pagination parameters applied in the query string for the Previous Day API:

POST /ddaReports/accounts/v1/transactions/list?startRowIndex=1&endRowIndex=20

In this example, the startRowIndex is 5 so the first row of data is the fifth row, skipping the first four rows of data. The endRowIndex is 20 so that there is only 20 records per page following the fifth row.

Offset pagination

The offset pagination parameters are limit and offset. These parameters tell the server how many records to search for at a time and what records to skip. This parameter is not reliant on the sort controls and is not a recommended parameter for very large sets of data. Offset pagination is available with the RTP Send Payment API and is required for the RTP list of participants endpoint.

  • The limit is a query string parameter field that tells the server what items to return during a search. The limit restricts how many rows are returned. There is no maximum limit to this parameter.
  • The offset is a query string parameter field that specifies which set of rows to return. You can use this field to set the starting row for the data that is returned, and control what rows of data to skip. The default value is zero (0).
  • Be cautious when you use these parameters because if the data set changes it can affect the result and may return an incorrect response.

Example

This is a request example with the offset pagination parameters applied in the query string for the RTP Send Payment API:

GET /rtp/v1/payment/rtp/participant?limit=15&offset=0

In this example, the offset is 0 so that no items are skipped, and the limit is 15 meaning the request will search 15 items at a time.

Page size

You can control how many pages and records are returned with page request parameters like pageSize and pageNumber

  • The pageNumber is a query string parameter the tells which page to start with the returned response set. Typically, this number is set to 1 at first until you get familiar with record sets based on common queries. 
  • The pageSize is a query string parameter defines the total number of pages to return. This number must 1 or greater and cannot exceed 1000.

Example

This is a request example with the page size parameters applied in the query string for the ACH Inquiry API:

POST /accounts/transactions/v1/ach/list?pageNumber=1&pageSize=50

In this example, the pageNumber is 1 returning the first page of the result set and the pageSize is 50 meaning that only 50 pages from page 1 are returned.  

APIMETHODENDPOINTPAGINATION PARAMETER
ACH OriginationPOST/ach/payments/v1/status/addendapageSize
ACH InquiryPOST/accounts/transactions/v1/ach/list

pageNumber

pageSize

Wire InquiryPOST/wireInquiry/v1/transactions/details

startRowIndex

endRowIndex

RTP Send PaymentGET/rtp/v1/payment/rtp/participant

limit

offset

RTP InquiryPOST/rtp/v1/transactions/list

pageNumber

pageSize

Previous DayPOST/ddaReports/accounts/v1/transactions/list

startRowIndex

endRowIndex

IntradayPOST/ddaReports/accounts/v1/transactions/intraday/list

startRowIndex

endRowIndex

Data values

clock 8-minute read calender 4.0.0 | updated Nov. 20, 2024

Decrypting and decoding API parameters

There are fields present across KeyBank APIs, in both request and response objects, that have predefined values. Some of these values are specific to KeyBank and others are industry-standard values. The purpose of this page is to catalog as many of these data values as possible and provide definitions for their usage within our APIs.

Each data value definition contains a brief description, the specific fields and APIs where the data value can be found, and a tabular listing of possible values and what these values mean.

Data valuesField namesApplicable APIsDescription
Addenda type codesaddendaTypeCode
  • ACH Origination
  • ACH Inquiry
A two-digit code that defines the specific interpretation and format for the addenda information contained in the addenda record.
BAI codesbaiCode, amountTypeCode, derivedBaiCode,transactionCodeBAI2
  • ACH Inquiry
  • Intraday Reporting
  • Previous Day Reporting
A BAI (Bank Administration Institute) code is a three-digit code identifying a banking transaction and are divided into balance codes and transaction codes.
Change codeschangeCode, nocChangeCode
  • ACH Inquiry
  • Webhooks (ACH alerts)
In the case of a Notification of Change (NOC), this is a three-character code beginning with the letter 'C' that indicates the information being changed.
Foreign bank type codesforeignBankSystemType
  • Wire Transfer
  • RTP Send Payment
Five-character global routing/clearing codes for payments in foreign countries.
Pay subtype codespaySubType
  • Wire Inquiry
A four-digit code that corresponds to a particular wire drawdown scenario.
Return reason codesreturnReasonCode, retReturnReasonCode
  • ACH Inquiry
  • Webhooks (ACH alerts)
In the case of a returned ACH payment, this is a three-character code beginning with the letter 'R' that identify a reason an ACH payment was returned.
Transaction codestransactionCode, retTranCode, tranCode
  • ACH Inquiry
  • ACH Origination,
  • Intraday Reporting
  • Webhooks (ACH alerts)
A two-digit code identifying various types of debit and credit entries.
Wire and RTP webhook statusestranBusnStatusCode 
  • Webhooks (Wire/RTP alerts)
The intermittent or final status for Wire and RTP webhook alerts. 

Addenda type codes

A two-digit code that defines the specific interpretation and format for the addenda information contained in the addenda record.

Addenda type codes can be found in the following fields:

CodeDescription
02Point of Sale Entry (POS), Shared Network Transaction (SHR), or Machine Transfer Entry (MTE)
05Corporate Credit or Debit (CCD), Customer Initiated Entries (CIE), Corporate Trade Exchange (CTX), Prearranged Payment and Deposit (PPD), Internet Initiated/Mobile Entries (WEB)
10-161st-7th addenda records for International ACH Transaction (IAT)
17IAT Remittance Information addenda record
18IAT Foreign Correspondent Bank addenda record
98Used for Notification of Change (NOC) entries
99Used for Return entries

A BAI (Bank Administration Institute) code is a three-digit code identifying a banking transaction and are divided into balance codes and transaction codes.

BAI codes can be found in the following fields:

Balance codes

CodeDescription
010Opening Ledger
015Closing Ledger
040Opening Available
045Closing Available
072One Day Float
074Two or More Day Float
100Total Credits
109Current Day Total Lockbox Deposits
111Lockbox Deposit - Zero Day Float
112Lockbox Deposit - One Day Float
113Lockbox Deposit - Two Day Float
115Lockbox Deposit
140Total ACH Credits
190Total Incoming Money Transfers
400Total Debits
450Total ACH Debits
490Total Outgoing Money Transfers
580Total Controlled Disbursement Debits
584Total Disbursements Late Amount
585Disbursing Funding Requirement
602Total CDA Adjustments

Transaction codes

CodeDescription
158Real Time Payment Credit
165Pre-authorized ACH Credit
171Individual Loan Deposit
172Deposit Correction
195Incoming Money Transfer
201Individual Automatic Transfer Credit
206Book Transfer Credit
213Letter of Credit
214Foreign Exchange Credit
229Miscellaneous International Credit
237Individual Collection Credit
238Collection of Dividends
244Interest / Matured Principle Payment
252Debit Reversal
258ACH Reversal Credit
275ZBA Credit
295ATM Credit
301Commercial Deposit
306Fed Funds Sold
351Individual Investment Sold
354Interest Credit
357Credit Adjustment
359Interest Adjustment Credit
395Check Reversal
398Miscellaneous Fee Refund
399Miscellaneous Credit
451ACH Debit Received
455Pre-authorized ACH Debit
458Real Time Payment Debit
475Check Paid
481Individual Loan Payment
495Outgoing Money Transfer
501Individual Automatic Transfer Debit
506Book Transfer Debit
512Letter of Credit Debit
513Letter of Credit
514Foreign Exchange Debit
529Miscellaneous International Debit
544Interest / Matured Principle Payment
552Credit Reversal
555Deposited Item Returned
558ACH Reversal Debit
564Overdraft Fee
567Return Item Fee
575ZBA Debit
595ATM Debit
627Fed Funds Purchased
631Debit Adjustment
651Individual Investment Purchased
654Interest Debit
659Interest Adjustment Debit
661Account Analysis Fee
666Currency and Coin Shipped
690Miscellaneous Debit
694Deposit Reversal
695Deposit Correction Debit
698Miscellaneous Fees
699Miscellaneous Debit
760Commercial Loan Debit

In the case of a Notification of Change (NOC), this is a three-character code beginning with the letter 'C' that indicates the information being changed.

Change codes can be found in the following fields:

CodeDescription
C01Incorrect bank account number
C02Incorrect transit/routing number
C03Incorrect transit/routing number and bank account number
C04Bank account name change
C05Incorrect transaction code
C06Incorrect bank account number and transaction code
C07Incorrect transit/routing number, bank account number, and transaction code
C08Incorrect Receiving DFI Identification (IAT only)
C09Incorrect individual identification
C10Incorrect company name
C11Incorrect company identification
C12Incorrect company name and identification
C13Addenda format error

Five-character global routing/clearing codes for payments in foreign countries.

Foreign bank type codes can be found in the following field:

CodeDescription
ATBLZAustria
AUBSBAustralia
CACPACanada
CHSICSwitzerland
DEBLZGermany
ESNCCSpain
GBDSCGreat Britain
HKNCCHong Kong
IENCCIreland
INFSCIndia
ITNCCItaly
NZNCCNew Zealand
PTNCCPortugal
USABAUS FedWire
ZANCCSouth Africa

Pay subtype codes

A four-digit code that corresponds to a particular wire drawdown scenario.

Pay subtype codes can be found in the following field:

CodeDescription
1031Request for customer drawdown
1032Transfer honoring customer drawdown request
1033Refusal of customer drawdown request
1631Request for bank-to-bank drawdown
1632Transfer honoring bank-to-bank drawdown request
1633Refusal of bank-to-bank drawdown request

In the case of a returned ACH payment, this is a three-character code beginning with the letter 'R' that identify a reason an ACH payment was returned.

Return reason codes can be found in the following fields:

CodeDescription
R01Insufficient funds - The available and/or cash reserve balance is not sufficient to cover the dollar value of the debit entry.
R02Account closed – A previously active account has been closed by action of the customer or the RDFI.
R03No account/unable to locate account – The account number structure is valid and it passes the check digit validation, but the account number does not correspond to the individual identified in the entry, or the account number designated is not an existing account.
R04Invalid account number structure – The account number structure is not valid.
R05Unauthorized debit to consumer account using corporate SEC code – CCD or CTX debit entry was transmitted to a Consumer Account of the receiver and was not authorized by the receiver.
R06Returned per ODFI’s request – The ODFI has requested that the RDFI return an erroneous entry.
R07Authorization revoked by customer – The RDFI’s customer (the receiver) revoked the authorization previously provided to the originator for this debit entry.
R08Payment stopped – The receiver has placed a stop payment order on this debit entry.
R09Uncollected funds – A sufficient ledger balance exists to satisfy the dollar value of the transaction, but the available balance is below the dollar value of the debit entry.
R10Customer advises unauthorized, improper, ineligible, or part of an incomplete transaction – The RDFI has been notified by the receiver that the entry is unauthorized, improper, ineligible, or part of an Incomplete Transaction.

A two-digit code identifying various types of debit and credit entries.

Transaction codes can be found in the following fields:

DDA credits

CodeDescription
20Reserved
21Return or Notification of Change for original transaction code 22, 23, or 24
22Demand credit (checking deposit)
23Prenotification for a demand credit; death notification (non-dollar); automated enrollment entry (non-dollar)
24Zero dollar with remittance data (for CCD, CTX, and IAT entries); acknowledgement entries (ACK and ATX entries)

DDA debits

CodeDescription
25Reserved
26Return or Notification of Change for original transaction code 27, 28, or 29
27Demand debit (checking withdrawal)
28Prenotification for a demand debit (non-dollar)
29Zero dollar with remittance data (for CCD, CTX, and IAT entries)

Savings credits

CodeDescription
30Reserved
31Return or Notification of Change for original transaction code 32, 33, or 34
32Savings credit (savings deposit)
33Prenotification for a savings credit; death notification (non-dollar); automated enrollment entry (non-dollar)
34Zero dollar with remittance data (for CCD, CTX, and IAT entries); acknowledgement entries (ACK and ATX entries)

Savings debits

CodeDescription
35Reserved
36Return or Notification of Change for original transaction code 37, 38, or 39
37Savings debit (savings withdrawal)
38Prenotification for a savings debit (non-dollar)
39Zero dollar with remittance data (for CCD, CTX, and IAT entries)

Loan credits

CodeDescription
51Return or Notification of Change for original transaction code 52, 53, or 54
52Loan account credit
53Prenotification for a loan account credit
54Zero dollar with remittance data (for CCD, CTX, and IAT entries)

Loan debits

CodeDescription
55Loan account debit (reversals only)
56Return or Notification of Change for original transaction code 55

Review the tranBusnStatusCode in the alertBody object. The status value identifies the payment event in an intermittent (payment under processing), final (completed payment processed), and success (payment successfully completed) status.

StatusDescriptionInterim StatusFinal StatusSuccess
Pre QualifyingPayment is being evaluated for errors by the Network.X  
Funds ReleasePayment is waiting for OLDS memo post response.X  
PaymentNotificationPayment stopped pending manual release for various reasons.X  
RepairPayment needs correction before it continues processing.X  
Duplicate ContentPayment matches criteria of another payment. Requires action to process further.X  
Regulatory FilterPayment is waiting for response from Fraud or OFAC check.X  
ClearingPayment is waiting for a response from the Payment Network.X  
Product SelectionEPP determines the product for the payment that drives which steps in the workflow will execute.X  
Limit checkChecks EPP for any applicable account or customer limits.X  
AdvisingMost of our customer advising is done outside of EPP, but this could be performing payment network advising of some sort as well.X  
PricingBilling codes and/or network channel fees are applied to the paymentX  
Held Requiring CoverThis payment requires an Operator to clear it out of the Direct and Cover Matching-in Payment Intervention.X  
Internal FilterScans EPP filters for alternate or special processing of the paymentX  
Future WarehouseThe payment is moved to a future business date because it missed the payment network cutoff time. When that future business date arrives and the payment network opens for business, the payment will re-enter the workflow to ultimately reach a FINAL status.X  
CancelledPayment was cancelled. X 
ReturnedPayment was returned by receiving bank. X 
FatalA serious error has occurred. Payment will not complete workflow. X 
RejectedPayment was rejected by Network. Payment will not complete workflow. X 
Future Warehouse CancelledPayment was cancelled from Future Warehouse Queue. X 
AbandonedPayment was manually forced to not complete in EPP. X 
CompletedPayment processed successfully through workflow.  X

Release notes

clock 3-minute read calender V1.0 | updated Nov. 19, 2024

Summary notes about past and current changes to our portal

The developer portal release notes are organized by the month and year of the release, starting with the most current. We also identify the affected APIs and the level of impact for the changes made. This is a quick cue to know if you need to make any necessary changes immediately or if you can integrate the API enhancements at your own pace.

We categorize changes as either breaking or non-breaking.

  • Breaking changes require upgrading to a new version of the API framework. These changes can cause incompatibility and possibly disrupt your connection to API services. Some examples of breaking changes are a change to the type of a parameter, removing request fields, or developing an existing object with additional parameters.
  • Non-breaking changes are changes that do not require you to upgrade to a new version or disrupt your connection to current API services. Some examples of a non-breaking change are to add an optional parameter field like a custom data field or removing a deprecating parameter no longer valid or in use.

Levels of impact

Impact levelDescription
Low
  • Non-breaking changes
  • Small change requests to improve content like to better define a term or provide an example for added clarity.
Mid
  • May include breaking changes like adding or removing an API parameter.
  • Code or configuration enhancement to an API in Production.
High
  • Breaking changes and/or a hot fix.
  • New product being released.

Developer Portal Release 4.0.0

  • New API on the Developer Portal! Check out the RTP Inquiry API to search for a list or details about RTP transactions.
  • Read about our simulated environment with the API Simulator User Guide. Go to this page to download our simulator specifications.
  • Each API document page now has a changelog that acts as a revision history for the API specifications. 
  • Webhooks onboarding and subscription process has been modified to reduce onboarding time. Look at the latest requirements and subscription tips. 
Affected APIImpact
RTP InquiryHIGH
Check Image RetrievalLOW
WebhooksLOW

Developer Portal Release 3.1.2

  • Improved Account Validation User Guide to be more direct in the steps to make a request and assess a response.
  • In the Account Validation API, updated the parameters:
    • The amount in the request can only be a whole number. No cents. Make sense?
    • Updated the request field parameters to better clarify the valid and acceptable values and conditions.
  • Updated the ACH APIs User Guide for the undo a transaction section. You can attempt to reverse a payment using ACH Direct.
  • For ACH Origination API, the companyEntryDescription is now a required field each SEC payment call.
  • For ACH Inquiry, transaction data can be recalled within 180 days of the current date.
  • Added DFID  to the Glossary and enhanced parameter definitions for terms related to DFID in the ACH Origination API.

Developer Portal Release 3.1.1

  • Account signup and waitlist are currently on hold. When our portal is ready for user account management and an integrated sandbox environment, we will introduce account sign up and login. If you are interested in using an Embedded Banking API product, please go to the EB Payments Advisor Contact Form.
  • For ACH Origination API, changed the effective date range for ACH payments from 90 days to 31 days.
  • Enhanced error message in Webhook specifications. Retry mechanism is only triggered by HTTP 500 type error messages. Individual issue resolution is required for HTTP 400 type error messages. This is a content only change.
  • Added Terms of Services for the KeyBank API Developer Portal. This link is accessible on each page's footer. 
Affected APIImpact
ACH OriginationLOW
WebhooksLOW

Developer Portal Release 3.1.0

  • Introduction of the Account Validation API v2. Includes enhancements to the Account Validation API User Guide that includes information about version 2 of the API with greater clarity about significant parameters that can help improve your validation process.
  • Webhooks ACH alerts have been simplified. Alert codes AL00902, AL00903, AL00904, AL00905 have been consolidated into a single and new code AL00906.
  • To help clarify the alert codes for Wire and RTP webhook alerts, we added an extended status table to the Data Values page that includes intermittent statuses.
  • Change the name of the Wire Origination API to its more common name, Wire Transfer.
  • In the RTP Send Payment API, added clarification to the type field that for RTP the type can be PAYMENT or DRAFT and for wire transfers, the type will always be DRAFT. 
  • Minor modifications to our Stop Payment API technical content. 


Developer Portal Release 2.5.0

  • X-CorrelationId has been removed as a request header field for all endpoints in each API product. The parameter is no longer in the request body, but still remains in the code. The system assigns a unique ID when you submit a request and returns the X-CorrelationId value in the response.
  • Changed the effectiveDate range for ACH payments from 90 days to 31 days.
  • In the ACH Inquiry API, added two new endpoints. These endpoints will eventually replace the other status queries in the upcoming v2 of the API.
    • /accounts/transactions/v1/ach/details/{parNumber}
    • /accounts/transaction/v1/ach/list
  • In the Wire Origination API and the RTP Send Payment API, the KeyClientId is required for all requests.
  • Added new parameters to the Wire Inquiry API.
  • KeyVAM introduction on the dev portal home page and an summary guide on KeyVAM with links to learn more.
  • Date range for Previous Day calls cannot be more than 90 days.
  • Minor modifications to our Check Image API technical content. 
  • API Simulator product is now available for ACH API products endpoints (ACH Origination and ACH Inquiry). Speak to your Payments Advisor to learn more.


Developer Portal Release 2.4.0

  • Introducing the Account Validation User Guide, a helpful resource to get more familiar with our Account Validation API product.
  • Release notes are now available on the portal.
  • Added Wire/RTP alerts to the Data Values page.
  • Remove X-Point parameter from ACH Origination request headers.
  • Minor modifications to our Intraday API technical content. 
  • Two updates to the Webhooks for the Wire and RTP alert notifications,:
    • Added dbTranCurrencyCode and dbAngTypeCode to the alert body.
    • Added the requestReferenceNumber to the alert body. If the requestReference field has a value, it will be included in the alert.
Affected APIImpact
ACH OriginationLOW
IntradayLOW
WebhooksMID


Developer Portal Release 2.3.0

  • Added new fields the RTP Send Payment and Wire Origination APIs.  Some fields had conditions (like format or character limits) modified for requests. Go to the API document to view specific changes about the fields added, which additional fields are now marked as required, setting minimum and maximum limits, and adding value pattern information. 
  • Intraday addenda report for collected ACH transactions has been updated to match the ACH Memo Post.
  • Removed format restrictions for the channelCode field in the Wire Inquiry API.
  • Minor modifications to our Previous Day API technical content. 
  • Getting Started User Guide talks about the onboarding process and how to access our API products. 
  • Improved the layout of the API reference pages to simplify information and help you get you to stuff you really want to know. 
  • Expand our Resources section to talk about Custom Data, Pagination, and Error Handling.
  • User feedback is now available on the dev portal! 
  • Glossary banner is looking cool with a search bar and navigational directory.


Developer Portal Release 2.2.0

  • Launched our new landing page and have divided our documentation into three sections: Guides, API Reference, and Resources. 
    • The Guides section includes our first user guide: ACH APIs User Guide
    • The new Resources section contains descriptions and details of data values found within our APIs.
    • We now have a glossary of common terms. 
  • The mdmId has officially deprecated. This affects ACH Inquiry, Wire Inquiry, Previous Day, and Intraday.
  • New fields added to the Wire Inquiry API
  • In the ACH Inquiry API, the "POSTED" status has been removed from ACH status inquiry endpoint.
  • Minor modifications to our Webhooks technical content. 
  • Other updates include custom data clarifications, updated API error messaging, and improved navigation. These changes affect technical content only. The code and operations of the APIs remain the same. 
Affected APIImpact
ACH InquiryHIGH
Wire InquiryHIGH
Previous DayHIGH
IntradayHIGH
WebhooksLOW


Developer Portal Release 2.1.0



Developer Portal Release 2.0.1

  • New API on the Developer Portal! We introduce our Webhooks specifications for ACH, Wire, and RTP transactions.
  • In ACH Inquiry, you can recall transaction activity up to 24 months in the past.
  • Our API consumers can now utilize the Wire and RTP transaction amounts for reconciliation and other business purposes when making an inquiry with the Intraday Information Reporting API. Each addenda object now includes a the transactionAmount field.
  • Deprecated unused objects in Previous Day API.
Affected APIImpact
ACH Inquiry LOW
Previous DayLOW
IntradayMID
WebhooksHIGH


Developer Portal Release 2.0.0

  • New API on the Developer Portal! We introduce the Wire Origination API. This API transfers and processes large payments swiftly and securely.
  • We’ve set a 5 TPS throttling threshold for all our APIs. If you think you might exceed this threshold, please reach out to your KeyBank representative to talk about adjusting it.
  • MDM ID (mdmId) is no longer a required parameter for ACH Inquiry, Wire Inquiry, Previous Day, and Intraday Reporting. It’s now optional.
  • Added new parameters to Wire Inquiry.


Developer Portal Release 1.2.3

Hot fix for the ACH Origination API to require companyEntryDescription for each of the SEC payment endpoints. This field returns in the ACH status response payload.

Developer Portal Release 1.2.0

  • New API on the Developer Portal! We introduce the Account Validation API. This API validates a payee’s account to ensure a safe and secure transaction before authorizing payment.
  • Added customData to the ACH Inquiry API. With custom data, you can enter up to 500 alphanumeric characters to create a custom message or data set to associate with the item.
  • Modified date parameters in Wire Inquiry
  • Deprecated unused parameters from the Previous Day and Intraday APIs.


Developer Portal Release 1.1.0

Hello world! The KeyBank API Developer Portal is live!

 


Webhooks

clock 6-minute read calender 2.2.0 | updated Nov. 12, 2024

Timely and automated payment status notifications

KeyBank’s payment webhooks provide timely and automated payment status notifications without the need for constant API polling or manual checks.

We currently facilitate alerts for both ACH and wire transaction status changes. You get near real-time updates whenever a specific payment event occurs, like a posted ACH transaction or a completed wire transfer.

Requirements

To subscribe to webhook alert notifications for ACH, Wire, or RTP transactions, you must be a commercial customer or fintech partner of KeyBank. Only authorized API consumers can subscribe to this feature.  

  • For existing clients, reach out to your Payments Advisor to start the subscription process.
  • For new clients, you will first need to onboard with KeyBank (see our Getting Started Guide for the basic process). In addition, you will be asked to provide a few more details like:
    • Type of alert subscription (see alert codes)
    • A decision if the pre-production and production subscriptions accounts will be the same or different
    • Expected volumes per day/month/year

KeyBank recommends that destination application always have authentication. To reduce setup time for webhook subscriptions while maintaining system integrity and security, we recommend these guidelines:

  1. Use Basic Authentication (BasicAuth) which involves providing KeyBank with a unique username and password for your application. 
  2. KeyBank will send a Base64 encoded version of the credential to Authorization header of your HTTP request. 
  3. Connect securely with a TLS connection for an encrypted, safe exchange of data. 

If you have a specialized needs or circumstances that require secure alternatives rather than BasicAuth, speak with your KeyBank Payment Advisor. This may extend setup time. 

Got you hooked?

Check out some more content about our webhooks:


Alert notifications are triggered by specific payment status events and are sent in the form of an HTTP POST request. KeyBank can send up to 100 alerts per API call. After receiving an alert notification, KeyBank expects you to send an HTTP 2XX status code in response within 10 seconds and the response needs to adhere to KeyBank's format for an alert response.

Each payment webhook alert notification has an alertNotification object that is made up of two parts:

  • alertHeader: The header information gives you basic information about the request like date and time sent, the alert code, and a unique notification identifier.
  • alertBody: The body information contains transaction details. Each of the fields will be present in the request even if there is no data retrieved for a particular field. Fields that have no data show the null value.

Both the alertHeader and alertBody can vary by event type, ACH or Wire/RTP. The alertHeader for Wire/RTP notification contains the payType field that specifies if is a wire or RTP alert while the ACH alert header does not have this field. The alertBody fields are also different based on each event type as defined by the alert code.

Each alert notification contains the alert code for the payment status event that occurred. There is an alert code for Wire/RTP and ACH to monitor all payment status events related to that transaction type.

Alert code types
  • Wire/RTP alert code = AL00901
  • ACH alert code = AL00906

Note, with a latest specification update, all ACH payment events are now managed with alert code AL00906. This one code consolidates the legacy ACH alert codes: AL00902 (ACH Collected), AL00903 (ACH Posted), AL00904 (ACH Returned), AL00905 (ACH Notification of Change). 

Before you begin

All KeyBank APIs require certificates, user credentials, and certain permissions. Check out our Getting Started Guide to learn more.


HEADER FIELDTYPEDESCRIPTION
alertSentDateAndTimestringDate and time the alert was sent. Format: (YYYY-MM-DD)T(HH:MM:SS)Z
alertCodestringAlert code. Valid values: AL00906
eapAlertGUIDstringUnique alert notification identifier.
BODY FIELDTYPEDESCRIPTION
transactionStatusstringThe status of the ACH transaction. Valid values: COLLECTED, RETURNED, SETTLED
traceNumberstringThe unique number for the transaction provided by the originator.
parNumberstringThe unique PAR number assigned to the the transaction by the ACH product processor.
transactionAmountnumberThe dollar amount of the transaction.
collectionDatestringDate the transaction was processed. Format: YYYY-MM-DD
settlementDatestringThe date the transaction settlement occurred. Format: YYYY-MM-DD
transactionCodestringTwo-digit code identifying the account type at the receiving financial institution.
transactionDescriptionstringDescription about the purpose of the transaction.
authorizedCustomerNamestringAuthorized customer name
standardEntryClassCodestringThree-digit Standard Entry Class (SEC) code based on Nacha rules. Valid values: CCD, CTX, PPD, TEL, WEB
receivingAccountNumberstringAccount number of the person or institution receiving the funds. 
receivingCustomerIdentificationNumberstringThe customer identification number for the person receiving the transaction.
receivingCompanyNamestringCompany name of the institution getting the funds. 
originatingAccountNumberstringAccount number of the ACH transaction originator.
originatingCustomerIdentificationNumberstringOriginating customer identification number
returnReasonCodestringThe code associated with the reason for returning the ACH transaction. The code is the letter 'R' for reason followed by a two-digit numeric code. Format: R00
returnReasonDescriptionstringDescription as to why the ACH transaction is returned.
returnDatestringDate of the returned transaction to the ACH system. Format: YYYY-MM-DD
notificationOfChangeAddendaCountstringCount of change notifications for addenda records.
internationalAddendaCountstringCount of international addenda records.
addendaCountstringCount of addenda records.

Request example (ACH)

{
"alertNotificationRequest": [  
	{  
	"alertNotification": {
	  "alertHeader": {
		"alertSentDateAndTime": "2024-07-07T16:25:08Z",
		"alertCode": "AL00906",
		"eapAlertGUID": "4g0fda4b-156f-483c-98ae-bd8ccab266h0"
		},
	"alertBody": {
		"transactionStatus": "COLLECTED",
		"traceNumber": "41033956478656",
		"parNumber": "22010008879477",
		"transactionAmount": "287.40",
		"collectionDate": "2024-01-12",
		"settlementDate": "2024-01-12",
		"transactionCode": "22",
		"transactionDescription": "PAYMENT",
		"authorizedCustomerName": "HIGHMARK INC.",
		"standardEntryClassCode": "CCD",
		"receivingAccountNumber": "00000000001000004133",
		"receivingCustomerIdentificationNumber": "65A658990",
		"receivingCompanyName": "LEHIGH GASTROENTEROLOG",
		"originatingAccountNumber": "00000000001000005244",
		"originatingCustomerIdentificationNumber": "7498659450",
		"originatingCompanyName": "HIGHMARK INC.",
		"returnReasonCode": "R29",
		"returnReasonDescription": "Corporate Customer Advises Not Authorized",
		"returnDate": "2024-01-03",
		"notificationOfChangeAddendaCount": "1",
		"internationalAddendaCount": "0",
		"addendaCount": "0"
		}
	  }
	}
  ]
}

The Wire/RTP alertBody identifies the status of the payment event in the tranBusnStatusCode field. 

The Wire and RTP statuses listed show the final status values. You may get an intermittent status that is not list in this table. Go to Data values > Wire and RTP webhook statuses to view the full list.

STATUSDESCRIPTION
AbandonedPayment is manually forced to not complete payment processing. Payment will not complete workflow.
CancelledPayment was cancelled. Payment will not complete workflow.
CompletedPayment processed successfully and completes the workflow.
FatalA serious error has occurred. Payment will not complete workflow.
Future Warehouse CancelledPayment was cancelled from Future Warehouse queue. Payments enter the Future Warehouse queue if the payment missed the payment network cutoff time and moves to a future business date. When the future business date arrives, the payment network re-enters the payment in the workflow to reach Future Warehouse Cancelled.
RejectedPayment was rejected by the network. Payment will not complete workflow.
ReturnedPayment was returned by receiving bank.
HEADER FIELDTYPEDESCRIPTION
alertSentDateAndTimestringDate and time the alert was sent. Format: (YYYY-MM-DD)T(HH:MM:SS)Z
alertCodestringAlert code. Valid values: AL00901
payTypestringIdentifies if the payment type was a Wire or RTP transaction. Valid values: WIRE, RTP
eapAlertGUIDstringUnique alert notification identifier.
BODY FIELDTYPEDESCRIPTION
crOrDbCodestringIdentifies the transaction type as credit or debit. Valid values: C (credit), D (debit)
crArngNumstringAccount number of the credit account.
crArngTypeCodestringType code of the credit account.
crArngBankNumstringBank number of the credit account.
crTranCurrencyCodestringTransaction currency code of the credit account.
dbArngTypeCodestringType code of the debit account
dbTranCurrencyCodestringTransaction currency code of the debit account.
requestReferenceNumberstringUnique identification number for an originating wire or RTP transaction. This number is limited to 32 characters.
crIpIdstringCustomer number associated with the credit account.
crIpNmstringCustomer name associated with the credit account.
dbArngNumstringAccount number of the debit account.
dbArngBankNumstringBank number of the debit account.
dbIpIdstringCustomer number associated with the debit account.
dbIpINmstringCustomer name associated with the debit account.
payNotifyTsstringTimestamp of the payment event.
wireEventNmstringPayment status code
tranAmtstringDollar amount of the transaction.
tranExecutedDtstringDate the transaction is executed. Format: YYYYMMDD
federalReferNumstringFederal reference number
sndngBankReferNumstringReference number attached to a wire, issued by the sending bank.
tranIdstringUnique transaction identifier
tranBusnStatusCodestringTransaction business status code
wireDirectionCodestringIndicates the direction of the transaction.
tranTypestringType of transaction.
tranValueTypeCodestringIdentifies the value of a transaction.
wireProcessTypeCodestringWire processing type code
benefitAbastringABA routing number of the beneficiary.
benefitArngNumstringAccount number of the beneficiary.
benefitIpAddrLinestringAddress lines 1-7 (array) of the beneficiary.
benefitBicCodestringBIC number of the beneficiary.
benefitBankAbaNumstringABA routing number of the beneficiary's bank.
benefitBankArngNumstringAccount number of the beneficiary's bank.
benefirBankAddrLinestringAddress lines 1-7 (array) of the beneficiary's bank.
benefitBankBicCodestringBIC number of the beneficiary's bank.
benefitBankNmstringName of the beneficiary's bank.
intrmdryBankAbaNum1stringABA routing number of the intermediary bank 1.
intrmdryBNankAddrLine1stringAddress lines 1-7 (array) of the intermediary bank 1.
intrmdryBankNm1stringName of the intermediary bank 1.
intrmdryBicCode1stringBIC number of the intermediary bank 1.
intrmdryBankAbaNum2stringABA routing number of the intermediary bank 2.
intramdryBankAddrLine2stringAddress lines 1-7 (array) of the intermediary bank 2.
intrmdryBankNm2stringName of the intermediary bank 2.
intrmdryBicCode2stringBIC number of the intermediary bank 2.
intrmdryBankAbaNum3stringABA routing number of the intermediary bank 3.
intrmdryBankAddrLine3stringAddress lines 1-7 (array) of the intermediary bank 3.
intrmdryBankNm3stringName of the intermediary bank 3.
intrmdryBicCode3stringBIC number of the intermediary bank 3.
orgntngBankAbaNumstringABA routing number of the wire originator's bank.
orgntngBankAddrLinestringAddress lines 1-7 (array) of the wire originator's bank.
orgntngBankBicCodestringBIC number of the wire originator's bank.
orgntngBankNmstringName of the wire originator's bank.
orgntngAba1stringABA routing number of the originator 1.
orgntngArngNum1stringAccount number of the originator 1.
orgntngIpNm1stringName of the originator 1.
orgntngIpAddrLine1stringAddress lines 1-7 (array) of the originator 1.
orgntngAba2stringABA routing number of the originator 2.
orgntngArngNum2stringAccount number of the originator 2.
orgntngIpNm2stringName of the originator 2.
orgntngIpAddrLine2stringAddress lines 1-7 (array) of the originator 2.
orgntngAba3stringABA routing number of the originator 3.
orgntngArngNum3stringAccount number of the originator 3.
orgntngIpNm3stringName of the originator 3.
orgntngIpAddrLine3stringAddress lines 1-7 (array) of the originator 3.
crVirtualNumstringVirtual account number of the credit account.
dbVirtualNumstringVirtual account number of the debit account.

Request example (Wire/RTP)

{
  "alertNotificationRequest": [
  {
	"alertNotification": 
	  "alertHeader": {
		"alertSentDateAndTime": "2023-02-1159T10:20:56Z",
		"alertCode": "AL00901",
		"payType": "WIRE",
		"eapAlertGUID": "f4d88cd2-446c-3cc4-9330-aa123456789"
		},
	  "alertBody": {
		"crOrDbCode": "C",
		"crArngNum": "359123456789",
		"crArngTypeCode": "DDA",
		"crArngBankNum": "0101",
		"crTranCurrencyCode": "USD",
		"dbArngTypeCode": "DDA",
		"dbTranCurrencyCode": "USD",
		"requestReferenceNumber": "4630123-20240212161123",
		"crIpId": "999997",
		"crIpNm": "BANKOFTEST",
		"dbArngNum": "201907987654321",
		"dbArngBankNum": "0101",
		"dbIpId": "30472222",
		"dbIpNm": "Test Name",
		"payNotifyTs": "1673615327943",
		"wireEventNm": "WirePaymentTransactionEvent",
		"tranAmt": "12.79",
		"tranExecutedDt": "20240112",
		"federalReferNum": "null",
		"sndngBankReferNum": "null",
		"tranId": "US23010987654321",
		"tranBusnStatusCode": "RegulatoryFilter",
		"wireDirectionCode": "OUTBOUND",
		"tranType": "null",>
		"tranValueTypeCode": "N",
		"wireProcessTypeCode": "null",
		"benefitAba": "null",
		"benefitArngNum": "3435656765",
		"benefitIpAddrLine": "250 Delaware Ave St",
		"benefitBicCode": "KEYBUS33 XXX",
		"benefitBankAbaNum": "null",
		"benefitBankArngNum": "null",
		"benefitBankAddrLine": "250 Delaware Ave St",
		"benefitBankBicCode": "KEYBUS33 XXX",
		"benefitBankNm": "KeyBank National Association",
		"intrmdryBankAbaNum1": "null",
		"intrmdryBankAddrLine1": "null",
		"intrmdryBankNm1": "KeyBank National Association",
		"intrmdryBicCode1": "21300077",
		"intrmdryBankAbaNum2": "null",
		"intrmdryBankAddrLine2": "null",
		"intrmdryBankNm2": "BANKOFTEST",
		"intrmdryBicCode2": "KEYBUS33 XXX",
		"intrmdryBankAbaNum3": "null",
		"intrmdryBankAddrLine3": "null",
		"intrmdryBankNm3": "null",
		"intrmdryBicCode3": "null",
		"orgntngBankAbaNum": "null",
		"orgntngBankAddrLine": "null",
		"orgntngBankBicCode": "null",
		"orgntngBankNm": "null",
		"orgntngAba1": "null",
		"orgntngArngNum1": "123456789",
		"orgntngIpNm1": "TEST COMPANY 1, LLC",
		"orgntngIpAddrLine1": "127 Public Sq, Cleveland,OH 44114,US",
		"orgntngAba2": "null",
		"orgntngArngNum2": "null",
		"orgntngIpNm2": "null",
		"orgntngIpAddrLine2": "null",
		"orgntngAba3": "null",
		"orgntngArngNum3": "null",
		"orgntngIpNm3": "null",
		"orgntngIpAddrLine3": "null"
		"crVirtualNum": "953456789",
		"dbVirtualNum": "953654321"
		}
	  }
	}
  ]
}
                    

The top level alertNotificationResponse object is an array of alertAcknowledgment objects. Because KeyBank can send up to 100 alerts per API call, each alert notification sent must be responded to with its own alertAcknowledgment object. The format of the response needs to adhere to the format specified here.

FIELDTYPEDESCRIPTION
alertStatusstringStatus of the alert notification.
confirmationGUIDstringAPI customer unique ID for the alert notification.
alertRecievedDateAndTimestringDate and time the alert was received. Format: (YYYY-MM-DD)T(HH:MM:SS)Z
eapAlertGUIDstringUnique alert notification identifier passed through from the request.
messagestringFree-form text field to describe the response.

Successful response

{
  "alertNotificationResponse": [
  {
    "alertAcknowledgment": {
    "alertStatus": "SUCCESS",
    "confirmationGUID": "5f0ada5b-056f-483c-98ae-ac6ccab269c1",
    "alertRecievedDateAndTime": "2021-11-19T10:31:12Z",
    "eapAlertGUID": "f4d88cd2-446c-3cc4-9330-aa123456789",
    "message": "Successfully submitted the request"
    }
  }
 ]
}

Unsuccessful response

{
  "alertNotificationResponse": [
  {
    "alertAcknowledgment": {
      "alertStatus": "FAILURE",
      "confirmationGUID": "5f0ada5b-056f-483c-98ae-ac6ccab269c1",
      "alertRecievedDateAndTime": "2021-11-19T10:31:12Z",
      "eapAlertGUID": "f4d88cd2-446c-3cc4-9330-aa123456789",
      "message": "Required parameter(s) not found: [fieldName(s)]"
    }
  }
]
}

If your webhook receiver/handler encounters an error, KeyBank expects you to send one of the following HTTP status codes:

  • 400 Invalid input
  • 401 Authentication error
  • 403 Authorization error
  • 500 Internal error

Only the HTTP 500 error codes will prompt the retry mechanism. If you have one of the HTTP 400 error codes, you are expected to troubleshoot the issue. If you cannot find a resolution, please contact your Payments Advisor or Technical Account Manager.

 

The retry mechanism is trigger for any backend error issues, typically associated with HTTP 500's status codes.  With a unsuccessful HTTP 5XX response, the KeyBank retry mechanism will attempt to deliver a failed alert notification for 24 hours after the original failed notification. The retry attempts follow this schedule:

  • 3 attempts, each attempt every 30 seconds
  • 6 attempts, each attempt every 90 minutes
  • 3 attempts, each attempt every 5 hours
Attempt numberTime between attemptsTime elapsed since first alert
1-330 seconds30 seconds - 1.5 minutes
4-990 minutes1.5 - 9 hours
10-125 hours14 - 24 hours

After the 24-hour window, the notification fails and there are no more additional retry attempts. Notify your Payments Advisor if there is an outage for more than 24 hours or if you have an outage planned for your systems that extends past a 24-hour period. You can also notify us with our Support form.

To inquire about a payment event after 24 hours, you must use the ACH Inquiry or Wire Inquiry APIs.

 

ReleaseAPI versionChange descriptionImpact
August 20242.2.0
  • We introduce the version 2 of our Webhooks. This API is sleek! For ACH alerts, the alert codes (AL00902, AL00903, AL00904, AL00905) have been consolidated into a single and new code, AL00906.
HIGH
April 20241.1.0
  • For Wire and RTP webhook alert notifications, dbTranCurrencyCode and dbAngTypeCode are in the alert body.
  • Added the requestReferenceNumber to the alert body for Wire and RTP alert notification. If this parameter has a value, it will return in the alert body for RTP or Wire notifications.
MID
December 20231.1.0
  • Remove all leading zeros for the following account parameters:
    • crArngNum
    • dbArngNum
    • accountNumber
LOW
August 20231.0.1
  • Published on the Developer Portal.
 

Impact levels

  • LOW: This is a minor change or enhancement that does not alter the operations of the API. Upgrading to the latest specifications is preferable but not required.
  • MID: The previous API version is valid and operates, but does not contain latest enhancements. You need to update your specifications to get these enhancements.
  • HIGH: The previous API version is no longer operable. You must upgrade to the latest specifications to access and use this API product.

YAML file download

Wire Transfer

clock 6-minute read calender 1.2.4 | updated Aug. 07, 2024

Transfer money by wire for urgent payments or large volume transactions

What you can doEndpoint
Health checkget /rtp/v1/payment/healthCheck
Get the status with the transaction IDget /rtp/v1/payment/status/transactionId/{transactionId}
Get the status with the request reference numberget /rtp/v1/payment/status/debitAccount/{debitAccount}/reference/{reference}
Send a wire transferpost /rtp/v1/payment/initiate
Perform validation checkspost /rtp/v1/payment/validate

Before you begin

All KeyBank APIs require certificates, user credentials, and certain permissions. Check out our Getting Started Guide to learn more.

 

Two in one

At KeyBank, the RTP and wire payment APIs are a single API product with two service capabilities. You need specific permissions to access either the RTP Send Payment API or the Wires Transfer API.

Wire transfers are great for urgent payments and suitable for large volume transactions. Use the Wire Origination API for urgent or time-sensitive transactions, such as large business payments or real estate transactions.

Wire transfers move money from one bank account to another. KeyBank transfers your funds using the secure SWIFT (Society for Worldwide Interbank Financial Telecommunication) system and Fedwire Clearing House. Through our secure network, wire transfers typically involve a processing time that can vary from a few hours to several business days depending on factors such as banks involved and any other intermediary institutions. Banks typically initiate and process wire transfers to provide a direct and expedited method of transferring funds. Usually, wire transfers involve a fee per transmission which can vary depending on the banks involved and the currency used.

The main difference between RTP payments and wire transfers is in their speed and settlement process. RTP payments are designed for real-time transfers, providing immediate availability of funds, while wire transfers may take longer to process and settle.

Payment chain parties

The two calls - initiate a payment and validate a payment - have the party object. This is a reusable object that has details about the person or entity sending a payment and the one receiving the payment. The party object reflects the payment chain of events. Use the request fields to direct the payment transaction from one account to another.

 

ORDERPAYMENT CHAINREQUEST FIELDS TO USE
1The individual or organization sends the payment.Enter the debit account number of the individual or organization in debitParty.
2The financial institution of the debit account holder transfers the funds.We assume this is KeyBank. Enter the ABA or routing number for the financial institution in debitPartyBank.
3The financial institution that services the recipient’s account receives the funds.Enter the US ABA number for the financial institution in creditPartyBank.
4The beneficiary party receives the funds.Enter the account number of the beneficiary in creditParty.

 

API requirements

KeyClientId: When you initiate or validate a payment, you are required to provide the KeyClientId in the request header. The KeyClientId is a 32-character string provided by KeyBank during the onboarding process. This field is not the same as your client credentials (part of your API keys needed to obtain an access token).

 

Psst...pass this note

Want to apply a custom message or tags to your transaction? The custom data feature is available when you send or validate a payment. Define the custom data in the request payload. Learn more about our custom data feature here.


get /rtp/v1/payment/healthCheck

Verify you can connect to the API service. A bearer token is required.

NAMETYPEDESCRIPTION
StatusoptionalstringThe status of the health check response.
SourceoptionalstringThe system that produces the health response. The origin of the response can be 'Gateway' or 'Roundtrip.' Roundtrip returns a response from the farthest system involved.
TimestampoptionalstringThe date (YYYY-MM-DD) and time (HH:MM:SS) of response from the API service.
ClientIpoptionalstringThe client IP address the gateway receives from the request.
X-Forwarded-ForoptionalstringThe sequence of the IP addresses for systems between the client and the gateway. Addresses are separated by a comma.

Response example (200)

copylink
{
    "Status": "Ok",
    "Source": "Roundtrip",
    "Timestamp": "2022-09-16T02:36:20",
    "ClientIp": "156.77.111.28",
    "X-Forwarded-For": "[156.77.111.28]"
}

get /rtp/v1/payment/status/transactionId/{transactionId}

Get the status of a wire transfer.

With GET methods, use a cURL command to generate your request. Select Copy code for easy copy and paste into your command line. Modify the required fields with your information.

header FIELDTYPEDESCRIPTION
KeyClientIdoptionalstringThis value is provided by KeyBank during onboarding and is different from your client credentials. This is required for each call for RTP or Wire transactions.
path FIELDTYPEDESCRIPTION
transactionIdrequiredstringThe unique ID number associated with the original payment request.

Request example

curl --location: 'https://partner-api-qv.keybank.com/rtp/v1/payment/status/transactionId/test123321'
--header 'KeyClientId: testwUhSQADUD4DwYyZz2hZkwLqsoFGK'
--header 'Accept: application/json'
--header 'Authorization: Bearer testZcKJDWnwDWmmf9qah6PJvPy8'
NAMETYPEDESCRIPTION
statusrequiredObjectpaymentStatus
transactionIdoptionalstringThe unique ID number associated with the original payment request.
requestReferenceoptionalstringA reference value for the original request that is useful for traceability and reporting. The ID cannot exceed 35 characters.
sendersReferenceoptionalstringA reference value provided by the sender. For outbound payments, this value is the same as the transaction ID. The ID cannot exceed 35 characters.
receiversReferenceoptionalstringA reference value for the beneficiary. This value cannot exceed 140 characters.
debitAccountNumberoptionalstringDebit account number
creditAccountNumberoptionalstringCredit account number
valueDateoptionalstringThe date (YYYY-MM-DD) the transfer occurred.
transferAmountoptionalintegerAmount of money to transfer in the correct currency format.
transferCurrencyoptionalstringCurrency code for the transfer amount.
erroroptionalObjectpaymentError
doddFrankoptionalObjectnoYesType
clearingSystemReferenceoptionalstringEnter a reference value for the beneficiary. This value cannot exceed 140 characters.

Response example (200)

copylink
{
    "status": "COMPLETED",
    "transactionId": "US21052400000000",
    "requestReference": "RR-KEY-999999-01",
    "sendersReference": "SR-KEY-999999-01",
    "receiversReference": "INVC0054321",
    "debitAccountNumber": "12345",
    "creditAccountNumber": "987654321",
    "valueDate": "2023-05-08",
    "transferAmount": 10,
    "transferCurrency": "USD",
    "doddFrank": "NO"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (400)

copylink
{
    "ErrorMessage": "Error received from backend service.",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionId": "US21052400000000",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "ServiceError": {
        "status": "FAILED",
        "transactionId": "rrt-770941720727587-2383364-1",
        "requestReference": "RR-220818-01",
        "sendersReference": "SR-220818-01",
        "valueDate": 1683676800,
        "error": {
            "code": "KEY-1006",
            "title": "Required field missing",
            "description": "The object creditPartyBank is required in the request."
        }
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (401)

copylink
{
    "ErrorMessage": "Error received from backend service.",
    "TransactionId": "rrt-621075741872460927-c-gce-9129-15867185-4",
    "X-CorrelationId": "80457bcb-2c3b-8c55-8cd6-3520c3157e8f",
    "TransactionTime": "2022-04-04T11:41:13.754Z",
    "ServiceError": {
        "status": "ERROR",
        "transactionId": "rrt-621075741872460927",
        "requestReference": "REQUEST-REF-220314.1",
        "sendersReference": "SENDER-REF-220314.1",
        "valueDate": "06-10-2023",
        "error": {
            "code": "KEY-0006",
            "title": "Not authorized for requested service",
            "description": "Check your credentials."
        },
        "doddFrank": "NO"
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (403)

copylink
{
    "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"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (404)

copylink
{
    "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"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (405)

copylink
{
    "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"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (415)

copylink
{
    "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"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (429)

copylink
{
    "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"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (500)

copylink
{
    "ErrorMessage": "Error received from backend service.",
    "TransactionId": "359681587523_SR-RMC-210729-11081",
    "X-CorrelationId": "7ad7fdfb-2ade-a3ab-b97c-523dc5312688",
    "TransactionTime": "2022-04-05T07:59:15.422Z",
    "ServiceError": {
        "status": "ERROR",
        "transactionId": "rrt-621075741872460927",
        "requestReference": "REQUEST-REF-220314.1",
        "sendersReference": "SENDER-REF-220314.1",
        "valueDate": "06-10-2023",
        "error": {
            "code": "KEY-9999",
            "title": "Unknown error",
            "description": "Payment Initiation ServiceException: AUTHENTICATION_FAILURE Unable to logon with the supplied credentials."
        },
        "doddFrank": "NO"
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (502)

copylink
{
    "ErrorMessage": "Error received from backend service",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "ServiceError": {
        "ConnectError": "Connectivity error occurred with the downstream service (unexpected EOF at target). Please check with application support team before resubmitting the request"
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (503)

copylink
{
    "ErrorMessage": "Error received from backend service.",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "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."
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (504)

copylink
{
    "ErrorMessage": "Your request took too long to process. Please try again.",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "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."
    }
}

get /rtp/v1/payment/status/debitAccount/{debitAccount}/reference/{reference}

Get the status of a payment with the debit account number of the payment originator and the request reference number. This call is typically used for troubleshooting an issue with timing or a technical error with a payment transaction. You can assign a request reference number when you initiate or validate a payment. This number is metadata for backend traceability and is not sent with the payment. Use this number with the debit account number for the originating payment. The account number and request reference number must be unique; you cannot use the same request reference number for different transactions.

With GET methods, use a cURL command to generate your request. Select Copy code for easy copy and paste into your command line. Modify the required fields with your information.

 

header FIELDTYPEDESCRIPTION
KeyClientIdoptionalstringThis value is provided by KeyBank during onboarding and is different from your client credentials. This is required for each call for RTP or Wire transactions.
path FIELDTYPEDESCRIPTION
debitAccountrequiredstringThe debit account number of the originator.
referencerequiredstringThe unique request reference number from the original payment request.

Request example

curl --location: 'https://partner-api-qv.keybank.com/rtp/v1/payment/status/debitAccount/12345/reference/RR-KEY-999999-01'
--header 'KeyClientId: testwUhSQADUD4DwYyZz2hZkwLqsoFGK'
--header 'Accept: application/json'
--header 'Authorization: Bearer testZcKJDWnwDWmmf9qah6PJvPy8'
NAMETYPEDESCRIPTION
statusrequiredObjectpaymentStatus
transactionIdoptionalstringThe unique ID number associated with the original payment request.
requestReferenceoptionalstringA reference value for the original request that is useful for traceability and reporting. The ID cannot exceed 35 characters.
sendersReferenceoptionalstringA reference value provided by the sender. For outbound payments, this value is the same as the transaction ID. The ID cannot exceed 35 characters.
receiversReferenceoptionalstringA reference value for the beneficiary. This value cannot exceed 140 characters.
debitAccountNumberoptionalstringDebit account number
creditAccountNumberoptionalstringCredit account number
valueDateoptionalstringThe date (YYYY-MM-DD) the transfer occurred.
transferAmountoptionalintegerAmount of money to transfer in the correct currency format.
transferCurrencyoptionalstringCurrency code for the transfer amount.
erroroptionalObjectpaymentError
doddFrankoptionalObjectnoYesType
clearingSystemReferenceoptionalstringEnter a reference value for the beneficiary. This value cannot exceed 140 characters.

Response example (200)

copylink
{
    "status": "COMPLETED",
    "transactionId": "US21052400000000",
    "requestReference": "RR-KEY-999999-01",
    "sendersReference": "SR-KEY-999999-01",
    "receiversReference": "INVC0054321",
    "debitAccountNumber": "12345",
    "creditAccountNumber": "987654321",
    "valueDate": "2023-05-08",
    "transferAmount": 10,
    "transferCurrency": "USD",
    "doddFrank": "NO"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (400)

copylink
{
    "ErrorMessage": "Error received from backend service.",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionId": "US21052400000000",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "ServiceError": {
        "status": "FAILED",
        "transactionId": "rrt-770941720727587-2383364-1",
        "requestReference": "RR-220818-01",
        "sendersReference": "SR-220818-01",
        "valueDate": 1683676800,
        "error": {
            "code": "KEY-1006",
            "title": "Required field missing",
            "description": "The object creditPartyBank is required in the request."
        }
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (401)

copylink
{
    "ErrorMessage": "Error received from backend service.",
    "TransactionId": "rrt-621075741872460927-c-gce-9129-15867185-4",
    "X-CorrelationId": "80457bcb-2c3b-8c55-8cd6-3520c3157e8f",
    "TransactionTime": "2022-04-04T11:41:13.754Z",
    "ServiceError": {
        "status": "ERROR",
        "transactionId": "rrt-621075741872460927",
        "requestReference": "REQUEST-REF-220314.1",
        "sendersReference": "SENDER-REF-220314.1",
        "valueDate": "06-10-2023",
        "error": {
            "code": "KEY-0006",
            "title": "Not authorized for requested service",
            "description": "Check your credentials."
        },
        "doddFrank": "NO"
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (403)

copylink
{
    "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"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (404)

copylink
{
    "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"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (405)

copylink
{
    "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"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (415)

copylink
{
    "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"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (429)

copylink
{
    "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"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (500)

copylink
{
    "ErrorMessage": "Error received from backend service",
    "TransactionId": "359681587523_SR-RMC-210729-11081",
    "X-CorrelationId": "7ad7fdfb-2ade-a3ab-b97c-523dc5312688",
    "TransactionTime": "2022-04-05T07:59:15.422Z",
    "ServiceError": {
        "status": "ERROR",
        "transactionId": "rrt-621075741872460927",
        "requestReference": "REQUEST-REF-220314.1",
        "sendersReference": "SENDER-REF-220314.1",
        "valueDate": "06-10-2023",
        "error": {
            "code": "KEY-9999",
            "title": "Unknown error",
            "description": "Payment Initiation ServiceException: AUTHENTICATION_FAILURE Unable to logon with the supplied credentials."
        },
        "doddFrank": "NO"
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (502)

copylink
{
    "ErrorMessage": "Error received from backend service",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "ServiceError": {
        "ConnectError": "Connectivity error occurred with the downstream service (unexpected EOF at target). Please check with application support team before resubmitting the request"
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (503)

copylink
{
    "ErrorMessage": "Error received from backend service.",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "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."
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (504)

copylink
{
    "ErrorMessage": "Error received from backend service",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "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."
    }
}

post /rtp/v1/payment/initiate

Send a wire transfer. Use the requestedService parameter to define the transaction as Wire. With the party object, you can define the receiver as an individual, corporation, or financial institution in the payment chain.

header FIELDTYPEDESCRIPTION
KeyClientIdrequiredstringThis value is provided by KeyBank during onboarding and is different from your client credentials. This is required for each call for RTP or Wire transactions.
BODY FIELDTYPEDESCRIPTION
requestedServicerequiredstringThe type of payment transaction. The transaction request is valid only for the API products with granted access. Valid values: RTP, WIRE
requestReferencerequiredstringA reference value for the original request that is useful for traceability and reporting. The ID cannot exceed 35 characters.
typerequiredstringFor RTP, the type can show if the transaction is a PAYMENT or a DRAFT. For Wire transfers, the type is always DRAFT. 
requestedValueDaterequiredstringDate (YYYY-MM-DD) the transfer will occur.
originatorReferenceoptionalstringAn additional reference value that is meaningful to the party originating the payment.
sendersReferencerequiredstringA reference value provided by the sender. For outbound payments, this value is the same as the transaction ID. The ID cannot exceed 35 characters.
receiversReferenceoptionalstringA reference value for the beneficiary. This value cannot exceed 140 characters.
bankToBankInstructionsoptionalstringArea to share messages or instructions from one bank to another bank.
ultimateDebitPartyoptionalObjectultParty
debitPartyrequiredObjectparty
debitPartyBankoptionalObjectparty
intermediaryBank1optionalObjectparty
intermediaryBank2optionalObjectparty
intermediaryBank3optionalObjectparty
creditPartyBankrequiredObjectparty
creditPartyrequiredObjectparty
transferAmountrequirednumberAmount of money to transfer in the correct currency format.
transferCurrencyrequiredstringCurrency code for the transfer amount.
externalTemplateNameoptionalstringTBD
customDataoptionalstringThe values for custom data is defined by the client. This free-form text field can contain up to 500 alphanumeric characters. Custom information stays with the transaction through its lifecycle.

Request example

copylink
{
    "requestedService": "WIRE",
    "requestReference": "AZX01234567891011",
    "type": "PAYMENT",
    "sendersReference": "INVC0012345",
    "receiversReference": "INVC0054321",
    "requestedValueDate": 1621814400,
    "debitParty": {
        "name": "YOUR COMPANY NAME HERE",
        "accountNumber": "001122334455"
    },
    "creditPartyBank": {
        "name": "BENEFICIARY BANK NAME",
        "aba": "000000000"
    },
    "creditParty": {
        "name": "BENEFICIARY NAME",
        "accountNumber": "987654321",
        "postalAddress": {
            "adrLine": [
                "BENEFICIARY ADDRESS LINE 1",
                "BENEFICIARY ADDRESS LINE 2"
            ]
        }
    },
    "transferAmount": 10,
    "transferCurrency": "USD"
}
NAMETYPEDESCRIPTION
statusrequiredObjectpaymentStatus
transactionIdoptionalstringThe unique ID number associated with the original payment request.
requestReferenceoptionalstringA reference value for the original request that is useful for traceability and reporting. The ID cannot exceed 35 characters.
sendersReferenceoptionalstringA reference value provided by the sender. For outbound payments, this value is the same as the transaction ID. The ID cannot exceed 35 characters.
receiversReferenceoptionalstringA reference value for the beneficiary. This value cannot exceed 140 characters.
debitAccountNumberoptionalstringDebit account number
creditAccountNumberoptionalstringCredit account number
valueDateoptionalstringThe date (YYYY-MM-DD) the transfer occurred.
transferAmountoptionalintegerAmount of money to transfer in the correct currency format.
transferCurrencyoptionalstringCurrency code for the transfer amount.
erroroptionalObjectpaymentError
doddFrankoptionalObjectnoYesType
clearingSystemReferenceoptionalstringEnter a reference value for the beneficiary. This value cannot exceed 140 characters.

Response example (200)

copylink
{
    "status": "IN_PROCESS",
    "transactionId": "US23050800214592",
    "requestReference": "AZX01234567891011",
    "sendersReference": "INVC0012345",
    "receiversReference": "INVC0054321",
    "debitAccountNumber": "001122334455",
    "creditAccountNumber": "987654321",
    "valueDate": "2023-05-08",
    "transferAmount": 10,
    "transferCurrency": "USD"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (400)

copylink
{
    "ErrorMessage": "Error received from backend service.",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionId": "US21052400000000",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "ServiceError": {
        "status": "FAILED",
        "transactionId": "rrt-770941720727587-2383364-1",
        "requestReference": "RR-220818-01",
        "sendersReference": "SR-220818-01",
        "valueDate": 1683676800,
        "error": {
            "code": "KEY-1006",
            "title": "Required field missing",
            "description": "The object creditPartyBank is required in the request."
        }
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (401)

copylink
{
    "ErrorMessage": "Error received from backend service.",
    "TransactionId": "rrt-621075741872460927-c-gce-9129-15867185-4",
    "X-CorrelationId": "80457bcb-2c3b-8c55-8cd6-3520c3157e8f",
    "TransactionTime": "2022-04-04T11:41:13.754Z",
    "ServiceError": {
        "status": "ERROR",
        "transactionId": "rrt-621075741872460927",
        "requestReference": "REQUEST-REF-220314.1",
        "sendersReference": "SENDER-REF-220314.1",
        "valueDate": "06-10-2023",
        "error": {
            "code": "KEY-0006",
            "title": "Not authorized for requested service",
            "description": "Check your credentials."
        },
        "doddFrank": "NO"
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (403)

copylink
{
    "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"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (404)

copylink
{
    "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"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (405)

copylink
{
    "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"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (415)

copylink
{
    "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"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (429)

copylink
{
    "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"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (500)

copylink
{
    "ErrorMessage": "Error received from backend service.",
    "TransactionId": "359681587523_SR-RMC-210729-11081",
    "X-CorrelationId": "7ad7fdfb-2ade-a3ab-b97c-523dc5312688",
    "TransactionTime": "2022-04-05T07:59:15.422Z",
    "ServiceError": {
        "status": "ERROR",
        "transactionId": "rrt-621075741872460927",
        "requestReference": "RR-RMC-210720-0123458981",
        "sendersReference": "SR-RMC-210729-11081",
        "valueDate": "06-10-2023",
        "error": {
            "code": "KEY-9999",
            "title": "Unknown error",
            "description": "Payment Initiation ServiceException: AUTHENTICATION_FAILURE Unable to logon with the supplied credentials."
        },
        "doddFrank": "NO"
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (502)

copylink
{
    "ErrorMessage": "Error received from backend service.",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "ServiceError": {
        "ConnectError": "Connectivity error occurred with the downstream service (unexpected EOF at target). Please check with application support team before resubmitting the request"
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (503)

copylink
{
    "ErrorMessage": "Error received from backend service.",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "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."
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (504)

copylink
{
    "ErrorMessage": "Error received from backend service",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "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."
    }
}

post /rtp/v1/payment/validate

This call performs all the validation checks needed to initiate a payment without creating a payment.

header FIELDTYPEDESCRIPTION
KeyClientIdrequiredstringThis value is provided by KeyBank during onboarding and is different from your client credentials. This is required for each call for RTP or Wire transactions.
BODY FIELDTYPEDESCRIPTION
requestedServicerequiredstringThe type of payment transaction. The transaction request is valid only for the API products with granted access. Valid values: RTP, WIRE
requestReferencerequiredstringA reference value for the original request that is useful for traceability and reporting. The ID cannot exceed 35 characters.
typerequiredstringFor RTP, the type can show if the transaction is a PAYMENT or a DRAFT. For Wire transfers, the type is always DRAFT. 
requestedValueDaterequiredstringDate (YYYY-MM-DD) the transfer will occur.
originatorReferenceoptionalstringAn additional reference value that is meaningful to the party originating the payment.
sendersReferencerequiredstringA reference value provided by the sender. For outbound payments, this value is the same as the transaction ID. The ID cannot exceed 35 characters.
receiversReferenceoptionalstringA reference value for the beneficiary. This value cannot exceed 140 characters.
bankToBankInstructionsoptionalstringArea to share messages or instructions from one bank to another bank.
ultimateDebitPartyoptionalObjectultParty
debitPartyrequiredObjectparty
debitPartyBankoptionalObjectparty
intermediaryBank1optionalObjectparty
intermediaryBank2optionalObjectparty
intermediaryBank3optionalObjectparty
creditPartyBankrequiredObjectparty
creditPartyrequiredObjectparty
transferAmountrequirednumberAmount of money to transfer in the correct currency format.
transferCurrencyrequiredstringCurrency code for the transfer amount.
externalTemplateNameoptionalstringTBD
customDataoptionalstringThe values for custom data is defined by the client. This free-form text field can contain up to 500 alphanumeric characters. Custom information stays with the transaction through its lifecycle.

Request example

copylink
{
    "requestedService": "WIRE",
    "requestReference": "AZX01234567891011",
    "type": "PAYMENT",
    "requestedValueDate": 1621814400,
    "originatorReference": "",
    "sendersReference": "INVC0012345",
    "receiversReference": "INVC0054321",
    "ultimateDebitParty": {
        "name": ""
    },
    "debitParty": {
        "name": "YOUR COMPANY NAME HERE",
        "accountNumber": "001122334455"
    },
    "debitPartyBank": {
        "name": ""
    },
    "creditPartyBank": {
        "name": "BENEFICIARY BANK NAME",
        "aba": "000000000"
    },
    "creditParty": {
        "name": "BENEFICIARY NAME",
        "accountNumber": "987654321",
        "postalAddress": {
            "adrLine": [
                "BENEFICIARY ADDRESS LINE 1",
                "BENEFICIARY ADDRESS LINE 2"
            ]
        }
    },
    "transferAmount": 10,
    "transferCurrency": "USD",
    "customData": ""
}
NAMETYPEDESCRIPTION
statusrequiredObjectpaymentStatus
transactionIdoptionalstringThe unique ID number associated with the original payment request.
requestReferenceoptionalstringA reference value for the original request that is useful for traceability and reporting. The ID cannot exceed 35 characters.
sendersReferenceoptionalstringA reference value provided by the sender. For outbound payments, this value is the same as the transaction ID. The ID cannot exceed 35 characters.
receiversReferenceoptionalstringA reference value for the beneficiary. This value cannot exceed 140 characters.
debitAccountNumberoptionalstringDebit account number
creditAccountNumberoptionalstringCredit account number
valueDateoptionalstringThe date (YYYY-MM-DD) the transfer occurred.
transferAmountoptionalintegerAmount of money to transfer in the correct currency format.
transferCurrencyoptionalstringCurrency code for the transfer amount.
erroroptionalObjectpaymentError
doddFrankoptionalObjectnoYesType
clearingSystemReferenceoptionalstringEnter a reference value for the beneficiary. This value cannot exceed 140 characters.

Response example (200)

copylink
{
    "status": "VALID",
    "transactionId": "XZ23050714000000",
    "requestReference": "testWBB25889710252",
    "sendersReference": "INVC0012345",
    "receiversReference": "INVC0054321",
    "debitAccountNumber": "12345",
    "creditAccountNumber": "987654321",
    "transferAmount": 10,
    "transferCurrency": "USD"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (400)

copylink
{
    "ErrorMessage": "Error received from backend service.",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionId": "US21052400000000",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "ServiceError": {
        "status": "FAILED",
        "transactionId": "rrt-770941720727587-2383364-1",
        "requestReference": "RR-220818-01",
        "sendersReference": "SR-220818-01",
        "valueDate": 1683676800,
        "error": {
            "code": "KEY-1006",
            "title": "Required field missing",
            "description": "The object creditPartyBank is required in the request."
        }
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (401)

copylink
{
    "ErrorMessage": "Error received from backend service.",
    "TransactionId": "rrt-621075741872460927-c-gce-9129-15867185-4",
    "X-CorrelationId": "80457bcb-2c3b-8c55-8cd6-3520c3157e8f",
    "TransactionTime": "2022-04-04T11:41:13.754Z",
    "ServiceError": {
        "status": "ERROR",
        "transactionId": "rrt-621075741872460927",
        "requestReference": "REQUEST-REF-220314.1",
        "sendersReference": "SENDER-REF-220314.1",
        "valueDate": "06-10-2023",
        "error": {
            "code": "KEY-0006",
            "title": "Not authorized for requested service",
            "description": "Check your credentials."
        },
        "doddFrank": "NO"
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (403)

copylink
{
    "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"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (404)

copylink
{
    "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"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (405)

copylink
{
    "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"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (415)

copylink
{
    "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"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (429)

copylink
{
    "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"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (500)

copylink
{
    "ErrorMessage": "Error received from backend service.",
    "TransactionId": "359681587523_SR-RMC-210729-11081",
    "X-CorrelationId": "7ad7fdfb-2ade-a3ab-b97c-523dc5312688",
    "TransactionTime": "2022-04-05T07:59:15.422Z",
    "ServiceError": {
        "status": "ERROR",
        "transactionId": "rrt-621075741872460927",
        "requestReference": "REQUEST-REF-220314.1",
        "sendersReference": "SENDER-REF-220314.1",
        "valueDate": "06-10-2023",
        "error": {
            "code": "KEY-9999",
            "title": "Unknown error",
            "description": "Payment Initiation ServiceException: AUTHENTICATION_FAILURE Unable to logon with the supplied credentials.",
            "detail": {
                "code": "KEY-1005",
                "title": "Error",
                "description": "Additional information about error code."
            }
        },
        "doddFrank": "NO"
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (502)

copylink
{
    "ErrorMessage": "Error received from backend service.",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "ServiceError": {
        "ConnectError": "Connectivity error occurred with the downstream service (unexpected EOF at target). Please check with application support team before resubmitting the request"
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (503)

copylink
{
    "ErrorMessage": "Error received from backend service.",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "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."
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (504)

copylink
{
    "ErrorMessage": "Your request took too long to process. Please try again.",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "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."
    }
}
NAMETYPEDESCRIPTION
ConnectErroroptionalstringAPI connectivity error information, if available.
NAMETYPEDESCRIPTION
coderequiredstringA static code assigned by the network or payment system.
titlerequiredstringBrief title about the error associated with the status code.
descriptionoptionalstringDescription of the error.
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError
NAMETYPEDESCRIPTION
StatusoptionalstringThe status of the health check response.
SourceoptionalstringThe system that produces the health response. The origin of the response can be 'Gateway' or 'Roundtrip.' Roundtrip returns a response from the farthest system involved.
TimestampoptionalstringThe date (YYYY-MM-DD) and time (HH:MM:SS) of response from the API service.
ClientIpoptionalstringThe client IP address the gateway receives from the request.
X-Forwarded-ForoptionalstringThe sequence of the IP addresses for systems between the client and the gateway. Addresses are separated by a comma.
NAMETYPEDESCRIPTION
noYesTypeoptionalstringThis field indicates whether the transaction qualifies for Dodd-Frank.
NAMETYPEDESCRIPTION
countrequiredstringThe count of records that match the initial query.
limitrequiredintegerThe maximum number of records returned in the response.
offsetrequiredintegerThe number of records skipped before the response is returned.
partiesoptionalObjectparty
NAMETYPEDESCRIPTION
namerequiredstringName of the party. This can be an individual, a financial institution, or a beneficiary. The name cannot exceed 140 characters.
accountNumberoptionalstringAccount number of the party.
abaoptionalstringIf the party is a financial institution, this is the ABA number or routing number.
bicoptionalstringThe bank identifier code (BIC) for the party. This is a combination code that identifies the bank, country, location, and possibly the bank branch.
txidoptionalstringThe tax identification number for the party.
adrLineoptionalarrayAn unstructured address line. You can have up to three lines of text.
NAMETYPEDESCRIPTION
coderequiredstringStatus code assigned to each error type.
titlerequiredstringBrief title about the error associated with the status code.
descriptionoptionalstringDescription of the error.
detailoptionalObjectdetail
NAMETYPEDESCRIPTION
requestedServicerequiredstringThe type of payment transaction. The transaction request is valid only for the API products with granted access. Valid values: RTP, WIRE
requestReferencerequiredstringA reference value for the original request that is useful for traceability and reporting. The ID cannot exceed 35 characters.
typerequiredstringFor RTP, the type can show if the transaction is a PAYMENT or a DRAFT. For Wire transfers, the type is always DRAFT. 
requestedValueDaterequiredstringDate (YYYY-MM-DD) the transfer will occur.
originatorReferenceoptionalstringAn additional reference value that is meaningful to the party originating the payment.
sendersReferencerequiredstringA reference value provided by the sender. For outbound payments, this value is the same as the transaction ID. The ID cannot exceed 35 characters.
receiversReferenceoptionalstringA reference value for the beneficiary. This value cannot exceed 140 characters.
bankToBankInstructionsoptionalstringArea to share messages or instructions from one bank to another bank.
ultimateDebitPartyoptionalObjectultParty
debitPartyrequiredObjectparty
debitPartyBankoptionalObjectparty
intermediaryBank1optionalObjectparty
intermediaryBank2optionalObjectparty
intermediaryBank3optionalObjectparty
creditPartyBankrequiredObjectparty
creditPartyrequiredObjectparty
transferAmountrequirednumberAmount of money to transfer in the correct currency format.
transferCurrencyrequiredstringCurrency code for the transfer amount.
externalTemplateNameoptionalstringTBD
customDataoptionalstringThe values for custom data is defined by the client. This free-form text field can contain up to 500 alphanumeric characters. Custom information stays with the transaction through its lifecycle.
NAMETYPEDESCRIPTION
statusrequiredObjectpaymentStatus
transactionIdoptionalstringThe unique ID number associated with the original payment request.
requestReferenceoptionalstringA reference value for the original request that is useful for traceability and reporting. The ID cannot exceed 35 characters.
sendersReferenceoptionalstringA reference value provided by the sender. For outbound payments, this value is the same as the transaction ID. The ID cannot exceed 35 characters.
receiversReferenceoptionalstringA reference value for the beneficiary. This value cannot exceed 140 characters.
debitAccountNumberoptionalstringDebit account number
creditAccountNumberoptionalstringCredit account number
valueDateoptionalstringThe date (YYYY-MM-DD) the transfer occurred.
transferAmountoptionalintegerAmount of money to transfer in the correct currency format.
transferCurrencyoptionalstringCurrency code for the transfer amount.
erroroptionalObjectpaymentError
doddFrankoptionalObjectnoYesType
clearingSystemReferenceoptionalstringEnter a reference value for the beneficiary. This value cannot exceed 140 characters.
NAMETYPEDESCRIPTION
paymentStatusoptionalstringThe status of the payment transaction. Valid values: IN_PROCESS, IN_REVIEW, COMPLETED, FAILED, RETURNED, ERROR, VALID
NAMETYPEDESCRIPTION
statusrequiredObjectpaymentStatus
transactionIdoptionalstringThe unique ID number associated with the original payment request.
requestReferenceoptionalstringA reference value for the original request that is useful for traceability and reporting. The ID cannot exceed 35 characters.
sendersReferenceoptionalstringA reference value provided by the sender. For outbound payments, this value is the same as the transaction ID. The ID cannot exceed 35 characters.
receiversReferenceoptionalstringThe sender reference value from the original request. This is useful for traceability and reporting.
debitAccountNumberoptionalstringThe sender reference value from the original request. This is useful for traceability and reporting.
creditAccountNumberoptionalstringThe sender reference value from the original request. This is useful for traceability and reporting.
valueDateoptionalstringThe date (YYYY-MM-DD) the transferred occurred.
erroroptionalObjectpaymentError
doddFrankoptionalObjectnoYesType
NAMETYPEDESCRIPTION
nameoptionalstringTypically this is the name of the party that instructed the debit party to initiate a payment. This value cannot exceed 140 characters.
NAMETYPEDESCRIPTION
typeoptionalstringThe five-digit global routing code for a foreign financial institution.
idoptionalstringThe identification number associated with the foreign financial institution.

When an error occurs, the paymentTransactionResponse object returns with the paymentStatus of ERROR. Some errors are reported with the standard HTTP error response. Certain violations report with an HTTP 200 response for issues where the API service successfully receives the request, but it encounters errors. KeyBank may include additional information about the error in API-specific error messages.

For more information about errors, see Error handling.

API-specific KeyBank error codes and details are in the error object of the response payload. Issues can be about account restrictions, network timeout, invalid data in the request, etc., and represent a failed payment.

CODEMESSAGE
KEY-0001Not authorized
KEY-0002Not authorized for requested action
KEY-0003Request exceeds authorized limit
KEY-0004Unauthorized for account
KEY-0005Internal use only fields
KEY-0006Not authorized for requested service
KEY-0008NSF
KEY-1000Transformation Error
KEY-1001Invalid Data
KEY-1002Invalid Bank Identifier
KEY-1003Invalid or unknown template
KEY-1004Invalid account
KEY-1005Invalid Currency
KEY-1006Required field missing
KEY-1007Transaction Not Found
KEY-1008Insufficient Funds
KEY-1009Account has restrictions
KEY-1010Duplicate Request
KEY-1011Payor Account Restrictions
KEY-1012Payee Account Restrictions
KEY-3003Payment network timeout. Please retry.
KEY-3004Payment rejected by payment network
KEY-9997Failed payment review
KEY-9998Payment failed during processing
KEY-9999Unknown error

 

API-specific error example

paymentTransactionResponse:
  { 
    "status": "FAILED", 
    "requestReference": "RR-999999-01", 
    "sendersReference": "SR-999999-01", 
    "error": { 
        "code": "KEY-1002", 
        "title": "Invalid Bank Identifier", 
        "description": "Credit Party Bank must be a valid USRTP Participant" 
    } 
}
ReleaseAPI versionChange descriptionImpact
August 20241.2.4
  • Change the name of the Wire Origination API to its more common name, Wire Transfer.
  • Added clarification to type field. For RTP the type can be PAYMENT or DRAFT. For wire transfers, the type will always be DRAFT.
MID
May 20241.2.3
  • KeyClientId is required for all endpoints, including GET calls.
MID
March 20241.2.1
  • Added 'IN_REVIEW' as a valid value for status in the paymentStatus object.
  • Added new parameters to paymentTransactionRequestV1:
    • bankToBankInstructions
    • debitPartyInstructions
    • intermediaryBank1
    • intermediaryBank2
    • intermediaryBank3
    • externalTemplateName
  • Added the clearingSystemReference in the paymentTransactionResponse object.
  • Added the following parameters to serviceErrorData:
    • receiversReference
    • debitAccountNumber
    • creditAccountNumber
  • Changed min/max limits for the following parameters:
    • requestReference and sendersReference changed from maxLength 35 to 32 with a minLength of 1.
    • Added parameter limits for originatorReference with a minLength of 1 and a maxLength of 35.
    • Added parameter limit for transferAmount with a maximum of 18 digits (which is like quintillion).
    • Added parameter limit for accountNumber in the party to a minLength of 1.
    • Added parameter limit for aba to a maxLength of 9 digits.
    • Added parameter limit for debitAccountNumber to a maxLength 34 characters.
HIGH
September 20231.1.5
  • Parameter description updates. This change is for technical content only. The code and operations of the API remain the same.
LOW
July 20231.1.3
  • Released on the Developer Portal.
 

Impact levels

  • LOW: This is a minor change or enhancement that does not alter the operations of the API. Upgrading to the latest specifications is preferable but not required.
  • MID: The previous API version is valid and operates, but does not contain latest enhancements. You need to update your specifications to get these enhancements.
  • HIGH: The previous API version is no longer operable. You must upgrade to the latest specifications to access and use this API product.

YAML file download

ACH Inquiry

clock 4-minute read calender 1.2.1 | updated Oct. 15, 2024

Get the status for your ACH transactions

SummaryEndpoint
Health checkget /accounts/transactions/v1/healthCheck
Get details about an ACH transaction with a PAR numberget /accounts/transactions/v1/ach/detail/{parNumber}
Search for ACH transactionspost /accounts/transactions/v1/ach/list

You can use the ACH Inquiry API to get the status for ACH transactions as they are received and processed by KeyBank.

The consolidation settlement type affect what information is returned. The ACHStatus field defines the status of the transaction as in progress (COLLECTED), processed (SETTLED), or returned (RETURNED).

  • For clients with a non-consolidated settlement, you can receive information about collected, settled, and returned transactions.
  • For clients with a consolidated settlement, you will only receive collected and returned transactions. SETTLED is not an available status for consolidated settlement.

PAR-don me

ACH inquiries require a parNumber or traceNumber for inquiries. Learn more in our ACH APIs User Guide.

get /accounts/transactions/v1/healthCheck

Verify you can connect to the API service. A bearer token is required.

 
NAMETYPEDESCRIPTION
StatusoptionalstringStatus of the health check response.
SourceoptionalstringSystem producing the health response. Genesis of the response could either be just from “gateway” or “roundtrip” from the farthest possible system involved in generating this response.
TimestampoptionalstringTimestamp when the health response is being returned by this service.
ClientIpoptionalstringIP of the client from which this request for health check is received by the gateway.
X-Forwarded-ForoptionalstringSequence of all the Ips of the systems involved between the client and the gateway.

Response example (200)

copylink
{
  "Status": "Ok",
  "Source": "Roundtrip",
  "Timestamp": "2022-09-15T04:49:03",
  "ClientIp": "156.77.111.28",
  "X-Forwarded-For": "[156.77.111.28]"
}

get /accounts/transactions/v1/ach/detail/{parNumber}

Use the PAR number to retrieve information about an ACH transaction.

path FIELDTYPEDESCRIPTION
parNumberrequiredstringThe unique PAR number assigned to the the transaction by the ACH product processor.
 
NAMETYPEDESCRIPTION
parNumberoptionalstringThe unique PAR number assigned to the the transaction by the ACH product processor.
transactionStatusoptionalstringThe status of the ACH transaction. Valid values: COLLECTED, RETURNED, SETTLED
traceNumberoptionalstringThe unique number for the transaction provided by the originator.
transactionAmountoptionalnumberThe dollar amount of the transaction.
settlementDateoptionalstringThe date the transaction settlement occurred. Format: YYYY-MM-DD
transactionCodeoptionalstringTwo-digit code identifying the account type at the receiving financial institution.
transactionCodeDescriptionoptionalstringDescription for the transaction code.
transactionDescriptionoptionalstringDescription about the purpose of the transaction.
authorizedCustomerNameoptionalstringAuthorized customer name
standardEntryClassCodeoptionalstringThe three-digit Standard Entry Class code based on Nacha rules.
standardEntryClassDescriptionoptionalstringThe description for the Nacha SEC code.
receivingAccountoptionalObjectAccountDetail
receivingPartyoptionalObjectPartyDetail
originatingAccountoptionalObjectAccountDetail
originatingPartyoptionalObjectPartyDetail
returnDateoptionalstringDate of the returned transaction to the ACH system. Format: YYYY-MM-DD
returnReasonCodeoptionalstringThe code associated with the reason for returning the ACH transaction. The code is the letter 'R' for reason followed by a two-digit numeric code. Format: R00
returnReasonDescriptionoptionalstringDescription as to why the ACH transaction is returned.
addendaCountoptionalintegerCount of addenda records.
notificationOfChangeAddendaCountoptionalintegerCount of change notifications for addenda records.
internationalAddendaCountoptionalintegerCount of international addenda records.
customDataoptionalstringThe values for custom data is defined by the client. This free-form text field can contain up to 500 alphanumeric characters. Custom information stays with the transaction through its lifecycle.
checkSerialNumberoptionalstringSerial number for the check converted to an ACH transaction.
transactionDirectionoptionalstringIndicates the direction of the transaction. Valid values: ORIGINATING ITEM, RECEIVING ITEM
addendaoptionalarrayAddendum
notificationOfChangeoptionalarrayNotificationOfChange

Response example (200)

copylink
{
    "parNumber": "22018007665985",
    "transactionStatus": "COLLECTED",
    "traceNumber": "000000000000000",
    "transactionAmount": 10.01,
    "settlementDate": "2021-03-08",
    "transactionCode": "22",
    "transactionCodeDescription": "Automated Deposit",
    "transactionDescription": "DEPOSIT",
    "authorizedCustomerName": "TEST CUSTOMER1",
    "standardEntryClassCode": "CCD",
    "standardEntryClassDescription": "Cash Concentration or Disbursement",
    "receivingAccount": {
        "accountNumber": "123456789012",
        "bankNumber": "0000",
        "routingNumber": "1234567890"
    },
    "receivingParty": {
        "customerIdentificationNumber": "099999999",
        "companyName": "MERCHANT",
        "customerName": "TEST MERCHANT"
    },
    "originatingAccount": {
        "accountNumber": "123456789012",
        "bankNumber": "0000",
        "routingNumber": "1234567890"
    },
    "originatingParty": {
        "customerIdentificationNumber": "1234567",
        "companyName": "COMPANY NAME 1",
        "customerName": "CUSTOMER NAME 1"
    },
    "returnDate": "2024-02-01",
    "returnReasonCode": "R02",
    "returnReasonDescription": "Account Closed",
    "addendaCount": 1,
    "notificationOfChangeAddendaCount": 1,
    "internationalAddendaCount": 0,
    "customData": "merchant:status",
    "checkSerialNumber": "4345",
    "transactionDirection": "Receiving Item",
    "addenda": [
        {
            "sequenceNumber": 1,
            "entryDetailSequenceNumber": "188",
            "paymentRelatedInformation": "Addenda Record (Applies to CCD, CTX, PPD, and WEB entries)"
        }
    ],
    "notificationOfChange": [
        {
            "changeCode": "C02",
            "changeDescription": "Incorrect transit\/routing number",
            "correctedData": "1234567890"
        }
    ]
}
NAMETYPEDESCRIPTION
parNumberoptionalstringThe unique PAR number assigned to the the transaction by the ACH product processor.
transactionStatusoptionalstringThe status of the ACH transaction. Valid values: COLLECTED, RETURNED, SETTLED
traceNumberoptionalstringThe unique number for the transaction provided by the originator.
transactionAmountoptionalnumberThe dollar amount of the transaction.
settlementDateoptionalstringThe date the transaction settlement occurred. Format: YYYY-MM-DD
transactionCodeoptionalstringTwo-digit code identifying the account type at the receiving financial institution.
transactionCodeDescriptionoptionalstringDescription for the transaction code.
transactionDescriptionoptionalstringDescription about the purpose of the transaction.
authorizedCustomerNameoptionalstringAuthorized customer name
standardEntryClassCodeoptionalstringThe three-digit Standard Entry Class code based on Nacha rules.
standardEntryClassDescriptionoptionalstringThe description for the Nacha SEC code.
receivingAccountoptionalObjectAccountDetail
receivingPartyoptionalObjectPartyDetail
originatingAccountoptionalObjectAccountDetail
originatingPartyoptionalObjectPartyDetail
returnDateoptionalstringDate of the returned transaction to the ACH system. Format: YYYY-MM-DD
returnReasonCodeoptionalstringThe code associated with the reason for returning the ACH transaction. The code is the letter 'R' for reason followed by a two-digit numeric code. Format: R00
returnReasonDescriptionoptionalstringDescription as to why the ACH transaction is returned.
addendaCountoptionalintegerCount of addenda records.
notificationOfChangeAddendaCountoptionalintegerCount of change notifications for addenda records.
internationalAddendaCountoptionalintegerCount of international addenda records.
customDataoptionalstringThe values for custom data is defined by the client. This free-form text field can contain up to 500 alphanumeric characters. Custom information stays with the transaction through its lifecycle.
checkSerialNumberoptionalstringSerial number for the check converted to an ACH transaction.
transactionDirectionoptionalstringIndicates the direction of the transaction. Valid values: ORIGINATING ITEM, RECEIVING ITEM
addendaoptionalarrayAddendum
notificationOfChangeoptionalarrayNotificationOfChange

Response example (200)

copylink
{
    "parNumber": "22018007665985",
    "transactionStatus": "COLLECTED",
    "traceNumber": "000000000000000",
    "transactionAmount": 10.01,
    "settlementDate": "2021-03-08",
    "transactionCode": "22",
    "transactionCodeDescription": "Automated Deposit",
    "transactionDescription": "DEPOSIT",
    "authorizedCustomerName": "TEST CUSTOMER1",
    "standardEntryClassCode": "CCD",
    "standardEntryClassDescription": "Cash Concentration or Disbursement",
    "receivingAccount": {
        "accountNumber": "123456789012",
        "bankNumber": "0000",
        "routingNumber": "1234567890"
    },
    "receivingParty": {
        "customerIdentificationNumber": "099999999",
        "companyName": "MERCHANT",
        "customerName": "TEST MERCHANT"
    },
    "originatingAccount": {
        "accountNumber": "123456789012",
        "bankNumber": "0000",
        "routingNumber": "1234567890"
    },
    "originatingParty": {
        "customerIdentificationNumber": "1234567",
        "companyName": "COMPANY NAME 1",
        "customerName": "CUSTOMER NAME 1"
    },
    "returnDate": "2024-02-01",
    "returnReasonCode": "R02",
    "returnReasonDescription": "Account Closed",
    "addendaCount": 1,
    "notificationOfChangeAddendaCount": 1,
    "internationalAddendaCount": 0,
    "customData": "merchant:status",
    "checkSerialNumber": "4345",
    "transactionDirection": "Receiving Item",
    "addenda": [
        {
            "sequenceNumber": 1,
            "entryDetailSequenceNumber": "188",
            "paymentRelatedInformation": "Addenda Record (Applies to CCD, CTX, PPD, and WEB entries)"
        }
    ],
    "notificationOfChange": [
        {
            "changeCode": "C02",
            "changeDescription": "Incorrect transit\/routing number",
            "correctedData": "1234567890"
        }
    ]
}

post /accounts/transactions/v1/ach/list

Search for ACH transactions by passing certain search parameters. With ACH transactions, each status point has a start and end date. If you search using the fromDate and toDate parameters, use the dateSearchType to identify if it is the start and end date for when the transaction was collected, returned, or settled. If you leave the dateSearchType field blank, the request only searches the date range for collected transactions.

NAMETYPEDESCRIPTION
accountNumberrequiredstringThe bank account number. This field cannot exceed 16 characters.
dateSearchTypeoptionalstringEach ACH transaction status has an associated date range. Indicate the specific transaction date set to search. If left blank, the search defaults to collected transaction dates. Valid values: COLLECTED, RETURNED, SETTLED
fromDateoptionalstringStart date for the date range. This date must be the current date or prior to the current date. Transaction data can be recalled within 180 days of the current date. Format: YYYY-MM-DD
toDateoptionalstringEnd date for the date range. This date can be the current day or a later date from the start date (fromDate). The date range should not exceed 31 days. Format: YYYY-MM-DD
minimumAmountoptionalstringThe minimum dollar amount of the transaction. This amount must be less than or equal to the maximum amount. Leave blank or enter zero for no minimum amount.
maximumAmountoptionalstringThe maximum dollar amount of the transaction. This amount must be greater than or equal to the minimum amount. Leave blank to retrieve all amounts. This amount cannot exceed one billion dollars.
traceNumberoptionalstringThe unique number for the transaction provided by the originator.
pageNumberoptionalstringThe number of the page being viewed. This number must be greater than or equal to 1.
pageSizeoptionalstringThe total number of pages returned. This number must be greater than or equal to 1 and cannot exceed 1000.

Request example

copylink
{
  "accountNumber": "3123456789",
  "dateSearchType": "COLLECTED",
  "fromDate": 1706745600,
  "toDate": 1706745600,
  "minimumAmount": 100,
  "maximumAmount": 75020.5,
  "traceNumber": "041001030016002",
  "pageNumber": 1,
  "pageSize": 150
 }
NAMETYPEDESCRIPTION
transactionsoptionalstringAchListTransaction
metadataoptionalstringMetadata

Response example (200)

copylink
{
  "transactions": [{
    "parNumber": "22018007665985",
    "transactionStatus": "COLLECTED",
    "traceNumber": "000000000000000",
    "transactionAmount": 10.01,
    "settlementDate": "2021-03-08",
    "transactionCode": "22",
    "authorizedCustomerName": "TEST CUSTOMER1",
    "standardEntryClassCode": "CCD",
    "receivingAccount": {
      "accountNumber": "123456789012"
      },    
    "receivingParty": {
      "customerIdentificationNumber": "099999999",
      "companyName": "MERCHANT"
      },
    "originatingAccount": {
      "accountNumber": "123456789012"
      },
    "originatingParty": {
      "customerIdentificationNumber": "1234567",
      "companyName": "COMPANY NAME 1"
      },
    "returnDate": "2024-02-01",
    "returnReasonCode": "R02",
    "returnReasonDescription": "Account Closed",
    "addendaCount": 1,
    "notificationOfChangeAddendaCount": 1,
    "internationalAddendaCount": 0
    }
  ],
    "metadata": {
      "messages": [{
        "code": "099",
        "message": "Search results match the criteria"
          }    
    ],
    "page": {
    "pageNumber": 1,
    "pageSize": 10,
    "totalPages": 10,
    "totalRecords": 28,
    "lastPage": true
    }
    }    
    }
NAMETYPEDESCRIPTION
metadataoptionalstringMetadata

Response example (400)

copylink
{
  "metadata": {
    "messages": [{
      "code": "001",
      "message": "There are no transactions that match the parNumber."
     }  
  ],
  "page": {
    "pageNumber": 1,
    "pageSize": 1,
    "totalPages": 1,
    "totalRecords": 0,
    "lastPage": false
   }
  }
 }
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError
NAMETYPEDESCRIPTION
ConnectErroroptionalstringAPI connectivity error information, if available.
NAMETYPEDESCRIPTION
getACHReturnTransactionsResponseoptionalObjectachReturnTransactionsResponse
NAMETYPEDESCRIPTION
returnTransactionParNumberoptionalstringThe unique PAR number assigned to the the transaction by the ACH product processor.
sourceBankNumberoptionalstringOriginating entry bank number
sourceAccountNumberoptionalstringOriginating account number
sourceTransactionRecordNumberoptionalstringOriginating record number for the transaction
sourceSysCodeoptionalstringDo not use. This field is for internal purpose only.
sourceSysOfRecordCodeoptionalstringDo not use. This field is for internal purpose only.
snapshotDateoptionalstringThis field is for internal purpose only.
originalACHTransactionParNumberoptionalstringThe assigned PAR number for the original ACH transaction.
originalTransactionProcessDateoptionalstringDate the transaction is processed. Format: YYYY-MM-DD
originalTransactionProcessTimeoptionalstringTime the transaction is processed in 24-hour time. Format: HHMMSS
originalTransactionProcessTimestampoptionalstringThe date and time the transaction is processed. Format: YYYY-MM-DD HH:MM:SS
originatingReceiverCodeoptionalstringTwo-character code that identifies the transaction type as originating (O) or receiving (R) and if the transaction is incoming (I) or outgoing (O). Codes can be OI, OO, RI, or RO.
originatingReceiverDescriptionoptionalstringDescription for the returned originating receiver code.
transactionCodeoptionalstringTwo-digit code identifying the account type at the receiving financial institution.
transactionCodeDescriptionoptionalstringDescription for the transaction code.
transactionFlowTypeCodeoptionalstringIdentifies if transaction is intrabank (within a single financial institution) or interbank (between two or more banks). Valid values: INTRA, INTER
transactionFlowTypeDescriptionoptionalstringDescription for the transaction flow type code.
transactionAmountoptionalstringThe dollar amount of the transaction.
transactionDescription1optionalstringA free form text field that provides the receiver with a description about the purpose of the transaction.
transactionDescription2optionalstringAdditional transaction description information.
creditOrDebitCodeoptionalstringIdentifies the transaction type as credit or debit. To get both credit and debit transactions, leave this parameter blank. Valid values: C, D.
sourceTransactionCreatedDateoptionalstringDate when the user created the ACH transaction. Format: YYYY-MM-DD
sourceTransactionCreatedTimeoptionalstringTime when the user created the ACH transaction. The time format uses the 24-hour clock. Format: HHMM
sourceTransactionCreatedTimestampoptionalstringThe date and time that the ACH transaction was created. Format: YYYY-MM-DD HH:MM:SS
sourceTransactionProcessDateoptionalstringDate when the transaction was collected by the ACH product processor. Format: YYYY-MM-DD
sourceTransactionProcessTimeoptionalstringTime when the transaction was collected by the ACH product processor. The time format uses the 24-hour clock. Format: HHMMSS
sourceTransactionProcessTimestampoptionalstringThe date and time the ACH transaction was collected by the ACH product processor. Format: YYYY-MM-DD HH:MM:SS
inboundCollectionWindowoptionalstringThe time window when the transaction collection is processed. The time format uses the 24-hour clock. Format: HHMM
outboundCollectionWindowoptionalstringThe outbound processing window for the transaction collection. The time format uses the 24-hour clock. Format: HHMM
sourceTransactionSettledDateoptionalstringDate when the transaction is settled. Format: YYYY-MM-DD
sourceTransactionSettledTimeoptionalstringThe time window when the transaction is settled. The time format uses the 24-hour clock. Format: HHMM
sourceTransactionSettledTimestampoptionalstringThe date and time the ACH transaction is settled. Format: YYYY-MM-DD HH:MM:SS
receivingAccountNumberoptionalstringAccount number of the person or institution receiving the funds.
receivingCustIdentificationNumberoptionalstringThe customer identification number for the person receiving the transaction.
receivingCustomerNameoptionalstringCustomer name of the person receiving the funds.
receivingCompanyNameoptionalstringCompany name of the institution getting the funds.
receivingFIBankNumberoptionalstringBank number for the financial institution receiving the funds.
receivingFIRoutingNumberoptionalstringRouting number for the receiving financial institution.
originatingAccountNumberoptionalstringAccount number of the ACH transaction originator.
originatingCustIdentificationNumberoptionalstringOriginating customer identification number
originatingCustomerNameoptionalstringOriginating customer name
originatingCompanyNameoptionalstringOriginating company name
originatingFIBankNumberoptionalstringOriginating financial institution bank number
originatingFIRoutingNumberoptionalstringOriginating financial institution routing number
authorizedCustomerNameoptionalstringAuthorized customer name
immediateDestinationIDoptionalstringThe ID indicates the next location of the file once it leaves KeyBank.
returnReleaseDateoptionalstringRelease date of the returned transaction to the ACH system. Format: YYYY-MM-DD
returnReasonCodeoptionalstringThe code associated with the reason for returning the ACH transaction. The code is the letter 'R' for reason followed by a two-digit numeric code. Format: R00
returnReasonDescriptionoptionalstringDescription as to why the ACH transaction is returned.
checkSerialNumberoptionalstringSerial number for the check converted to an ACH transaction.
nachaBatchNumberoptionalstringThe sequential number of the Nacha batch job.
nachaFileHeadRefererenceNumberoptionalstringThe Nacha transaction file reference number.
nachaSecondarySecCodeoptionalstringThe secondary Nacha standard entry class (SEC) code for the transaction, if applicable. Valid values: CCD, CTX, PPD, TEL, WEB.
nachaSecondarySecDescriptionoptionalstringThe description for the secondary Nacha SEC code.
traceIdoptionalstringThe trace ID number from the source application.
postCompanyCostcontrolNumberoptionalstringDo not use. This field is for internal purpose only.
glAccountNumberoptionalstringDo not use. This field is for internal purpose only.
collectionPointoptionalstringTransaction collection point
collectionApplicationTypeCodeoptionalstringDo not use. This field is for internal purpose only.
collectionApplicationTypeDescriptionoptionalstringDo not use. This field is for internal purpose only.
batchIDoptionalstringThe identification number for the batch job.
customDataoptionalstringCustom data from the originating payment request.
NAMETYPEDESCRIPTION
errorCodeoptionalstringBusiness error code
errorDescriptionoptionalstringBusiness error description
NAMETYPEDESCRIPTION
responseHeaderrequiredObjectresponseHeader
ACHReturnTransactionoptionalarrayACHReturnTransaction
errorResponseoptionalObjecterrorResponse
NAMETYPEDESCRIPTION
errorCodeoptionalstringSystem error code
errorDescriptionoptionalstringSystem error description
NAMETYPEDESCRIPTION
getACHReturnTransactionsRequestoptionalObjectgetACHReturnTransactionsRequest
NAMETYPEDESCRIPTION
accountNumberrequiredarrayOne or more bank account numbers. To look up multiple accounts, separate the account numbers with a comma. This field cannot exceed than 16 characters.
fromDaterequiredstringThe start date of a date range for submitted transactions. This date should be less than or equal to the current date. Date range cannot exceed more than one year. Format: YYYY-MM-DD
toDaterequiredstringThe end date of a date range for the submitted transactions. The date must be later than the start date (fromDate). Date range cannot exceed more than one year. Format: YYYY-MM-DD
creditOrDebitCodeoptionalstringIdentifies the transaction type as credit or debit. To get both credit and debit transactions, leave this parameter blank. Valid values: C, D.
fromAmountoptionalstringTransaction amount lower limit value to be searched.
toAmountoptionalstringTransaction amount upper limit value to be searched.
parNumberoptionalstringThe PAR (Payment Assigned Reference) number is a unique identifier assigned by the ACH Product Processor. Use a comma to separate multiple PAR numbers.
detailsFlagrequiredstringReturn a detailed response (Y) or a brief response (N). Valid values: Y, N
receivingCustIdentificationNumberoptionalstringThe unique ID number associated with the payment recipient. This number is defined in the originating payment request.
startRowIndexoptionalstringPagination parameter that indicates the starting count available for the records. If this parameter is not provided, value will default to 1.
endRowIndexoptionalstringPagination parameter that indicates the last count available for the records. If this parameter is not provided, value will default to 1000. The request can't exceed more than 1000 records from the startRowIndex.
NAMETYPEDESCRIPTION
statusrequiredstringIndicates whether the result was successful or not. Valid values: accepted, failure
statusDescriptionrequiredstringDescription of the status
retrivedRowsoptionalstringTotal number of transactions retrieved.
totalRowsoptionalstringTotal number of transactions matching the requested criteria.
dataLoadDateoptionalstringIndicates the date that the requested data was loaded. Format: YYYY-MM-DD
NAMETYPEDESCRIPTION
businessFaultoptionalarraybusinessFault
systemFaultoptionalarraysystemFault
NAMETYPEDESCRIPTION
getACHCollectedTransactionsRequestoptionalObjectgetACHCollectedTransactionsRequest
NAMETYPEDESCRIPTION
accountNumberrequiredarrayOne or more bank account numbers. To look up multiple accounts, separate the account numbers with a comma. This field cannot exceed than 16 characters.
fromDaterequiredstringThe start date of a date range for submitted transactions. This date should be less than or equal to the current date. Date range cannot exceed more than one year. Format: YYYY-MM-DD
toDaterequiredstringThe end date of a date range for the submitted transactions. The date must be later than the start date (fromDate). Date range cannot exceed more than one year. Format: YYYY-MM-DD
creditOrDebitCodeoptionalstringIdentifies the transaction type as credit or debit. To get both credit and debit transactions, leave this parameter blank. Valid values: C, D.
fromAmountoptionalstringTransaction amount lower limit value to be searched.
toAmountoptionalstringTransaction amount upper limit value to be searched.
addendaFlagrequiredstringRetrieves addenda information if set to Y for yes. Valid values: Y, N
secCodeoptionalstringThe three-digit Standard Entry Class code based on Nacha rules. Valid values: CCD, CTX, PPD, TEL, WEB
traceNumberoptionalstringThe unique number for the transaction provided by the originator. Multiple trace numbers can be comma separated.
parNumberoptionalstringThe PAR (Payment Assigned Reference) number is a unique identifier assigned by the ACH Product Processor. Use a comma to separate multiple PAR numbers.
detailsFlagrequiredstringReturn a detailed response (Y) or a brief response (N). Valid values: Y, N
receivingCustIdentificationNumberoptionalstringThe unique ID number associated with the payment recipient. This number is defined in the originating payment request.
startRowIndexoptionalstringPagination parameter that indicates the starting count available for the records. If this parameter is not provided, value will default to 1.
endRowIndexoptionalstringPagination parameter that indicates the last count available for the records. If this parameter is not provided, value will default to 1000. The request can't exceed more than 1000 records from the startRowIndex.
NAMETYPEDESCRIPTION
getACHStatusInquiryRequestoptionalObjectgetACHStatusInquiryParRequest
NAMETYPEDESCRIPTION
getACHStatusInquiryRequestoptionalObjectgetACHStatusInquiryTraceNumberRequest
NAMETYPEDESCRIPTION
accountNumberrequiredarrayOne or more bank account numbers. To look up multiple accounts, separate the account numbers with a comma. This field cannot exceed than 16 characters.
parNumberrequiredarrayThe PAR (Payment Assigned Reference) number is a unique identifier assigned by the ACH Product Processor. Use a comma to separate multiple PAR numbers.
traceNumberoptionalarrayThe unique number for the transaction provided by the originator. Multiple trace numbers can be comma separated.
receivingCustIdentificationNumberoptionalstringThe unique ID number associated with the payment recipient. This number is defined in the originating payment request.
startRowIndexoptionalstringPagination parameter that indicates the starting count available for the records. If this parameter is not provided, value will default to 1.
endRowIndexoptionalstringPagination parameter that indicates the last count available for the records. If this parameter is not provided, value will default to 1000. The request can't exceed more than 1000 records from the startRowIndex.
NAMETYPEDESCRIPTION
accountNumberrequiredarrayOne or more bank account numbers. To look up multiple accounts, separate the account numbers with a comma. This field cannot exceed than 16 characters.
traceNumberrequiredarrayThe unique number for the transaction provided by the originator. Multiple trace numbers can be comma separated.
parNumberoptionalarrayThe PAR (Payment Assigned Reference) number is a unique identifier assigned by the ACH Product Processor. Use a comma to separate multiple PAR numbers.
receivingCustIdentificationNumberoptionalstringThe unique ID number associated with the payment recipient. This number is defined in the originating payment request.
startRowIndexoptionalstringPagination parameter that indicates the starting count available for the records. If this parameter is not provided, value will default to 1.
endRowIndexoptionalstringThis is a pagination field. It indicates the last count available for the records. If the field is not provided, value will default to 1000. The request can't exceed more than 1000 records from the startRowIndex.
NAMETYPEDESCRIPTION
getACHPostedTransactionsRequestoptionalObjectgetACHPostedTransactionsRequest
NAMETYPEDESCRIPTION
accountNumberrequiredarrayOne or more bank account numbers. To look up multiple accounts, separate the account numbers with a comma. This field cannot exceed than 16 characters.
fromDaterequiredstringThe start date of a date range for submitted transactions. This date should be less than or equal to the current date. Date range cannot exceed more than one year. Format: YYYY-MM-DD
toDaterequiredstringThe end date of a date range for the submitted transactions. The date must be later than the start date (fromDate). Date range cannot exceed more than one year. Format: YYYY-MM-DD
creditOrDebitCodeoptionalstringIdentifies the transaction type as credit or debit. To get both credit and debit transactions, leave this parameter blank. Valid values: C, D.
fromAmountoptionalstringTransaction amount lower limit value to be searched.
toAmountoptionalstringTransaction amount upper limit value to be searched.
parNumberoptionalstringThe PAR (Payment Assigned Reference) number is a unique identifier assigned by the ACH Product Processor. Use a comma to separate multiple PAR numbers.
receivingCustIdentificationNumberoptionalstringThe unique ID number associated with the payment recipient. This number is defined in the originating payment request.
startRowIndexoptionalstringPagination parameter that indicates the starting count available for the records. If this parameter is not provided, value will default to 1.
endRowIndexoptionalstringPagination parameter that indicates the last count available for the records. If this parameter is not provided, value will default to 1000. The request can't exceed more than 1000 records from the startRowIndex.
NAMETYPEDESCRIPTION
getACHCollectedTransactionsResponserequiredObjectgetACHCollectedTransactionsResponse
NAMETYPEDESCRIPTION
responseHeaderrequiredObjectresponseHeader
ACHCollectedTransactionoptionalarrayachCollectedTransactionsResult
errorResponseoptionalObjecterrorResponse
NAMETYPEDESCRIPTION
transactionParNumberoptionalstringThe unique PAR number assigned to the transaction by the ACH product processor.
sourceBankNumberoptionalstringOriginating entry bank number
sourceAccountNumberoptionalstringOriginating account number.
origAcctSuffixoptionalstringDo not use. This field is for internal purpose only.
sourceSysCodeoptionalstringDo not use. This field is for internal purpose only.
sourceSysOfRecordCodeoptionalstringDo not use. This field is for internal purpose only.
snapshotDateoptionalstringThis field is for internal purpose only.
transactionCodeoptionalstringTwo-digit code identifying the account type at the receiving financial institution.
transactionCodeDescriptionoptionalstringDescription for the transaction code.
transactionFlowTypeCodeoptionalstringIdentifies if transaction is intrabank (within a single financial institution) or interbank (between two or more banks). Valid values: INTRA, INTER
transactionFlowTypeDescriptionoptionalstringDescription for the transaction flow type code.
originatingReceiverCodeoptionalstringTwo-character code that identifies the transaction type as originating (O) or receiving (R) and if the transaction is incoming (I) or outgoing (O). Codes can be OI, OO, RI, or RO.
transactionAmountoptionalstringThe dollar amount of the transaction.
transactionDescriptionoptionalstringA free form text field that provides the receiver with a description about the purpose of the transaction.
creditOrDebitCodeoptionalstringIdentifies the transaction type as credit or debit. To get both credit and debit transactions, leave this parameter blank. Valid values: C, D.
inboundCollectionWindowoptionalstringThe time window when the transaction collection is processed. The time format uses the 24-hour clock. Format: HHMM
sourceTransactionProcessDateoptionalstringDate when the transaction was collected by the ACH product processor. Format: YYYY-MM-DD
sourceTransactionProcessTimeoptionalstringTime when the transaction was collected by the ACH product processor. The time format uses the 24-hour clock. Format: HHMMSS
sourceTransactionProcessTimestampoptionalstringThe date and time the ACH transaction was collected by the ACH product processor. Format: YYYY-MM-DD HH:MM:SS
sourceTransactionSettledDateoptionalstringDate when the transaction is settled. Format: YYYY-MM-DD
sourceTransactionSettledTimeoptionalstringThe time window when the transaction is settled. The time format uses the 24-hour clock. Format: HHMM
sourceTransactionSettledTimestampoptionalstringThe date and time the ACH transaction is settled. Format: YYYY-MM-DD HH:MM:SS
sourceTransactionPostDateoptionalstringDate the ACH transaction is posted. Format: YYYY-MM-DD
sourceTransactionPostTimeoptionalstringTime the ACH transaction is posted. The time format uses the 24-hour clock. Format: HHMMSS
sourceTransactionPostTimestampoptionalstringThe date and time the transaction is posted. Format: YYYY-MM-DD HH:MM:SS
deliveryStatusCodeoptionalstringThe code abbreviation for the delivery status of the ACH transaction.
deliveryStatusDescriptionoptionalstringThe delivery status description for the abbreviated code.
receivingAccountNumberoptionalstringAccount number of the person or institution receiving the funds.
receivingFIBankNumberoptionalstringBank number for the financial institution receiving the funds.
receivingFIRoutingNumberoptionalstringRouting number for the receiving financial institution.
receivingCustIdentificationNumberoptionalstringThe customer identification number for the person receiving the transaction.
receivingCustomerNameoptionalstringCustomer name of the person receiving the funds.
receivingCompanyNameoptionalstringCompany name of the institution getting the funds.
originatingAccountNumberoptionalstringAccount number of the ACH transaction originator.
originatingFIBankNumberoptionalstringOriginating financial institution bank number
originatingFIRoutingNumberoptionalstringOriginating financial institution routing number
originatingCustIdentificationNumberoptionalstringOriginating customer identification number
originatingCompanyNameoptionalstringOriginating company name
originatingCustomerNameoptionalstringOriginating customer name
checkSerialNumberoptionalstringSerial number for the check converted to an ACH transaction.
nachaBatchNumberoptionalstringThe sequential number of the Nacha batch job.
nachaFileHeadRefererenceNumberoptionalstringThe Nacha transaction file reference number.
nachaSecCodeoptionalstringThe Nacha standard entry class (SEC) code for the transaction. Valid values: CCD, CTX, PPD, TEL WEB
nachaSecDescriptionoptionalstringThe description for the Nacha SEC code.
traceNumberoptionalstringThe unique number for the transaction provided by the originator. Multiple trace numbers can be comma separated.
postCompanyCostcontrolNumberoptionalstringDo not use. This field is for internal purpose only.
glAccountNumberoptionalstringDo not use. This field is for internal purpose only.
addendaPresentFlagoptionalstringIndicates if there are addenda records or not.
addendaRecordNumberoptionalstringNumber of addenda records.
originatingReceiverDescriptionoptionalstringDescription for the collected originating receiver code.
goRoutingNumberoptionalstringGateway operator routing number for international transactions.
authorizedCustomerNameoptionalstringAuthorized customer name
iatFlagoptionalstringInternational transaction identifier
collectionPointoptionalstringTransaction collection point
batchIdoptionalstringThe identification number for the batch job.
transactionTraceIdoptionalstringThe trace ID number from the source application.
addendaInformationoptionalObjectaddendaInformation
customDataoptionalstringCustom data from the originating payment request.
NAMETYPEDESCRIPTION
getACHPostedTransactionsResponserequiredObjectgetACHPostedTransactionsResponse
NAMETYPEDESCRIPTION
responseHeaderrequiredObjectresponseHeader
ACHPostedTransactionoptionalarrayachPostedTransactionsResult
errorResponseoptionalObjecterrorResponse
NAMETYPEDESCRIPTION
snapshotDateoptionalstringDo not use. This field is for internal purpose only.
processDateoptionalstringDate the transaction was processed. Format: YYYY-MM-DD
sourceBankNumberoptionalstringOriginating entry bank number
sourceAccountNumberoptionalstringOriginating account number
transactionParNumberoptionalstringThe unique PAR number assigned to the the transaction by the ACH product processor.
transactionAmountoptionalstringThe dollar amount of the transaction.
creditOrDebitCodeoptionalstringIdentifies the transaction type as credit or debit. To get both credit and debit transactions, leave this parameter blank. Valid values: C, D.
hoganTransactionCodeoptionalstringThe KeyBank Hogan code for the transaction.
baiCodeoptionalstringThe three-digit BAI (Bank Administration Institute) code for the transaction.
transactionCodeoptionalstringTwo-digit code identifying the account type at the receiving financial institution.
regulationDescription1optionalstringRegulation description for the transaction.
regulationDescription2optionalstringAdditional regulation information for the transaction.
regulationDescription3optionalstringAdditional regulation information for the transaction.
regulationDescription4optionalstringAdditional regulation information for the transaction.
postingWindowoptionalstringThe time window when the transaction collection is posted. The time format uses the 24-hour clock. Format: HHMM
batchIDoptionalstringThe identification number for the batch job.
customDataoptionalstringCustom data from the originating payment request.
NAMETYPEDESCRIPTION
responseHeaderrequiredObjectresponseHeader
ACHTransactionStatusoptionalarrayachStatusInquiryResult
errorResponseoptionalObjecterrorResponse
NAMETYPEDESCRIPTION
ACHStatusoptionalstringThe status informs you if the ACH transaction has been collected or returned. Valid values: COLLECTED or RETURNED
ACHCollectedTransactionoptionalObjectachCollectedTransactionsStatusResult
ACHPostedTransactionoptionalObjectachPostedTransactionsStatusResult
ACHReturnTransactionoptionalObjectachReturnTransactionsStatusResult
NAMETYPEDESCRIPTION
transactionParNumberoptionalstringThe unique PAR number assigned to the the transaction by the ACH product processor.
sourceBankNumberoptionalstringOriginating entry bank number
sourceAccountNumberoptionalstringOriginating account number.
transactionCodeoptionalstringTwo-digit code identifying the account type at the receiving financial institution.
transactionAmountoptionalstringThe dollar amount of the transaction.
creditOrDebitCodeoptionalstringIdentifies the transaction type as credit or debit. To get both credit and debit transactions, leave this parameter blank. Valid values: C, D.
sourceTransactionProcessDateoptionalstringDate when the transaction was collected by the ACH product processor. Format: YYYY-MM-DD
sourceTransactionProcessTimeoptionalstringTime when the transaction was collected by the ACH product processor. The time format uses the 24-hour clock. Format: HHMMSS
sourceTransactionProcessTimestampoptionalstringThe date and time the ACH transaction was collected by the ACH product processor. Format: YYYY-MM-DD HH:MM:SS
sourceTransactionSettledDateoptionalstringDate when the transaction is settled. Format: YYYY-MM-DD
sourceTransactionSettledTimeoptionalstringThe time window when the transaction is settled. The time format uses the 24-hour clock. Format: HHMM
sourceTransactionSettledTimestampoptionalstringThe date and time the ACH transaction is settled. Format: YYYY-MM-DD HH:MM:SS
sourceTransactionPostDateoptionalstringDate the ACH transaction is posted. Format: YYYY-MM-DD
sourceTransactionPostTimeoptionalstringTime the ACH transaction is posted. The time format uses the 24-hour clock. Format: HHMMSS
sourceTransactionPostTimestampoptionalstringThe date and time the transaction is posted. Format: YYYY-MM-DD HH:MM:SS
receivingCustomerNameoptionalstringCustomer name of the person receiving the funds.
receivingCompanyNameoptionalstringCompany name of the institution getting the funds.
originatingCompanyNameoptionalstringOriginating company name
originatingCustomerNameoptionalstringOriginating customer name
nachaSecCodeoptionalstringThe Nacha standard entry class (SEC) code for the transaction. Valid values: CCD, CTX, PPD, TEL, WEB
traceNumberoptionalstringThe unique number for the transaction provided by the originator. Multiple trace numbers can be comma separated.
transactionDescriptionoptionalstringA free form text field that provides the receiver with a description about the purpose of the transaction.
receivingCustIdentificationNumberrequiredstringThe unique ID number associated with the payment recipient. This number is defined in the originating payment request.
NAMETYPEDESCRIPTION
processDateoptionalstringDate the transaction was processed. Format: YYYY-MM-DD
transactionParNumberoptionalstringThe unique PAR number assigned to the the transaction by the ACH product processor.
transactionAmountoptionalstringThe dollar amount of the transaction.
creditOrDebitCodeoptionalstringIdentifies the transaction type as credit or debit. To get both credit and debit transactions, leave this parameter blank. Valid values: C, D.
baiCodeoptionalstringThe three-digit BAI (Bank Administration Institute) code for the transaction.
transactionCodeoptionalstringTwo-digit code identifying the account type at the receiving financial institution.
regulationDescription1optionalstringRegulation description for the transaction.
regulationDescription2optionalstringAdditional regulation information for the transaction.
regulationDescription3optionalstringAdditional regulation information for the transaction.
regulationDescription4optionalstringAdditional regulation information for the transaction.
postingWindowoptionalstringThe time window when the transaction collection is posted. The time format uses the 24-hour clock. Format: HHMM
NAMETYPEDESCRIPTION
transactionParNumberoptionalstringThe unique PAR number assigned to the transaction by the ACH product processor.
transactionCodeoptionalstringTwo digit code identifying the account type at the receiving financial institution.
transactionCodeDescriptionoptionalstringDescription for the transaction code.
transactionAmountoptionalstringThe dollar amount of the transaction.
transactionDescription1optionalstringA free form text field that provides the receiver with a description about the purpose of the transaction.
transactionDescription2optionalstringAdditional transaction description information.
creditOrDebitCodeoptionalstringIdentifies the transaction type as credit or debit. To get both credit and debit transactions, leave this parameter blank. Valid values: C, D.
returnReleaseDateoptionalstringRelease date of the returned transaction to the ACH system. Format: YYYY-MM-DD
returnReasonCodeoptionalstringThe code associated with the reason for returning the ACH transaction. The code is the letter 'R' for reason followed by a two-digit numeric code. Format: R00
returnReasonDescriptionoptionalstringDescription as to why the ACH transaction is returned.
NAMETYPEDESCRIPTION
iatAddendumoptionalObjectiatAddendum
nonIatAddendumoptionalObjectnonIatAddendum
nocAddendumoptionalObjectnocAddendum
NAMETYPEDESCRIPTION
addendaParNumberoptionalstringThe unique PAR number assigned to the addendum by the ACH product processor.
snapshotDateoptionalstringDo not use. This field is for internal purpose only.
transactionParNumberoptionalstringThe unique PAR number assigned to the transaction by the ACH product processor.
payInformationoptionalstringAdditional information about the remittance payment.
addendaTypeCodeoptionalstringTwo-digit code identifying the type of information.
addendaTypeDescriptionoptionalstringDescription of the addenda type associated with the code.
transactionTypeCodeoptionalstringThis field contains a three-character code used to identify the type of transaction.
transactionTypeDescroptionalstringThis field contains description of the the transaction type code
originatingFiIdentificationNumberCodeoptionalstringOriginating financial institution code
originatingFiNameoptionalstringOriginating financial institution name
originatingFiIdentificationNumberoptionalstringOriginating financial institution identification number
originatingFiBranchCountryCodeoptionalstringOriginating company country branch code
originatingCompanyNameoptionalstringOriginating company name
originatingCompanyAddress1optionalstringOriginating bank physical street address, line 1
originatingCompanyAddress2optionalstringOriginating bank physical street address, line 2
originatingCompanyCityStateProvinceoptionalstringOriginator city and state
originatingCompanyCountryPostalCodeoptionalstringOriginator country and postal code
receivingFiNameoptionalstringReceiving financial institution name
receivingFiIdentificationNumberoptionalstringReceiving financial institution identification number
receivingFiIdentificationNumberCodeoptionalstringReceiving financial institution code
receivingFiBranchCountryCodeoptionalstringReceiving company country branch code
receivingCustomerNameoptionalstringReceiving customer name
receivingCompanyNameoptionalstringReceiving company name
receivingCompanyNumberoptionalstringReceiving company number
receivingCompanyAddress1optionalstringReceiving company physical address, line 1
receivingCompanyAddress2optionalstringReceiving company physical address, line 2
receivingCompanyCityStateProvinceoptionalstringReceiving company city and state
receivingCompanyCountryPostalCodeoptionalstringReceiving company country and postal code
foreignCorrespondentFiIdNumberCodeoptionalstringForeign correspondent bank identification number qualifier
foreignCorrespondentFiNameoptionalstringCorrespondent bank name
foreignCorrespondentFiBRCountryCodeoptionalstringCorrespondent bank country code
foreignCorrespondentBankIdNumberoptionalstringCorrespondent bank identifier
foreignOriginatingAmountoptionalstringForeign payment amount
foreignOriginatingCurrencyCodeoptionalstringForeign currency code
foreignTraceNumberoptionalstringIdentifier number of the foreign transaction.
addendaSequenceNumberoptionalstringThe sequence number of the addenda. The number cannot exceed 4 digits.
entryDetailSequenceNumberoptionalstringSequence number of the entry detail
operatorCommandFlagoptionalstringOperator command flag
NAMETYPEDESCRIPTION
addendaParNumberoptionalstringThe unique PAR number assigned to the addendum by the ACH product processor.
snapshotDateoptionalstringDo not use. This field is for internal purpose only.
transactionParNumberoptionalstringThe unique PAR number assigned to the the transaction by the ACH product processor.
transactionSerialNumberoptionalstringSerial number for the transaction
transactionDescriptionoptionalstringA free form text field that provides the receiver with a description about the purpose of the transaction.
sourceTransactionCreatedDateoptionalstringDate when the user created the ACH transaction. Format: YYYY-MM-DD
sourceTransactionCreatedTimeoptionalstringTime when the user created the ACH transaction. The time format uses the 24-hour clock. Format: HHMM
payInformationoptionalstringAdditional information associated with the payment transaction.
addendaTypeCodeoptionalstringTwo-digit code identifying the type of information.
addendaTypeDescriptionoptionalstringDescription of the addenda type associated with the code.
entryDetailSequenceNumberoptionalstringSequence number of the entry detail
referenceInformation1optionalstringFree form text field with additional reference information.
referenceInformtion2optionalstringFree form text field with additional reference information.
networkIdentificationCodeoptionalstringNetwork identification code (NIC)
terminalIdentificationCodeoptionalstringTerminal identification code
terminalCityoptionalstringCity location of the terminal
terminalStateoptionalstringState location of the terminal
keyBankTransactionReferenceNumberoptionalstringUnique ACH transaction identifier created by KeyBank.
operatorCommandFlagoptionalstringOperator command flag
NAMETYPEDESCRIPTION
addendaParNumberoptionalstringThe unique PAR number assigned to the addendum by the ACH product processor.
snapshotDateoptionalstringDo not use. This field is for internal purpose only.
transactionParNumberoptionalstringThe unique PAR number assigned to the the transaction by the ACH product processor.
addendaTypeCodeoptionalstringTwo-digit code identifying the type of information.
addendaTypeDescriptionoptionalstringDescription of the addenda type associated with the code.
changeCodeoptionalstringThe three-character change code begins with the letter 'C'. This code is applied to all NOCs to indicate the information that is being changed.
changeDescriptionoptionalstringThe description associated with the change code.
receivingFiIdentificationNumberoptionalstringReceiving financial institution identification number
correctedDataoptionalstringThe corrected data per the correction change code.
externalFiTransactionIdentificationNumberoptionalstringThe number used by an external financial institution to identify the transaction.
keyBankTransactionReferenceNumberoptionalstringUnique ACH transaction identifier created by KeyBank.
operatorCommandFlagoptionalstringOperator command flag.
NAMETYPEDESCRIPTION
accountNumberoptionalstringBank account number.
NAMETYPEDESCRIPTION
accountNumberoptionalstringBank account number of the ACH originator or receiver.
bankNumberoptionalstringBank number associated with the account number.
routingNumberoptionalstringNine-digit routing number for the account provided in the original request.
NAMETYPEDESCRIPTION
parNumberoptionalstringThe unique PAR number assigned to the the transaction by the ACH product processor.
transactionStatusoptionalstringThe status of the ACH transaction. Valid values: COLLECTED, RETURNED, SETTLED
traceNumberoptionalstringThe unique number for the transaction provided by the originator.
transactionAmountoptionalnumberThe dollar amount of the transaction.
settlementDateoptionalstringThe date the transaction settlement occurred. Format: YYYY-MM-DD
transactionCodeoptionalstringTwo-digit code identifying the account type at the receiving financial institution.
transactionCodeDescriptionoptionalstringDescription for the transaction code.
transactionDescriptionoptionalstringDescription about the purpose of the transaction.
authorizedCustomerNameoptionalstringAuthorized customer name
standardEntryClassCodeoptionalstringThe three-digit Standard Entry Class code based on Nacha rules.
standardEntryClassDescriptionoptionalstringThe description for the Nacha SEC code.
receivingAccountoptionalObjectAccountDetail
receivingPartyoptionalObjectPartyDetail
originatingAccountoptionalObjectAccountDetail
originatingPartyoptionalObjectPartyDetail
returnDateoptionalstringDate of the returned transaction to the ACH system. Format: YYYY-MM-DD
returnReasonCodeoptionalstringThe code associated with the reason for returning the ACH transaction. The code is the letter 'R' for reason followed by a two-digit numeric code. Format: R00
returnReasonDescriptionoptionalstringDescription as to why the ACH transaction is returned.
addendaCountoptionalintegerCount of addenda records.
notificationOfChangeAddendaCountoptionalintegerCount of change notifications for addenda records.
internationalAddendaCountoptionalintegerCount of international addenda records.
customDataoptionalstringThe values for custom data is defined by the client. This free-form text field can contain up to 500 alphanumeric characters. Custom information stays with the transaction through its lifecycle.
checkSerialNumberoptionalstringSerial number for the check converted to an ACH transaction.
transactionDirectionoptionalstringIndicates the direction of the transaction. Valid values: ORIGINATING ITEM, RECEIVING ITEM
addendaoptionalarrayAddendum
notificationOfChangeoptionalarrayNotificationOfChange
NAMETYPEDESCRIPTION
parNumberoptionalstringThe unique PAR number assigned to the the transaction by the ACH product processor.
transactionStatusoptionalstringThe status of the ACH transaction. Valid values: COLLECTED, RETURNED, SETTLED
traceNumberoptionalstringThe unique number for the transaction provided by the originator.
transactionAmountoptionalnumberThe dollar amount of the transaction.
settlementDateoptionalstringThe date the transaction settlement occurred. Format: YYYY-MM-DD
transactionCodeoptionalstringTwo-digit code identifying the account type at the receiving financial institution.
authorizedCustomerNameoptionalstringAuthorized customer name
standardEntryClassCodeoptionalstringThe three-digit Standard Entry Class code based on Nacha rules.
receivingAccountoptionalObjectAccountList
receivingPartyoptionalObjectPartyList
originatingAccountoptionalObjectAccountList
originatingPartyoptionalObjectPartyList
returnDateoptionalstringDate of the returned transaction to the ACH system. Format: YYYY-MM-DD
returnReasonCodeoptionalstringThe code associated with the reason for returning the ACH transaction. The code is the letter 'R' for reason followed by a two-digit numeric code. Format: R00
returnReasonDescriptionoptionalstringDescription as to why the ACH transaction is returned.
addendaCountoptionalintegerCount of addenda records.
notificationOfChangeAddendaCountoptionalintegerCount of change notifications for addenda records.
internationalAddendaCountoptionalintegerCount of international addenda records.
NAMETYPEDESCRIPTION
sequenceNumberoptionalintegerThe addenda record item number in order of sequence. Number cannot exceed 4 digits.
entryDetailSequenceNumberoptionalstringThe entry number in order of sequence. Number cannot exceed 7 digits.
paymentRelatedInformationoptionalstringThe related payment information from the addenda records. The maximum character limit is 255.
NAMETYPEDESCRIPTION
codeoptionalstringCode for the related message.
messageoptionalstringMessage associated with the code.
NAMETYPEDESCRIPTION
pageNumberoptionalintegerThe number of the page being viewed.
pageSizeoptionalintegerThe number of records per page.
totalPagesoptionalintegerThe number of pages there are in total.
totalRecordsoptionalintegerThe total number of transactions available in the result set.
lastPageoptionalbooleanIndicates if the current page (page number) is the last page of the result set. Valid values: true, false
NAMETYPEDESCRIPTION
messagesoptionalarrayMessage
pageoptionalObjectPage
NAMETYPEDESCRIPTION
customerIdentificationNumberoptionalstringThe unique identification number associated with the customer.
companyNameoptionalstringThe name of the corporation or institution making the request.
NAMETYPEDESCRIPTION
customerIdentificationNumberoptionalstringThe unique identification number associated with the customer.
companyNameoptionalstringThe name of the corporation or institution making the request.
customerNameoptionalstringThe name of the customer.
NAMETYPEDESCRIPTION
changeCodeoptionalstringThe three-character change code begins with the letter 'C'. This code is applied to all NOCs to indicate the information that is being changed.
changeDescriptionoptionalstringThe description associated with the change code.
correctedDataoptionalstringThe corrected data per the correction change code.

For more information about general errors, see Error handling.

API-specific KeyBank error codes and details are in the ServiceError or errorResponse object with additional information specific to the API. The KeyBank error codes start with ECA-W with a three-digit number that follows. The number increases by one digit for each error message. For example, if you have an issue with your request that generates two error messages specific to the API, the codes will be ECA-W-001 and ECA-W-002.

HTTP
STATUS CODE
CUSTOM
STATUS CODE
DESCRIPTION
299W

ECA-W-001 Request processing completed with warnings.

This message occurs when multiple request parameters are provided, and some of the data are not available as part of response.

400F

ECA-W-001 Request Validation failed.

There is missing mandatory information like accountNumber, fromDate, or toDate. Review values for mandatory request fields.

400F

ECA-W-002 Requested records range is greater than the allowed limit - 1000

Response goes beyond 1000 transactions for the requested account. Change the request criteria to help limit returned transactions to the allowed amount.

 
ReleaseAPI versionChange descriptionImpact
October 20241.2.1
  • Date parameters adjusted to support the maximum date range search limit of 180 days. Do not enter a fromDate and toDate date range that goes beyond 31 days.
LOW
May 20241.2.0
  • Two new endpoints available in all environments, including the API simulator! We have added:
    • GET /accounts/transactions/v1/ach-transactions/{parNumber}
    • POST /accounts/transactions/v1/ach-transactions
MID
December 20231.1.6
  • Deprecated the mdmID field. Backend services and processes have been enhanced to authenticate client API calls without the need for an MDM ID.
  • Removed the POSTED status from the list of valid values for the ACHStatus field in the achStatusInquiryResult object. Valid values for this field now only include COLLECTED or RETURNED.
MID
September 20231.1.5
  • The mdmId description has been updated to communicate that this field will soon deprecate in an upcoming release.
LOW
August 20231.1.4
  • Modified the format for date parameters to match with KeyBank API standard date format of YYYY-MM-DD.
  • fromDate and toDate were updated to recall transaction data from the previous 24 months.
LOW
July 20231.1.3
  • Added the settlementDate field in the response to provide you the ability to filter by date in response.
  • MDM ID (mdmId) is no longer a required field, it is now optional.
LOW
May 20231.1.2
  • Added customData to the following objects:
    • achCollectedTransactionsResult
    • achPostedTransactionsResult
    • ACHReturnTransaction
  • Added receivingCustIdentificationNumber to the request payloads.
  • In the achCollectedTransactionsResult response, we added an example for the nonIatAddendum schema.
MID
December 20221.0.0
  • Released on the Developer Portal.
 

Impact levels

  • LOW: This is a minor change or enhancement that does not alter the operations of the API. Upgrading to the latest specifications is preferable but not required.
  • MID: The previous API version is valid and operates, but does not contain latest enhancements. You need to update your specifications to get these enhancements.
  • HIGH: The previous API version is no longer operable. You must upgrade to the latest specifications to access and use this API product.

YAML file download

ACH Origination

clock 8-minute read calender 1.3.2 | updated Oct. 15, 2024

Send or collect an ACH transaction, report on the status, or undo a payment

 

What you can doEndpoint
Health checkget /ach/payments/v1/healthCheck
Check the status of a payment requestpost /ach/payments/v1/status
Check the status of addenda recordspost /ach/payments/v1/status/addenda
Send or collect a paymentpost /ach/payments/v1/ccd
Make or collect payments to or from a corporate account with attached recordspost /ach/payments/v1/ctx
Make deposits and withdrawals to or from consumer accountspost /ach/payments/v1/ppd
Authorize a payment over the phonepost /ach/payments/v1/tel
Send an online paymentpost /ach/payments/v1/web
Undo a payment requestpost /ach/payments/v1/undo
Send additional addenda informationpost /ach/payments/v1/addenda

Before you begin

All KeyBank APIs require certificates, user credentials, and certain permissions. Check out our Getting Started Guide to learn more.

Sometimes it's the details

You can add details to your transaction. Use custom data feature when you send or validate a payment. Define the customData in the request payload. Learn more about our custom data feature here.

ACH stands for Automated Clearing House. ACH payments are electronic funds transfers (EFTs), a type of electronic payment that transfers funds between bank accounts within the United States. ACH payments are often less expensive than wire transfers, with lower or no transaction fees. Most commonly, ACH payments are used for direct deposit of payroll, recurring bill payments, online purchases, and person-to-person transfers.

How does it work?

The ACH Origination process starts with a payment or collection request made by a financial institution or client (business or individual). In the request, the payment method (SEC code) and transaction type (credit or debit) must be defined. The API automatically assigns the effective date and other data, like the 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.

A request generates a batch response that includes the status and payment details by SEC code. For the consolidation, we store records from the batch, detail, and addenda schemas. 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.

Except for TEL type transaction, all the SEC code types can include addenda information with the response. 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.

API requirements

 

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.

The batch and the individual UUID can be the same, but KeyBank recommends that you use different UUID values.


Client information values: After you have completed the onboarding process with KeyBank, KeyBank provides the client (point) and client account (collectionApplicationId, 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, PPD, TEL, WEB. Review the details on SEC codes in our user guide.

get /ach/payments/v1/healthCheck

Verify you can connect to the API service. A bearer token is required.

 
NAMETYPEDESCRIPTION
StatusoptionalstringThe status of the health check response.
SourceoptionalstringThe origin of the system response can be 'Gateway' or 'Roundtrip'. Roundtrip returns a response from the farthest system involved.
TimestampoptionalstringThe date (YYYY-MM-DD) and time (HH:MM:SS) of response from the API service.
ClientIpoptionalstringThe client IP address the gateway receives from the request.
X-Forwarded-ForoptionalstringThe sequence of the IP addresses for systems between the client and the gateway.

Response example (200)

copylink
{
   "Status": "Ok",
   "Source": "Roundtrip",
   "Timestamp": "2022-09-15T04:49:03",
   "ClientIp": "156.77.111.28",
   "X-Forwarded-For": "[156.77.111.28]"
}

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.

BODY FIELDTYPEDESCRIPTION
detailStatusoptionalarraypaymentInquiryDetailRequest

Request example

copylink
{
    "detailStatus": [
        {
            "uuid": "qas220602x-49eb-47664-b94rhd1-e52e2re11001"
        }
    ]
}
NAMETYPEDESCRIPTION
detailsoptionalarraydetailStatusResponse
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (400)

copylink
{
    "ErrorMessage": "Mandatory data not provided, please verify the data and resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (401)

copylink
{
    "ErrorMessage": "Received request is unauthorized, please provide valid credentials",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (403)

copylink
{
    "ErrorMessage": "Access to requested resource is forbidden",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (404)

copylink
{
    "ErrorMessage": "Requested resource is not found, please verify the resource then resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (405)

copylink
{
    "ErrorMessage": "Requested method is not allowed, please verify the method and resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (415)

copylink
{
    "ErrorMessage": "Requested media type is not allowed, please verify the media type and resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (429)

copylink
{
    "ErrorMessage": "Number requests threshold reached, please resubmit the request after sometime",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (500)

copylink
{
    "ErrorMessage": "Runtime error occurred in the service, please check with application support team before resubmitting the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (502)

copylink
{
    "ErrorMessage": "Error received from backend",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "ServiceError": {
        "ConnectError": "Connectivity error occurred with the downstream service (Unexpected EOF at target), please check with application support team before resubmitting the request"
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (503)

copylink
{
    "ErrorMessage": "Error received from backend",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "ServiceError": {
        "ConnectError": "Service is currently unavailable (NoActiveTargets), please check with application support before resubmitting the request."
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (504)

copylink
{
    "ErrorMessage": "Error received from backend",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "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."
    }
}

post /ach/payments/v1/status/addenda

Check the return status of one or more addenda records

BODY FIELDTYPEDESCRIPTION
uuidrequiredstringA custom value used to identify each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters.
pageSizeoptionalstringThe number of records to be returned in the pagination search.
startAddendaSequenceNumberoptionalstringThe starting number for the addenda record sequence.

Request example

copylink
{
    "uuid": "qas220517x-49eb-47664-b94rhd1-e52e2re13001",
    "pageSize": "10",
    "startAddendaSequenceNumber": "0001"
}
NAMETYPEDESCRIPTION
uuidoptionalstringA custom value used to identify each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters.
statusoptionalstringThe status of the batch can be accepted or rejected.
errorMessagesoptionalarraydetailMessage
traceNumberoptionalstringThe unique number for the ACH transaction. Record this number for possible ACH inquiry requests.
informationMessagesoptionalarraydetailMessage
addendaoptionalarraybaseAddendaDetailResponse

Response example (200)

copylink
{
    "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"
        }
    ]
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (400)

copylink
{
    "ErrorMessage": "Mandatory data not provided, please verify the data and resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (401)

copylink
{
    "ErrorMessage": "Received request is unauthorized, please provide valid credentials",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (403)

copylink
{
    "ErrorMessage": "Access to requested resource is forbidden",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (404)

copylink
{
    "ErrorMessage": "Requested resource is not found, please verify the resource then resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (405)

copylink
{
    "ErrorMessage": "Requested method is not allowed, please verify the method and resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (415)

copylink
{
    "ErrorMessage": "Requested media type is not allowed, please verify the media type and resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (429)

copylink
{
    "ErrorMessage": "Number requests threshold reached, please resubmit the request after sometime",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (500)

copylink
{
    "ErrorMessage": "Runtime error occurred in the service, please check with application support team before resubmitting the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (502)

copylink
{
    "ErrorMessage": "Error received from backend",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "ServiceError": {
        "ConnectError": "Connectivity error occurred with the downstream service (Unexpected EOF at target), please check with application support team before resubmitting the request"
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (503)

copylink
{
    "ErrorMessage": "Error received from backend",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "ServiceError": {
        "ConnectError": "Service is currently unavailable (NoActiveTargets), please check with application support before resubmitting the request."
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (504)

copylink
{
    "ErrorMessage": "Error received from backend",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "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."
    }
}

post /ach/payments/v1/ccd

Make or collect payments to a corporate account. This call originates an ACH transaction for SEC code CCD (Corporate Credit or Debit). Use this request to send or collect 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.

BODY FIELDTYPEDESCRIPTION
batchrequiredObjectbatchRequestCCDDetailRequest
customDataoptionalstringThe values for custom data is defined by the client. This free-form text field can contain up to 500 alphanumeric characters. Custom information stays with the transaction through its lifecycle.

Request example

copylink
{
    "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": "099999999a",
                "discretionaryData": "AB",
                "addenda": [
                    {
                        "paymentRelatedInformation": "DAILYTEST0103A"
                    }
                ]
            }
        ]
    }
}
NAMETYPEDESCRIPTION
batchrequiredObjectacceptedBatchResponseAcceptedDetailResponse

Response example (200)

copylink
{
    "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"
            }
        ]
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (400)

copylink
{
    "ErrorMessage": "Mandatory data not provided, please verify the data and resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (401)

copylink
{
    "ErrorMessage": "Received request is unauthorized, please provide valid credentials",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (403)

copylink
{
    "ErrorMessage": "Access to requested resource is forbidden",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (404)

copylink
{
    "ErrorMessage": "Requested resource is not found, please verify the resource then resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (405)

copylink
{
    "ErrorMessage": "Requested method is not allowed, please verify the method and resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (415)

copylink
{
    "ErrorMessage": "Requested media type is not allowed, please verify the media type and resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (429)

copylink
{
    "ErrorMessage": "Number requests threshold reached, please resubmit the request after sometime",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (500)

copylink
{
    "ErrorMessage": "Runtime error occurred in the service, please check with application support team before resubmitting the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (502)

copylink
{
    "ErrorMessage": "Error received from backend",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "ServiceError": {
        "ConnectError": "Connectivity error occurred with the downstream service (Unexpected EOF at target), please check with application support team before resubmitting the request"
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (503)

copylink
{
    "ErrorMessage": "Error received from backend",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "ServiceError": {
        "ConnectError": "Service is currently unavailable (NoActiveTargets), please check with application support before resubmitting the request."
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (504)

copylink
{
    "ErrorMessage": "Error received from backend",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "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."
    }
}

post /ach/payments/v1/ctx

Submit or collect a payment from one business/entity to another. This call originates an ACH transaction for SEC code CTX (Corporate Trade Exchange). Use this request to send or collect an electronic payment with remittance information.

BODY FIELDTYPEDESCRIPTION
batchrequiredObjectbatchRequestCTXDetailRequest
customDataoptionalstringThe values for custom data is defined by the client. This free-form text field can contain up to 500 alphanumeric characters. Custom information stays with the transaction through its lifecycle.

Request example

copylink
{
    "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": "099999999",
                "discretionaryData": "AK",
                "addenda": [
                    {
                        "paymentRelatedInformation": "YourTest03.01"
                    }
                ]
            }
        ]
    }
}
NAMETYPEDESCRIPTION
batchrequiredObjectacceptedBatchResponseAcceptedDetailResponse

Response example (200)

copylink
{
    "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"
            }
        ]
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (400)

copylink
{
    "ErrorMessage": "Mandatory data not provided, please verify the data and resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (401)

copylink
{
    "ErrorMessage": "Received request is unauthorized, please provide valid credentials",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (403)

copylink
{
    "ErrorMessage": "Access to requested resource is forbidden",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (404)

copylink
{
    "ErrorMessage": "Requested resource is not found, please verify the resource then resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (405)

copylink
{
    "ErrorMessage": "Requested method is not allowed, please verify the method and resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (415)

copylink
{
    "ErrorMessage": "Requested media type is not allowed, please verify the media type and resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (429)

copylink
{
    "ErrorMessage": "Number requests threshold reached, please resubmit the request after sometime",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (500)

copylink
{
    "ErrorMessage": "Runtime error occurred in the service, please check with application support team before resubmitting the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (502)

copylink
{
    "ErrorMessage": "Error received from backend",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "ServiceError": {
        "ConnectError": "Connectivity error occurred with the downstream service (Unexpected EOF at target), please check with application support team before resubmitting the request"
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (503)

copylink
{
    "ErrorMessage": "Error received from backend",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "ServiceError": {
        "ConnectError": "Service is currently unavailable (NoActiveTargets), please check with application support before resubmitting the request."
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (504)

copylink
{
    "ErrorMessage": "Error received from backend",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "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."
    }
}

post /ach/payments/v1/ppd

Submit or collect a payment based on consumer authorization and terms of service. This call originates an ACH transaction for SEC code PPD (Prearranged Payments and Debits). Use this request to send or collect a routine electronic payment, like a subscription or monthly payment plan.

BODY FIELDTYPEDESCRIPTION
batchrequiredObjectbatchRequestPPDDetailRequest
customDataoptionalstringThe values for custom data is defined by the client. This free-form text field can contain up to 500 alphanumeric characters. Custom information stays with the transaction through its lifecycle.

Request example

copylink
{
    "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": "099999999a",
                "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": "099999999b",
                "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": "099999999c",
                "discretionaryData": "BC",
                "addenda": [
                    {
                        "paymentRelatedInformation": "QASTest02.02C"
                    }
                ]
            }
        ]
    }
}
NAMETYPEDESCRIPTION
batchrequiredObjectacceptedBatchResponseAcceptedDetailResponse

Response example (200)

copylink
{
    "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"
            },
            {
                "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"
            }
        ]
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (400)

copylink
{
    "ErrorMessage": "Mandatory data not provided, please verify the data and resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (401)

copylink
{
    "ErrorMessage": "Received request is unauthorized, please provide valid credentials",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (403)

copylink
{
    "ErrorMessage": "Access to requested resource is forbidden",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (404)

copylink
{
    "ErrorMessage": "Requested resource is not found, please verify the resource then resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (405)

copylink
{
    "ErrorMessage": "Requested method is not allowed, please verify the method and resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (415)

copylink
{
    "ErrorMessage": "Requested media type is not allowed, please verify the media type and resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (429)

copylink
{
    "ErrorMessage": "Number requests threshold reached, please resubmit the request after sometime",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (500)

copylink
{
    "ErrorMessage": "Runtime error occurred in the service, please check with application support team before resubmitting the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (502)

copylink
{
    "ErrorMessage": "Error received from backend",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "ServiceError": {
        "ConnectError": "Connectivity error occurred with the downstream service (Unexpected EOF at target), please check with application support team before resubmitting the request"
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (503)

copylink
{
    "ErrorMessage": "Error received from backend",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "ServiceError": {
        "ConnectError": "Service is currently unavailable (NoActiveTargets), please check with application support before resubmitting the request."
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (504)

copylink
{
    "ErrorMessage": "Error received from backend",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "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."
    }
}

post /ach/payments/v1/tel

Authorize and submit a payment by the phone.

BODY FIELDTYPEDESCRIPTION
batchrequiredObjectbatchRequestTELDetailRequest
customDataoptionalstringThe values for custom data is defined by the client. This free-form text field can contain up to 500 alphanumeric characters. Custom information stays with the transaction through its lifecycle.

Request example

copylink
{
    "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": "099999999",
                "paymentTypeCode": "R"
            }
        ]
    }
}
NAMETYPEDESCRIPTION
batchrequiredObjectacceptedBatchResponseAcceptedDetailResponse

Response example (200)

copylink
{
    "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"
            }
        ]
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (400)

copylink
{
    "ErrorMessage": "Mandatory data not provided, please verify the data and resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (401)

copylink
{
    "ErrorMessage": "Received request is unauthorized, please provide valid credentials",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (403)

copylink
{
    "ErrorMessage": "Access to requested resource is forbidden",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (404)

copylink
{
    "ErrorMessage": "Requested resource is not found, please verify the resource then resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (405)

copylink
{
    "ErrorMessage": "Requested method is not allowed, please verify the method and resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (415)

copylink
{
    "ErrorMessage": "Requested media type is not allowed, please verify the media type and resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (429)

copylink
{
    "ErrorMessage": "Number requests threshold reached, please resubmit the request after sometime",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (500)

copylink
{
    "ErrorMessage": "Runtime error occurred in the service, please check with application support team before resubmitting the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (502)

copylink
{
    "ErrorMessage": "Error received from backend",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "ServiceError": {
        "ConnectError": "Connectivity error occurred with the downstream service (Unexpected EOF at target), please check with application support team before resubmitting the request"
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (503)

copylink
{
    "ErrorMessage": "Error received from backend",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "ServiceError": {
        "ConnectError": "Service is currently unavailable (NoActiveTargets), please check with application support before resubmitting the request."
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (504)

copylink
{
    "ErrorMessage": "Error received from backend",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "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."
    }
}

post /ach/payments/v1/web

Authorize and submit a payment on a website.

BODY FIELDTYPEDESCRIPTION
batchrequiredObjectbatchRequestWEBDetailRequest
customDataoptionalstringThe values for custom data is defined by the client. This free-form text field can contain up to 500 alphanumeric characters. Custom information stays with the transaction through its lifecycle.

Request example

copylink
{
    "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": "099999999",
                "paymentTypeCode": "R",
                "addenda": [
                    {
                        "paymentRelatedInformation": "DAILYTEST0103A"
                    }
                ]
            }
        ]
    }
}
NAMETYPEDESCRIPTION
batchrequiredObjectacceptedBatchResponseAcceptedDetailResponse

Response example (200)

copylink
{
    "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"
            }
        ]
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (400)

copylink
{
    "ErrorMessage": "Mandatory data not provided, please verify the data and resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (401)

copylink
{
    "ErrorMessage": "Received request is unauthorized, please provide valid credentials",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (403)

copylink
{
    "ErrorMessage": "Access to requested resource is forbidden",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (404)

copylink
{
    "ErrorMessage": "Requested resource is not found, please verify the resource then resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (405)

copylink
{
    "ErrorMessage": "Requested method is not allowed, please verify the method and resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (415)

copylink
{
    "ErrorMessage": "Requested media type is not allowed, please verify the media type and resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (429)

copylink
{
    "ErrorMessage": "Number requests threshold reached, please resubmit the request after sometime",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (500)

copylink
{
    "ErrorMessage": "Runtime error occurred in the service, please check with application support team before resubmitting the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (502)

copylink
{
    "ErrorMessage": "Error received from backend",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "ServiceError": {
        "ConnectError": "Connectivity error occurred with the downstream service (Unexpected EOF at target), please check with application support team before resubmitting the request"
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (503)

copylink
{
    "ErrorMessage": "Error received from backend",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "ServiceError": {
        "ConnectError": "Service is currently unavailable (NoActiveTargets), please check with application support before resubmitting the request."
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (504)

copylink
{
    "ErrorMessage": "Error received from backend",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "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."
    }
}

post /ach/payments/v1/undo

Reverse a payment request before it enters consolidation.

BODY FIELDTYPEDESCRIPTION
uuidrequiredstringA custom value used to identify each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters.

Request example

copylink
{
    "uuid": "qas220517x-49eb-47664-b94rhd1-e52e2re13001"
}
NAMETYPEDESCRIPTION
uuidrequiredstringA custom value used to identify each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters.
statusoptionalstringThe status of a batch record can be accepted or rejected. The status of a detailed record can be deleted, accepted, rejected, notFound, or waitingForAddenda.
errorMessagesoptionalarraydetailMessage
informationMessagesoptionalarraydetailMessage
traceNumberoptionalstringThe unique number for the ACH transaction. Record this number for possible ACH inquiry requests.

Response example (200)

copylink
{
    "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"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (400)

copylink
{
    "ErrorMessage": "Mandatory data not provided, please verify the data and resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (401)

copylink
{
    "ErrorMessage": "Received request is unauthorized, please provide valid credentials",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (403)

copylink
{
    "ErrorMessage": "Access to requested resource is forbidden",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (404)

copylink
{
    "ErrorMessage": "Requested resource is not found, please verify the resource then resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (405)

copylink
{
    "ErrorMessage": "Requested method is not allowed, please verify the method and resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (415)

copylink
{
    "ErrorMessage": "Requested media type is not allowed, please verify the media type and resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (429)

copylink
{
    "ErrorMessage": "Number requests threshold reached, please resubmit the request after sometime",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (500)

copylink
{
    "ErrorMessage": "Runtime error occurred in the service, please check with application support team before resubmitting the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (502)

copylink
{
    "ErrorMessage": "Error received from backend",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "ServiceError": {
        "ConnectError": "Connectivity error occurred with the downstream service (Unexpected EOF at target), please check with application support team before resubmitting the request"
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (503)

copylink
{
    "ErrorMessage": "Error received from backend",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "ServiceError": {
        "ConnectError": "Service is currently unavailable (NoActiveTargets), please check with application support before resubmitting the request."
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (504)

copylink
{
    "ErrorMessage": "Error received from backend",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "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."
    }
}

post /ach/payments/v1/addenda

Add records to an existing ACH transaction.

BODY FIELDTYPEDESCRIPTION
addendarequiredarrayaddendaRequest
uuidrequiredstringA custom value used to identify each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters.

Request example

copylink
{
    "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*",
            "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"
}
NAMETYPEDESCRIPTION
uuidoptionalstringA custom value used to identify each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters.
statusoptionalstringThe overall status of the addenda request can be accepted or rejected.
traceNumberoptionalstringThe unique number for the ACH transaction. Record this number for possible ACH inquiry requests.
informationMessagesoptionalarraydetailMessage
errorMessagesoptionalarraydetailMessage
addendaoptionalarrayaddendaResponse
requestAcceptedUTCTimeoptionalstringThe date and time the request was accepted in UTC time. Format: YYYY-MM-DDTHH:MM:SSZ

Response example (200)

copylink
{
    "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": []
        }
    ],
    "requestAcceptedUTCTime": "2022-05-25T16:33:46Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (400)

copylink
{
    "ErrorMessage": "Mandatory data not provided, please verify the data and resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (401)

copylink
{
    "ErrorMessage": "Received request is unauthorized, please provide valid credentials",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (403)

copylink
{
    "ErrorMessage": "Access to requested resource is forbidden",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (404)

copylink
{
    "ErrorMessage": "Requested resource is not found, please verify the resource then resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (405)

copylink
{
    "ErrorMessage": "Requested method is not allowed, please verify the method and resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (415)

copylink
{
    "ErrorMessage": "Requested media type is not allowed, please verify the media type and resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (429)

copylink
{
    "ErrorMessage": "Number requests threshold reached, please resubmit the request after sometime",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (500)

copylink
{
    "ErrorMessage": "Runtime error occurred in the service, please check with application support team before resubmitting the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (502)

copylink
{
    "ErrorMessage": "Error received from backend",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "ServiceError": {
        "ConnectError": "Connectivity error occurred with the downstream service (Unexpected EOF at target), please check with application support team before resubmitting the request"
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (503)

copylink
{
    "ErrorMessage": "Error received from backend",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "ServiceError": {
        "ConnectError": "Service is currently unavailable (NoActiveTargets), please check with application support before resubmitting the request."
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError

Response example (504)

copylink
{
    "ErrorMessage": "Error received from backend",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "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."
    }
}
NAMETYPEDESCRIPTION
StatusoptionalstringThe status of the health check response.
SourceoptionalstringThe origin of the system response can be 'Gateway' or 'Roundtrip'. Roundtrip returns a response from the farthest system involved.
TimestampoptionalstringThe date (YYYY-MM-DD) and time (HH:MM:SS) of response from the API service.
ClientIpoptionalstringThe client IP address the gateway receives from the request.
X-Forwarded-ForoptionalstringThe sequence of the IP addresses for systems between the client and the gateway.
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringError message related to system generating this error.
TransactionIdoptionalstringUnique functional identifier from the data to identify a message.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringTime of the occurrence of the error of the message.
ServiceErroroptionaloneOfdetailMessage connectError
NAMETYPEDESCRIPTION
ConnectErroroptionalstringError information of the connectivity with downstream service.
NAMETYPEDESCRIPTION
uuidoptionalstringA custom value used to identify each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters.
statusoptionalstringThe overall status of the addenda request can be accepted or rejected.
traceNumberoptionalstringThe unique number for the ACH transaction. Record this number for possible ACH inquiry requests.
informationMessagesoptionalarraydetailMessage
errorMessagesoptionalarraydetailMessage
addendaoptionalarrayaddendaResponse
requestAcceptedUTCTimeoptionalstringThe date and time the request was accepted in UTC time. Format: YYYY-MM-DDTHH:MM:SSZ
NAMETYPEDESCRIPTION
uuidrequiredstringA custom value used to identify each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters.
statusrequiredstringThe status of the batch can be accepted or rejected.
requestAcceptedUTCTimeoptionalstringThe date and time the request was accepted in UTC time. Format: YYYY-MM-DDTHH:MM:SSZ
effectiveDateoptionalstringThe date the transaction is posted. This date must be within 31 days of the current date. Format: YYMMDD
informationMessagesoptionalarraydetailMessage
errorMessagesoptionalarraydetailMessage
detailsoptionalarrayacceptedDetailResponse
NAMETYPEDESCRIPTION
uuidrequiredstringA custom value used to identify each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters.
statusoptionalstringThe overall status of the addenda can be accepted or rejected.
errorMessagesoptionalarraydetailMessage
informationMessagesoptionalarraydetailMessage
traceNumberoptionalstringThe unique number for the ACH transaction. Record this number for possible ACH inquiry requests.
requestAcceptedUTCTimeoptionalstringThe date and time the request was accepted in UTC time. Format: YYYY-MM-DDTHH:MM:SSZ
NAMETYPEDESCRIPTION
paymentRelatedInformationrequiredstringThe related payment information for the addenda records. The limit is 80 characters.
addendaSequenceNumberrequiredstringThe sequence number of the addenda. The number cannot exceed 4 digits.
NAMETYPEDESCRIPTION
addendarequiredarrayaddendaRequest
uuidrequiredstringA custom value used to identify each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters.
NAMETYPEDESCRIPTION
statusoptionalstringThe overall status of the addenda request can be accepted or rejected.
errorMessagesoptionalarraydetailMessage
informationMessagesoptionalarraydetailMessage
NAMETYPEDESCRIPTION
uuidrequiredstringA custom value used to identify each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters.
pageSizeoptionalstringThe number of records to be returned in the pagination search.
startAddendaSequenceNumberoptionalstringThe starting number for the addenda record sequence.
NAMETYPEDESCRIPTION
uuidoptionalstringA custom value used to identify each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters.
statusoptionalstringThe status of the batch can be accepted or rejected.
errorMessagesoptionalarraydetailMessage
traceNumberoptionalstringThe unique number for the ACH transaction. Record this number for possible ACH inquiry requests.
informationMessagesoptionalarraydetailMessage
addendaoptionalarraybaseAddendaDetailResponse
NAMETYPEDESCRIPTION
addendaTypeCodeoptionalstringThe type code for the addenda. The value is '05'.
addendaSequenceNumberoptionalstringThe sequence number of the addenda. The number cannot exceed 4 digits.
paymentRelatedInformationoptionalstringThe related payment information from the addenda records. The maximum character limit is 80.
NAMETYPEDESCRIPTION
paymentRelatedInformationrequiredstringThe related payment information for the addenda records. The limit is 80 characters.
NAMETYPEDESCRIPTION
uuidrequiredstringA custom value used to identify each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters.
statusoptionalstringThe status of a batch record can be accepted or rejected. The status of a detailed record can be deleted, accepted, rejected, notFound, or waitingForAddenda.
errorMessagesoptionalarraydetailMessage
informationMessagesoptionalarraydetailMessage
traceNumberoptionalstringThe unique number for the ACH transaction. Record this number for possible ACH inquiry requests.
NAMETYPEDESCRIPTION
uuidrequiredstringA custom value used to identify each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters.
pointrequiredstringA short name specific to your company provided by KeyBank. This is included in the file name and improves security for file transfers.
collectionApplicationIdrequiredstringThis ID is provided by KeyBank and cannot exceed the maximum of 9 alphanumeric characters.
collectionApplicationTypeoptionalstringA subset of the collection application parameters. This is not commonly used and by default, left blank. If there is a collection application type, the value is provided by KeyBank during onboarding and cannot exceed 6 characters.
secCoderequiredstringThe three-digit Standard Entry Class code based on Nacha rules. Valid values: CCD, CTX, PPD, TEL, WEB.
effectiveDateoptionalstringThe date the transaction is posted. This date must be within 31 days of the current date. Format: YYMMDD
companyDescriptiveDateoptionalstringCompany descriptive date. Format: YYMMDD
companyEntryDescriptionrequiredstringProvides the receiver a description of the payment purpose. The value cannot exceed 10 characters and cannot be blank. Possible values: 'REVERSAL', 'RETURN FEE', 'RECLAIM', 'REDEPCHECK' for RCK entries, 'HCCLAIMPMT' for Health Care EFTs, or 'ACCTVERIFY' for clients sending in a micro-entry as a type of ACH entry.
detailsoptionalarraycCDDetailRequest
NAMETYPEDESCRIPTION
uuidrequiredstringA custom value used to identify each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters.
pointrequiredstringA short name specific to your company provided by KeyBank. This is included in the file name and improves security for file transfers.
collectionApplicationIdrequiredstringThis ID is provided by KeyBank and cannot exceed the maximum of 9 alphanumeric characters.
collectionApplicationTypeoptionalstringA subset of the collection application parameters. This is not commonly used and by default, left blank. If there is a collection application type, the value is provided by KeyBank during onboarding and cannot exceed 6 characters.
secCoderequiredstringThe three-digit Standard Entry Class code based on Nacha rules. Valid values: CCD, CTX, PPD, TEL, WEB.
effectiveDateoptionalstringThe date the transaction is posted. This date must be within 31 days of the current date. Format: YYMMDD
companyDescriptiveDateoptionalstringCompany descriptive date. Format: YYMMDD
companyEntryDescriptionrequiredstringProvides the receiver a description of the payment purpose. The value cannot exceed 10 characters and cannot be blank. Possible values: 'REVERSAL', 'RETURN FEE', 'RECLAIM', 'REDEPCHECK' for RCK entries, 'HCCLAIMPMT' for Health Care EFTs, or 'ACCTVERIFY' for clients sending in a micro-entry as a type of ACH entry.
detailsoptionalarraycTXDetailRequest
NAMETYPEDESCRIPTION
batchrequiredObjectbatchRequestCCDDetailRequest
customDataoptionalstringThe values for custom data is defined by the client. This free-form text field can contain up to 500 alphanumeric characters. Custom information stays with the transaction through its lifecycle.
NAMETYPEDESCRIPTION
batchrequiredObjectbatchRequestCTXDetailRequest
customDataoptionalstringThe values for custom data is defined by the client. This free-form text field can contain up to 500 alphanumeric characters. Custom information stays with the transaction through its lifecycle.
NAMETYPEDESCRIPTION
batchrequiredObjectbatchRequestPPDDetailRequest
customDataoptionalstringThe values for custom data is defined by the client. This free-form text field can contain up to 500 alphanumeric characters. Custom information stays with the transaction through its lifecycle.
NAMETYPEDESCRIPTION
batchrequiredObjectbatchRequestTELDetailRequest
customDataoptionalstringThe values for custom data is defined by the client. This free-form text field can contain up to 500 alphanumeric characters. Custom information stays with the transaction through its lifecycle.
NAMETYPEDESCRIPTION
batchrequiredObjectbatchRequestWEBDetailRequest
customDataoptionalstringThe values for custom data is defined by the client. This free-form text field can contain up to 500 alphanumeric characters. Custom information stays with the transaction through its lifecycle.
NAMETYPEDESCRIPTION
uuidrequiredstringA custom value used to identify each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters.
pointrequiredstringA short name specific to your company provided by KeyBank. This is included in the file name and improves security for file transfers.
collectionApplicationIdrequiredstringThis ID is provided by KeyBank and cannot exceed the maximum of 9 alphanumeric characters.
collectionApplicationTypeoptionalstringA subset of the collection application parameters. This is not commonly used and by default, left blank. If there is a collection application type, the value is provided by KeyBank during onboarding and cannot exceed 6 characters.
secCoderequiredstringThe three-digit Standard Entry Class code based on Nacha rules. Valid values: CCD, CTX, PPD, TEL, WEB.
effectiveDateoptionalstringThe date the transaction is posted. This date must be within 31 days of the current date. Format: YYMMDD
companyDescriptiveDateoptionalstringCompany descriptive date. Format: YYMMDD
companyEntryDescriptionrequiredstringProvides the receiver a description of the payment purpose. The value cannot exceed 10 characters and cannot be blank. Possible values: 'REVERSAL', 'RETURN FEE', 'RECLAIM', 'REDEPCHECK' for RCK entries, 'HCCLAIMPMT' for Health Care EFTs, or 'ACCTVERIFY' for clients sending in a micro-entry as a type of ACH entry.
detailsoptionalarraypPDDetailRequest
NAMETYPEDESCRIPTION
uuidrequiredstringA custom value used to identify each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters.
pointrequiredstringA short name specific to your company provided by KeyBank. This is included in the file name and improves security for file transfers.
collectionApplicationIdrequiredstringThis ID is provided by KeyBank and cannot exceed the maximum of 9 alphanumeric characters.
collectionApplicationTypeoptionalstringA subset of the collection application parameters. This is not commonly used and by default, left blank. If there is a collection application type, the value is provided by KeyBank during onboarding and cannot exceed 6 characters.
secCoderequiredstringStandard Entry Class Code. Length must be exactly 3 alphabetical characters and adhere to Nacha rules.
effectiveDateoptionalstringThe date the transaction is posted. This date must be within 31 days of the current date. Format: YYMMDD
companyDescriptiveDateoptionalstringCompany descriptive date. Format: YYMMDD
companyEntryDescriptionrequiredstringProvides the receiver a description of the payment purpose. The value cannot exceed 10 characters and cannot be blank. Possible values: 'REVERSAL', 'RETURN FEE', 'RECLAIM', 'REDEPCHECK' for RCK entries, 'HCCLAIMPMT' for Health Care EFTs, or 'ACCTVERIFY' for clients sending in a micro-entry as a type of ACH entry.
detailsoptionalarraytelDetailRequest
NAMETYPEDESCRIPTION
uuidrequiredstringA custom value used to identify each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters.
pointrequiredstringA short name specific to your company provided by KeyBank. This is included in the file name and improves security for file transfers.
collectionApplicationIdrequiredstringThis ID is provided by KeyBank and cannot exceed the maximum of 9 alphanumeric characters.
collectionApplicationTypeoptionalstringA subset of the collection application parameters. This is not commonly used and by default, left blank. If there is a collection application type, the value is provided by KeyBank during onboarding and cannot exceed 6 characters.
secCoderequiredstringThe three-digit Standard Entry Class code based on Nacha rules. Valid values: CCD, CTX, PPD, TEL, WEB.
effectiveDateoptionalstringThe date the transaction is posted. This date must be within 31 days of the current date. Format: YYMMDD
companyDescriptiveDateoptionalstringCompany descriptive date. Format: YYMMDD
companyEntryDescriptionrequiredstringProvides the receiver a description of the payment purpose. The value cannot exceed 10 characters and cannot be blank. Possible values: 'REVERSAL', 'RETURN FEE', 'RECLAIM', 'REDEPCHECK' for RCK entries, 'HCCLAIMPMT' for Health Care EFTs, or 'ACCTVERIFY' for clients sending in a micro-entry as a type of ACH entry.
detailsoptionalarraywebDetailRequest
NAMETYPEDESCRIPTION
batchrequiredObjectacceptedBatchResponseAcceptedDetailResponse
NAMETYPEDESCRIPTION
uuidrequiredstringA custom value used to identify each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters.
accountTyperequiredstringThe account type can be checking (C) or savings (S). Valid values: C, S.
creditDebitCoderequiredstringOne-character field indicates if the ACH transaction is a credit (C) or debit (D). Valid values: C, D.
transactionTyperequiredstringNacha-defined transaction types can be live (L), prenote (P), or zero (Z). Valid values: L, P, Z.
receivingDFIIdrequiredstringThe bank routing number (ABA number) of the receiving designated financial institution. The number can be a maximum of 8 digits.
checkDigitrequiredstringThe final character of a routing number that can be used to validate a specific routing number. This is a single digit.
DFIAccountNumberrequiredstringThe recipient account number at the designated financial institution. The account number can be a maximum of 17 characters.
amountrequiredstringThe transaction amount in valid currency format. The amount can have up to 8 digits before the decimal and 2 digits after the decimal.
identificationNumberoptionalstringIdentification number for the detail record. The number cannot exceed 15 characters.
receivingCompanyNamerequiredstringThe name of the receiving company. The name cannot exceed a maximum of 22 characters.
discretionaryDataoptionalstringFurther identification of the company or used to describe the type of entries being processed. The ID can be a maximum of 2 characters.
addendaoptionalarraybaseAddendaRequest
NAMETYPEDESCRIPTION
uuidrequiredstringA custom value used to identify each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters.
accountTyperequiredstringThe account type can be checking (C) or savings (S). Valid values: C, S.
creditDebitCoderequiredstringOne-character field indicates if the ACH transaction is a credit (C) or debit (D). Valid values: C, D
transactionTyperequiredstringNacha-defined transaction types can be live (L), prenote (P), or zero (Z). Valid values: L, P, Z
receivingDFIIdrequiredstringThe bank routing number (ABA number) of the receiving designated financial institution. The number can be a maximum of 8 digits.
checkDigitrequiredstringThe final character of a routing number that can be used to validate a specific routing number. This is a single digit.
DFIAccountNumberrequiredstringThe recipient account number at the designated financial institution. The account number can be a maximum of 17 characters.
totalAmountrequiredstringThe 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.
identificationNumberoptionalstringIdentification number for the detail record. The number cannot exceed 15 characters.
numberOfAddendaRecordsrequiredstringCount of addenda records. This cannot exceed 4 digits.
receivingCompanyNameIDNumberrequiredstringThe name and ID of the receiving company. This field cannot exceed 16 characters.
discretionaryDataoptionalstringFurther identification of the company or used to describe the type of entries being processed. The ID can be a maximum of 2 characters.
addendaoptionalarraybaseAddendaRequest
NAMETYPEDESCRIPTION
codeoptionalstringA static status code assigned by the network or payment system.
moreInfooptionalstringDetailed descriptive message.
NAMETYPEDESCRIPTION
detailStatusoptionalarraypaymentInquiryDetailRequest
NAMETYPEDESCRIPTION
uuidrequiredstringA custom value used to identify each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters.
statusoptionalstringThe status of the batch tells if data is valid, contains errors, or has been received by the ACH core processing system. Valid values: accepted, rejected, extracted
errorMessagesoptionalarraydetailMessage
informationMessagesoptionalarraydetailMessage
traceNumberoptionalstringThe unique number for the ACH transaction. Record this number for possible ACH inquiry requests.
requestAcceptedUTCTimeoptionalstringThe date and time the request was accepted in UTC time. Format: YYYY-MM-DDTHH:MM:SSZ
requestDeletedUTCTimeoptionalstringThe date and time the request was deleted in UTC time. Format: YYYY-MM-DDTHH:MM:SSZ
requestLastUpdatedUTCTimeoptionalstringThe date and time the request was updated in UTC time. Format: YYYY-MM-DDTHH:MM:SSZ
pointoptionalstringA short name specific to your company provided by KeyBank. This is included in the file name and improves security for file transfers.
collectionApplicationIdoptionalstringThis ID is provided by KeyBank and cannot exceed the maximum of 9 alphanumeric characters.
collectionApplicationTypeoptionalstringA subset of the collection application parameters. This is not commonly used and by default, left blank. If there is a collection application type, the value is provided by KeyBank during onboarding and cannot exceed 6 characters.
secCodeoptionalstringThe three-digit Standard Entry Class code based on Nacha rules. Valid values: CCD, CTX, IAT, PPD, TEL, WEB.
effectiveDateoptionalstringThe date the transaction is posted. This date must be within 31 days of the current date. Format: YYMMDD
companyDescriptiveDateoptionalstringCompany descriptive date. Format: YYMMDD
batchNumberoptionalstringThe number associated with the batch. It can be a maximum of 7 digits.
companyNameoptionalstringThe name of the corporation or institution making the request. The name cannot exceed 16 characters or have spaces.
companyDiscretionaryDataoptionalstringDiscretionary data for the company.
companyIdentificationoptionalstringThe identification number of the company. This cannot exceed 15 digits.
companyEntryDescriptionoptionalstringProvides the receiver a description of the payment purpose. The value cannot exceed 10 characters and cannot be blank. Possible values: 'REVERSAL', 'RETURN FEE', 'RECLAIM', 'REDEPCHECK' for RCK entries, 'HCCLAIMPMT' for Health Care EFTs, or 'ACCTVERIFY' for clients sending in a micro-entry as a type of ACH entry.
originatingDFIIdoptionalstringThe bank routing number (ABA number) of the originating designated financial institution. The number can be a maximum of 8 digits.
accountTypeoptionalstringThe account type can be checking (C) or savings (S). Valid values: C, S.
creditDebitCodeoptionalstringOne-character field indicates if the ACH transaction is a credit (C) or debit (D). Valid values: C, D.
transactionTypeoptionalstringNacha-defined transaction types can be live (L), prenote (P), or zero (Z). Valid values: L, P, Z
transactionCodeoptionalstringA two-character field that specifies the billing credit transaction code.
receivingDFIIdoptionalstringThe bank routing number (ABA number) of the receiving designated financial institution. The number can be a maximum of 8 digits.
checkDigitoptionalstringThe final character of a routing number that can be used to validate a specific routing number. This is a single digit.
dfiAccountNumberoptionalstringThe recipient account number at the recipient's bank.
amountoptionalstringThe transaction amount in valid currency format. The amount can have up to 8 digits before the decimal and 2 digits after the decimal.
identificationNumberoptionalstringIdentification number for the detail record. The number cannot exceed 15 characters.
receivingCompanyNameoptionalstringThe name of the receiving company. The name cannot exceed a maximum of 22 characters.
discretionaryDataoptionalstringFurther identification of the company or used to describe the type of entries being processed. The ID cannot exceed the maximum of 20 characters.
totalAmountoptionalstringThe 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.
receivingCompanyNameIDNumberoptionalstringThe name and ID of the receiving company. This field cannot exceed 16 characters.
individualIdentificationNumberoptionalstringThe ID number for the individual. This cannot exceed 15 characters.
individualNameoptionalstringThe name of the individual. This cannot exceed 22 characters.
paymentTypeCodeoptionalstringThe code is a maximum of four characters. This field returns two empty spaces if the code is not provided by the client.
numberOfAddendaRecordsoptionalstringCount of addenda records. This cannot exceed 4 digits.
numberOfAddendaReceivedoptionalstringCount of addenda records received.
addendaoptionalarraybaseAddendaDetailResponse
fileCreationDateoptionalstringThe date the file was created. Format: YYMMDD
fileCreationTimeoptionalstringThe time the file was created.
fileIdModifieroptionalstringThe file ID modifier to control the totals with a single alphanumeric value.
NAMETYPEDESCRIPTION
detailsoptionalarraydetailStatusResponse
NAMETYPEDESCRIPTION
uuidrequiredstringA custom value used to identify each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters.
NAMETYPEDESCRIPTION
uuidrequiredstringA custom value used to identify each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters.
accountTyperequiredstringThe account type can be checking (C) or savings (S). Valid values: C, S.
creditDebitCoderequiredstringOne-character field indicates if the ACH transaction is a credit (C) or debit (D). Valid values: C, D.
transactionTyperequiredstringNacha-defined transaction types can be live (L), prenote (P), or zero (Z). Valid values: L, P, Z.
receivingDFIIdrequiredstringThe bank routing number (ABA number) of the receiving designated financial institution. The number can be a maximum of 8 digits.
checkDigitrequiredstringThe final character of a routing number that can be used to validate a specific routing number. This is a single digit.
DFIAccountNumberrequiredstringThe recipient account number at the designated financial institution. The account number can be a maximum of 17 characters.
amountrequiredstringThe transaction amount in valid currency format. The amount can have up to 8 digits before the decimal and 2 digits after the decimal.
individualNamerequiredstringThe name of the individual. This cannot exceed 22 characters.
individualIdentificationNumberoptionalstringThe ID number for the individual. This cannot exceed 15 characters.
discretionaryDataoptionalstringFurther identification of the company or used to describe the type of entries being processed. The ID can be a maximum of 2 characters.
addendaoptionalarraybaseAddendaRequest
NAMETYPEDESCRIPTION
uuidrequiredstringA custom value used to identify each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters.
NAMETYPEDESCRIPTION
uuidrequiredstringA custom value used to identify each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters.
accountTyperequiredstringThe account type can be checking (C) or savings (S). Valid values: C, S.
creditDebitCoderequiredstringOne-character field indicates if the ACH transaction is a credit (C) or debit (D). Valid values: C, D.
transactionTyperequiredstringNacha-defined transaction types can be live (L), prenote (P), or zero (Z). Valid values: L, P, Z.
receivingDFIIdrequiredstringThe bank routing number (ABA number) of the receiving designated financial institution. The number can be a maximum of 8 digits.
checkDigitrequiredstringThe final character of a routing number that can be used to validate a specific routing number. This is a single digit.
DFIAccountNumberrequiredstringThe recipient account number at the designated financial institution. The account number can be a maximum of 17 characters.
amountrequiredstringThe transaction amount in valid currency format. The amount can have up to 8 digits before the decimal and 2 digits after the decimal.
individualIdentificationNumberoptionalstringThe ID number for the individual. This cannot exceed 15 characters.
individualNamerequiredstringThe name of the individual. This cannot exceed 22 characters.
paymentTypeCodeoptionalstringThe code is a maximum of two characters. The code is two empty spaces if the code is not provided by the client.
NAMETYPEDESCRIPTION
uuidrequiredstringA custom value used to identify each transaction. It is required to undo a payment. The ID must not exceed 45 alphanumeric characters.
accountTyperequiredstringThe account type can be checking (C) or savings (S). Valid values: C, S
creditDebitCoderequiredstringOne-character field indicates if the ACH transaction is a credit (C) or debit (D). Valid values: C, D
transactionTyperequiredstringNacha-defined transaction types can be live (L), prenote (P), or zero (Z). Valid values: L, P, Z
receivingDFIIdrequiredstringThe bank routing number (ABA number) of the receiving designated financial institution. The number can be a maximum of 8 digits.
checkDigitrequiredstringThe final character of a routing number that can be used to validate a specific routing number. This is a single digit.
DFIAccountNumberrequiredstringThe recipient account number at the designated financial institution. The account number can be a maximum of 17 characters.
amountrequiredstringThe transaction amount in valid currency format. The amount can have up to 8 digits before the decimal and 2 digits after the decimal.
individualIdentificationNumberoptionalstringThe ID number for the individual. This cannot exceed 15 characters.
individualNamerequiredstringThe name of the individual. This cannot exceed 22 characters.
paymentTypeCodeoptionalstringThe code is a maximum of two characters. The code is two empty spaces if the code is not provided by the client.
addendaoptionalarraybaseAddendaRequest

For more information about errors, see Error handling.

ReleaseAPI versionChange descriptionImpact
October 20241.3.2
  • Updated companyEntryDescription to include possible values like 'REVERSAL', 'RETURN FEE', 'RECLAIM', 'REDEPCHECK' for RCK entries, and 'HCCLAIMPMT' for health care EFTs, or 'ACCTVERIFY' for clients sending in micro-entry as a type of ACH entry.
LOW
May 20241.3.1
  • Changed the effectiveDate range for ACH payments from 90 days to 31 days.
  • X-CorrelationId has been removed as a request header field for all endpoints. The parameter is no longer in the request body, but still remains in the code. The system assigns a unique ID when you submit a request and returns the value in the response.
MID
April 20241.3.0
  • Removed X-Point from all endpoints. This is an internal field and is not required for API requests.
LOW
September 20231.2.0
  • Added customData field to each of the SEC payment endpoints. You can enter up to 500 alphanumeric characters that will stay with the transaction through its lifecycle.
  • Removed unused objects:
    • batchResponseEnvelopeRejected
    • successSearchResponseNotificationEventResponse
    • successResponseString
    • successMetaResponse
    • sortControl
    • notifcationEventResponse
    • messageResponse
    • baseDataObject
    • rejectedBatchResponseBaseDetailResponse
  • The traceNumber was updated to remove a reference to an internal database table, TBDACHDETAIL.
  • DFIAccountNumber was updated to clarify that this is the recipient account number at the recipient’s bank.
  • receivingDFIID was updated to clarify that this is the ABA of the recipient’s bank.
MID
May 20231.1.6
  • Added the require companyEntryDescription for each of the SEC payment endpoints. ACH requests will no longer have a default description. You can set the description for each transaction. This field returns in the ACH status response payload.
MID
December 20221.1.5
  • Released on the Developer Portal.
 

Impact levels

  • LOW: This is a minor change or enhancement that does not alter the operations of the API. Upgrading to the latest specifications is preferable but not required.
  • MID: The previous API version is valid and operates, but does not contain latest enhancements. You need to update your specifications to get these enhancements.
    • HIGH: The previous API version is no longer operable. You must upgrade to the latest specifications to access and use this API product.

YAML file download

Account Validation

clock 4-minute read calender 2.0.1 | updated Oct. 15, 2024

Validate an account and its owner with confidence

Before you begin

All KeyBank APIs require certificates, user credentials, and certain permissions. Check out our Getting Started Guide to learn more.

The Account Validation API evaluates account owner data through an inquiry request and response process, validating the account owner and their account for validity.

API maturity

Account Validation is growing up. Right now there are two operating versions of the Account Validation API with v2 being the most current and v1 about to deprecate. The latest version includes security and request schema enhancements to help deliver more meaningful responses. The first and original version of the Account Validation API will be obsolete by end of the first quarter in 2025. Until then, Account Validation v1 specifications are available here. 

We recommend you use the latest version or upgrade to Account Validation API v2 specifications.

Make a request

When you submit a request to the Account Validation API, the data in that request is compared to information in the National Shared Database. The National Shared Database is the financial industry's leading source of up-to-date, collaborative financial data. Results from the database comparison are evaluated and then returns a response to you in real time, verifying the account owner status quickly.

Request requirements

When you submit a request, in addition to your authentication credentials, you must provide:

  • The account number of the person or business you want to validate. (accountNumber)
  • The routing number for the financial institution of the person or business. (routingNumber)
  • Set the validation type to Owner to request for owner status and validation. (serviceType)
  • An ID provided during KeyBank onboarding that is a secondary authentication method for the call besides the access token. This is not the same as your client or consumer ID. (secondaryId)

Interpret the response

Results from the database comparison are evaluated and then returns a response to you in real time, verifying the account owner status quickly. The following response rules apply for all fields:

  • All fields included in the request will be matched against the database.
  • Case, spacing, and punctuation are ignored.
  • The account data matched in the database is determined based on the account number (accountNumber) and routing number (routingNumber) in the request.
  • Account matching will be performed only if a request contains the person's full name (firstName and lastName) OR the name of the business (businessName).

 

Result codes

Account Validation responses include a variety of codes and classifications to help you assess if the account is legitimate or not. Refer to the Account Validation User Guide to help decipher codes like these:

  • errorCode: Three-digit code about system errors. If there are no errors, you receive three zeros (000).
  • conditionCode: Three-digit code about the state and validity of account ownership.
  • primaryStatusCode: Three-digit code for account status.
  • accountOwnerResponse object: Account owner field matching showing a Y (Yes), N (No), C (Conditional), or U (Unknown).

Loads of codes

If you get code with your error message, look at our error handling section for more details.

get /accounts/validations/v2/healthCheck

Verify you can connect to the API service. A bearer token is required.

NAMETYPEDESCRIPTION
StatusoptionalstringStatus of the health check response.
SourceoptionalstringOrigin of the system response can be 'Gateway' or 'Roundtrip'. Roundtrip returns a response from the farthest system involved.
TimestampoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) of response from the API service.
ClientIpoptionalstringClient IP address the gateway receives from the request.
X-Forwarded-ForoptionalstringSequence of IP addresses for systems between the client and the gateway.

Response example (200)

copylink
{
  "Status": "Ok",
  "Source": "Roundtrip",
  "Timestamp": "2022-09-15T04:49:03",
  "ClientIp": "156.77.111.28",
  "X-Forwarded-For": "[156.77.111.28]"
}

post /accounts/validations/v2/verifyAccount

Verify that an account owner's name, address, and other identifying elements match the account information in the National Shared Database Resource and that they are authorized to transact on the account. The National Shared Database Resource is the financial industry's leading source of up-to-date, collaborative financial data.

BODY FIELDTYPEDESCRIPTION
accountValidationV2RequestrequiredObjectaccountValidationV2Request

Request example

copylink
{
    "accountValidationV2Request": {
        "AOARequest": {
            "Inquiry": {
                "serviceType": "Owner",
                "secondaryId": "KeyCli03",
                "additionalId": "AddCli04",
                "routingNumber": "122199983",
                "accountNumber": "89455",
                "amount": "110",
                "serialNumber": "",
                "AcctOwner": {
                    "firstName": "Paul",
                    "lastName": "wilson",
                    "middleName": "Dan",
                    "namePrefix": "Mr",
                    "nameSuffix": "Lal",
                    "businessName": "",
                    "addressLine1": "206 GOODWIN ST",
                    "addressLine2": "Land",
                    "city": "MERRIT",
                    "state": "MI",
                    "zipCode": "49667",
                    "homePhone": "3077553623",
                    "workPhone": "3077555330",
                    "ssn": "666082367",
                    "dob": "19730801",
                    "idType": "2",
                    "idNo": "590909812",
                    "idState": "AL"
                },
                "Client": {
                    "clientDate": "2022-12-31",
                    "clientTime": "14:00:80",
                    "userDefined": ""
                }
            }
        }
    }
}
NAMETYPEDESCRIPTION
accountValidationV2ResponserequiredObjectaccountValidationV2Response

Response example (200)

copylink
{
    "accountValidationV2Response": {
        "AOAResponse": {
            "Result": {
                "errorCode": "000",
                "systemRecordId": "8168140724120284",
                "primaryId": "TROM122101",
                "secondaryId": "KeyCli01",
                "routingNumber": "122199983",
                "accountNumber": "89455",
                "feeAttrib": "HH",
                "AcctOwner": {
                    "conditionCode": "000",
                    "addressMatch": "Y",
                    "cityMatch": "Y",
                    "stateMatch": "Y",
                    "zipCodeMatch": "Y",
                    "ssnMatch": "Y",
                    "overallMatchScore": "100"
                },
                "AcctStatus": {
                    "primaryStatusCode": "099",
                    "primMessage": "Open Valid"
                },
                "Client": {
                    "clientDate": "2022-12-31",
                    "clientTime": "14:00:80",
                    "userDefined": ""
                }
            }
        },
        "errorResponse": {
            "businessFault": {
                "errorDescription": "Text displays if there is an issue with the business applications."
            },
            "systemFault": {
                "errorDescription": "Text displays if there is an issue with backend systems."
            }
        }
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (400)

copylink
{
    "ErrorMessage": "Error received from backend service",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "abcgd133",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "ServiceError": {
        "AOAResponse": {
            "Result": {
                "errorCode": "104"
            }
        }
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (401)

copylink
{
    "ErrorMessage": "Received request is unauthorized, please provide valid credentials",
    "X-CorrelationId": "abcgd133",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (403)

copylink
{
    "ErrorMessage": "Access Denied for client ip",
    "X-CorrelationId": "abcgd133",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (404)

copylink
{
    "ErrorMessage": "Requested resource is not found, please verify the resource then resubmit the request",
    "X-CorrelationId": "abcgd133",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (415)

copylink
{
    "ErrorMessage": "Requested media type is not allowed, please verify the media type and resubmit the request",
    "X-CorrelationId": "abcgd133",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (429)

copylink
{
    "ErrorMessage": "Number requests threshold reached, please resubmit the request after sometime",
    "X-CorrelationId": "abcgd133",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (500)

copylink
{
    "ErrorMessage": "Runtime error occurred 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"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (502)

copylink
{
    "ErrorMessage": "Error received from backend service",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "ServiceError": {
        "ConnectError": "Connectivity error occurred with the downstream service (Unexpected EOF at target), please check with application support team before resubmitting the request"
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (503)

copylink
{
    "ErrorMessage": "Error received from backend service",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "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."
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (504)

copylink
{
    "ErrorMessage": "Error received from backend service",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "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"
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError
NAMETYPEDESCRIPTION
ConnectErroroptionalstringAPI connectivity error information, if available.
NAMETYPEDESCRIPTION
errorCodeoptionalstringThree-digit error code. Returns a "000" when no errors are present.
NAMETYPEDESCRIPTION
AOARequestoptionalObjectAOARequest
NAMETYPEDESCRIPTION
serviceTyperequiredstringRepresents the type of request made to the API. This value is case-sensitive and must be set to "Owner".
secondaryIdrequiredstringSecondary client ID provided by KeyBank. No special characters are allowed. This value is different from your client credentials.
additionalIdoptionalstringThis ID is rarely used. If it is required, KeyBank will provide this value during onboarding.
routingNumberrequiredstringNine-digit routing number for the account, including leading zeroes.
accountNumberrequiredstringFull bank account number, without separators or leading zeroes. The length and format depends on the bank. This field cannot exceed 17 characters.
amountoptionalstringDo not use. This field is deprecating in an upcoming version. Dollar amount of the transaction or this field can be zero-filled. The amount must be a whole number and cannot exceed 12 characters.
serialNumberoptionalstringDo not use. This field is deprecating in an upcoming version. Serial number of the check. This number does not apply for ACH inquiries.
AcctOwneroptionalObjectAcctOwner
ClientoptionalObjectClient
NAMETYPEDESCRIPTION
InquiryoptionalObjectInquiry
NAMETYPEDESCRIPTION
ResultoptionalObjectResult
NAMETYPEDESCRIPTION
businessFaultoptionalObjectbusinessFault
systemFaultoptionalObjectsystemFault
NAMETYPEDESCRIPTION
conditionCodeoptionalstringThree-digit system response code that reflects the state of the account owner provided.
nameMatchoptionalstringFirst name, middle name, and last name match status. Valid values: Y, N, U
firstNameMatchoptionalstringFirst name match status. Valid values: Y, N, U
lastNameMatchoptionalstringLast name match status. Valid values: Y, N, U
middleNameMatchoptionalstringMiddle name or initial match status. Valid values: Y, N, U
namePrefixMatchoptionalstringName prefix match status. U will always be returned for a name prefix if included in the request.
nameSuffixMatchoptionalstringName suffix match status. U will always be returned for a name suffix if included in the request.
businessNameMatchoptionalstringBusiness name match status. Valid values: Y, N, U
addressMatchoptionalstringCombined address line one and two match status. Valid values: Y, N, U
cityMatchoptionalstringCity match status. Valid values: Y, N, U
stateMatchoptionalstringState match status. Valid values: Y, N, U
zipCodeMatchoptionalstringZIP code match status. Valid values: Y, N, U
homePhoneMatchoptionalstringHome phone number match status. Valid values: Y, N, U
workPhoneMatchoptionalstringWork phone number match status. Valid values: Y, N, U
ssnMatchoptionalstringSSN/TIN or last four digits of SSN match status. If you are a merchant provider, the value returned will always be 'U'. Valid values: Y, N, U
dobMatchoptionalstringDate of birth match status. Valid values: Y, N, U
idTypeMatchoptionalstringID type match status. Valid values: Y, N, U
idNoMatchoptionalstringID number match status. Valid values: Y, N, U
idStateMatchoptionalstringState or place of issuance match status. Valid values: Y, N, U
overallMatchScoreoptionalstringThe measure of how closely the inquiry request attributes match the actual account ownership data. This number is calculated based on the analysis of all information sent. Valid values: 0-100
NAMETYPEDESCRIPTION
errorCodeoptionalstringThree-digit error code. Returns a "000" when no errors are present.
systemRecordIdoptionalstringUnique, system-generated transaction ID.
primaryIdoptionalstringPrimary client ID returned via a KeyBank lookup. This is a KeyBank ID.
secondaryIdoptionalstringSecondary client ID provided in the original request.
additionalIdoptionalstringAdditional client ID, if provided in the original request. This is rarely used.
routingNumberoptionalstringNine-digit routing number for the account provided in the original request.
accountNumberoptionalstringFull bank account number provided in the original request.
feeAttriboptionalstringTwo-character code that represents how a transaction took place. Currently, the only value reported is "HH", which represents an ACH transaction.
amountoptionalstringDo not use. This field is deprecating. Amount of the transaction, if provided in the original request.
AcctOwneroptionalObjectAcctOwner_1
AcctStatusoptionalObjectAcctStatus
ClientoptionalObjectClient_1
NAMETYPEDESCRIPTION
errorDescriptionoptionalstringDescriptive error message that identifies if it is a system issue or business fault.
NAMETYPEDESCRIPTION
primaryStatusCodeoptionalstringPrimary three-digit account status code. This is an informational response code that represents the status of an account.
primMessageoptionalstringMessage associated with the primary status code.

accountValidation_POST_bodyParameters

NAMETYPEDESCRIPTION
accountValidationV2RequestrequiredObjectaccountValidationV2Request
NAMETYPEDESCRIPTION
errorDescriptionoptionalstringDescriptive error message that identifies if it is a system issue or business fault.
NAMETYPEDESCRIPTION
clientDateoptionalstringClient-provided date the inquiry request was made. Format: YYYY-MM-DD
clientTimeoptionalstringClient-provided time the inquiry request was made. Format: HH:MM:SS
userDefinedoptionalstringClient-provided descriptive text about the inquiry request. This field cannot exceed 255 characters.

accountValidation_POST_response

NAMETYPEDESCRIPTION
accountValidationV2ResponserequiredObjectaccountValidationV2Response
NAMETYPEDESCRIPTION
AOAResponseoptionalObjectAOAResponse
errorResponserequiredObjecterrorResponse
NAMETYPEDESCRIPTION
clientDateoptionalstringClient-provided date the inquiry request was made. Format: YYYY-MM-DD
clientTimeoptionalstringClient-provided time the inquiry request was made. Format: HH:MM:SS
userDefinedoptionalstringClient-provided descriptive text about the inquiry request. This field cannot exceed 255 characters.
NAMETYPEDESCRIPTION
firstNameoptionalstringFirst name of the account owner. Required with lastName for a personal inquiry.
lastNameoptionalstringLast name of the account owner. Required with firstName for a personal inquiry.
middleNameoptionalstringMiddle initial or name of the account owner. If the middle initial is provided do not include a period.
namePrefixoptionalstringOptional name prefix of the account owner. This field cannot exceed four characters. Example: Dr., Mr., Mrs.
nameSuffixoptionalstringOptional name suffix of the account owner. This field cannot exceed four characters. Example: Jr., PhD
businessNameoptionalstringBusiness name or the individual's full name (first and last name) that owns the account. This is a required field for a business inquiry.
addressLine1optionalstringFirst line of the address on the account. This field cannot exceed 40 characters.
addressLine2optionalstringSecond line of the address on the account.
cityoptionalstringCity on the account.
stateoptionalstringTwo-character state abbreviation on the account.
zipCodeoptionalstringZIP code on the account. This can either be five digits or nine digits. If a nine-digit ZIP code is provided, a dash between the groups of digits is acceptable. Do not use a space. Possible examples: 52255, 522551313, or 52255-1313.
homePhoneoptionalstring10-digit home phone number on the account. Do not add dashes, parenthesis, or any other non-numeric value.
workPhoneoptionalstring10-digit work phone number on the account. Do not add dashes, parenthesis, or any other non-numeric value.
ssnoptionalstringFull social security/tax ID number or the last four digits of the social security number of the account owner.
doboptionalstringDate of birth for the individual on the account. Format: YYYYMMDD
idTypeoptionalstringOne-character code that represents the type of identification used to verify the account owner. Valid values: 0-9, A-Z
idNooptionalstringID number for the account owner's form of identification. This field cannot exceed 28 characters.
idStateoptionalstringTwo-character state of issuance for the account owner's form of identification. If not a US state, enter the place of issuance. This field must be between 2-6 characters in length.

For more information about errors, see Error handling.

When a problem occurs with the capture of the account information from a draftable account item or the evaluation of the request message fields, a 3-digit error code is provided in the response payload (errorCode). If no errors are present, this field is filled with three zeroes.

ERROR CODEDESCRIPTION
000Normal response - no errors
001Invalid routing number
003Invalid account number
005Invalid serial number
006Missing a required field
008Length of account number is incorrect
010Inquiry field length too short
011Inquiry field length too long
013Invalid amount field
103Client ID does not match
104Improper data type or value
105Bad layout or format
106Missing client record ID
107Invalid required format
997Authorization unavailable
998System failure
999Timeout

 

ReleaseAPI versionChange descriptionImpact
October 20242.0.1
  • For the amount field, the whole dollar amount is an acceptable value (no cents). Note, this field will be deprecating in the future.
  • Updated the businessName field and any supporting content to specify that you can use an individual's full name for a business account inquiry.
  • Added format and field description details to help define the meaning, use, and limitations of the field.
MID
August 20242.0.0MID
May 20241.0.3
  • X-CorrelationId has been removed as a request header field for all endpoints. The parameter is no longer in the request body, but still remains in the code. The system assigns a unique ID when you submit a request and returns the value in the response.
LOW
May 20231.0.2
  • Released on the Developer Portal.
 

Impact levels

  • LOW: This is a minor change or enhancement that does not alter the operations of the API. Upgrading to the latest specifications is preferable but not required.
  • MID: The previous API version is valid and operates, but does not contain latest enhancements. You need to update your specifications to get these enhancements.
  • HIGH: The previous API version is no longer operable. You must upgrade to the latest specifications to access and use this API product.

YAML file download