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

Get immediate confirmation of account ownership

Key takeaways

  • Use API v2 for the latest enhancements and for more meaningful results.
  • Help reduce fraud by validating the owner of an account, matching the intended counterparty before moving funds.
  • Help minimize returns by confirming an account is open and valid before transacting with the account.
  • Comply with Nacha rules requiring account validation for web debits in real time without need for prenotes or micro-deposits.
  • Help save time with immediate validation for account inquiries.

Try it yourself

If you want to use our Account Validation API, please contact us to learn more.


Contact us

With the Account Validation API, you can inquire about an account and a get real-time confirmation about the status of the account and whether the ownership data matches. By real-time, we mean like 5 seconds or less on average. This is a far contrast to pre-notes or micro deposits which can take days and possibly accrue cost if there a return involved for illegitimate accounts.

This service is priced per each successful transaction. Speak with your Embedded Banking Payments Advisor to learn more. You can see our Getting Started Guide to learn more about how to partner with KeyBank APIs.

See the v2 specs

Account validation is simple. You send an inquiry request to evaluate the account information from a draft account item, typically a check or an ACH item. KeyBank completes Account Ownership Authentication (AOA). This is an API service that enables payment processors to verify the information matches data in the National shared Database (NSD). It reviews the payer’s name, address, and other elements and responds with whether the payer is authorized to transact on the account. 

Account validation flow steps for submitting a request and getting a response.

When the Account Validation API reviews the request, the case, spacing, and punctuation are ignored when matching values. The response returns codes that inform you of whether or not this is a genuine account. Codes returns include:

  • a condition code telling you the state of the account owner data provided.
  • match codes that confirm the data is the found or not with a Y (Yes), N (No), C (Conditional), or U (Unknown).
  • an overall match score is generated based on number of data points that did and did not match. If most of the match codes are Y, you will have a higher match score.

To send a valid request, the following parameters are required:

  • secondaryID: This is a unique identification assigned by KeyBank to each client of the API and identifies which client is making the call. This is not the same as your client credentials used to get an access token.
  • routingNumber: The routing number of the bank account holder.
  • accountNumber: The bank account number of the account owner.

Search by...

You can search by a person or a business, but not both.

A personal inquiry validates an account with the owner's full name. (firstName + lastName)

A business inquiry validate an account with a business name, company name, or the full name of the individual. (businessName)

More is better

To include more data points for verification, you can use the AcctOwner object to inquire about a personal or business account. The information you provide in the request is reviewed for a match in the database. If you do not enter any information in a field, it will not be reviewed for a match and returns as a blank field. The more information you provide, the better the validation when comparing data with the NSD. 


It is up to you and your business how you weigh the response codes returned and what it says about the validity of the account. KeyBank can only recommend guidelines on how to assess and interpret the response.

With the Account Validation API response, we recommend reviewing the following items in this sequence:

01

Check to see if the request was a good one

The response starts with the errorCode, a three-digit code that lets you know if there are any errors present with the account information from a draftable account item or the evaluation of the request message fields.

If no errors are present, this field is filled with three zeroes. If you do not get magical three zeroes, go to the Account Validation API document to view specific error handling codes.

02

Review the account status

The account status object (AcctStatus) returns a three-digit code for the current condition of the bank account. The primary status code (primaryStatusCode) indicates if the account is open, closed, or not found. Each code has an associated message with additional details (primMessage).

CodeMessage
000Routing number and account number combination cannot be found
012Account is closed
096No positive or negative information in known about the account
099Account is present in the participant’s master account file and has no other status code

03

See if there are any conditions associated with the account information

Condition codes reflect the state of the account owner data provided. When a condition code is returned in the response payload (conditionCode), users may still receive a partial response, such as an account status.

Condition codes

CONDITION CODEDESCRIPTION
000Normal response - no system errors
300Valid routing number, but not a participant
301Valid participant, but not an account owner authentication contributor
302Valid participant, but account owner authentication data is unavailable
304No name field populated - first, last, or business name
396No known information for the account number
900/901No account owner response requested or provided

04

Review how much of the information matched

Review the overall match score (overallMatchScore) to see if the account validity is within acceptable limits. The overall match score is calculated on a scale of 1 to 100. This score is generated based on number of data points that did and did not match. If most of the match codes are Y, you will have a higher match score. If you have data points that return a C for a partial match or a N for no match, it will reduce the match score. Typical threshold recommendation for match score approval is 81 and above.

The system reviews the data points provided so the more details you provide in your inquiry, the better the analysis. Small discrepancies like incorrectly spelled words or the wrong phone number can affect the match score. Remember, case, punctuation, and spacing are ignored when verifying data. Review the AcctOwner attributes provided in the request and responds with if they match the data in the NSD.

05

Dig into the details

The AcctOwner response object can contain several fields that end in "Match". Each of these match fields contains a single-character code that signifies whether or not an account owner element was found. You can get a confirmation of Y (Yes), N (No), C (Conditional), or U (Unknown).

Match codes

CODEDESCRIPTIONApplies to match fields
YClose or exact matchfirstNameMatch, lastNameMatch, middleNameMatch, namePrefixMatch, nameSuffixMatch, stateMatch, ssnMatch (if the last four digits are provided in the request), idType, idState
NNo match
CConditional matchnameMatch, businessNameMatch, addressMatch, cityMatch, zipCodeMatch, homePhoneMatch, workPhoneMatch, ssnMatch (if nine digits are provided in the request), dobMatch, idNoMatch
UNo identifying data is available

Applies to all fields

If you get a U with the businessNameMatch it could indicate that the routing and account numbers have been found in the database, but there is no business name associated with the account.


  • All requests require the secondaryId provided during KeyBank onboarding, routing number, and an account number.
  • If this is a personal inquiry, at a minimum search by accountNumber and routingNumber with firstName and lastName.
  • If this is a business inquiry, at a minimum search by accountNumber, routingNumber, and businessName.

Request

Response

"accountValidationRequest": {                                   
  "AOARequest": {
    "Inquiry": {
      "serviceType": "Owner"
      "secondaryID": "KeyCli01",
      "additionalID": "",
      "routingNumber": "122199983",
      "accountNumber": "89455",
      "amount":"50",
      "serialNumber": "",
      "AcctOwner": {
        "firstName": " Paul",
        "lastName": "Wilson ",
        "middleName": "V",
        "namePrefix": "Mr",
        "nameSuffix": "Jr",
        "businessName": "Bizness by Paul",
        "addressLine1": "206 GOODWIN ST",
        "addressLine2": "",
        "city": "MERRIT",
        "state": "MI",
        "zipCode": "49667",
        "homePhone": "5555551234",
        "workPhone": "5555561234",
        "ssn": "9999",
        "dob": "19730801",
        "idType": "2",
        "idNo": "6788",
        "idState": "AL"
       },
      "Client": {
        "ClientDt": "2022-03-04",
        "ClientTime": "14:45:05",
        "UserDef": "123xyz"
       }
     }
   }
"accountValidationResponse": {
  "AOAResponse": {
     "Result": {
        "errorCode": "000",
        "systemRecordId": "5934871120174384",
        "primaryId": "TROM122101",
       "secondaryId": "KeyCli01",
       "additionalId": "",
       "routingNumber": "122199983",
       "accountNumber": "89455",
       "feeAttrib": "HH",
       "amount":"50",
       "serialNumber":"",
    "AcctOwner": {
       "conditionCode": "000",
       "nameMatch": "Y",
       "firstNameMatch": "Y",
       "lastNameMatch": "Y",
       "middleNameMatch": "Y",
       "namePrefixMatch": "Y",
       "nameSuffixMatch": "Y",
       "businessNameMatch": "Y",
       "addressMatch": "Y",
       "cityMatch": "Y",
       "stateMatch": "Y",
       "zipCodeMatch": "Y",
       "homePhoneMatch": "Y",
       "workPhoneMatch": "Y",
       "ssnMatch": "N",
       "dobMatch": "Y",
       "idTypeMatch": "Y",
       "idNoMatch": "Y",
       "idStateMatch": "Y",
        "overallMatchScore": "100"
      },
"AcctStatus": { "primaryStatusCode": "099", "primMessage": "Open Valid" }, "Client": { "clientDate": "2022-03-04", "clientTime": "14:45:05", "userDefined": "123xyz" } } } }

What to expect

The data provided in the request is compared to the NSD. After evaluation, you get a response that indicates if there is a match or any discrepancies.

Review the response and interpret the information according to your needs and business rules. You can consider the response data in your decision-making process, along with other risk management information.


What's next?

 

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

We've created this simple, user-friendly developer portal with you in mind. Here's a few good things to know first.

Key takeaways

  • You need to be an authenticated and authorized user with our developer portal to use our APIs. To get started, see our overview of the onboarding process.
  • After you onboard, you get your own private API keys and can access our test environment.
  • Get an access token to connect to your APIs and start building.

Want in?

Contact a Payments Advisor to learn more about the KeyBank API developer portal and we'll have someone contact you with more information! 
Contact us

01

Contact and consult

If you are interested in a particular API product or a group of APIs, sign up for our waitlist. KeyBank will follow-up with you to help get you started.

To work with KeyBank APIs, there needs to be an established agreement between the service provider (KeyBank) and the client (you). This agreement details the API services you want, its services, and settings. It also gathers important system information needed for the KeyBank onboarding team to configure and secure the provisioned app.

02

Determine API needs

Determine which APIs are needed, define the frequency of use, and the transaction activity timeframe. Some APIs require specific configurations and may have a certain object to include in the call. Also, be mindful of our rate limiting.

For each API, provide the following information:

  • General details like transaction volume
  • Call frequency (number of calls per second, number of calls per minute, etc.)
  • Call timeframe (e.g., 24 hours a day or only during business hours)

The KeyBank onboarding team will reach out via email communication for additional details, if necessary.

03

Set up security

It is essential to have a secure connection before we start exchanging data, especially data as sensitive as financial data. For us to trust one another and verify that our pathways are safe, private, and guarded, we need to know your IP address and exchange certificates.

A digital certificate verifies your identity and keeps your data safe. Think of it like a virtual ID card for a website, or in this case the developer portal. When you connect to the site, the certificate legitimizes your identity. Then, when making API requests and transferring data on a cloud network, the certificate helps encrypt the data.

We use a mTLS authentication mechanism. This means when you request a mTLS certificate, you will get a public certificate chain and a private key. On your end, configure your application with the private key and certificate. You do not need to share your private key with KeyBank. After we exchange certificates, you will use the private key to encrypt the exchange and KeyBank uses the public certificate chain to verify it.

Certificate requirements:

  • Must have a CSR and private key. Do not share the private key.
  • Must include the root, intermediate, and leaf.
  • File format can be *.pem, *.crt, or *.cer.
  • Certificates cannot be self-signed.
  • Issued by a trusted certificate authority organization like DigiCert.
  • Only one certificate is required for all APIs.

04

Grant access

KeyBank sets up your account entitlements. Entitlements authenticate your identity and contain the authorization rules for the APIs you have permission to access. Part of the account entitlements are the API keys.

You need API keys to create an access token required to make an API call. There are application credentials that authorize which API products you can access, and there are client credentials that authenticate you as a client partnering with KeyBank. We share this information with your privately and securely during our onboarding procedures.

KeyBank will set you up a test environment. You can use the test environment to get a better idea of how the API functions and how to integrate with your application. We share the environment details with you once setup is complete.

Common terms

Access token

A temporary token to that gives you permission to use the API. Use your API keys to generate the token. This is also known as a bearer token.

API consumer:

An authenticated developer portal user that has completed the onboarding process, has access to API services and possibly the KeyBank test environment.

API keys:

There are two sets of API keys that we privately share with you to authenticate and authorize your ability to use and access our API products. Can’t turn that engine without a key.

Authentication:

A method of identifying you and your application as a trusted and accepted source to exchange data. With authentication, we use your KeyBank client credentials (part of your API keys) to identify you.

Authorization:

A method of permitting access to certain APIs and services.

Certificates:

A digital exchange of several encrypted codes that verify your ability to connect with our API products safely, securely, and cautiously. These certificates typically expire annually.

CSR:

Certificate signing request is an encoded message that contains the information needed by the Certificate Authority (CA) to create your certificate. This can include your name, domain, organization information, or location.

Domain:

A human-readable name for an application or web address that identifies the name of the online application. Domain names are used to help set up web servers, communication, and other online services.

IP address:

The internet protocol address is a numerical label assigned to each device or application connected to the internet. Addresses can uniquely identify devices and route data to its intended destination.

mTLS:

Mutual Transport Layer Security is mechanism for the mutual authentication between the service provider and the client. No catfishing here. Digital certificates are exchanged and signed with the PKI framework.

Onboarding:

The process of helping KeyBank partners and API consumers get familiar with our suite of API products. This can include assessment, setup, and environment access.

PKI:

A public key infrastructure is a system to create, store, and distributes digital certificates. This framework matches the public keys to digital entities to authenticate the identity of users, devices, and services.

Pre-production:

A test environment that allows you try the API product using sample data.

Production:

KeyBank’s live environment that exchanges real proprietary data between your application and our API products.

Service agreement:

A contract between KeyBank and financial businesses and applications that intend to use and integrate with KeyBank’s suite of APIs. The service agreement identifies the API products allowed, data volume, and other specifics require to ensure a proper configuration of services.

We recommend that you always start your API builds with a health check. To perform a health check, you must have valid certificates exchanged with KeyBank and API keys to request an access token.

To ensure efficient and consistent API performance, we've placed a limit of 5 transactions per second (TPS) across all KeyBank APIs. API requests that exceed the rate limit receive an HTTP 429 response status code. If you've exceeded this limit, wait for at least 2 minutes before making another API call.

While we established the 5 TPS threshold to maximize stability and performance, we understand that your consumption needs might not fit within those limits. To request an increased rate limit, contact your KeyBank Client Success Manager.

The X-CorrelationId is a unique 36-digit alphanumeric identification code generated automatically for each API transaction. This field helps support teams at KeyBank quickly track down an inquiry or issue. The ID stays with the transaction so we can trace the chain of API operations in the event logs. If you see different X-CorrelationId values for the same transaction, this could indicate that duplicate requests.

KeyBank requires an OAuth 2.0 access token to authorize API calls. To make a call for a token, you must have access to our environments, your certificates, private key, and API keys. 

Copy and modify the cURL command template. Be sure to replace the curly brackets {{xxxx}} with your specific information.

  1. For line 1, identify the certificates.
    • For client.crt, enter the location of your certificate signing request (CSR). The file must be in one of these formats *.pem, *.crt, or *.cer.
    • For client.key, enter the name of your certificate’s private key file.
    • For ca.crt, enter the name of your certificate authority (CA) certificate.
  2. For line 2, identify the host. Enter the URL address for the KeyBank environment. Make sure to add scope=rs-read as a path parameter in the URL.
  3. For line 3, enter your application credentials (consumer_key and consumer_secret) API keys in Base64 encoded format. Use a trusted site to generate an encoded string for your consumer key and secret.
  4. For line 6, enter your client credentials from KeyBank. For client id enter your client_id API key and for client password, enter the client_secret API key from KeyBank.
cURL command template
curl -X POST --cert {{client.crt}} --key {{client.key}} --cacert {{ca.crt}} \
  ‘{{host}}/oauth/v1/token?scope=rs-read'
  -H 'Authorization: Basic {{base64 encoded consumer key and secret}}'
  -H 'Content-type: application/x-www-form-urlencoded'
  -H 'Accept: application/json'
  -d 'Id={{client id}}&Key={{client password}}&grant_type=client_credentials'
  • The response contains a field named access_token. Use this access token in the Authorization header when you call the API over a secure mTLS connection.
  • If you are unable to retrieve an access code, reassess your setup, review your API keys, and make sure you are properly connected to the environment before you try again.

Request

Response

curl -X POST --cert client.crt --key client.key --cacert ca.crt \ 
  'https://partner-api.keybank.com/oauth/v1/token’
  -H 'Authorization: Basic KFddrcHQwQ3JDGQTamdqRUI0bEFHVVlHQcg'
  -H 'Content-type: application/x-www-form-urlencoded'
  -H 'Accept: application/json'
  -d 'Id=b1194a183b8e01&Key=165a15dfanqf1d60&grant_type=client_credentials'
curl -X POST --cert {{client.crt}} --key {{client.key}} --cacert {{ca.crt}} \
  {
   "refresh_token_expires_in": "0",
   "api_product_list": "[API 1, API 2, API 3]",
   "api_product_list_json": [
      "API Inquiry",
      "API test product",
     ],
   "organization_name": "keybank-non-prod",
   "developer.email": "yourEmail",
   "token_type": "BearerToken",
   "issued_at": "2255448892",
   "client_id": "KBConsumerKey”,
   "access_token": "gPd4ZXMi927aoWhvmc",
   "application_name": "9IIa42-134320dk32s",
   "scope": "apiauth-read apiauth-write rs-create rs-delete rs-oauth rs-read rs-update rs-write",
   "Id": "KBClientId",
   "expires_in": "86399",
   "refresh_count": "0",
   "status": "approved"
  }
                            

What to expect

  1. You get a response with access token and information about which API products you can use, the refresh token time cycle, expiration time, etc.
  2. Select and copy the access_token value to use with your API requests.
  3. The access token remains valid for 24 hours. If it expires, try the refresh token to receive a new access token and pass in the API request.

What's next?

  • If this all sounds nice to you, sign up to speak with a Payments Advisor. Our people will reach out to your people.
  • Read our API documentation to learn more about KeyBank’s API products. Or if you prefer to look under the hood, download an API specification file in YAML format.

 

RTP Inquiry

clock 1-minute read calender 1.0.0 | updated Nov. 14, 2024

Search and query real-time payments transactions

SummaryEndpoint
Health checkget /rtp/v1/healthCheck
Search real time payment transactionspost /rtp/v1/transactions/list
Retrieves the real time payment transaction by its transaction IDget /rtp/v1/transactions/detail/{transactionId}

get /rtp/v1/healthCheck

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

 
NAMETYPEDESCRIPTION
StatusoptionalstringStatus 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 the response from the API service.
ClientIpoptionalstringThe client IP address the gateway gets from the request.
X-Forwarded-ForoptionalstringThe sequence of all the IP addresses for 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]"
}

post /rtp/v1/transactions/list

Based on search criteria provided, get a list of RTP transactions. The account number and date range are required for every request.

NAMETYPEDESCRIPTION
accountNumberrequiredstringThe bank account number. This field cannot exceed 16 characters.
fromDaterequiredstringStart date for the date range. This date can be the current day or within 100 days prior to the current date. To search for a single date, this value will be the same as the toDate. To search for a range of dates, make sure the date range is within 31 days of the toDate. Format: YYYY-MM-DD
toDaterequiredstringEnd date for the date range. This date must be the same or later than the start date (fromDate). To search for a single date, this value will be the same as the fromDate. To search for a range of dates, make sure the date range does 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.
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",
  "fromDate": "2024-02-01",
  "toDate": "2024-02-01",
  "minimumAmount": "100.00",
  "maximumAmount": "75020.5",
  "pageNumber": "1",
  "pageSize": "500"
}
NAMETYPEDESCRIPTION
transactionsobjectRTPListTransaction
metadataobjectMetadata

Response example (200)

copylink
{
                                          "transactions": [{
                                          "transactionId": "US99999000999999",
                                          "transactionStatus": "COMPLETED",
                                          "transactionDate": "2024-02-01",
                                          "transactionAmount": 32772.63, 
                                          "requestReference": "1122334455",
                                          "sendersReference": "US99999000999999",
                                            "creditor": {
                                              "name": "Global Markets LLC"
                                            },
                                            "creditorAccount": {
                                              "accountNumber": "987654321"
                                            },
                                            "debtor": {
                                              "name": "Paul Wilson"
                                            },
                                            "debtorAccount": {
                                              "accountNumber": "123456789"
                                            }
                                          }],
                                          "metadata": {
                                            "messages": [{
                                              "code": null,
                                              "message": null
                                         }],
                                            "page": {
                                               "pageNumber": 1,
                                               "pageSize": 25,
                                               "totalPages": 3,
                                               "totalRecords": 75,
                                               "lastPage": "true"
                                           }
                                         }
                                        }
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.",
                                          "TransactionId": "rrt-621075741872460927-c-gce-9129-15867185-4",
                                          "TransactionTime": "djkdf",
                                          "X-CorrelationId": "80457bcb-2c3b-8c55-8cd6-3520c3157e8f"
                                          }
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": "Received request is unauthorized, please provide valid credentials",
                                          "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
                                          "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
                                          "TransactionTime": "2021-06-11T16:31:34.041Z"
                                         }
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 (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/transactions/detail/{transactionId}

Provide the transaction ID to retrieve all available fields for that single real time payment transaction.

path FIELDTYPEDESCRIPTION
transactionIdrequiredstringThe unique ID number associated with the original payment request.
 
NAMETYPEDESCRIPTION
transactionIdoptionalstringThe unique ID number associated with the original payment request.
transactionDateoptionalstringDate the transfer occurred. Format: YYYY-MM-DD
transactionAmountoptionalnumberThe dollar amount of the transaction.
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.
creditoroptionalObjectPartyList
creditorAccountoptionalObjectAccountList
debtoroptionalObjectPartyList
debtorAccountoptionalObjectAccountList
remittanceInformationoptionalstringSpecific details associated with a transaction like an invoice number or customer details that provide a reason for the payment.

Response example (200)

copylink
{
    "transactionId": "US99999000999999",
    "transactionStatus": "COMPLETED",
    "transactionDate": "2024-02-01",
    "transactionAmount": 32772.63,
    "requestReference": "1122334455",
    "sendersReference": "US99999000999999",
    "creditor": {
        "name": "Global Markets LLC"
    },
    "creditorAccount": {
        "accountNumber": "987654321"
    },
    "debtor": {
        "name": "Paul Wilson"
    },
    "debtorAccount": {
        "accountNumber": "123456789"
    },
    "remittanceInformation": "Payment 02\/01\/2024_Invoice - 123456789 Cust"
}
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.",
    "TransactionId": "rrt-621075741872460927-c-gce-9129-15867185-4",
    "X-CorrelationId": "80457bcb-2c3b-8c55-8cd6-3520c3157e8f",
    "ServiceError": {
        "messages": [
            {
                "code": "RTP-List-400-toDate",
                "message": "toDate format must be YYYY-MM-DD"
            }
        ]
    }
}
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": "Received request is unauthorized, please provide valid credentials",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
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 (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."
    }
}
NAMETYPEDESCRIPTION
transactionIdoptionalstringThe unique ID number associated with the original payment request.
transactionDateoptionalstringDate the transfer occurred. Format: YYYY-MM-DD
transactionAmountoptionalnumberThe dollar amount of the transaction.
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.
creditoroptionalObjectPartyList
creditorAccountoptionalObjectAccountList
debtoroptionalObjectPartyList
debtorAccountoptionalObjectAccountList
remittanceInformationoptionalstringSpecific details associated with a transaction like an invoice number or customer details that provide a reason for the payment.
NAMETYPEDESCRIPTION
transactionIdoptionalstringThe unique ID number associated with the original payment request
transactionDateoptionalstringDate the transfer occurred. Format: YYYY-MM-DD
transactionAmountoptionalnumberThe dollar amount of the transaction.
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.
creditoroptionalObjectPartyList
creditorAccountoptionalObjectAccountList
debtoroptionalObjectPartyList
debtorAccountoptionalObjectAccountList
NAMETYPEDESCRIPTION
accountNumberoptionalstringAccount number of the party.
NAMETYPEDESCRIPTION
nameoptionalstringContains the customer identification number and the company name.
NAMETYPEDESCRIPTION
codeoptionalstringStatic code assigned by the network or payment system.
messageoptionalstringA human-readable message associated with the code.
NAMETYPEDESCRIPTION
pageNumberoptionalintegerThe number of the page being viewed.
pageSizeoptionalintegerThe number of records per page.
totalPagesoptionalintegerThe total number of pages available.
totalRecordsoptionalintegerThe total number of the transactions (records) available in the result set.
lastPageoptionalbooleanIndicates the last page of the total pages.
NAMETYPEDESCRIPTION
messagesoptionalarrayMessage
pageoptionalObjectPage
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
serviceErrorDataobjectMetadata
NAMETYPEDESCRIPTION
ConnectErroroptionalstringAPI connectivity error information, if available.

For more information about general errors, see Error handling.


ReleaseAPI versionChange descriptionImpact
November 20241.0.0
  • 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

Check Image Retrieval

clock 2-minute read calender 1.2.5 | updated Nov. 19, 2024

See and verify checks paid

Use the Check Image Retrieval API to retrieve images of every check deposited and cleared.

What you can do Endpoint
Health check get /cmi/v1/healthCheck
Retrieve a check image post /cmi/v1/checkList

Before you begin

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

Use the Check Image Retrieval API to retrieve images of every check deposited and cleared. A successful request returns details of the requested check image (if attachImages is set to TRUE).

API requirements

Username and password: Your assigned username and password for the API is required in the defaultCheckRequest object of the request body. These credentials are provided by KeyBank after the onboarding process is complete. This information is shared with you via secure email.


get /cmi/v1/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 /cmi/v1/checkList

Get a single check image associated with the requested check and account information.

BODY FIELDTYPEDESCRIPTION
attachImagesrequiredbooleanIndicates if the check image needs to be attached to the response. If set to true, images are rendered in response.
defaultChecksRequestrequiredObjectdefaultChecksRequest
featuresoptionalObjectfeatures
limitrequiredintegerThe number of checks returned. Because this endpoint returns a single check image, limit must be set to 1.
startoptionalintegerStart index of the check range to be retrieved

Request example

copylink
{
    "attachImages": true,
    "defaultChecksRequest": {
        "applicationGroupId": "CPCCHECKS",
        "applicationId": "CPC-CHECKS",
        "criterias": [
            {
                "documentIndex": "Account Number",
                "highValue": "",
                "lowValue": "1234567890",
                "operator": "eq"
            },
            {
                "documentIndex": "Check Number",
                "highValue": "",
                "lowValue": "14704523",
                "operator": "eq"
            },
            {
                "documentIndex": "Amount",
                "highValue": "",
                "lowValue": "85.95",
                "operator": "eq"
            },
            {
                "documentIndex": "Check Process Date",
                "highValue": "",
                "lowValue": "09\/22\/2021",
                "operator": "eq"
            }
        ],
        "password": "testuser",
        "userName": "abc$123#scsf"
    },
    "features": {
        "outputFormat": "TIF",
        "compresstoZip": true,
        "scale": ""
    },
    "limit": 1,
    "start": 0
}
NAMETYPEDESCRIPTION
getChecksListResponserequiredarraygetChecksListResponse
messagerequiredstringA human-readable message that describes the response status.
totalNoOfChecksrequiredstringIndicates the total number of checks retrieved.

Response example (200)

copylink
{
    "getChecksListResponse": [
        {
            "accountNumber": "1234567890",
            "amount": "85.95",
            "checkProcessDate": "09\/22\/2021",
            "checkNumber": "14704523  ",
            "sequenceNumber": "38581847",
            "transactionType": "DEBIT",
            "checkRoutingNumber": "04120704",
            "checkFrontImage": "lUwXMGBwTm4dy\/5pe8GwlRZULmMfPkzL8yZKfDxRTU7HFMW\/b7DYqjBq0vyC85PxMObQ2UxtcbVe78MWsdgIBkKY7pCB4eE7GQr9QOcFRW2O7FQshj8ExEy0bmCV8cQFyxzKh04XPWIDxp71PIw\/BFWy2GG+R3b1SFP\/Mbj0Hdppoxn+rUxAz7Red+39BodSSz1xZteU8hu6fYvvNmbqasZmkVAEE6hS2H+3uVKqaMmnpHJ2oIie0rtowueFradOWhNGvV5pRuEhEd6j93X\/7mt=",
            "checkRearImage": "73mfoZbjXF4Gr9XuIYSieWR0o3NV2bvMcwiurzvU8Dyvy2CG+1DYdw3IyHHZRdY6CKiarVFK7mG+IgJKVaDwqA2Ma7YxopwgEIJ5oc8gS\/O8BzX7zms\/6hmRn9wrcZj3ZhaSUmAdOtSc3qOzp6JPLoYyJg2hQwnEtJyormF8GT5ajF8ADV6XQD+d3Ym8bKsR6rHWwGB0bmiKu+9r+33mR8QZmzmmCPIUZXzj6CXaLr0dNA4+xXszgMbWAHI00ZGhTsSfzyWp8FHYZx24fbEOkS9ApuVBRihL+Eb14ldJayOgAXI3OjLJgo2pB4EUvbQmhwu="
        }
    ],
    "message": "Successfully retrieved",
    "totalNoOfChecks": "1"
}
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": "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
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",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "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 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
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",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "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 (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
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",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "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",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "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",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
    "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",
    "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 appplication 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",
    "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
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",
    "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
documentIndexrequiredstringRequired parameters to retrieve a check image. A total of four criteria objects should be included in the request - one for each of the four values required to retrieve a check image. Valid values: Account Number, Check Number, Check Amount, Check Process Date
highValueoptionalstringIndicates the high range of the criteria. Reserved for future use, should be left blank.
lowValuerequiredstringIndicates the starting range of the criteria.
operatorrequiredstringIndicates the operation type. Must be set to "eq".
NAMETYPEDESCRIPTION
applicationGroupIdrequiredstringIndicates the application group ID for check images. Must be set to "CPCCHECKS".
applicationIdrequiredstringIndicates the application ID for check images. Must be set to "CPC-CHECKS".
criteriasrequiredarraycriteria
userNamerequiredstringUsername provided by KeyBank during client onboarding.
passwordrequiredstringEncrypted password provided by KeyBank during client onboarding.
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
outputFormatrequiredstringIndicates the output format of the check images. Valid values: TIF, TIFG4
compresstoZipoptionalbooleanReserved for future use. Please leave this field blank.
scaleoptionalstringReserved for future use. Please leave this field blank.
NAMETYPEDESCRIPTION
attachImagesrequiredbooleanIndicates if the check image needs to be attached to the response. If set to true, images are rendered in response.
defaultChecksRequestrequiredObjectdefaultChecksRequest
featuresoptionalObjectfeatures
limitrequiredintegerThe number of checks returned. Because this endpoint returns a single check image, limit must be set to 1.
startoptionalintegerStart index of the check range to be retrieved
NAMETYPEDESCRIPTION
getChecksListResponserequiredarraygetChecksListResponse
messagerequiredstringA human-readable message that describes the response status.
totalNoOfChecksrequiredstringIndicates the total number of checks retrieved.
NAMETYPEDESCRIPTION
accountNumberoptionalstringAccount number of the check image
amountoptionalstringAmount of the check
checkProcessDateoptionalstringCheck processed date (MM-DD-YYYY)
checkNumberoptionalstringCheck number
sequenceNumberoptionalstringSequence number of the check
transactionTypeoptionalstringTransaction type of the check
checkRoutingNumberoptionalstringRouting number of the check
checkFrontImageoptionalstringThe Base64 encoded string for the front image of the check.
checkRearImageoptionalstringThe Base64 encoded string for the back image of the check.
NAMETYPEDESCRIPTION
ErrorDetailsoptionalstringAdditional error details about the failed transaction.

For more information about general errors, see Error handling.

The message field in the getCheckListResponse tells you if the check was "Successfully retrieved" or "Failed". It is possible to receive a HTTP 200 response and have a failure message to resolve. This means that your transaction was successfully received but there was an issue with the request data. Look at the API-specific KeyBank error codes and details are in the serviceErrorData object of the exception schema.

HTTP STATUS CODE Message status DESCRIPTION
200 Successfully retrieved Specified checks not found.

There is invalid data in the request payload. Make sure mandatory fields are complete and field entries are in the correct format.

200 Successfully retrieved checkFrontImage and checkRearImage are blank.

The Boolean value for the attachImages field is set to False in the request and you will not receive check images.

200 Failed Error received from backend service.

Missing or invalid field – Check Date

You are missing mandatory information in your request. Enter the starting check date in MMDDYYYY format in the criterias object > lowValue field.

200 Failed Error received from backend service.

This Application is not configured for CMI transaction.

You are missing some mandatory information in the defaultsCheckRequest object. Make sure you have the correct information in the applicationGroupId field.

200 Failed Error received from backend service.

500 – Internal Server Error

You are missing mandatory information or have an invalid value in the criterias object. Review the request to make sure that all requirements are met before retrying the call.

200 Failed Unknown error occured(Expected STRING or NUMBER or OBJECT or ARRAY at line 2), please check and resubmit the request

Make sure that the Boolean value for the attachImages field is set to True to receive check images.

 

ReleaseAPI versionChange descriptionImpact
November 20241.2.5
  • Modified the front and back image description to clarify that it is a Base64 encoded string and not an actual image file.
LOW
May 20241.2.4
  • Parameter description updates. This change is for technical content only. The code and operations of the API remain the same. 
  • Updated the getChecksListResponse object with improved error messaging.
  • 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
December 20221.1.7
  • 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

clock 31-minute read calender | updated Sep. 15, 2024

Tips and tricks to leverage the suite of ACH API’s quickly and efficiently

Key takeaways

TL;DR so here are the hits:

  • Use our ACH Origination API to make or collect authorized payments. You can also inquire on the transactions before they are officially submitted for processing.
  • Sometimes we make mistakes. With ACH you can undo a payment typically within a period of 10 minutes from origination.
  • Inquiring minds want to know? Monitor and report on ACH transactions at any point in the payment process.
  • Look at our Webhooks specs to learn more about automatic push notifications for ACH transactions.

Try it out!

Wanna check out our ACH APIs? You first need to complete the KeyBank onboarding process.

Check out our Getting Started Guide or contact a KeyBank Payment Advisor to learn more. 
 

 

With the ACH Origination API, you can originate a credit or debit transaction to an authorized receiver.

See the specs

To make or collect a payment there has to be an authorized agreement between the originator and the receiver. An authorized agreement means that the payee has an agreement with their financial institution or commercial entity that funds can be exchanged between the originator and the receiver.

The ACH Origination API uses only POST methods to generate new ACH transactions. In the request, you indicate if you are pushing or pulling funds and the method of authorization to transfer funds.

  • The creditDebitCode defines the action of the request, if you are taking funds (debit) or receiving funds (credit).
  • The secCode defines the authorized method to transfer funds, like from a corporate account, online account, by phone, etc. There is a path for each SEC code. Use the correct endpoint path and identify the secCode in the request.

All ACH payments, credit or debit, must include a SEC code. The code is implicit in how payment authorization is arranged (by standing, written, oral, online, etc.). A SEC code also helps determine the rules and requirements that apply to the transaction, including timing of settlement and eligibility for same-day processing.

KeyBank allows ACH origination payment types for the following SEC codes: CCD, CTX, PPD, TEL, and WEB.

CCDCorporate Credit or Debit
  • Deposits and withdrawals to corporate accounts.
  • Does not require individual consumer authorization for each payment.
  • Remittance information available with the transaction as an addendum record.
CTXCorporate Trade Exchange
  • One business pays another for goods or services.
  • An electronic payment that includes an invoice (addenda) intended for the receiving financial institution.
PPDPrearranged Payments and Deposits
  • Specify a certain amount to be transferred from one financial account to another.
  • Requires consumer authorization or prearrangement for the payment or deposit to occur.
  • Some examples are direct deposit of payroll, pension, and dividends, or payment of utility bills, mortgages, rent, membership dues, loans and other recurring payments.
TELTelephone
  • Send a payment via the telephone.
  • Must provide verbal consent during the phone call to initiate the payment transaction.
WEBOnline
  • Initiate a transaction through the web or online banking.
  • Requires consumer authorization for the payment or deposit to occur.

Nacha business, not your problem

With ACH, transaction processing happens in real-time while the file processing for Nacha occurs behind the scenes. We follow Nacha standards and recommend there are no more than 100 transactions per request.

The Nacha file format is the standard file format used for ACH electronic fund transfers (EFT) in the United States. Nacha stands for National Automated Clearing House Association, the organization responsible for managing the rules and regulations governing the ACH network in the US. The Nacha file format is used to create batch files that contain multiple transactions, like direct deposits, bill payments, and other types of electronic payments. These files are commonly used by businesses, financial institutions, and other organizations to initiate and process ACH transactions.

An addendum is an ACH record type that carries supplemental data like remittance information. This data may be needed to identify an electronic payment to the receiving financial institution and the payee, or it may contain additional information relating to the prior entry detail record.

This addenda record is optional. It is primarily used for business-to-business transactions, like CCD and CTX.

Addenda record settings and limitations:

  • CCD, PPD, and WEB payment transactions can have one addenda record. The addenda record displays as one line, not to exceed the 88-character limit.
  • A CTX payment transaction can have multiple addenda records, up to 9,999 records to be exact.
  • KeyBank does not allow more than 20 addenda records per request.
  • If you need additional records, there is a different request available to add addenda records and that endpoint is limited to 100 records per request.

To manage the status of the addenda records, our system tracks it for the entire business day. The status changes from Waiting to Completed, indicating that the addenda records were successfully received, and the ACH transaction is ready to be processed.

Same-day ACH transactions are when the receiving depository financial institution (RDFI) posts the credit or debit to the payee account on the same day the transaction originated. Same-day ACH transactions cannot exceed a set maximum dollar amount per day. Typically, the total same-day ACH transactions cannot exceed $100,000 in a single business day.

This is an automatic setting for our clients. If you do not want the default option of same-day ACH transactions, you can choose to opt out. There is a surcharge for same-day transactions.

For the ACH Origination API, there are cutoff times for the ACH transaction to be posted the same day it originated:

SAME-DAY FLOWWindow 1Window 2Window 3
Client cutoff09:15 a.m. (EST)11:15 a.m. (EST)03:00 p.m. (EST)
File sent from KeyBank
to the ACH operator
09:30 a.m. (EST)11:30 a.m. (EST)03:45 p.m. (EST)
ACH transaction to RDFI12:00 p.m. (EST)04:00 p.m. (EST)05:30 p.m. (EST)
Posted to payee account01:30 p.m. (local)05:00 p.m. (local)RDFI end of day

Did you know?

With the ACH Origination API, you can inquire on the transactions before they are officially submitted for processing. The status endpoint tells you if the transaction was accepted (transaction request data is valid), rejected (there is missing or erroneous data in the request), or extracted (transaction received by the ACH core processing system).

Common terms

ACH operator

The central clearing facility managed by the Federal Reserve Bank.

ACH processor

The ACH core processing system takes the incoming transactions from the originating financial institution, which are then sorted, batched, and verified. After the transaction is legitimized, the funds are forwarded to the receiver’s financial institution.

Collected

The status when the originating transaction is received by the ACH processor.

Credit

To push funds to other accounts.

Debit

To pull funds from an account.

ODFI

Originating Depository Financial Institution is the financial institution of the originator. This ODFI has an active relationship with ACH services and sends transactions to the ACH network on behalf of the originator.

Originator

The company or business that initiates a transaction to the receiver (payee). Before a transaction can be sent, the originator has authorized the receiver to credit or debit their account.

PAR number

Payment Assigned Reference number is a unique identifier assigned by the ACH processor used to identify the transaction without exposing any sensitive consumer identification information. When you submit a request with the ACH Origination API, it creates a PAR number and returns the value in the response.

Posted

The status when a transaction is received by the ACH processor, reviewed by the ACH operator, and currently with core banking applications to secure and transfer funds. It could also indicate that the funds have been completely settled between originator and receiver.

RDFI

Receiving Depository Financial Institution is the financial institution of the receiver. The ACH operator processes the transactions and sends the funds to the financial institution before the money is posted to the receiver's account.

Receiver

The individual or company that receives the funds. Before a transaction can be received, the receiver has authorized the originator to credit or debit their account. The receiver may also be referred to as the payee.

Returned

The status when a transaction is reviewed by the ACH operator and the transaction is not cleared for transfer for reasons like insufficient funds or erroneous data.

Reversal

Request to cancel a payment after it has posted. Reversals are not guaranteed.

Trace number

The trace number is a unique identifier for an ACH transaction generated by the ACH Origination API. Use this number for your ACH Inquiry API requests.

Undo

Stop a transaction before it is received by the ACH processor. This window is typically 10 minutes in length.


With the ACH Inquiry API, you can check on the progress of a payment transaction after the ACH processor receives them.

See the specs

Use the account number, PAR number, or trace number from the ACH Origination transaction request to inquire about the status or get additional details of a transaction.

Account number

Use the KeyBank originator account number associated with ACH transaction to inquire about transactions that are posted. With the ACH List inquiry, all you need is an account number to look up ACH transactions.

PAR number

The PAR (Payment Assigned Reference) number is a unique identifier assigned by the ACH processor after you submit a request with the ACH Origination API. This is used to identify the transaction without exposing any sensitive consumer identification information.

In the ACH Inquiry API request, use the PAR number (parNumber) in the ACH Detail request to inquire about an account with this unique identifier.

Trace number

When you submit a request with the ACH Origination API, the ACH processor immediately creates a trace number unique to that transaction (traceNumber). Save this trace number if you intend to check on the progress of the ACH transaction or to use it for verification.

In the table below we associate each endpoint in the ACH Inquiry API, including legacy endpoints, with the key identifiers you can use to request the status of an ACH transaction.

ENDPOINTIDENTIFIER EXAMPLE 
ACH List/accounts/transactions/v1/ach/listaccountNumber: 222333448 
ACH Detail/accounts/transactions/v1/ach/detail/{parNumber}parNumber: 1234567891113 

A good reminder...

We recommend that you check on the status after 06:00 a.m. EST the following business day. By this time, the ACH processor has run the batch and consolidation processes.

 

The ACH List endpoint is a comprehensive search of all ACH transactions with a single account number. Use the date parameters or identify the ACH transaction status to better define the response. 

Request and response example

  • If you want to search with a date range, make sure to include the fromDate and toDate. You can search up to two years of past records. We recommend that you limit the date range to 31 days for a more efficient response.
  • If you are want to inquire about only a certain status of ACH transaction, use the dateSearchType parameter. You can filter the results by Collected, Returned, or Settled transactions.
Request
{
  "accountNumber": "3123456789",
  "dateSearchType": "COLLECTED",
  "fromDate": "2024-02-01T00:00:00.000Z",
  "toDate": "2024-02-01T00:00:00.000Z",  
  "minimumAmount": 100,
  "maximumAmount": 75020.5,
  "traceNumber": "041001030016002",
  "pageNumber": 1,
  "pageSize": 150  
}
Response
{
  "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"
   }
 ]
}

What to expect

  1. In the transactions response, you can expect to see the status, general transaction information, identification for the originating and receiving parties involved, return reason if applicable, and addenda counts. 
  2. A metadata object is part of the response that gives details about the inquiry results and size of response.

The ACH Detail endpoint retrieves details about an ACH transaction with a single PAR number.

Details returned include transaction IDs, originating parties, receiving parties, return reasons, transaction status, and Nacha SEC data.

Request and response example

Use the parNumber from the originating transaction to get additional details about the transaction. 

Request
curl --location: '{host}/v1/ach/detail/22018007665985'
--header 'Accept: application/json'
--header 'Authorization: Bearer testZcKJDWnwDWmmf9qah6PJvPy8'
Response
{
  "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"
    }
  ]
 }

What to expect

You receive a detailed response for the transaction associated with the provided PAR number. Details include information about the parties involved. the identification and account associated with the PAR number, and additional transaction information in addenda records. 

We all make mistakes. Sometimes we need to pull things back before we can move forward. KeyBank understands and our API Origination API has a few ways to do that.

You can undo a payment before it is collected by the ACH processor. Use the undo endpoint to stop the transaction before it is received by the ACH processor. The time window to undo is dependent upon the collection windows. The typical window to undo a payment is about 10 minutes but it can be more depending on when the payment is submitted and the collection schedule.

If the payment was collected and you still need to delete the payment, you can reverse the transaction within five banking days from the original effective date. When you reverse the transaction, it generates a reversal to the receiver’s account to pull back payments that were originated erroneously. While reversals are not a guaranteed success, it is an option to undo the original payment submitted after collection.

To reverse a payment, you have one of two options. You cannot do both of these options if one does not work.  

Option 1: Submit the file maintenance form for a payment reversal.

Option 2: Use ACH Direct to reverse a payment. You can search for the transaction by batch or account. Reversals are available within 5 banking days of the effective date for the current transactions. After you submit this request, the status for the transaction will be pending until it is fully processed as reversed.

Option 3: Complete an ACH Originate API request with the opposite credit or debit indicator in the creditDebitCode field of the request body. Update the companyEntryDescription in the request body to reflect REVERSAL.

A payment can be returned for various reasons like insufficient funds, unable to verify accounts, incorrect data in the request, or a security concern.

KeyBank recommends that you inquire about returns daily with the ACH Inquiry API. Here’s how:

  • To inquire about one or more transactions, use the account number and date fields to look up information.
  • To look up a specific returned transaction, use the PAR number. The PAR number is generated by the API and provided in the response. It is a unique identifier that matches the returned transaction to the original transaction.

Unauthorized returns apply mainly to disputed transactions where the person or company being charged does not consent to the funds transfer. There are different return time frames by SEC code so consider the exposure to unauthorized returns when you originate a payment with a certain SEC code.

 Consumer transactionsCommercial transactions
SEC codePPD, TEL, WEBCCD, CTX
Unauthorized returns windowup to 60 calendar days24 hours (two banking days)
 
 

Does ACH stand for Actual Common Help? It sure doesn’t, but we can answer some questions for you!

 

Where is my transaction? How can I get more information?

You submitted a request with the ACH Origination API to send or get money. Get the traceNumber or parNumber from the ACH Origination API response and use that identifier with the ACH Inquiry API request to track the status of the ACH transaction (or batch of transactions).

See our information on the ACH Inquiry API to learn more.

I got an error. What went wrong?

Everything went wrong. And you forgot to send that birthday card too!

OK, it’s not that serious. We can’t fix the birthday card situation, but we can help with that API error.

Check out more information in the Errors section of the API documentation for the ACH Origination API or the ACH Inquiry API.

What’s the difference between undo, reversal, and returned?

When you undo a transaction, you stop the ACH processor from receiving the request before the collection window.

For example, let’s say there is a 10-minute window to undo a payment before it is received by the ACH processor. You submit a transaction with the API at 08:15 a.m. EST. You have until 08:25 a.m. EST to undo this transaction before the ACH processor begins to process the transaction.

When you reverse a transaction, you missed the window to undo a request and now need to either submit the file maintenance form for a payment reversal, use ACH Direct, or attempt to reverse it with another transaction

When a transaction is returned, it means that something was not right when going through core banking applications for review and settlement. The transaction is returned to the originator without ever being posted.

CCD and PPD seem similar. What is the difference?

PPD transactions are typically from a corporate account to an individual account. Like if you are sending payroll to your employees, you are sending money from a corporate account to a personal account of the employee.

CCD transactions are usually from one commercial or business account to another. It could also be an individual account sending money to a vendor account. One example could be a renter (individual account) sending their rent check to the property management office (business account).

Is there a way to input a value in the request that I recall when using the ACH Inquiry API?

There are two fields available to attached additional information to a transaction.

  1. The entry description (companyEntryDescripiton) describes the purpose of the payment as defined by you. This is required for reporting and helps identify any differences between the transactions. This information is visible to the originator and the receiver.
  2. Use the custom data (customData) field to append specific information to a payment transaction. This information is only visible to the originator and can be recalled by the originator after a payment is collected.

    The custom data does not transmit with the payment as it is processed. The custom data is safely stored in KeyBank’s database. The traceNumber links the incoming collected or posted payment to the custom data, recalled from the request input.

What is the timing with payments?

ACH transactions are collected/distributed several times throughout the day. KeyBank’s final cutoff time for clients to send us an ACH file is 10:30 p.m. EST. The schedule is as follows:

ACH collection/distribution schedule

  1. Collection only, 05:00 a.m. EST
  2. Collection and distribution, 06:00 a.m. EST
  3. Collection and distribution, 09:30 a.m. EST
  4. Collection and distribution, 11:30 a.m. EST
  5. Collection and distribution, 01:30 p.m. EST
  6. Collection and distribution, 03:30 p.m. EST
  7. Collection and distribution, 07:00 p.m. EST
  8. Collection and distribution, 09:30 p.m. EST
  9. Collection and distribution, 10:30 p.m. EST

Can I do same-day payment?

For an additional fee, you can make same-day payments until approximately 03:00 p.m. EST. Funds are withdrawn the date the payment is processed and delivered by the following business day. The account’s available balance is updated when the payment is processed. The account ledger is updated the day after the payment is sent.

What about future date payments?

You can future date a transaction. The payment transaction is processed as normal and collected, but the payment does not post to the bank until the date specified.

Use effectiveDate in the request to specify when a collected transaction is posted. The effective date can be up to 30 days in the future. Typically, the funds will be distributed to the receiver 1-2 days prior to the effective date that was provided during origination. When setting the effective date, consider the schedule for collection windows and supporting processes.

Is there a limit to how many transactions I can send in a single request?

 

The ACH Origination API request is limited to 100 transactions per request for each of KeyBank’s clients. For each of the requests submitted, the clients will receive a message acknowledging either a successful transaction or a transaction error.

Is there a limit to how much money I can send in a same-day transaction?

 

Total same-day ACH payments cannot exceed $100,000 in a single business day.

Are there client requirements I should know about?

There are some required fields to initiate an ACH transaction. After you complete the KeyBank onboarding process, we will assign you values for point and collection application ID parameters that map to a legitimate bank account.

  • Point (point) is a short name specific to your company that’s assigned by KeyBank. The point name is nine characters long, but KeyBank limits the assigned name to eight characters. One character is used to match the input data of the request associated with this point value to the shared services payment system before batch processing. The point value is included in the file name and improves security for file transfers.
  • Collection application ID (collectionApplicationId) is a sub-level to the point value assigned by KeyBank. Every point requires at least one collection application identifier. The ID must not exceed 9 characters. If you have different settlement accounts, you'll need multiple collection application IDs, each connected to a specific settlement account.

There is another important parameter that is not required, but strongly encouraged. The universal unique identifier (uuid) is a custom value used to identify each transaction created by you. The UUID is required to undo a payment. The ID must not exceed 45 alphanumeric characters. The UUID is only part of the ACH Originate API and is not used to trace a transaction across its lifecycle, meaning it cannot be used as a lookup field in the ACH Inquiry API. The UUID is at the transaction level and provides the status of a specific transaction as Accepted, Waiting for Addenda, Consolidated, or Failed.

How do I send a prenote versus a live transaction?

A prenote (or as my grandfather calls it formerly - the prenotification entry) is a non-monetary entry submitted by an originator to a RDFI before sending a credit or debit entry to the receiver’s account with the RDFI.

A live transaction is a monetary entry submitted by an originator to a RDFI to send a credit or debit to the receiver’s account with the RDFI.

Word soup, right? Basically, a prenote is a notification the tells the RDFI to verify the account information. A live transaction is an actual payment.

In the request, define if the transaction is a prenote (P) or a live (L) transaction with the transactionType field.

 

What's next

Custom data

clock 3-minute read calender Rel. 4.0.0 | updated Apr. 24, 2024

Add data or tags specific to your application or use case

If you send or validate a payment with the ACH Origination API or the Wire Transfer API, you can add information to the customData in the request payload.

Custom data is client-specific metadata that you can:

  • Use to append certain information or details
  • Use as an identifier to filter certain types of transactions

The customData information is not transmitted with the payment or stored in any KeyBank database. This information is only visible to you, the originator, with the ACH Inquiry API or the Wire Inquiry API. In the inquiry response, the customData field returns any custom values that were part of the payment request stored for recall after a successful ACH or wire transaction completes. This information is not visible to the recipient or any of the participating parties.

Here's how it works

  1. Define the customData in the request payload. It is a free-form text field that can contain up to 500 alphanumeric characters that you can use however you like - for invoice number, product number, customer number, date/time stamp, etc.

    Custom data examples

    KeyBank recommends the common custom data format of name-value pairs. You can list multiple name-value pairs in the custom data field within the 500-character limit. The custom data fields will return exactly what is sent; it does not parse name-value pairs within the API response. The custom data should not contain any personal identifiable information (PII).

    Example of name:value pairs

    "customData": "Type:DD; Status:Submitted; POnumber:12556"

    Example of regular text

    "customData": "General products"

    Example of timestamp

    "customData": "05-MAR-2023:12:19:53EST"
  2. As the originator, you can use the ACH Inquiry API or Wire Inquiry API to retrieve the custom data information.
  3. Review the response for the customData field.
    • If there is custom data, it returns any custom values that were part of the payment request stored for recall after a successful ACH or wire transaction completes.
    • If no custom data is defined, the response returns an empty field.

Error handling

clock 5-minute read calender Rel. 4.0.0 | updated Mar. 13, 2024

Is it you? Is it me? Is it us? Let's figure it out.

An error can indicate a problem with the request, the network, or the API itself. Use the error handling information to get a better understanding of what went wrong and possible corrective actions.

Each error response returns the standard HTTP code number with the exception schema. KeyBank utilized the standard HTTP messaging so nothing too fancy.

CodeStatusDescription
200OK; SuccessfulThe action was successful. No additional actions are needed.
400Missing mandatory informationRequest is missing required information.
401Unauthorized requestInvalid credentials for the request.
403Forbidden request accessYou do not have permission to complete the request.
404Resource not foundThe resource for the request cannot be found.
405Invalid request methodThe wrong request method was used.
415Invalid request typeThe wrong media type submitted with the request.
429Request timeoutThere are too many requests to the API and a timeout goes into effect.
500Unknown errorThere was an unknown error with the server.
502Bad gatewayThe servers cannot talk to each other or there is a miscommunication.
503Unavailable serviceThe service is temporarily down.
504Unable to process requestRequest needs more time to be processed.

 

 

The exception schema includes the error message, your unique X-CorrelationId, and additional information like TransactionId and TransactionTime. The transaction ID and timestamp are helpful in diagnosing the issue. The X-CorrelationId is helpful for transaction traceability and may help determine where did the error occurred.

The exception schema may also contain the ServiceError field for API-specific errors or problems with backend services. This object can contain a few different values, depending on the API or circumstance:

  • connectError - error information of the connectivity with downstream service.
  • detailMessage - an error code with a detailed message.
  • serviceErrorData - API-specific error details about the failed transaction.
  • variable field based on API - custom messages about API-related functional business messages or faults.

 

Standard error format
{
  "ErrorMessage": string,
  "X-CorrelationId": string,
  "TransactionId": string,
  "TransactionTime": string,
  "ServiceError": object
}

Some APIs contain status messages in the responseHeader object of the response payload. Review the status field to see if the transaction was successful (S), was successful but has a warning (W), or failed (F). Additional information is shared in the statusDescription field.

  • S: A successful response. (HTTP 200) 
  • W: The transaction was not not processed as expected. A warning message means the request was successfully received, but there was a minor issue that requires your attention. (HTTP 299)
  • F: The transaction was not processed. (HTTP 400s/500s)

API-specific status messages are explained in depth on the API doc pages where applicable.

 

Status message example
{
  "responseHeader": {
     "status": "S",
     "statusDescription": "Successfully returned results for the requested range 1 to 1",
     "retrivedRows": "1",
     "totalRows": "1",
     "dataLoadDate": "2022-07-13"
     },
}

clock 1-minute read calender Rel. 4.0.0 | updated May. 29, 2024

Make managing multiple accounts as easy as managing just one

Key takeaways

There are many benefits to virtual account management at KeyBank. With KeyVAM, you can:

  • Send and receive ACH, RTP, and Wire transactions on behalf of the parent account.
  • Instant opening and closed of sub-accounts for an individual or business.
  • View transaction and reconciliation data for each virtual sub-account while the total funds settle in one parent account with advance reporting.

Virtually amazing

Check it out yourself. There is a lot of great information on the Key Virtual Account Management site.

If you are ready to get started or have any questions, reach out to a Payments Advisor.

What is VAM?

Key Virtual Account Management (KeyVAM) is an embedded service of the KeyNavigator platform. KeyVAM enhances how you manage money by linking a set of a set of virtual accounts (sub-accounts) to a single, physical account (parent). You can create and manage virtual sub-accounts in real-time. This is a great option if you need to open and close high-value virtual sub-accounts common in industries like technology, property management, or corporate cost centers.

 

KeyVAM APIs

Integrate your application with APIs. KeyVAM APIs are available to further develop your virtual account management experience with task automation for common activities like creating accounts, transferring funds, or reports. View the Key Virtual Account Management API Documentation to see what is possible.

 

Intraday Information Reporting

clock 3-minute read calender 1.2.6 | updated May. 29, 2024

Get the memo for today's activities

Intraday is an information reporting API that retrieves transaction activity, balance summaries, and transaction counts for one or multiple checking accounts. Intraday focuses on a single day's activity.
What you can do Endpoint
Health check get /ddaReports/accounts/v1/healthCheck
Get a list of transactions for the current day post /ddaReports/accounts/v1/transactions/intraday/list
Get an account summary report for the current day post /ddaReports/accounts/v1/transactions/intraday/summary
Get a CDA summary report for the current day post /ddaReports/accounts/v1/transactions/cda/summary
Get the current balance for one or more accounts post /ddaReports/accounts/v1/transactions/current/balances

Before you begin

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

Intraday information includes all memo transactions from the current day, such as deposit activity, CDA funding requirements, incoming CDA checks, incoming ACH debits and credits, incoming wires, and ACH and wire transactions that you originate.

What does that code mean?

We can't be expected to remember it all. Look at our Data values page to find definitions for BAI codes and transaction type codes.


get /ddaReports/accounts/v1/healthCheck

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

NAME TYPE DESCRIPTION
Statusoptional string Status of the health check response.
Sourceoptional string Origin of the system response can be 'Gateway' or 'Roundtrip'. Roundtrip returns a response from the farthest system involved.
Timestampoptional string Date (YYYY-MM-DD) and time (HH:MM:SS) of response from the API service.
ClientIpoptional string Client IP address the gateway receives from the request.
X-Forwarded-Foroptional string Sequence 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 /ddaReports/accounts/v1/transactions/intraday/list

Retrieve current-day transaction activity for one or multiple accounts. Transaction data can be recalled from the previous 24 months.

BODY FIELDTYPEDESCRIPTION
accountNumberrequiredarrayOne or more bank account numbers. To look up multiple accounts, separate the account numbers with a comma. This field cannot exceed 16 characters.
daterequiredstringDate for which the list of transactions is to be retrieved. Transaction data can be recalled from the previous 24 months. Format: YYYY-MM-DD
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.

Request example

copylink
{
    "getIntraDayTransactionsRequest": {
        "accountNumber": [
            "123456789"
        ],
        "date": "2022-04-11",
        "startRowIndex": "1",
        "endRowIndex": "1"
    }
}
NAMETYPEDESCRIPTION
responseHeaderrequiredObjectresponseHeaders
IntraDayTransactionsoptionalarrayIntraDayTransactions

Response example (200)

copylink
{
    "getIntraDayTransactionsResponse": {
        "responseHeader": {
            "status": "S",
            "statusDescription": "Successfully returned results for the requested range 1 to 10",
            "retrivedRows": "1",
            "totalRows": "1",
            "dataLoadDate": "2022-07-05"
        },
        "IntraDayTransactions": [
            {
                "accountNumber": "123456789",
                "transactionEffectiveDate": "04\/11\/2022",
                "transactionTypeId": "RTP",
                "addendaInformation": {
                    "WiresData": {
                        "creditArrangementTypeCode": "NOSTRO",
                        "creditArrangementBankNumber": "0101",
                        "creditArrangementBankBranch": "US",
                        "creditArrangementCurrencyCode": "USD",
                        "creditInvolvedPartyIdentifier": "22850641",
                        "creditInvolvedPartyName": "TEST COMPANY 3, LLC",
                        "creditArrangementCountryCode": "CORP",
                        "creditInvolvedPartyTypeCode": "US",
                        "debitArrangementTypeCode": "DDA",
                        "debitArrangementBankNumber": "3290",
                        "debitArrangementBankBranch": "US",
                        "debitArrangementCurrencyCode": "USD",
                        "debitInvolvedPartyIdentifier": "35008380",
                        "debitInvolvedPartyName": "TEST COMPANY 1, LLC",
                        "transactionBusinessStatusCode": "Completed",
                        "sendingBankReferenceNumber": "KTT96632162612772R",
                        "originatingInvolvedPartyName": "TEST COMPANY 1, LLC",
                        "originatingArrangementNumber": "12345123",
                        "originatingInvolvedPartyAddressLine1": "127 Public Sq, Cleveland",
                        "originatingInvolvedPartyAddressLine2": "OH 44114",
                        "beneficiaryInvolvedPartyName": "TEST COMPANY 3, LLC",
                        "beneficiaryArrangementNumber": "987654321",
                        "beneficiaryInvolvedPartyAddressLine1": "250 Delaware Ave Ste",
                        "beneficiaryInvolvedPartyAddressLine2": "Buffalo,NY 14202",
                        "intermediaryBankName": "KeyBank National Association",
                        "intermediaryBankABANumber": "21300077",
                        "intermediaryBICCode": "KEYBUS33 XXX",
                        "intermediaryBankAddressLine1": "250 Delaware Ave Ste",
                        "intermediaryBankAddressLine2": "Buffalo,NY 14202",
                        "originatingBankName": "ORIGINATING BANK USA",
                        "originatingBankABANumber": "123001088",
                        "originatingBankBICcode": "ORIBICODE",
                        "originatingBankAddressLine1": "127 Public Sq",
                        "originatingBankAddressLine2": "Cleveland, OH 44114",
                        "beneficiaryBankName": "KeyBank National Association",
                        "beneficiaryBankABANumber": "21300077",
                        "beneficiaryBankBICcode": "KEYBUS33 XXX",
                        "beneficiaryBankAddressLine1": "250 Delaware Ave Ste",
                        "beneficiaryBankAddressLine2": "Buffalo,NY 14202",
                        "sourceTransactionIdentifier": "NOTPROVIDED",
                        "transactionSettledDate": "04\/11\/2022",
                        "federalReferenceNumber": "20220411MMFMP1D002353",
                        "incomingReferenceNumber": "2021092123304446",
                        "transactionExecutedDate": "04\/11\/2022",
                        "transactionIdentifier": "US22041123510763"
                    },
                    "OLDSData": {
                        "bankNumber": "0101",
                        "transactionTypeId": "1085",
                        "srcArrangementNumber": "123456789",
                        "transactionEffDate": "25\/10\/2021",
                        "transactionAmount": "375",
                        "transactionTypeCode": "D",
                        "transactionSrcCode": "ODS",
                        "transactionDescription": "TRANSFER FROM CHECKING TO CHECKING"
                    },
                    "LockboxData": {
                        "lockboxNumber": "1234",
                        "lockboxName": "Keybank Lockbox #1",
                        "lockboxGrpNumber": "1001",
                        "lockboxGrpName": "Keybank Group #1",
                        "firstContactName": "John Doe",
                        "firstContactStreetAddr": "127 Public Sq",
                        "firstContactCity": "Cleveland",
                        "firstContactState": "OH",
                        "firstContactPostalCode": "44114",
                        "firstDepositTransitNumber": "12235",
                        "customDataField1": "XXX123"
                    },
                    "LockboxTransactionData": {
                        "DDAAccountNumber": "123456789",
                        "processDate": "02\/01\/2022",
                        "lockboxGrpBankNumber": "1001",
                        "lockboxNumber": "1234",
                        "remittanceTransactionNumber": "28",
                        "remittancePaidAmount": "36.9",
                        "paidAmount": "250",
                        "payerFinInstRoutingNum": "000008002",
                        "payerArrangementNum": "27911525005",
                        "checkSeqNumber": "27911525005",
                        "floatAmountDay0": "0",
                        "floatAmountDay1": "250",
                        "floatAmountDay2": "0"
                    },
                    "CPCSData": {
                        "sourceArrangementNumber": "1234567890",
                        "regulationEDescription": "KEYCAP ",
                        "transactionDescription2": "E#3830Y",
                        "transactionEffectiveDate": "08\/09\/2021",
                        "transactionActionCode": "D",
                        "transactionAmount": "49985.07",
                        "float1Amount": "49985",
                        "creditOrDebitCode": "C",
                        "traceID": "C 003121080937346069"
                    },
                    "ACHTransactionData": {
                        "sourceArrangementNumber": "123456789",
                        "transactionProcessedDate": "10\/08\/2021",
                        "transactionAmount": "2307.42",
                        "transactionCreditDebitCode": "C",
                        "derivedBAICode": "165",
                        "transactionCode": "22",
                        "description1": "TEST MERCHANT DEPOSIT",
                        "description2": "896217706887",
                        "description3": "42930550001626 8 CAR",
                        "description4": "X IA TI",
                        "transactionPostingWindow": "0600"
                    },
                    "RTPData": {
                        "creditArrangementTypeCode": "NOSTRO",
                        "creditArrangementBankNumber": "0101",
                        "creditArrangementBankBranch": "US",
                        "creditArrangementCurrencyCode": "USD",
                        "creditInvolvedPartyIdentifier": "999997",
                        "creditInvolvedPartyName": "TEST RTP Clearing Account",
                        "creditArrangementCountryCode": "US",
                        "debitArrangementTypeCode": "DDA",
                        "debitArrangementBankNumber": "0618",
                        "debitArrangementBankBranch": "US",
                        "debitArrangementCurrencyCode": "USD",
                        "debitInvolvedPartyIdentifier": "12359355",
                        "debitInvolvedPartyName": "TEST COMPANY 2, LLC",
                        "transactionBusinessStatusCode": "Completed",
                        "originatingInvolvedPartyName": "TEST COMPANY 1, LLC",
                        "originatingArrangementNumber": "12345123",
                        "originatingInvolvedPartyAddressLine1": "127 Public Sq, Cleveland",
                        "originatingInvolvedPartyAddressLine2": "OH 44114",
                        "beneficiaryInvolvedPartyName": "TEST COMPANY 3, LLC",
                        "beneficiaryArrangementNumber": "987654321",
                        "sourceTransactionIdentifier": "NOTPROVIDED",
                        "transactionSettledDate": "09\/30\/2021",
                        "federalReferenceNumber": "20210930041001039T1BUSRT06428125521",
                        "transactionExecutedDate": "09\/30\/2021",
                        "transactionIdentifier": "US21093000082075",
                        "transactionAmount": "400"
                    }
                }
            }
        ]
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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",
    "ServiceError": {
        "getIntraDayTransactionsResponse": {
            "responseHeader": {
                "status": "F",
                "statusDescription": "Error Message from Backend Servers for unauthorized access"
            },
            "errorResponse": {
                "businessFault": [
                    {
                        "errorCode": "ECA-W-001",
                        "errorDescription": "Error Message from Backend Servers for unauthorized access"
                    }
                ]
            }
        }
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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 /ddaReports/accounts/v1/transactions/intraday/summary

Retrieve a summary of current-day account activity for one or multiple accounts. Transaction data can be recalled from the previous 24 months.

BODY FIELDTYPEDESCRIPTION
accountNumberrequiredarrayOne or more bank account numbers. To look up multiple accounts, separate the account numbers with a comma. This field cannot exceed 16 characters.
daterequiredstringDate for which the transaction summaries are to be retrieved. Transaction data can be recalled from the previous 24 months. Format: YYYY-MM-DD

Request example

copylink
{
    "getIntraDaySummaryRequest": {
        "accountNumber": [
            "123456789"
        ],
        "date": "2021-11-15"
    }
}
NAMETYPEDESCRIPTION
responseHeaderrequiredObjectresponseHeaders
DDAIntraDaySummaryoptionalarrayGetIntraDaySummaryResult

Response example (200)

copylink
{
    "getIntraDaySummaryResponse": {
        "responseHeader": {
            "status": "S",
            "statusDescription": "Successfully processed the request.",
            "dataLoadDate": "2022-07-05"
        },
        "DDAIntraDaySummary": [
            {
                "earlyACHCredit": "5163394",
                "earlyACHCreditCount": "10",
                "lateACHCredit": "6137.55",
                "lateACHCreditCount": "1",
                "lockboxCredit": "0",
                "lockboxCreditCount": "0",
                "wireTransferCredit": "566308.64",
                "wireTransferCreditCount": "6",
                "depositsCredit": "0",
                "otherMiscCredit": "0",
                "otherMiscCreditCount": "0",
                "totalCredit": "5735840.19",
                "totalCreditCount": "17",
                "earlyACHDebit": "4602565.25",
                "earlyACHDebitCount": "2",
                "lateACHDebit": "0",
                "lateACHDebitCount": "0",
                "wireTransferDebit": "1420669.84",
                "wireTransferDebitCount": "2",
                "otherMiscDebit": "0",
                "otherMiscDebitCount": "0",
                "totalDebit": "6023235.09",
                "totalDebitCount": "4",
                "srcBankNum": "0101",
                "srcSysCode": "DDA"
            }
        ]
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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",
    "ServiceError": {
        "getIntraDaySummaryResponse": {
            "responseHeader": {
                "status": "F",
                "statusDescription": "Request Validation failed."
            },
            "errorResponse": {
                "businessFault": [
                    {
                        "errorCode": "ECA-W-001",
                        "errorDescription": "Missing mandatory field(s) - accountNumber."
                    }
                ]
            }
        }
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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",
    "ServiceError": {
        "getIntraDaySummaryResponse": {
            "responseHeader": {
                "status": "F",
                "statusDescription": "Error Message from Backend Servers for unauthorized access"
            },
            "errorResponse": {
                "businessFault": [
                    {
                        "errorCode": "ECA-W-001",
                        "errorDescription": "Error Message from Backend Servers for unauthorized access"
                    }
                ]
            }
        }
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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 /ddaReports/accounts/v1/transactions/cda/summary

Retrieve a summary of current-day account activity for one or multiple Controlled Disbursement Accounts (CDA). Transaction data can be recalled from the previous 24 months.

BODY FIELDTYPEDESCRIPTION
accountNumberrequiredarrayOne or more bank account numbers. To look up multiple accounts, separate the account numbers with a comma. This field cannot exceed 16 characters.
daterequiredstringDate for which the transaction summaries are to be retrieved. Transaction data can be recalled from the previous 24 months. Format: YYYY-MM-DD

Request example

copylink
{
    "getCDASummaryRequest": {
        "accountNumber": [
            "123456789"
        ],
        "date": "2021-10-08"
    }
}
NAMETYPEDESCRIPTION
responseHeaderrequiredObjectresponseHeaders
CDASummaryoptionalarrayGetCDASummaryResult

Response example (200)

copylink
{
    "getCDASummaryResponse": {
        "responseHeader": {
            "status": "S",
            "statusDescription": "Successfully processed the request.",
            "dataLoadDate": "2022-07-05"
        },
        "CDASummary": [
            {
                "summary": {
                    "sourceArrangementNumber": "123456789",
                    "snapshotDate": "10\/08\/2021",
                    "sourceSystemOfRecordCode": "CDA",
                    "currencyCode": "USD",
                    "amount": "0",
                    "amountTypeCode": "602",
                    "FundTypeCode": "Z",
                    "itemCount": "0",
                    "processSequenceNumber": "1",
                    "earlyACHCredit": "0",
                    "earlyACHDebit": "3375.69"
                },
                "CDATransactionDetails": {
                    "transactionDate": "10\/08\/2021",
                    "snapshotDate": "10\/08\/2021",
                    "originatingFinancialInstitutionReferenceNumber": "1",
                    "transactionDescription": "CHECK 0000144872",
                    "transactionTypeCode": "475",
                    "fundTypeCode": "Z",
                    "amount": "3995.4",
                    "processSequenceNumber": "1"
                },
                "ACHMemoPost": {
                    "sourceArrangementNumber": "123456789",
                    "transactionProcessedDate": "10\/08\/2021",
                    "transactionAmount": "2307.42",
                    "transactionCreditDebitCode": "C",
                    "derivedBAICode": "165",
                    "transactionCode": "22",
                    "description1": "TEST MERCHANT DEPOSIT",
                    "description2": "896217706887",
                    "description3": "42930550001626 8 CAR",
                    "description4": "X IA TI",
                    "transactionPostingWindow": "0600"
                }
            }
        ]
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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",
    "ServiceError": {
        "getCDASummaryResponse": {
            "responseHeader": {
                "status": "F",
                "statusDescription": "Request Validation failed.",
                "dataLoadDate": "2021-03-26",
                "retrivedRows": "1",
                "totalRows": "10"
            },
            "errorResponse": {
                "businessFault": [
                    {
                        "errorCode": "ECA-W-001",
                        "errorDescription": "Missing mandatory field(s) - accountNumber."
                    }
                ]
            }
        }
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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",
    "ServiceError": {
        "getCDASummaryResponse": {
            "responseHeader": {
                "status": "F",
                "statusDescription": "Error Message from Backend Servers for unauthorized access",
                "dataLoadDate": "2021-03-26",
                "retrivedRows": "1",
                "totalRows": "10"
            },
            "errorResponse": {
                "businessFault": [
                    {
                        "errorCode": "ECA-W-001",
                        "errorDescription": "Error Message from Backend Servers for unauthorized access"
                    }
                ]
            }
        }
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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 /ddaReports/accounts/v1/transactions/current/balances

Retrieve the current balance information, including both ledger and available balance, for one or more accounts. Transaction data can be recalled from the previous 24 months.

BODY FIELDTYPEDESCRIPTION
accountNumberrequiredarrayOne or more bank account numbers. To look up multiple accounts, separate the account numbers with a comma. This field cannot exceed 16 characters.
daterequiredstringDate for which the current balances are to be retrieved. Transaction data can be recalled from the previous 24 months. Format: YYYY-MM-DD

Request example

copylink
{
    "getCurrentBalancesRequest": {
        "accountNumber": [
            "123456789"
        ],
        "date": "2021-11-15"
    }
}
NAMETYPEDESCRIPTION
responseHeaderoptionalObjectresponseHeaders
CurrentBalancesoptionalarrayGetCurrentBalancesResult

Response example (200)

copylink
{
    "getCurrentBalancesResponse": {
        "responseHeader": {
            "status": "S",
            "statusDescription": "Successfully processed the request."
        },
        "CurrentBalances": [
            {
                "currentBalances": {
                    "holds": "0.00",
                    "uncollectedFunds": "0.00",
                    "currentLedger": "3267948.16",
                    "currentAvailable": "3267948.16",
                    "openingAvailable": "3267948.16"
                }
            }
        ]
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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",
    "ServiceError": {
        "getCurrentBalancesResponse": {
            "responseHeader": {
                "status": "F",
                "statusDescription": "Request Validation failed.",
                "dataLoadDate": "2021-03-26",
                "retrivedRows": "1",
                "totalRows": "10"
            },
            "errorResponse": {
                "businessFault": [
                    {
                        "errorCode": "ECA-W-001",
                        "errorDescription": "Missing mandatory field(s) - accountNumber."
                    }
                ]
            }
        }
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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",
    "ServiceError": {
        "getCurrentBalancesResponse": {
            "responseHeader": {
                "status": "F",
                "statusDescription": "Error Message from Backend Servers for unauthorized access",
                "dataLoadDate": "2021-03-26",
                "retrivedRows": "1",
                "totalRows": "10"
            },
            "errorResponse": {
                "businessFault": [
                    {
                        "errorCode": "ECA-W-001",
                        "errorDescription": "Error Message from Backend Servers for unauthorized access"
                    }
                ]
            }
        }
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance 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
sourceArrangementNumberoptionalstringAccount number
transactionProcessedDateoptionalstringDate the transaction was processed. Format: YYYY-MM-DD
transactionAmountoptionalstringTransaction amount
transactionCreditDebitCodeoptionalstringCode that indicates if the transaction is a credit or a debit. Valid values: C (credit), D (debit)
derivedBAICodeoptionalstringBAI2 transaction code
transactionCodeoptionalstringTwo-digit code identifying the account type at the receiving financial institution.
description1optionalstringBrief description of the transaction.
description2optionalstringBrief description of the transaction.
description3optionalstringBrief description of the transaction.
description4optionalstringBrief description of the transaction.
transactionPostingWindowoptionalstringPosting window of the transaction.
NAMETYPEDESCRIPTION
sourceArrangementNumberoptionalstringAccount number
transactionProcessedDateoptionalstringDate the transaction was processed. Format: YYYY-MM-DD
transactionAmountoptionalstringTransaction amount
transactionCreditDebitCodeoptionalstringCode that indicates if the transaction is a credit or a debit. Valid values: C (credit), D (debit)
derivedBAICodeoptionalstringBAI2 transaction code
transactionCodeoptionalstringTwo-digit code identifying the account type at the receiving financial institution.
description1optionalstringBrief description of the transaction.
description2optionalstringBrief description of the transaction.
description3optionalstringBrief description of the transaction.
description4optionalstringBrief description of the transaction.
transactionPostingWindowoptionalstringPosting window of the transaction.
NAMETYPEDESCRIPTION
WiresDataoptionalObjectWiresData
OLDSDataoptionalObjectOLDSData
LockboxDataoptionalObjectLockboxData
LockboxTransactionDataoptionalObjectLockboxTransactionData
CPCSDataoptionalObjectCPCSData
ACHTransactionDataoptionalObjectACHTransactionData
RTPDataoptionalObjectRTPData
NAMETYPEDESCRIPTION
errorCodeoptionalstringBusiness error code
errorDescriptionoptionalstringA human-readable message that describes the type or source of the business error.
NAMETYPEDESCRIPTION
transactionDateoptionalstringDate the transaction posted. Format: MM-DD-YYYY
snapshotDateoptionalstringDate that requested data was loaded. Format: MM-DD-YYYY
originatingFinancialInstitutionReferenceNumberoptionalstringReference number of the originating financial institution.
currencyCodeoptionalstringCurrency code of the transaction. Default value: USD
transactionDescriptionoptionalstringBrief description of the transaction.
transactionTypeCodeoptionalstringThe banking processor code for a particular transaction type.
fundTypeCodeoptionalstringCode associated with the fund type.
amountoptionalstringTransaction amount
customerReferenceNumberoptionalstringReference number attached to the customer.
processSequenceNumberoptionalstringSequence number of the transaction.
NAMETYPEDESCRIPTION
ConnectErroroptionalstringAPI connectivity error information, if available.
NAMETYPEDESCRIPTION
transactionPostedDateoptionalstringDate the transaction posted. Format: MM-DD-YYYY
sourceArrangementNumberoptionalstringAccount number
transactionDescriptionPart1optionalstringDescription of transaction, part 1
transactionDescriptionPart2optionalstringDescription of transaction, part 2
transactionDescriptionPart3optionalstringDescription of transaction, part 3
regulationEDescriptionoptionalstringRegulation E description
transactionDescription2optionalstringDescription of transaction
transactionEffectiveDateoptionalstringEffective date of the transaction. Format: YYYY-MM-DD
transactionActionCodeoptionalstringTransaction action identifier
transactionAmountoptionalstringTransaction amount
cashAmountoptionalstringCash part of transaction amount
checkIdentificationNumberoptionalstringCan contain serial number of item or store number for identification purposes.
float0AmountoptionalstringFloat 0 amount
float1AmountoptionalstringFloat 1 amount
float2AmountoptionalstringFloat 2 amount
float3AmountoptionalstringFloat 3 amount
float4AmountoptionalstringFloat 4 amount
float5AmountoptionalstringFloat 5 amount
float6AmountoptionalstringFloat 6 amount
float7AmountoptionalstringFloat 7 amount
priorDateFlagoptionalstringIf the transaction date is prior to the current business date then this is set to "P".
creditOrDebitCodeoptionalstringCode that indicates if the transaction is a credit or a debit. Valid values: C (credit), D (debit)
traceIDoptionalstringSource transaction identifier
NAMETYPEDESCRIPTION
holdsoptionalstringAmount that is on hold
uncollectedFundsoptionalstringUncollected funds amount
currentLedgeroptionalstringCurrent ledger balance
currentAvailableoptionalstringCurrent available balance
openingAvailableoptionalstringOpening available balance
NAMETYPEDESCRIPTION
businessFaultoptionalarrayBusinessFault
systemFaultoptionalarraySystemFault
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfExceptionIntraDayList ExceptionIntraDaySummary ExceptionCDASummary ExceptionCurrentBalance connectError
NAMETYPEDESCRIPTION
ExceptionCDASummaryobjectGetCDASummaryResponseException
NAMETYPEDESCRIPTION
ExceptionCurrentBalanceobjectGetCurrentBalancesResponseException
NAMETYPEDESCRIPTION
ExceptionIntraDayListobjectGetIntraDayTransactionsResponseException
NAMETYPEDESCRIPTION
ExceptionIntraDaySummaryobjectGetIntraDaySummaryResponseException
NAMETYPEDESCRIPTION
accountNumberrequiredarrayOne or more bank account numbers. To look up multiple accounts, separate the account numbers with a comma. This field cannot exceed 16 characters.
daterequiredstringDate for which the transaction summaries are to be retrieved. Transaction data can be recalled from the previous 24 months. Format: YYYY-MM-DD
NAMETYPEDESCRIPTION
responseHeaderrequiredObjectresponseHeaders
CDASummaryoptionalarrayGetCDASummaryResult
NAMETYPEDESCRIPTION
statusrequiredstringIndicates whether the result was successfully retrieved.
statusDescriptionrequiredstringDescription of the status.
dataLoadDateoptionalstringIndicates the date that the requested data was loaded. Format: YYYY-MM-DD
retrivedRowsoptionalstringTotal number of transactions retrieved.
totalRowsoptionalstringTotal number of transactions matching the requested criteria.
errorResponseoptionalObjectErrorResponse
NAMETYPEDESCRIPTION
summaryoptionalObjectSummary
CDATransactionDetailsoptionalObjectCDATransactionDetails
ACHMemoPostoptionalObjectACHMemoPost
NAMETYPEDESCRIPTION
accountNumberrequiredarrayOne or more bank account numbers. To look up multiple accounts, separate the account numbers with a comma. This field cannot exceed 16 characters.
daterequiredstringDate for which the current balances are to be retrieved. Transaction data can be recalled from the previous 24 months. Format: YYYY-MM-DD
NAMETYPEDESCRIPTION
responseHeaderoptionalObjectresponseHeaders
CurrentBalancesoptionalarrayGetCurrentBalancesResult
NAMETYPEDESCRIPTION
statusrequiredstringIndicates whether the result was successfully retrieved.
statusDescriptionrequiredstringDescription of the status.
dataLoadDateoptionalstringIndicates the date that the requested data was loaded. Format: YYYY-MM-DD
retrivedRowsoptionalstringTotal number of transactions retrieved.
totalRowsoptionalstringTotal number of transactions matching the requested criteria.
errorResponseoptionalObjectErrorResponse
NAMETYPEDESCRIPTION
currentBalancesoptionalObjectCurrentBalances
NAMETYPEDESCRIPTION
accountNumberrequiredarrayOne or more bank account numbers. To look up multiple accounts, separate the account numbers with a comma. This field cannot exceed 16 characters.
daterequiredstringDate for which the transaction summaries are to be retrieved. Transaction data can be recalled from the previous 24 months. Format: YYYY-MM-DD
NAMETYPEDESCRIPTION
responseHeaderrequiredObjectresponseHeaders
DDAIntraDaySummaryoptionalarrayGetIntraDaySummaryResult
NAMETYPEDESCRIPTION
statusrequiredstringIndicates whether the result was successfully retrieved.
statusDescriptionrequiredstringDescription of the status
dataLoadDateoptionalstringIndicates the date that the requested data was loaded. Format: YYYY-MM-DD
errorResponseoptionalObjectErrorResponse
NAMETYPEDESCRIPTION
earlyACHCreditoptionalstringTotal credit amount as of 0600 posting window.
earlyACHCreditCountoptionalstringTotal number of ACH credit transactions as of 0600 posting window.
lateACHCreditoptionalstringTotal credit amount from posting windows other than 0600.
lateACHCreditCountoptionalstringTotal number of ACH credit transactions from posting windows other than 0600.
lockboxCreditoptionalstringTotal credit amount of lockbox transactions.
lockboxCreditCountoptionalstringTotal number of lockbox credit transactions.
wireTransferCreditoptionalstringTotal credit amount of wire transfer transactions.
wireTransferCreditCountoptionalstringTotal number of wire transfer credit transactions.
depositsCreditoptionalstringTotal credit amount through deposits.
otherMiscCreditoptionalstringOther miscellaneous credit amounts.
otherMiscCreditCountoptionalstringTotal number of miscellaneous credit transactions.
totalCreditoptionalstringTotal credit amount from memo post, lockbox, wires, OLDS, and CPCS transactions.
totalCreditCountoptionalstringTotal number of credits from memo post, lockbox, wires, OLDS, and CPCS transactions.
earlyACHDebitoptionalstringTotal debit amount as of 0600 posting window.
earlyACHDebitCountoptionalstringTotal number of ACH debit transactions as of 0600 posting window.
lateACHDebitoptionalstringTotal debit amount from posting windows other than 0600.
lateACHDebitCountoptionalstringTotal number of ACH debit transactions from posting windows other than 0600.
wireTransferDebitoptionalstringTotal debit amount of wire transfer transactions.
wireTransferDebitCountoptionalstringTotal number of wire transfer debit transactions.
otherMiscDebitoptionalstringOther miscellaneous debit amounts.
otherMiscDebitCountoptionalstringTotal number of miscellaneous debit transactions.
totalDebitoptionalstringTotal debit amount from memo post, lockbox, wires, OLDS, and CPCS transactions.
totalDebitCountoptionalstringTotal number of debits from memo post, lockbox, wires, OLDS, and CPCS transactions.
srcBankNumoptionalstringSource bank number
srcSysCodeoptionalstringSource system code
currentBalancesoptionalObjectGetCurrentBalancesResult
NAMETYPEDESCRIPTION
accountNumberrequiredarrayOne or more bank account numbers. To look up multiple accounts, separate the account numbers with a comma. This field cannot exceed 16 characters.
daterequiredstringDate for which the list of transactions is to be retrieved. Transaction data can be recalled from the previous 24 months. Format: YYYY-MM-DD
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
responseHeaderrequiredObjectresponseHeaders
IntraDayTransactionsoptionalarrayIntraDayTransactions
NAMETYPEDESCRIPTION
statusrequiredstringIndicates whether the result was successfully retrieved.
statusDescriptionrequiredstringDescription of the status.
dataLoadDateoptionalstringIndicates the date that the requested data was loaded. Format: YYYY-MM-DD
retrivedRowsoptionalstringTotal number of transactions retrieved.
totalRowsoptionalstringTotal number of transactions matching the requested criteria.
errorResponseoptionalObjectErrorResponse
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.
NAMETYPEDESCRIPTION
accountNumberoptionalstringAccount number associated with the transaction.
transactionEffectiveDateoptionalstringEffective date of the transaction. Format: YYYY-MM-DD
transactionTypeIdoptionalstringTransaction type identifier
addendaInformationoptionalObjectAddendaInformation
NAMETYPEDESCRIPTION
lockboxNumberoptionalstringLockbox number
lockboxNameoptionalstringLockbox name
lockboxGrpNumberoptionalstringLockbox grouping number
lockboxGrpNameoptionalstringLockbox grouping name
firstContactNameoptionalstringFirst contact name defined in lockbox contacts
firstContactStreetAddroptionalstringStreet address for named contact
firstContactCityoptionalstringCity for named contact
firstContactStateoptionalstringState for named contact
firstContactPostalCodeoptionalstringZip code for named contact
firstDepositTransitNumberoptionalstringTransit number for named contact
customDataField1optionalstringCustom data field
NAMETYPEDESCRIPTION
DDAAccountNumberoptionalstringDDA account number associated with lockbox.
processDateoptionalstringDate the transaction was processed. Format: YYYY-MM-DD
lockboxGrpBankNumberoptionalstringNot a KeyBank bank number. Used by lockbox application to group lockboxes.
lockboxNumberoptionalstringLockbox number
remittanceTransactionNumberoptionalstringTransaction number
remittancePaidAmountoptionalstringRemittance applied amount
paidAmountoptionalstringAmount being paid by the payment record.
payerFinInstRoutingNumoptionalstringRouting and transit number field from payment. This is the routing number of the payer account.
payerArrangementNumoptionalstringAccount number field from payment
checkSeqNumberoptionalstringCheck number from payment
floatAmountDay0optionalstringLockbox float - amount available day 0
floatAmountDay1optionalstringLockbox float - amount available day 1
floatAmountDay2optionalstringLockbox float - amount available day 2
NAMETYPEDESCRIPTION
bankNumberoptionalstringBank number associated with the account number.
transactionTypeIdoptionalstringFour-digit transaction type identifier.
srcArrangementNumberoptionalstringCan be any account number, DDA, loan account, credit card, or savings.
transactionEffDateoptionalstringEffective date of the transaction. Format: YYYY-MM-DD
transactionAmountoptionalstringTransaction amount
transactionTypeCodeoptionalstringCode that indicates if the transaction is a credit or a debit. Valid values: C (credit), D (debit)
reversalFlagoptionalstringDenotes if the transaction is a reversal transaction of an earlier transaction.
transactionSrcCodeoptionalstringIdentifies the source of the transaction.
transactionDescriptionoptionalstringBrief description of the transaction.
traceIdoptionalstringSource transaction identifier
transactionCodeBAI2optionalstringBAI2 transaction code
NAMETYPEDESCRIPTION
statusrequiredstringIndicates whether the result was successfully retrieved.
statusDescriptionrequiredstringDescription of the status.
dataLoadDateoptionalstringIndicates the date that the requested data was loaded. Format: YYYY-MM-DD
retrivedRowsoptionalstringTotal number of transactions retrieved.
totalRowsoptionalstringTotal number of transactions matching the requested criteria.
NAMETYPEDESCRIPTION
creditArrangementTypeCodeoptionalstringCredit account type code
creditArrangementBankNumberoptionalstringBank number holding the credit account.
creditArrangementBankBranchoptionalstringBank branch holding the credit account.
creditArrangementCurrencyCodeoptionalstringTransaction currency code of the credit account.
creditInvolvedPartyIdentifieroptionalstringCustomer number associated with the credit account.
creditInvolvedPartyNameoptionalstringCustomer name associated with the credit account.
creditArrangementCountryCodeoptionalstringCountry of the credit account.
creditInvolvedPartyTypeCodeoptionalstringCustomer type associated with the credit account.
debitArrangementTypeCodeoptionalstringDebit account type code
debitArrangementBankNumberoptionalstringBank number holding the debit account.
debitArrangementBankBranchoptionalstringBank branch holding the debit account.
debitArrangementCurrencyCodeoptionalstringTransaction currency code of the debit account.
debitInvolvedPartyIdentifieroptionalstringCustomer number associated with the debit account.
debitInvolvedPartyNameoptionalstringCustomer name associated with the debit account.
transactionBusinessStatusCodeoptionalstringTransaction business status code
sendingBankReferenceNumberoptionalstringReference number attached to a wire, issued by the sending bank.
originatingInvolvedPartyNameoptionalstringName of the wire transaction originator.
originatingArrangementNumberoptionalstringAccount number of the wire transaction originator.
originatingInvolvedPartyAddressLine1optionalstringAddress line 1 of the wire transaction originator.
originatingInvolvedPartyAddressLine2optionalstringAddress line 2 of the wire transaction originator.
beneficiaryInvolvedPartyNameoptionalstringBeneficiary of the wire payment.
beneficiaryArrangementNumberoptionalstringAccount number of the beneficiary.
beneficiaryInvolvedPartyAddressLine1optionalstringAddress line 1 of the beneficiary.
beneficiaryInvolvedPartyAddressLine2optionalstringAddress line 2 of the beneficiary.
intermediaryBankNameoptionalstringName of the intermediary bank.
intermediaryBankABANumberoptionalstringABA number of the intermediary bank.
intermediaryBICCodeoptionalstringBIC number of the intermediary bank.
intermediaryBankAddressLine1optionalstringAddress line 1 of the intermediary bank.
intermediaryBankAddressLine2optionalstringAddress line 2 of the intermediary bank.
originatingBankNameoptionalstringName of the wire originating bank.
originatingBankABANumberoptionalstringABA number of the wire originating bank.
originatingBankBICcodeoptionalstringBIC number of the wire originating bank.
originatingBankAddressLine1optionalstringAddress line 1 of the wire originating bank.
originatingBankAddressLine2optionalstringAddress line 2 of the wire originating bank.
beneficiaryBankNameoptionalstringName of the beneficiary bank.
beneficiaryBankABANumberoptionalstringABA number of the beneficiary bank.
beneficiaryBankBICcodeoptionalstringBIC number of the beneficiary bank.
beneficiaryBankAddressLine1optionalstringAddress line 1 of the beneficiary bank.
beneficiaryBankAddressLine2optionalstringAddress line 2 of the beneficiary bank.
sourceTransactionIdentifieroptionalstringEnd-to-end ID to uniquely identify a transaction in source systems.
transactionSettledDateoptionalstringDate the transaction is settled. Format: MM-DD-YYYY
federalReferenceNumberoptionalstringFederal reference number
incomingReferenceNumberoptionalstringThe incoming reference number, which is provided by the sending bank.
currencyExchangeRateoptionalstringExchange rate
transactionExecutedDateoptionalstringDate the transaction is executed. Format: MM-DD-YYYY
bankToBankMemooptionalstringFree-form text transmitted between the banks.
transactionIdentifieroptionalstringTransaction identifier
transactionAmountoptionalstringThe amount of the RTP transaction.
NAMETYPEDESCRIPTION
sourceArrangementNumberoptionalstringAccount number
snapshotDateoptionalstringDate that requested data was loaded. Format: MM-DD-YYYY
sourceSystemOfRecordCodeoptionalstringThis field is for internal purposes only.
currencyCodeoptionalstringCurrency code of the transaction. Default value: USD
amountoptionalstringTransaction amount
amountTypeCodeoptionalstringCode associated with the transaction amount. Valid values: 580 (Total Controlled Disbursing Debits), 584 (Total Disbursing Checks Paid Later Amount), 602 (Total Adjustments), 585 (Required Funding Amount)
FundTypeCodeoptionalstringCode associated with the fund type.
itemCountoptionalstringTotal number of transactions
processSequenceNumberoptionalstringSequence number of the transaction.
earlyACHCreditoptionalstringTotal credit amount as of 0600 posting window.
earlyACHDebitoptionalstringTotal debit amount as of 0600 posting window.
NAMETYPEDESCRIPTION
errorCodeoptionalstringSystem error code
errorDescriptionoptionalstringA human-readable message that describes the type or source of the system error.
NAMETYPEDESCRIPTION
creditArrangementTypeCodeoptionalstringCredit account type code
creditArrangementBankNumberoptionalstringBank number holding the credit account.
creditArrangementBankBranchoptionalstringBank branch holding the credit account.
creditArrangementCurrencyCodeoptionalstringTransaction currency code of the credit account.
creditInvolvedPartyIdentifieroptionalstringCustomer number associated with the credit account.
creditInvolvedPartyNameoptionalstringCustomer name associated with the credit account.
creditArrangementCountryCodeoptionalstringCountry of the credit account.
creditInvolvedPartyTypeCodeoptionalstringCustomer type associated with the credit account.
debitArrangementTypeCodeoptionalstringDebit account type code
debitArrangementBankNumberoptionalstringBank number holding the debit account.
debitArrangementBankBranchoptionalstringBank branch holding the debit account.
debitArrangementCurrencyCodeoptionalstringTransaction currency code of the debit account.
debitInvolvedPartyIdentifieroptionalstringCustomer number associated with the debit account.
debitInvolvedPartyNameoptionalstringCustomer name associated with the debit account.
transactionBusinessStatusCodeoptionalstringTransaction business status code
sendingBankReferenceNumberoptionalstringReference number attached to a wire, issued by the sending bank.
originatingInvolvedPartyNameoptionalstringName of the wire transaction originator.
originatingArrangementNumberoptionalstringAccount number of the wire transaction originator.
originatingInvolvedPartyAddressLine1optionalstringAddress line 1 of the wire transaction originator.
originatingInvolvedPartyAddressLine2optionalstringAddress line 2 of the wire transaction originator.
beneficiaryInvolvedPartyNameoptionalstringBeneficiary of the wire payment.
beneficiaryArrangementNumberoptionalstringAccount number of the beneficiary.
beneficiaryInvolvedPartyAddressLine1optionalstringAddress line 1 of the beneficiary.
beneficiaryInvolvedPartyAddressLine2optionalstringAddress line 2 of the beneficiary.
intermediaryBankNameoptionalstringName of the intermediary bank.
intermediaryBankABANumberoptionalstringABA number of the intermediary bank.
intermediaryBICCodeoptionalstringBIC number of the intermediary bank.
intermediaryBankAddressLine1optionalstringAddress line 1 of the intermediary bank.
intermediaryBankAddressLine2optionalstringAddress line 2 of the intermediary bank.
originatingBankNameoptionalstringName of the wire originating bank.
originatingBankABANumberoptionalstringABA number of the wire originating bank.
originatingBankBICcodeoptionalstringBIC number of the wire originating bank.
originatingBankAddressLine1optionalstringAddress line 1 of the wire originating bank.
originatingBankAddressLine2optionalstringAddress line 2 of the wire originating bank.
beneficiaryBankNameoptionalstringName of the beneficiary bank.
beneficiaryBankABANumberoptionalstringABA number of the beneficiary bank.
beneficiaryBankBICcodeoptionalstringBIC number of the beneficiary bank.
beneficiaryBankAddressLine1optionalstringAddress line 1 of the beneficiary bank.
beneficiaryBankAddressLine2optionalstringAddress line 2 of the beneficiary bank.
sourceTransactionIdentifieroptionalstringEnd-to-end ID to uniquely identify a transaction in source systems.
transactionSettledDateoptionalstringDate the transaction is settled. Format: MM-DD-YYYY
federalReferenceNumberoptionalstringFederal reference number
incomingReferenceNumberoptionalstringThe incoming reference number, which is provided by the sending bank.
currencyExchangeRateoptionalstringExchange rate
transactionExecutedDateoptionalstringDate the transaction is executed. Format: MM-DD-YYYY
bankToBankMemooptionalstringFree-form text transmitted between the banks.
transactionIdentifieroptionalstringTransaction identifier
transactionAmountoptionalstringThe amount of the wire transaction.

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
200 S ECA-W-001 Transaction not found.

The request was received, but there is no result for the requested criteria.

299 W 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.

400 F ECA-W-001 Request Validation failed.

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

400 F 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
May 20241.2.6
  • 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
April 20241.2.5
  • Parameter description updates. This change is for technical content only. The code and operations of the API remain the same. 
LOW
February 20241.2.4
  • Added transactionAmount to the WiresData object.
LOW
March 20241.2.3
  • In the AddendaInformation, the ACHTransactionData object now matches the ACH Memo posted fields. Many parameters were removed and some were added.

    Added the following parameters:

    • sourceArrangementNumber
    • transactionProcessedDate
    • transactionAmount
    • transactionCreditDebitCode
    • derivedBAICode
    • transactionCode (remained)
    • description1
    • description2
    • description3
    • description4
    • transactionPostingWindow

    Removed the following parameters:

    • addendaPresentFlag
    • nachaBatchNumber
    • checkSerialNumber
    • transactionDescription1
    • originatingCompanyIDNumber
    • originatingCompanyName
    • creditOrDebitCode
    • originatingReceiverCode
    • SourceTransactionProcessedDate
    • receivingArrangementNumber
    • sourceTransactionPostedDate
    • nachaFileReferenceNumber
    • collectionPoint
    • goRoutingNumber
    • receivingCustomerIDNumber
    • receivingCustomerName
    • receivingCompanyName
    • addendaRecordNumber
    • originatingCustomerName
    • originatingFinancialInstitutionRoutingNumber
    • authorisedCustomerName
    • originatingArrangementNumber
    • receivingFinancialInstitutionBankNumber
    • receivingFinancialInstitutionRoutingNumber
    • nachaStandardEntryClassCode
    • transactionPARNumber
    • sourceTransactionSettledDate
    • inboundCollectionWindow
    • IATFlag
    • transactionTraceID
    • originatingFinancialInstitutionBankNumber
MID
December 20231.2.2
  • Deprecated the mdmID parameter. Backend services and processes have been enhanced to authenticate client API calls without the need for an MDM ID.
  • Removed the following parameter:
    • sourceTransactionProcessedDate
    • sourceTransactionPostedDate
    • sourceTransactionSetteledDate
MID
September 20231.2.1
  • The mdmId description has been updated to communicate that this parameter will soon deprecate in an upcoming release.
  • Added date format YYYY-MM-DD to date parameters where applicable.
LOW
August 20231.2.0
  • Updated the IntraDayTransaction, addendaInformation, RTPData , and WiresData objects. Each addenda object now include the transactionAmount parameter. You can now utilize the Wire and RTP transaction amounts for reconciliation and other business purposes when making an intraday inquiry for a single day.
  • Removed unused objects in the following:
    • ErrorTemplate
    • Links
    • Source
    • IntraDayTransactionsResult
MID
July 20231.1.2
  • The MDM ID (mdmID) is no longer a required parameter, it is now optional.
MID
May 20231.1.1
  • Deprecated the following parameters from the response payload:
    • validRequest
    • noResult
    • warningFlag
    • Errors
    • Output
    • Services
  • Move the systemFault to the errorResponse schema.
MID
December 20221.1.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

Stop Payment

clock 3-minute read calender 1.0.4 | updated Aug. 14, 2024

Stop a check payment

What you can do Endpoint
Health check get /accounts/payments/v1/healthCheck
Stop a payment post /accounts/payments/v1/stop

Before you begin

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

Use the Stop Payment API to stop a check payment. A successful request stops the payment and returns confirmation and payment details. You can stop a payment between the hours of 06:00 a.m. and 11:59 p.m. EST.

 

get /accounts/payments/v1/healthCheck

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

NAME TYPE DESCRIPTION
Statusoptional string Status of the health check response.
Sourceoptional string Origin of the system response can be 'Gateway' or 'Roundtrip'. Roundtrip returns a response from the farthest system involved.
Timestampoptional string Date (YYYY-MM-DD) and time (HH:MM:SS) of response from the API service.
ClientIpoptional string Client IP address the gateway receives from the request.
X-Forwarded-Foroptional string Sequence 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/payments/v1/stop

Request a stop for a check payment.

BODY FIELDTYPEDESCRIPTION
AccountNumberrequiredstringBank account number. This field cannot exceed 16 characters.
BankNumberrequiredstringBank number associated with the account number. Valid values: 0101, 0241, 0618, 1256, 1961, 2912, 3211, 3290, 3720, 4451, 4560, 4731
CheckNumberrequiredObjectcheckNumber
CheckAmountoptionalnumberAmount of the check
DescriptionoptionalstringComments that describes stop payment reasons. This field cannot exceed 30 characters.

Request example

copylink
{
    "AccountNumber": "123456789",
    "BankNumber": "0101",
    "CheckNumber": {
        "CheckNumberLow": "590",
        "CheckNumberHigh": "591"
    },
    "CheckAmount": 1.52,
    "Description": "Test Stop_SB_08130116"
}
NAMETYPEDESCRIPTION
StatusrequiredstringStatus of the processed request. Valid values: Success, Failure
StatusCoderequiredstringStatus code of the processed request.
SeverityrequiredstringSeverity level of the processed request. Valid values: Info, Error
StatusDescrequiredstringStatus description of the processed request.
TransactionIdrequiredstringUnique ID that gets assigned for the processed request.
X-CorrelationIdrequiredstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimerequiredstringDate (YYYY-MM-DD) and time (HH:MM:SS) the transaction processed.

Response example (200)

copylink
{
    "Status": "Success",
    "StatusCode": "000",
    "Severity": "Info",
    "StatusDesc": "stopPaymentAdd operation executed successfully - stopPaymentAdd_20190205024213818",
    "TransactionId": "000000057307_590_1.52",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionTime": "2021-06-30T18:55:10.337Z"
}
NAMETYPEDESCRIPTION
StatusrequiredstringStatus of the processed request. Valid values: Success, Failure
StatusCoderequiredstringStatus code of the processed request.
SeverityrequiredstringSeverity level of the processed request. Valid values: Info, Error
StatusDescrequiredstringStatus description of the processed request.
TransactionIdrequiredstringUnique ID that gets assigned for the processed request.
X-CorrelationIdrequiredstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimerequiredstringDate (YYYY-MM-DD) and time (HH:MM:SS) the transaction processed.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (400)

copylink
{
    "Status": "Failure",
    "StatusCode": "400",
    "Severity": "Error",
    "StatusDesc": "Mandatory data not provided, please verify the data and resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
StatusrequiredstringStatus of the processed request. Valid values: Success, Failure
StatusCoderequiredstringStatus code of the processed request.
SeverityrequiredstringSeverity level of the processed request. Valid values: Info, Error
StatusDescrequiredstringStatus description of the processed request.
TransactionIdrequiredstringUnique ID that gets assigned for the processed request.
X-CorrelationIdrequiredstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimerequiredstringDate (YYYY-MM-DD) and time (HH:MM:SS) the transaction processed.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (401)

copylink
{
    "Status": "Failure",
    "StatusCode": "401",
    "Severity": "Error",
    "StatusDesc": "Received request is unauthorized, please provide valid credentials",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
StatusrequiredstringStatus of the processed request. Valid values: Success, Failure
StatusCoderequiredstringStatus code of the processed request.
SeverityrequiredstringSeverity level of the processed request. Valid values: Info, Error
StatusDescrequiredstringStatus description of the processed request.
TransactionIdrequiredstringUnique ID that gets assigned for the processed request.
X-CorrelationIdrequiredstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimerequiredstringDate (YYYY-MM-DD) and time (HH:MM:SS) the transaction processed.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (402)

copylink
{
    "Status": "Failure",
    "StatusCode": "402",
    "Severity": "Error",
    "StatusDesc": "Failed to add stop payment on account; STAR failed  - stopPaymentAdd_20220513015308610",
    "TransactionId": "000000057307_590_591",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionTime": "2022-05-13T05:53:08.702Z",
    "ServiceError": {
        "SEStatusCode": "402",
        "SESeverity": "Error",
        "SEStatusDesc": "Failed to add stop payment on account; STAR failed - stopPaymentAdd_20220513015308610",
        "AdditionalStatus": {
            "ASStatusCode": "202",
            "ASSeverity": "Error",
            "ASStatusDesc": "CHECK(S) ALREADY STOPPED",
            "SubjectElement": {
                "Path": "STAR"
            }
        }
    }
}
NAMETYPEDESCRIPTION
StatusrequiredstringStatus of the processed request. Valid values: Success, Failure
StatusCoderequiredstringStatus code of the processed request.
SeverityrequiredstringSeverity level of the processed request. Valid values: Info, Error
StatusDescrequiredstringStatus description of the processed request.
TransactionIdrequiredstringUnique ID that gets assigned for the processed request.
X-CorrelationIdrequiredstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimerequiredstringDate (YYYY-MM-DD) and time (HH:MM:SS) the transaction processed.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (403)

copylink
{
    "Status": "Failure",
    "StatusCode": "403",
    "Severity": "Error",
    "StatusDesc": "Access Denied for client ip",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
StatusrequiredstringStatus of the processed request. Valid values: Success, Failure
StatusCoderequiredstringStatus code of the processed request.
SeverityrequiredstringSeverity level of the processed request. Valid values: Info, Error
StatusDescrequiredstringStatus description of the processed request.
TransactionIdrequiredstringUnique ID that gets assigned for the processed request.
X-CorrelationIdrequiredstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimerequiredstringDate (YYYY-MM-DD) and time (HH:MM:SS) the transaction processed.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (404)

copylink
{
    "Status": "Failure",
    "StatusCode": "404",
    "Severity": "Error",
    "StatusDesc": "Requested resource is not found, please verify the resource and resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
StatusrequiredstringStatus of the processed request. Valid values: Success, Failure
StatusCoderequiredstringStatus code of the processed request.
SeverityrequiredstringSeverity level of the processed request. Valid values: Info, Error
StatusDescrequiredstringStatus description of the processed request.
TransactionIdrequiredstringUnique ID that gets assigned for the processed request.
X-CorrelationIdrequiredstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimerequiredstringDate (YYYY-MM-DD) and time (HH:MM:SS) the transaction processed.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (405)

copylink
{
    "Status": "Failure",
    "StatusCode": "405",
    "Severity": "Error",
    "StatusDesc": "Requested method is not allowed, please verify the method and resubmit the request",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
StatusrequiredstringStatus of the processed request. Valid values: Success, Failure
StatusCoderequiredstringStatus code of the processed request.
SeverityrequiredstringSeverity level of the processed request. Valid values: Info, Error
StatusDescrequiredstringStatus description of the processed request.
TransactionIdrequiredstringUnique ID that gets assigned for the processed request.
X-CorrelationIdrequiredstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimerequiredstringDate (YYYY-MM-DD) and time (HH:MM:SS) the transaction processed.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (415)

copylink
{
    "Status": "Failure",
    "StatusCode": "415",
    "Severity": "Error",
    "StatusDesc": "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": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
StatusrequiredstringStatus of the processed request. Valid values: Success, Failure
StatusCoderequiredstringStatus code of the processed request.
SeverityrequiredstringSeverity level of the processed request. Valid values: Info, Error
StatusDescrequiredstringStatus description of the processed request.
TransactionIdrequiredstringUnique ID that gets assigned for the processed request.
X-CorrelationIdrequiredstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimerequiredstringDate (YYYY-MM-DD) and time (HH:MM:SS) the transaction processed.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (429)

copylink
{
    "Status": "Failure",
    "StatusCode": "429",
    "Severity": "Error",
    "StatusDesc": "Looks like you've sent too many requests. Please wait a moment and try again later.",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionTime": "2022-05-17T04:39:32.449Z"
}
NAMETYPEDESCRIPTION
StatusrequiredstringStatus of the processed request. Valid values: Success, Failure
StatusCoderequiredstringStatus code of the processed request.
SeverityrequiredstringSeverity level of the processed request. Valid values: Info, Error
StatusDescrequiredstringStatus description of the processed request.
TransactionIdrequiredstringUnique ID that gets assigned for the processed request.
X-CorrelationIdrequiredstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimerequiredstringDate (YYYY-MM-DD) and time (HH:MM:SS) the transaction processed.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (500)

copylink
{
    "Status": "Failure",
    "StatusCode": "500",
    "Severity": "Error",
    "StatusDesc": "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": "3288b87c-d4e7-639a-88d0-9cdfede8941e",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "ServiceError": {
        "connectError": "Runtime error occurred in the service, please check with application support team before resubmitting the request"
    }
}
NAMETYPEDESCRIPTION
StatusrequiredstringStatus of the processed request. Valid values: Success, Failure
StatusCoderequiredstringStatus code of the processed request.
SeverityrequiredstringSeverity level of the processed request. Valid values: Info, Error
StatusDescrequiredstringStatus description of the processed request.
TransactionIdrequiredstringUnique ID that gets assigned for the processed request.
X-CorrelationIdrequiredstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimerequiredstringDate (YYYY-MM-DD) and time (HH:MM:SS) the transaction processed.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (502)

copylink
{
    "Status": "Failure",
    "StatusCode": "502",
    "Severity": "Error",
    "StatusDesc": "Error received from backend",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "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
StatusrequiredstringStatus of the processed request. Valid values: Success, Failure
StatusCoderequiredstringStatus code of the processed request.
SeverityrequiredstringSeverity level of the processed request. Valid values: Info, Error
StatusDescrequiredstringStatus description of the processed request.
TransactionIdrequiredstringUnique ID that gets assigned for the processed request.
X-CorrelationIdrequiredstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimerequiredstringDate (YYYY-MM-DD) and time (HH:MM:SS) the transaction processed.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (502)

copylink
{
    "Status": "Failure",
    "StatusCode": "502",
    "Severity": "Error",
    "StatusDesc": "Error received from backend",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "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
StatusrequiredstringStatus of the processed request. Valid values: Success, Failure
StatusCoderequiredstringStatus code of the processed request.
SeverityrequiredstringSeverity level of the processed request. Valid values: Info, Error
StatusDescrequiredstringStatus description of the processed request.
TransactionIdrequiredstringUnique ID that gets assigned for the processed request.
X-CorrelationIdrequiredstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimerequiredstringDate (YYYY-MM-DD) and time (HH:MM:SS) the transaction processed.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (504)

copylink
{
    "Status": "Failure",
    "StatusCode": "504",
    "Severity": "Error",
    "StatusDesc": "Error received from backend",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "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
ASStatusCoderequiredstringAdditional status code of the processed request. For 402 errors, this field contains the unique error code returned from the Stop Payment downstream service.
ASSeverityrequiredstringAdditional status severity of the processed request.
ASStatusDescrequiredstringAdditional status description of the processed request. For 402 errors, this field contains the unique error description returned from the Stop Payment downstream service.
SubjectElementrequiredObjecterrorData
NAMETYPEDESCRIPTION
CheckNumberLowrequiredstringTo stop a single check, use this field to specify that check number. To stop a range of checks, use this field to specify the first check number of the range.
CheckNumberHighoptionalstringTo stop a range of checks, use this field to specify the last check number in the range. This field is unnecessary when stopping a single check.
NAMETYPEDESCRIPTION
connectErroroptionalstringAPI connectivity error information, if available.
NAMETYPEDESCRIPTION
PathrequiredstringTroubleshooting field that contains the operational path that failed.
NAMETYPEDESCRIPTION
StatusrequiredstringStatus of the processed request. Valid values: Success, Failure
StatusCoderequiredstringStatus code of the processed request.
SeverityrequiredstringSeverity level of the processed request. Valid values: Info, Error
StatusDescrequiredstringStatus description of the processed request.
TransactionIdrequiredstringUnique ID that gets assigned for the processed request.
X-CorrelationIdrequiredstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimerequiredstringDate (YYYY-MM-DD) and time (HH:MM:SS) the transaction processed.
ServiceErroroptionaloneOfserviceErrorData connectError
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.
NAME TYPE DESCRIPTION
AccountNumberrequired string Bank account number. This field cannot exceed 16 characters.
BankNumberrequired string Bank number associated with the account number. Valid values: 0101, 0242, 0618, 1256, 1961, 2912, 3211, 3290, 3720, 4451, 4560, 4731
CheckNumberrequired Object checkNumber
CheckAmountoptional number Amount of the check
Descriptionoptional string Comments that describes stop payment reasons. This field cannot exceed 30 characters.
NAMETYPEDESCRIPTION
StatusrequiredstringStatus of the processed request. Valid values: Success, Failure
StatusCoderequiredstringStatus code of the processed request.
SeverityrequiredstringSeverity level of the processed request. Valid values: Info, Error
StatusDescrequiredstringStatus description of the processed request.
TransactionIdrequiredstringUnique ID that gets assigned for the processed request.
X-CorrelationIdrequiredstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimerequiredstringDate (YYYY-MM-DD) and time (HH:MM:SS) the transaction processed.
NAMETYPEDESCRIPTION
SEStatusCoderequiredstringService error status code of the processed request.
SESeverityrequiredstringService error severity of the processed request.
SEStatusDescrequiredstringService error status description of the processed request.
AdditionalStatusrequiredObjectadditionalStatusData

For more information about general errors, see Error handling.

Note: The Stop Payment API is unavailable between the hours of 12:00 a.m. and 6:00 a.m. EST. If a request to stop payment is submitted within this timeframe you will receive an error.

There may be additional error information in the exception schema. API-specific KeyBank error codes and details are in the serviceErrorData. object for additional information specific to the API request.

 

HTTP STATUS CODECUSTOM STATUS CODEDESCRIPTION
402202

CHECK(S) ALREADY STOPPED
Failed to add stop payment on account.

A stop payment has already been placed on that check and or account.

402201

CHECKS(S) ALREADY POSTED TODAY
Failed to add stop payment on account.

Check has already posted to the account.

402203

TELLER CHECK HOLD ON ACCOUNT
Failed to add stop payment on account.

The payment was already stopped.

402208

ERROR LOCATING DDA
Failed to add stop payment on account.

There is an invalid value for the accountNumber field. Review and make sure the accountNumber is correct.

503209

STOP SERVICE UNAVAILABLE, PLEASE RETRY BETWEEN 6:00AM AND 11:59PM ET

The Stop Payment API is unavailable between the hours of 12:00 a.m. and 06:00 a.m. EST. Please retry your request outside of this time window.

 

ReleaseAPI versionChange descriptionImpact
August 20241.0.4
  • Added clarity to the checkNumber description.
  • Parameter description updates. This change is for technical content only. The code and operations of the API remain the same. 
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