Wire Transfer

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

Transfer money by wire for urgent payments or large volume transactions

Test content for content migration

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

Before you begin

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

 

Two in one

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

Test content for content migration

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

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

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

Payment chain parties

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

 

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

 

API requirements

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

 

Psst...pass this note

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


get /rtp/v1/payment/healthCheck

Test content for content migration

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

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

Response example (200)

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

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

Get the status of a wire transfer.

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

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

Request example

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

Response example (200)

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

Response example (400)

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

Response example (401)

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

Response example (403)

copylink
{
    "ErrorMessage": "Access to requested resource is forbidden.",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (404)

copylink
{
    "ErrorMessage": "Requested resource is not found, please verify the resource and resubmit the request.",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (405)

copylink
{
    "ErrorMessage": "Requested method is not allowed, please verify the method and resubmit the request.",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (415)

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

Response example (429)

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

Response example (500)

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

Response example (502)

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

Response example (503)

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

Response example (504)

copylink
{
    "ErrorMessage": "Your request took too long to process. Please try again.",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "ServiceError": {
        "ConnectError": "Request could not be processed on time (gateway timeout). Please wait a moment and resubmit the request."
    }
}

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

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

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

 

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

Request example

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

Response example (200)

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

Response example (400)

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

Response example (401)

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

Response example (403)

copylink
{
    "ErrorMessage": "Access to requested resource is forbidden.",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (404)

copylink
{
    "ErrorMessage": "Requested resource is not found, please verify the resource and resubmit the request.",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (405)

copylink
{
    "ErrorMessage": "Requested method is not allowed, please verify the method and resubmit the request.",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (415)

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

Response example (429)

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

Response example (500)

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

Response example (502)

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

Response example (503)

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

Response example (504)

copylink
{
    "ErrorMessage": "Error received from backend service",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "ServiceError": {
        "ConnectError": "Request could not be processed on time (gateway timeout). Please wait a moment and resubmit the request."
    }
}

post /rtp/v1/payment/initiate

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

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

Request example

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

Response example (200)

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

Response example (400)

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

Response example (401)

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

Response example (403)

copylink
{
    "ErrorMessage": "Access to requested resource is forbidden.",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (404)

copylink
{
    "ErrorMessage": "Requested resource is not found, please verify the resource and resubmit the request.",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (405)

copylink
{
    "ErrorMessage": "Requested method is not allowed, please verify the method and resubmit the request.",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (415)

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

Response example (429)

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

Response example (500)

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

Response example (502)

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

Response example (503)

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

Response example (504)

copylink
{
    "ErrorMessage": "Error received from backend service",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "ServiceError": {
        "ConnectError": "Request could not be processed on time (gateway timeout). Please wait a moment and resubmit the request."
    }
}

post /rtp/v1/payment/validate

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

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

Request example

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

Response example (200)

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

Response example (400)

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

Response example (401)

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

Response example (403)

copylink
{
    "ErrorMessage": "Access to requested resource is forbidden.",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (404)

copylink
{
    "ErrorMessage": "Requested resource is not found, please verify the resource and resubmit the request.",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (405)

copylink
{
    "ErrorMessage": "Requested method is not allowed, please verify the method and resubmit the request.",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z"
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (415)

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

Response example (429)

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

Response example (500)

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

Response example (502)

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

Response example (503)

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

Response example (504)

copylink
{
    "ErrorMessage": "Your request took too long to process. Please try again.",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "ServiceError": {
        "ConnectError": "Request could not be processed on time (gateway timeout). Please wait a moment and resubmit the request."
    }
}

Test content for content migration

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

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

For more information about errors, see Error handling.

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

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

 

API-specific error example

paymentTransactionResponse:
  { 
    "status": "FAILED", 
    "requestReference": "RR-999999-01", 
    "sendersReference": "SR-999999-01", 
    "error": { 
        "code": "KEY-1002", 
        "title": "Invalid Bank Identifier", 
        "description": "Credit Party Bank must be a valid USRTP Participant" 
    } 
}

YAML file download

Wire Inquiry

clock 4-minute read calender 1.2.1 | updated May. 29, 2024

Look up the status and details about a wire transaction

Summary Endpoint
Health check get /wireInquiry/v1/healthCheck
Get wire transaction details post /wireInquiry/v1/transactions/details

Before you begin

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


get /wireInquiry/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 /wireInquiry/v1/transactions/details

Get the details about a wire transaction and its status. Wire transaction data can be recalled from the previous 24 months. When setting the date range (fromDate and toDate), the date range specified cannot exceed more than one year.

BODY FIELDTYPEDESCRIPTION
getWireInquiryRequestrequiredObjectgetWireInquiryRequest

Request example

copylink
{
    "getWireInquiryRequest": {
        "accountNumber": [
            "123456789"
        ],
        "transactionType": null,
        "paymentStatus": null,
        "fromDate": 1669852800,
        "toDate": 1669852800,
        "fromTransmitDate": null,
        "toTransmitDate": null,
        "fromAmount": null,
        "toAmount": null,
        "traceID": null,
        "keyBankTransactionReference": null,
        "sourceChannel": null,
        "startRowIndex": "1",
        "endRowIndex": "1000",
        "channelCode": "OLB"
    }
}
NAMETYPEDESCRIPTION
getWireInquiryResponserequiredObjectgetWireInquiryResponse

Response example (200)

copylink
{
    "getWireInquiryResponse": {
        "responseHeader": {
            "status": "Success",
            "statusDescription": "Successfully returned results for the requested range 1 to 1",
            "retreivedRows": "1",
            "totalRows": "1"
        },
        "WireInquiryResult": [
            {
                "amount": "6400",
                "debitCurrencyCode": "USD",
                "transactionType": "INBOUND FED PAYMENT",
                "creditAccountNumber": "987654321",
                "wireEventName": "PaymentWaitForOFCResponse",
                "clearingBankNumber": "21300077",
                "creditAccountBankBranch": "US",
                "creditAccountCurrencyCode": "USD",
                "creditAccountCustomerNumber": "987654321",
                "creditAccountCustomerName": "TEST COMPANY 1, LLC",
                "creditAccountCountry": "US",
                "creditAccountCustomerType": "CORP",
                "wireTransactionDirection": "INBOUND",
                "transactionValueIdentifier": "HVC",
                "creditTransactionCurrency": "USD",
                "settlementPaymentType": "CRD",
                "incomingReferenceNumber": "INVC0012345",
                "paymentEventType": "BKP",
                "sendingBankReferenceNumber": "KTT00049210303842R",
                "initiatingPartyName": "TEST BANK, USA",
                "initiatingPartyPostalAddressLine1": "127 Public Sq, Cleveland",
                "initiatingPartyPostalAddressLine2": "OH 44114",
                "initiatingParty2Name": "TEST COMPANY 2, LLC",
                "initiatingParty2AccountNumber": "123456789",
                "initiatingParty2PostalAddressLine1": "726 Exchange Street,Suite 900,",
                "initiatingParty2PostalAddressLine2": "Buffalo, NY 14210",
                "transactionDetailDocument": "Receivers Reference Information",
                "traceID": "01239240303842R",
                "keybankTransactionReference": "US2201100012345",
                "transmittedDate": "2022-01-10T00:00:00.000-0500",
                "federalClearingReferenceNumber": "20220110B1QDRCQR012345",
                "enteredDate": "2022-01-10T11:38:05.000-0500",
                "creditorAgentBankName": "KeyBank National Association",
                "creditorAgentBankPostalAddressLine1": "250 Delaware Ave Ste",
                "creditorAgentBankPostalAddressLine2": "Buffalo,NY 14202",
                "beneficiaryName": "TEST COMPANY 1, LLC",
                "beneficiaryAccountNumber": "987654321",
                "beneficiaryCreditorPostalAddressLine1": "726 Exchange Street,Suite 900,",
                "beneficiaryCreditorPostalAddressLine2": "Buffalo, NY 14210",
                "sourceChannel": "FRB INITIATED",
                "paymentStatus": "Active",
                "transactionBusinessStatusCode": "Regulatory Filter",
                "initiatingFailureReasonCode": "string",
                "initiatingFailureReasonTitle": "string",
                "initiatingFailureReasonDesc": "string",
                "networkFailureReasonCode": "string",
                "networkFailureReasonTitle": "string",
                "networkFailureReasonDesc": "string",
                "remittanceInfo": "string"
            }
        ]
    }
}
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": "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.
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.
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.
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.
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.
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.
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.
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.
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 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",
    "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.
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
errorCodeoptionalstringBusiness error code
errorDescriptionoptionalstringA human-readable message that describes the type or source of the business error.
NAMETYPEDESCRIPTION
ConnectErroroptionalstringAPI connectivity error information, if available.
NAMETYPEDESCRIPTION
businessFaultoptionalarraybusinessFault
systemFaultoptionalarraysystemFault
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
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
accountNumberrequiredarrayOne or more bank account numbers. To look up multiple accounts, separate the account numbers with a comma. This field cannot exceed 16 characters.
transactionTypeoptionalarrayIndicates the type of transaction. Valid values: INBOUND FED PAYMENT, OUTBOUND SWIFT PAYMENT, OUTBOUND FED PAYMENT, INBOUND SWIFT PAYMENT, INTERNAL, OTHER
paymentStatusoptionalarrayIndicates the status of payment. Valid values: Active, Returned, Cancelled, Success, PendingUserAction
fromDaterequiredstringThe start date to search a range of wire origination transactions by date. The date range must be less than or equal to the current date and cannot exceed more than one year. Format: YYYY-MM-DD
toDaterequiredstringThe end date to search a range of wire origination transactions by date. The date range must be less than or equal to the current date and cannot exceed more than one year. Format: YYYY-MM-DD
fromTransmitDateoptionalstringThe start date to search a range of wire origination transactions by the transmission or settled date. The date range must be less than or equal to the current date and cannot exceed more than one year. Format: YYYY-MM-DD
toTransmitDateoptionalstringThe end date to search a range of wire origination transactions by the transmission or settled date. The date range must be less than or equal to the current date and cannot exceed more than one year. Format: YYYY-MM-DD
fromAmountoptionalstringTransaction amount lower limit value to be searched.
toAmountoptionalstringTransaction amount upper limit value to be searched.
traceIDoptionalstringSource transaction identifier for a specific transaction.
keyBankTransactionReferenceoptionalstringUnique wire transaction identifier created by KeyBank.
sourceChanneloptionalarrayDenotes the channel that created the wire transaction. KTT INITIATED is used for RTP transaction and FRB INITIATED is used for Federal Reserve transactions.
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.
channelCodeoptionalstringAn optional three-character code for the wire channel. The field can only have one value and is not case sensitive.
NAMETYPEDESCRIPTION
responseHeaderrequiredObjectresponseHeader
WireInquiryResultoptionalarraygetWireInquiryResult
errorResponseoptionalObjecterrorResponse
NAMETYPEDESCRIPTION
statusrequiredstringIndicates whether the result was successfully retrieved.
statusDescriptionrequiredstringDescription of the status
retreivedRowsoptionalstringTotal number of transactions retrieved
totalRowsoptionalstringTotal number of transactions matching the requested criteria
NAMETYPEDESCRIPTION
getWireInquiryResponseoptionalObjectgetWireInquiryResponse
NAMETYPEDESCRIPTION
errorCodeoptionalstringSystem error code
errorDescriptionoptionalstringA human-readable message that describes the type or source of the system error.
NAMETYPEDESCRIPTION
getWireInquiryRequestrequiredObjectgetWireInquiryRequest
NAMETYPEDESCRIPTION
getWireInquiryResponserequiredObjectgetWireInquiryResponse
NAMETYPEDESCRIPTION
amountoptionalstringTransaction amount
debitCurrencyCodeoptionalstringDebit currency code
transactionTypeoptionalstringIndicates the type of transaction. Valid values: INBOUND FED PAYMENT, OUTBOUND SWIFT PAYMENT, OUTBOUND FED PAYMENT, INBOUND SWIFT PAYMENT, INTERNAL, OTHER
debitAccountNumberoptionalstringDebit account number
creditAccountNumberoptionalstringCredit account number
wireEventNameoptionalstringInternal status of the intermediary stages a transaction goes through before being processed. Valid values: CancelledPayments, CompletedPayment, DrawndownPay, PaymentWaitForOFCResponse, RepairedPayments, ReturnedFEDPayment, Swift101
clearingBankNumberoptionalstringBank number of the clearing bank.
creditAccountBankBranchoptionalstringBank branch holding the credit account.
creditAccountCurrencyCodeoptionalstringTransaction currency code of the credit account.
creditAccountCustomerNumberoptionalstringCustomer number associated with the credit account.
creditAccountCustomerNameoptionalstringCustomer name associated with the credit account.
creditAccountCountryoptionalstringCountry of the credit account.
creditAccountCustomerTypeoptionalstringCustomer type associated with the credit account.
debitAccountTypeoptionalstringDebit account type. Valid values: DDA, GL
debitAccountBankNumberoptionalstringBank number holding the debit account.
debitAccountBankBranchoptionalstringBank branch holding the debit account.
debitAccountCurrencyCodeoptionalstringTransaction currency code associated with the debit account.
debitAccountCustomerNumberoptionalstringCustomer number associated with the debit account.
debitAccountCustomerNameoptionalstringCustomer name associated with the debit account.
cancelCommentoptionalstringMessage provided by the operator who canceled a transaction.
wireTransactionDirectionoptionalstringIndicates the direction of the transaction. Valid values: UNKNOWN, INBOUND, OUTBOUND, BOOK
transactionValueIdentifieroptionalstringIndicates the value of the transaction. Valid values: HVC, HVB, LVC
paymentClearingStateoptionalstringPayment clearing status of the wire transaction. Valid values: Cancelled, Complete, Cutoff Error, Pending Release, Ready to Send, Rejected, Returned, null
creditTransactionCurrencyoptionalstringCurrency of the amount credited.
settlementPaymentTypeoptionalstringThe mechanism or method by which settlement occurs. Valid values: FRB, CRD, BKP, NOS, FRD.
incomingReferenceNumberoptionalstringThe incoming reference number, which is provided by the sending bank.
executionDateoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the transaction is executed.
paymentEventTypeoptionalstringPayment type of PEN message. Valid Values: BKP, RTPCT
transactionTypeCodeoptionalstringType of wire transaction code. Valid values: FRB, PRE, FTR
sendingBankReferenceNumberoptionalstringReference number issued by the sending bank.
bankToBankMemooptionalstringFree-form text transmitted between the banks.
initiatingPartyNameoptionalstringInitiating party name
initiatingPartyAccountNumberoptionalstringInitiating party account number
initiatingPartyPostalAddressLine1optionalstringInitiating party address line 1
initiatingPartyPostalAddressLine2optionalstringInitiating party address line 2
initiatingParty2NameoptionalstringInitiating party 2 name
initiatingParty2AccountNumberoptionalstringInitiating party 2 account number
initiatingParty2PostalAddressLine1optionalstringInitiating party 2 address line 1
initiatingParty2PostalAddressLine2optionalstringInitiating party 2 address line 2
transactionDetailDocumentoptionalstringDetail document or related reference
traceIDoptionalstringSource transaction identifier
keybankTransactionReferenceoptionalstringUnique wire transaction identifier created by KeyBank.
transmittedDateoptionalstringTransaction settled date
federalClearingReferenceNumberoptionalstringFederal reference number
exchangeRateoptionalstringExchange rate
enteredDateoptionalstringEntered date
creditorAgentBankNameoptionalstringCreditor agent bank name
creditorAgentBankABAoptionalstringCreditor agent bank ABA
creditorAgentBICoptionalstringCreditor agent BIC (business identifier code)
creditorAgentBankPostalAddressLine1optionalstringCreditor agent bank postal address line 1
creditorAgentBankPostalAddressLine2optionalstringCreditor agent bank postal address line 2
beneficiaryNameoptionalstringBeneficiary name
beneficiaryAccountNumberoptionalstringBeneficiary account number
beneficiaryCreditorPostalAddressLine1optionalstringBeneficiary postal address line 1
beneficiaryCreditorPostalAddressLine2optionalstringBeneficiary postal address line 2
sourceChanneloptionalstringDenotes the channel that created the wire transaction. KTT is used for RTP transaction and FRB is used for Federal Reserve transactions.
paymentStatusoptionalstringIndicates the status of payment. Valid values: Active, Returned, Cancelled, Success, PendingUserAction
transactionBusinessStatusCodeoptionalstringTransaction business status code. Valid values: Completed, Pricing, Cancelled, Future Warehouse, PaymentNotification, Held Requiring Cover, Awaiting Approval, Internal Filter, Advising, Funds Release, Product Selection, Regulatory Filter, Clearing, Limit Check, Pre-Qualifying, Abandoned, Repair
paySubTypeoptionalstringA four-digit code that identifies the type of the wire transaction and if it is a drawdown request (1031), drawdown funds (1032) or drawdown refusal (1033). Valid values: 1031, 1032, 1033
sourceSubTypeoptionalstringThree-character code that defines the source of the paySubType.
correlationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
channelCodeoptionalstringAn optional three-character code for the wire channel. The field can only have one value and is not case sensitive.
channelModeoptionalstringThe mode of the wire transfer.
relatedReferenceIdoptionalstringReference identification for the wire transaction.
creditVirtualAccountoptionalstringThe VAM credit account number. VAM account numbers are 15 digits and start with 953.
debitVirtualAccountoptionalstringThe VAM debit account number. VAM account numbers are 15 digits and start with 953.
transactionCreateDateoptionalstringThe date and time the transaction was created. Format: YYYY-MM-DDTHH:MM:SS.SSS-Z
customDataoptionalstringThe values for custom data is defined by the client. This free-form text field can contain up to 500 alphanumeric characters. Custom information stays with the transaction through its lifecycle.
initiatingFailureReasonCodeoptionalstringCode indicates the reason the transaction payment was not successful.
initiatingFailureReasonTitleoptionalstringBrief title about the payment error associated with the code.
initiatingFailureReasonDescoptionalstringDetails about the reason the transaction payment was not successful.
networkFailureReasonCodeoptionalstringCode indicates the network reason that faulted the transaction payment.
networkFailureReasonTitleoptionalstringBrief title about the network error associated with the code.
networkFailureReasonDescoptionalstringDetails about the reason for a network failure.
remittanceInfooptionalstringInformation that stays with a payment as it is transferred from one party to another. This field only displays if there is remittance information for the transaction.
requestReferenceoptionalstringA reference value from the originating request that is useful for traceability and reporting.

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
200S

ECA-W-001 Transaction not found.

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

299W

ECA-W-001 Request processing completed with warnings.

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

400F

ECA-W-001 Request Validation failed.

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

400F

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

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

 

ReleaseAPI versionChange descriptionImpact
May 20241.2.1
  • Added the requestReference parameter. In the request, enter a short note, keyword, or descriptor that you can use in the future to trace or verify the transaction. The requestReference value returns in the WireInquiryResult object.
  • Add remittanceInfo to the WireInquiryResult response body. You can enter a line of concatenated values that detail the purpose of wire or a message to the recipients.
  • Added beneficiary party information to the WireInquiryResult response body. Parameters added include: beneficiaryName, beneficiaryAccountNumber, beneficiaryCreditorPostalAddressLine1, beneficiaryCreditorPostalAddressLine2.
  • 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
March 20241.1.5
  • Updated pattern format for the channelCode parameter. This field is no longer case sensitive. You can input a mix of uppercase and/or lowercase letters and still generate a successful return.
LOW
December 20231.1.4
  • Added channelCode (optional) parameter to WireInquiryRequest and WireInquiryResult objects.
  • Add transactionCreateDate parameter to the WireInquiryResult object.
  • Deprecated the mdmId field. Backend services and processes have been enhanced to authenticate client API calls without the need for an MDM ID.
HIGH
September 20231.1.3
  • The mdmId description has been updated to communicate that this field will soon deprecate in an upcoming release.
  • Added VAM parameters creditVirtualAccount and debitVirtualAccount to the response object, WireInquiryResult. You can now reconcile funds based on virtual account numbers.
LOW
July 20231.1.1
  • Added the customData parameter. You can append up to 500 characters of free-form text that stays with the transaction through its lifecycle.
  • Removed properties. The addition of the customData parameter rendered the properties object redundant.
  • Added the paySubType parameter on a transaction type response. You can now receive status information about a Fed Drawdown request and if it was successful (1032) or not successful (1033).
  • MDM ID (mdmId) is no longer a required parameter, it is now optional.
MID
May 20231.1.0
  • Changed parameter fromEnteredDate to fromDate.
  • Changed toEnteredDate to toDate.
  • Modified the format for the date parameters to match with KeyBank API standard date format of YYYY-MM-DD.
  • The optional source parameter has been deprecated and removed.
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

Previous Day Reporting

clock 2-minute read calender 1.2.5 | updated May. 29, 2024

Run reports for posted transactions

What you can do Endpoint
Health check get /ddaReports/accounts/v1/healthCheck
Get a list of transactions for a historical date range post /ddaReports/accounts/v1/transactions/list
Get a detailed transaction report post /ddaReports/accounts/v1/transactions/details
Get an account summary report for a single historical date post /ddaReports/accounts/v1/transactions/prevDay/summary

Before you begin

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

Previous Day is an information reporting API that returns posted transactions like deposit activity, paid checks, ACH debits and credits, wires, and ACH and wire transactions together in one report.

What does that code mean?

Look up the baiCode that identifies the balance or transaction codes for your report. Go to our Data values page.


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/list

Retrieve historical transaction activity for one or multiple accounts. Transaction data can be recalled from the previous 24 months. When setting the date range (fromDate and toDate), the date range specified cannot exceed more than 90 days.

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.
fromDaterequiredstringStart date for the date range. The date must be prior to the current date. Transaction data can be recalled from the previous 24 months. Date range cannot exceed more than 90 days. Format: YYYY-MM-DD
toDaterequiredstringThe end date of a date range for the submitted transactions. Transaction data can be recalled from the previous 24 months. The date must be later than the start date (fromDate). Date range cannot exceed more than 90 days. Format: YYYY-MM-DD
creditOrDebitCodeoptionalstringCode that indicates if the transaction is a credit or a debit. To retrieve both credit and debit transactions, leave this field blank. Valid values: C (credit), D (debit)
transactionTypeCodeoptionalstringThe banking processor code for a particular transaction type. If the type is not specified in the request, all transaction types associated with the account activity are returned.
fromAmountoptionalstringThe minimum amount of a transaction. If no amount is specified, all amounts greater than $0.00 are returned.
toAmountoptionalstringThe maximum amount of a transaction. If no amount is specified, all transactions are returned.
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 cannot exceed more than 1000 records from the startRowIndex.

Request example

copylink
{
    "getDDATransactionsRequest": {
        "accountNumber": [
            "123456789"
        ],
        "fromDate": "2021-06-12",
        "toDate": "2021-07-12",
        "creditOrDebitCode": "C",
        "transactionTypeCode": "1003",
        "fromAmount": "1.00",
        "toAmount": "1000.00",
        "startRowIndex": "1",
        "endRowIndex": "1"
    }
}
NAMETYPEDESCRIPTION
responseHeaderrequiredObjectresponseHeaders
DDATransactionsoptionalarrayddaTransactions

Response example (200)

copylink
{
    "getDDATransactionsResponse": {
        "responseHeader": {
            "status": "S",
            "statusDescription": "Successfully returned results for the requested range 1 to 1",
            "retrievedRows": "1",
            "totalRows": "66",
            "dataLoadDate": "2022-07-05"
        },
        "DDATransactions": [
            {
                "accountNumber": "123456789",
                "transactionEffectiveDate": "06\/16\/2021",
                "creditOrDebitCode": "C",
                "transactionTypeCode": "1003",
                "transactionAmount": "524.78",
                "transactionKey": "C 000000000000000001",
                "transactionDescription": "DEPOSIT    BRANCH 0505 PENNSYLVANIA",
                "transactionSequenceNumber": "140",
                "currentLedgerBalancePostTransaction": "300596.77",
                "currencyCode": "USD",
                "addendaInformation": {
                    "WiresData": {
                        "creditArrangementTypeCode": null,
                        "creditArrangementBankNumber": null,
                        "creditArrangementBankBranch": null,
                        "creditArrangementCurrencyCode": null,
                        "creditInvolvedPartyIdentifier": null,
                        "creditInvolvedPartyName": null,
                        "creditArrangementCountryCode": null,
                        "creditInvolvedPartyTypeCode": null,
                        "debitArrangementTypeCode": null,
                        "debitArrangementBankNumber": null,
                        "debitArrangementBankBranch": null,
                        "debitArrangementCurrencyCode": null,
                        "debitInvolvedPartyIdentifier": null,
                        "debitInvolvedPartyName": null,
                        "transactionBusinessStatusCode": null,
                        "sendingBankReferenceNumber": null,
                        "originatingInvolvedPartyName": "TEST COMPANY 1, LLC",
                        "originatingArrangementNumber": "12345123",
                        "originatingInvolvedPartyAddressLine1": "127 Public Sq, Cleveland",
                        "originatingInvolvedPartyAddressLine2": "OH 44114",
                        "beneficiaryInvolvedPartyName": "TEST COMPANY 3, LLC",
                        "beneficiaryArrangementNumber": "3435656765",
                        "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": "KeyBank National Association",
                        "originatingBankABANumber": null,
                        "originatingBankBICcode": null,
                        "originatingBankAddressLine1": null,
                        "originatingBankAddressLine2": null,
                        "beneficiaryBankName": "KeyBank National Association",
                        "beneficiaryBankABANumber": "21300077",
                        "beneficiaryBankBICcode": "KEYBUS33 XXX",
                        "beneficiaryBankAddressLine1": "250 Delaware Ave Ste",
                        "beneficiaryBankAddressLine2": "Buffalo,NY 14202",
                        "sourceTransactionIdentifier": null,
                        "transactionSettledDate": null,
                        "federalReferenceNumber": null,
                        "incomingReferenceNumber": null,
                        "currencyExchangeRate": null,
                        "transactionExecutedDate": null,
                        "bankToBankMemo": null,
                        "transactionIdentifier": null,
                        "originatingABA": null,
                        "originating2ABA": null,
                        "originating3ABA": null,
                        "beneficiaryBankArangeNum": null,
                        "beneficiaryABA": null,
                        "originatingBankDebitBIC": null,
                        "originatingBankCreditBIC": null
                    }
                }
            }
        ]
    }
}
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": "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.
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.
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.
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.
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.
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.
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.
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.
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 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",
    "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.
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."
    }
}

post /ddaReports/accounts/v1/transactions/details

Retrieve the transaction details associated with a specific transaction key and account number combination.

BODY FIELDTYPEDESCRIPTION
transactionKeyrequiredarrayThe alphanumeric code used to keep the transaction activity secure. Multiple transactionKeys can be comma separated.
accountNumberrequiredarrayOne or more bank account numbers. To look up multiple accounts, separate the account numbers with a comma. This field cannot exceed 16 characters.

Request example

copylink
{
    "getDDATransactionsDetailsRequest": {
        "transactionKey": [
            "C 000000000000000001"
        ],
        "accountNumber": [
            "123456789"
        ]
    }
}
NAMETYPEDESCRIPTION
responseHeaderrequiredObjectresponseHeaders
DDATransactionsDetailsoptionalarrayddaTransactionsDetails

Response example (200)

copylink
{
    "getDDATransactionsDetailsResponse": {
        "responseHeader": {
            "status": "S",
            "statusDescription": "Successfully returned  1 results from sourcing layer.",
            "dataLoadDate": "2022-07-05"
        },
        "DDATransactionsDetails": [
            {
                "accountNumber": "123456789",
                "transactionEffectiveDate": "07\/09\/2021",
                "creditOrDebitCode": "C",
                "transactionType": "1003",
                "transactionAmount": "90.82",
                "transactionKey": "C 000000000000000001",
                "transactionDescription": "DEPOSIT    BRANCH 0505 PENNSYLVANIA",
                "transactionSequenceNumber": "140",
                "currentLedgerBalancePostTransaction": "376145.36",
                "snapshotDate": "07\/09\/2021",
                "collectedCashAmount": "90.82",
                "shortFloatAmountDay1": "0",
                "checkSerialNumber": "100014399",
                "traceID": "C 000000000000000001",
                "glSourceCode": "5",
                "operatorID": null,
                "BAICode": "301",
                "BAICodeDesc": "COMMERCIAL DEPOSIT",
                "addendaInformation": {
                    "WiresData": {
                        "creditArrangementTypeCode": null,
                        "creditArrangementBankNumber": null,
                        "creditArrangementBankBranch": null,
                        "creditArrangementCurrencyCode": null,
                        "creditInvolvedPartyIdentifier": null,
                        "creditInvolvedPartyName": null,
                        "creditArrangementCountryCode": null,
                        "creditInvolvedPartyTypeCode": null,
                        "debitArrangementTypeCode": null,
                        "debitArrangementBankNumber": null,
                        "debitArrangementBankBranch": null,
                        "debitArrangementCurrencyCode": null,
                        "debitInvolvedPartyIdentifier": null,
                        "debitInvolvedPartyName": null,
                        "transactionBusinessStatusCode": null,
                        "sendingBankReferenceNumber": null,
                        "originatingInvolvedPartyName": "TEST COMPANY 1, LLC",
                        "originatingArrangementNumber": "12345123",
                        "originatingInvolvedPartyAddressLine1": "127 Public Sq, Cleveland",
                        "originatingInvolvedPartyAddressLine2": "OH 44114",
                        "beneficiaryInvolvedPartyName": "TEST COMPANY 3, LLC",
                        "beneficiaryArrangementNumber": "3435656765",
                        "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": "KeyBank National Association",
                        "originatingBankABANumber": null,
                        "originatingBankBICcode": null,
                        "originatingBankAddressLine1": null,
                        "originatingBankAddressLine2": null,
                        "beneficiaryBankName": "KeyBank National Association",
                        "beneficiaryBankABANumber": "21300077",
                        "beneficiaryBankBICcode": "KEYBUS33 XXX",
                        "beneficiaryBankAddressLine1": "250 Delaware Ave Ste",
                        "beneficiaryBankAddressLine2": "Buffalo,NY 14202",
                        "sourceTransactionIdentifier": null,
                        "transactionSettledDate": null,
                        "federalReferenceNumber": null,
                        "incomingReferenceNumber": null,
                        "currencyExchangeRate": null,
                        "transactionExecutedDate": null,
                        "bankToBankMemo": null,
                        "transactionIdentifier": null,
                        "originatingABA": null,
                        "originating2ABA": null,
                        "originating3ABA": null,
                        "beneficiaryBankArangeNum": null,
                        "beneficiaryABA": null,
                        "originatingBankDebitBIC": null,
                        "originatingBankCreditBIC": null
                    }
                }
            }
        ]
    }
}
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": "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.
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.
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.
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.
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.
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.
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.
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.
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 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",
    "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.
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."
    }
}

post /ddaReports/accounts/v1/transactions/prevDay/summary

Retrieve a summary of historical, single-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
{
    "getDDAPrevDaySummaryRequest": {
        "accountNumber": [
            "123456789"
        ],
        "date": "2022-07-18"
    }
}
NAMETYPEDESCRIPTION
responseHeaderrequiredObjectresponseHeaders
DDAPrevDaySummaryoptionalarrayddaPrevDaySummary

Response example (200)

copylink
{
    "getDDAPrevDaySummaryResponse": {
        "responseHeader": {
            "status": "S",
            "statusDescription": "Successfully processed the request.",
            "dataLoadDate": "2022-05-10",
            "summaryTotal": {
                "totalClosingLedger": "42.21",
                "totalClosingAvailable": "42.21",
                "totalFloatDay1": "0.0",
                "totalFloatDay2": "0.0",
                "sumTotalCredits": "2.22",
                "sumTotalDebits": "0.02",
                "totalOpeningAvailable": "42.21"
            }
        },
        "DDAPrevDaySummary": [
            {
                "accountNumber": "123456789",
                "arrangementName": "TEST COMPANY 1, LLC",
                "closingLedger": "42.21",
                "closingAvailable": "42.21",
                "shortFloatAmountDay0": "0",
                "shortFloatAmountDay1": "0",
                "shortFloatAmountDay2": "0",
                "shortFloatAmountDay3": "0",
                "shortFloatAmountDay4": "0",
                "shortFloatAmountDay5": "0",
                "shortFloatAmountDay6": "0",
                "reportDate": "07\/18\/2022",
                "totalCredits": "2.22",
                "totalDebits": "0.02",
                "openingAvailable": "42.21",
                "achCredits": "0",
                "depositsAmount": "0",
                "wireTransferCredits": "0.21",
                "zbaCredits": "0",
                "otherMiscCredits": "2.01",
                "achDebits": "0",
                "checksAmount": "0",
                "returnedItemDebits": "0",
                "wireTransferDebits": "0.01",
                "zbaDebits": "0",
                "otherMiscDebits": "0.01",
                "totalAccountCredits": "2.22",
                "totalAccountDebits": "0.02",
                "achCreditCount": "0",
                "depositsCount": "0",
                "wireTransferCreditsCount": "4",
                "zbaCreditsCount": "0",
                "otherMiscCreditsCount": "3",
                "achDebitsCount": "0",
                "checksCount": "0",
                "returnedItemDebitsCount": "0",
                "wireTransferDebitsCount": "1",
                "zbaDebitsCount": "0",
                "otherMiscDebitsCount": "1",
                "totalCreditCount": "7",
                "totalDebitCount": "2"
            }
        ]
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfServiceErrorData connectError

Response example (400)

copylink
{
    "ErrorMessage": "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.
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.
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.
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.
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.
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.
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.
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.
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 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",
    "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.
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
WiresDataoptionalobjectwiresData
NAMETYPEDESCRIPTION
errorCodeoptionalstringBusiness error code
errorDescriptionoptionalstringA human-readable message that describes the type or source of the business error.
NAMETYPEDESCRIPTION
ConnectErroroptionalstringAPI connectivity error information, if available.
NAMETYPEDESCRIPTION
accountNumberoptionalstringAccount number associated with the transaction.
closingLedgeroptionalstringLedger balance in the account at the time of closure.
closingAvailableoptionalstringAmount available end of day for transactions.
shortFloatAmountDay0optionalstringDollar amount of short float day 0.
shortFloatAmountDay1optionalstringDollar amount of short float day 1.
shortFloatAmountDay2optionalstringDollar amount of short float day 2.
shortFloatAmountDay3optionalstringDollar amount of short float day 3.
shortFloatAmountDay4optionalstringDollar amount of short float day 4.
shortFloatAmountDay5optionalstringDollar amount of short float day 5.
shortFloatAmountDay6optionalstringDollar amount of short float day 6.
reportDateoptionalstringDate the transaction posted. Format: MM-DD-YYYY
totalCreditsoptionalstringTotal credit transaction amount
totalDebitsoptionalstringTotal debit transaction amount
openingAvailableoptionalstringOpening available balance
achCreditsoptionalstringACH credits amount
depositsAmountoptionalstringDeposits amount
wireTransferCreditsoptionalstringWire transfer credits amount
zbaCreditsoptionalstringZBA credits amount
otherMiscCreditsoptionalstringOther miscellaneous credits amount
achDebitsoptionalstringACH debits amount
checksAmountoptionalstringChecks amount
returnedItemDebitsoptionalstringReturned item debits amount
wireTransferDebitsoptionalstringWire transfer debits amount
zbaDebitsoptionalstringZBA debits amount
otherMiscDebitsoptionalstringOther miscellaneous debits amount
totalAccountCreditsoptionalstringTotal account credits
totalAccountDebitsoptionalstringTotal account debits
achCreditCountoptionalstringACH credits count
depositsCountoptionalstringDeposits count
wireTransferCreditsCountoptionalstringWire transfer credits count
zbaCreditsCountoptionalstringZBA credits count
otherMiscCreditsCountoptionalstringOther miscellaneous credits count
achDebitsCountoptionalstringACH debits count
checksCountoptionalstringChecks count
returnedItemDebitsCountoptionalstringReturned item debits count
wireTransferDebitsCountoptionalstringWire transfer debits count
zbaDebitsCountoptionalstringZBA debits count
otherMiscDebitsCountoptionalstringOther miscellaneous debits count
totalCreditCountoptionalstringTotal credits count
totalDebitCountoptionalstringTotal debits count
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
DDAPrevDaySummaryoptionalarrayddaPrevDaySummary
NAMETYPEDESCRIPTION
statusrequiredstringIndicates whether the result was successfully retrieved.
statusDescriptionrequiredstringDescription of the status.
errorResponseoptionalObjecterrorResponse
NAMETYPEDESCRIPTION
accountNumberoptionalstringAccount number associated with the transaction.
transactionEffectiveDateoptionalstringEffective date of the transaction. Format: MM-DD-YYYY
creditOrDebitCodeoptionalstringCode that indicates if the transaction is a credit or a debit. Valid values: C (credit), D (debit)
transactionTypeCodeoptionalstringThe banking processor code for a particular transaction type.
transactionAmountoptionalstringTransaction amount
transactionKeyoptionalstringAn alphanumeric code used to keep the transaction activity secure.
transactionDescriptionoptionalstringBrief description of the transaction.
transactionSequenceNumberoptionalstringBatch sequence number of the transaction.
currentLedgerBalancePostTransactionoptionalstringCurrent ledger balance following the posting of this transaction.
currencyCodeoptionalstringCurrency code of the transaction. Default value: USD
addendaInformationoptionalobjectaddendaInformation
NAMETYPEDESCRIPTION
accountNumberoptionalstringAccount number associated with the transaction.
transactionEffectiveDateoptionalstringEffective date of the transaction. Format: MM-DD-YYYY
dataLoadDateoptionalstringIndicates the date that the requested data was loaded. Format: YYYY-MM-DD
creditOrDebitCodeoptionalstringCode that indicates if the transaction is a credit or a debit. Valid values: C (credit), D (debit)
transactionTypeoptionalstringThe banking processor code for a particular transaction type.
transactionAmountoptionalstringTransaction amount
transactionKeyoptionalstringAn alphanumeric code used to keep the transaction activity secure.
transactionDescriptionoptionalstringBrief description of the transaction.
transactionSequenceNumberoptionalstringBatch sequence number of the transaction.
currentLedgerBalancePostTransactionoptionalstringCurrent ledger balance following the posting of this transaction.
snapshotDateoptionalstringSnapshot date. Format: MM-DD-YYYY
collectedCashAmountoptionalstringCollected cash amount
shortFloatAmountDay1optionalstringDollar amount of short float for the current business day.
checkSerialNumberoptionalstringSerial number of the check.
traceIDoptionalstringSource transaction identifier
glSourceCodeoptionalstringKeyBank-assigned GL source code
operatorIDoptionalstringOperator ID - free-form text field for use by sending application.
BAICodeoptionalstringThe three-digit BAI (Bank Administration Institute) code for the transaction.
BAICodeDescoptionalstringProvides the description corresponding to a BAI code.
addendaInformationoptionalobjectddaTransactionsDetailsAddendaInformation
NAMETYPEDESCRIPTION
WiresDataoptionalobjectwiresData
NAMETYPEDESCRIPTION
transactionKeyrequiredarrayThe alphanumeric code used to keep the transaction activity secure. Multiple transactionKeys can be comma separated.
accountNumberrequiredarrayOne or more bank account numbers. To look up multiple accounts, separate the account numbers with a comma. This field cannot exceed 16 characters.
NAMETYPEDESCRIPTION
responseHeaderrequiredObjectresponseHeaders
DDATransactionsDetailsoptionalarrayddaTransactionsDetails
NAMETYPEDESCRIPTION
statusrequiredstringIndicates whether the result was successfully retrieved.
statusDescriptionrequiredstringDescription of the status.
errorResponseoptionalObjecterrorResponse
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.
fromDaterequiredstringStart date for the date range. The date must be prior to the current date. Transaction data can be recalled from the previous 24 months. Date range cannot exceed more than 90 days. Format: YYYY-MM-DD
toDaterequiredstringThe end date of a date range for the submitted transactions. Transaction data can be recalled from the previous 24 months. The date must be later than the start date (fromDate). Date range cannot exceed more than 90 days. Format: YYYY-MM-DD
creditOrDebitCodeoptionalstringCode that indicates if the transaction is a credit or a debit. To retrieve both credit and debit transactions, leave this field blank. Valid values: C (credit), D (debit)
transactionTypeCodeoptionalstringThe banking processor code for a particular transaction type. If the type is not specified in the request, all transaction types associated with the account activity are returned.
fromAmountoptionalstringThe minimum amount of a transaction. If no amount is specified, all amounts greater than $0.00 are returned.
toAmountoptionalstringThe maximum amount of a transaction. If no amount is specified, all transactions are returned.
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 cannot exceed more than 1000 records from the startRowIndex.
NAMETYPEDESCRIPTION
responseHeaderrequiredObjectresponseHeaders
DDATransactionsoptionalarrayddaTransactions
NAMETYPEDESCRIPTION
statusrequiredstringIndicates whether the result was successfully retrieved.
statusDescriptionrequiredstringDescription of the status.
errorResponseoptionalObjecterrorResponse
NAMETYPEDESCRIPTION
businessFaultoptionalarraybusinessFault
systemFaultoptionalarraysystemFault
NAME TYPE DESCRIPTION
ErrorMessageoptional string A human-readable message that describes the type or source of the error.
TransactionIdoptional string A unique transaction ID returned with the response, useful for traceability.
TransactionTimeoptional string Date (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptional oneOf ServiceErrorData 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.
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
retrievedRowsoptionalstringTotal number of transactions retrieved.
totalRowsoptionalstringTotal number of transactions matching the requested criteria.
summaryTotaloptionalObjectSummaryTotal
NAMETYPEDESCRIPTION
totalClosingLedgeroptionalstringSum of all account-level closing ledger balances.
totalClosingAvailableoptionalstringSum of all account-level closing available balances.
totalFloatDay1optionalstringSum of all account-level 1 day float.
totalFloatDay2optionalstringSum of all account-level 2 day float.
sumTotalCreditsoptionalstringSum of all account-level total credits.
sumTotalDebitsoptionalstringSum of all account-level total debits.
totalOpeningAvailableoptionalstringSum of all account-level opening available balances.
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
originatingABAoptionalstringOriginating ABA
originating2ABAoptionalstringOriginating 2 ABA
originating3ABAoptionalstringOriginating 3 ABA
beneficiaryBankArangeNumoptionalstringBeneficiary bank account number
beneficiaryABAoptionalstringBeneficiary ABA
originatingBankDebitBICoptionalstringOriginating bank debit BIC
originatingBankCreditBICoptionalstringOriginating bank credit BIC

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.5
  • Changed the fromDate and toDate to state that the date range cannot be more than 90 days.
LOW
March 20241.2.4
  • 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.
  • Updated originatingABA parameter descriptions.
LOW
December 20231.2.3
  • Deprecated the mdmId parameter. Backend services and processes have been enhanced to authenticate client API calls without the need for an MDM ID.
MID
September 20231.2.3
  • The mdmId description has been updated to communicate that this parameter will soon deprecate in an upcoming release.
  • Modified the format of date parameters to match with KeyBank API standard date format of YYYY-MM-DD.
LOW
August 20231.2.2
  • Deprecated these unused objects:
    • ErrorTemplate
    • link
    • source
  • MDM ID (mdmId) is no longer a required parameter, it is now optional.
LOW
May 20231.2.1
  • Deprecated the following parameters from response payloads:
    • validRequest
    • noResult
    • warningFlag
    • Errors
    • Output
    • Services
  • systemFault parameter added to the errorResponse>/code> 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

Developer Portal Terms of Service

clock 4-minute read calender 0 | updated Sep. 14, 2024

Please read these Developer Portal Terms of Service (the “Agreement”) carefully. This Agreement is between you and KeyBank National Association (“Bank” or “Key”) concerning your access and use of the developer portal service (“Service”) for the Permitted Purpose (as defined below).

Any reference to “you” or “your” in this Agreement will refer to both the individual using the Service and to any Organization represented by such individual, whether such individual is an employee, agent, independent contractor, representative, or other similarly affiliated party. You and Bank are each referred to individually as a “Party” and collectively as the “Parties.”

If you are an individual accessing or using the Service on behalf of, or for the benefit of, any corporation, partnership, or other entity with which you are associated (an “Organization”), then you are agreeing to this Agreement on behalf of both yourself and such Organization. Access to and use of this Service is limited to the individual Party signing this Agreement. A Party may not transfer access to another individual and the sharing of Login Credentials is strictly prohibited. A fully executed Agreement is required for every individual to access and use the Service.

01

DEFINITIONS

"Applicable Laws” means all laws, rules, and regulations of any country, state, municipality or other political entity applicable to the Service, including without limitation: any and all Sanctions, including the Cyber-Related Sanctions Regulations (31 CFR §578); the Export Administration Regulations (15 CFR Part 730, et seq.); Title V of the federal Gramm-Leach-Bliley Act; the federal Economic Espionage Act; The Foreign Corrupt Practices Act of 1977, as amended (15 USC §78dd-1, et seq.); and the Bank Bribery Act (18 USC §215).

"Documentation" means any technical documentation or other instructions provided or made available to you by Bank regarding the proper use of the Service.

"Login Credentials"" means the unique username and password that you create for access to the Service.

“Permitted Purpose” means review Application Programming Interface (“API”) documentation and guides, API simulations testing, downloading YAML content, subscribing to notifications, and key/certification management for the purpose of an integration with KeyBank to use its products and services.

“Sanctioned Person” means any person: (a) that is the subject or target of any Sanctions; (b) located, organized, operating or resident in a country, territory or geographical region which is itself the subject or target of any Sanctions that comprehensively prohibit dealings with that country, territory, or geographical region, or (c) owned or controlled by any such person or persons described in the foregoing clauses (a) or (b).

“Sanctions” means economic or financial sanctions, requirements or trade embargoes imposed, administered or enforced from time to time by: (a) the United States of America, including, but not limited to, those administered by the U.S. Department of the Treasury’s Office of Foreign Assets Control, the U.S. Department of State or the U.S. Department of Commerce; (b) the United Nations Security Council; (c) the European Union; (d) Her Majesty’s Treasury of the United Kingdom; or (e) any other relevant governmental authority.

02

LICENSE

Subject to your compliance with the Agreement, Bank hereby grants to you a limited, non-exclusive, non-assignable, and non-transferable license to access and use the Service solely in accordance with the Documentation and for the Permitted Purpose.

03

RESTRICTIONS

You will not, and will not allow any third party to, directly or indirectly: (a) disclose, distribute, make available, sell, lease, or otherwise allow any third party to access or use the Service; (b) access or use the Service for any purpose other than the Permitted Purpose; (c) decompile, reverse engineer, reverse assemble, or otherwise attempt to discover any source code of the Service; (d) copy, mirror, frame, modify, or create derivative works based on the Service; (e) access the Service in order to build a competitive product or service, or copy any features, functions or graphics of the Service; (f) use the Service to store or transmit material in violation of any third party rights or Applicable Law; (g) use the Service to transmit any viruses, malware, or other malicious code; (h) interfere with, disrupt the integrity or performance of, or attempt to gain unauthorized access to the Service or any related systems or networks, including by exceeding any applicable limitations on transactions per second implemented by Bank; or (i) access, or allow access to, the Service beyond the United States (except with Bank's prior written approval). Breach of this Section 3 may result in the throttling, suspension, or termination of your account as more fully described in Section 15 herein.

04

REGISTRATION/LOGIN CREDENTIALS

You will be required to register and create Login Credentials to use all or part of the Service. Bank may reject, or require that you change any username, password, or other information that you provide to Bank in registering. Login Credentials are for the personal use of the individual to whom they are assigned only and should be kept confidential. You, and not Bank, are responsible for any use or misuse of your Login Credentials, and you must promptly notify Bank of any confidentiality breach or unauthorized use of your Login Credentials or your account.

05

MODIFICATIONS

Bank may, from time to time in its sole discretion, modify or update the Service in connection with its ongoing delivery of the programs and related features and functionality under the Agreement by notifying you of such modifications or updates by any reasonable means. Such changes will apply across Bank's relevant user base, and you acknowledge that any such modifications or updates may require you to undertake certain integration or implementation efforts.

06

CONFIDENTIALITY AND OWNERSHIP

6.1

Confidentiality

“Confidential Information” means the Service, Documentation, any and all information and data that is accessed through the Service or through the exercise of your rights and licenses under the Agreement, and other sensitive or proprietary information that is reasonably understood, given the nature of the information or circumstance, to be confidential, in each case whether orally or in written, electronic, or other form or media, and whether or not marked, designated, or otherwise identified as "confidential". You will: (a) protect and safeguard the confidentiality of Bank's Confidential Information with at least the same degree of care as you would protect your own Confidential Information, but in no event with less than a commercially reasonable degree of care; (b) not use Bank's Confidential Information, or permit it to be accessed or used, for any purpose other than to exercise your rights or perform your obligations under the Agreement; and (c) not disclose any such Confidential Information to any person or entity, except to your representatives who need to know the Confidential Information to assist you or act on your behalf. You will be responsible for any breach of this section caused by any of your representatives. At Bank's request, you will promptly return, and will require your representatives to return, to Bank all copies of Bank's Confidential Information, or, upon Bank's request, destroy all such copies and certify in writing to Bank that such Confidential Information has been destroyed. In addition to all other remedies available at law, Bank may seek equitable relief (including injunctive relief) against you and your representatives to prevent the breach or threatened breach of this section and to secure its enforcement.

6.2

Intellectual Property

“Confidential Information” means the Service, Documentation, any and all information and data that is accessed through the Service or through the exercise of your rights and licenses under the Agreement, and other sensitive or proprietary information that is reasonably understood, given the nature of the information or circumstance, to be confidential, in each case whether orally or in written, electronic, or other form or media, and whether or not marked, designated, or otherwise identified as "confidential". You will: (a) protect and safeguard the confidentiality of Bank's Confidential Information with at least the same degree of care as you would protect your own Confidential Information, but in no event with less than a commercially reasonable degree of care; (b) not use Bank's Confidential Information, or permit it to be accessed or used, for any purpose other than to exercise your rights or perform your obligations under the Agreement; and (c) not disclose any such Confidential Information to any person or entity, except to your representatives who need to know the Confidential Information to assist you or act on your behalf. You will be responsible for any breach of this section caused by any of your representatives. At Bank's request, you will promptly return, and will require your representatives to return, to Bank all copies of Bank's Confidential Information, or, upon Bank's request, destroy all such copies and certify in writing to Bank that such Confidential Information has been destroyed. In addition to all other remedies available at law, Bank may seek equitable relief (including injunctive relief) against you and your representatives to prevent the breach or threatened breach of this section and to secure its enforcement.

07

PRIVACY AND SECURITY

Bank understands the need to safeguard your information and records from unauthorized use and disclosure. Please see the KeyCorp Privacy Policy and Security Disclosures posted on www.key.com.

08

CROSS BORDER TRANSMISSION OF DATA

You acknowledge and agree that by providing Bank with your personal or proprietary information in any application or transaction request through the Service, you hereby consent to the transmission of such personal or proprietary information to or by Bank, and its service providers or marketers, over state and international borders as necessary for handling your application or transaction request in accordance with Bank's standard business practices, subject to Bank's Privacy Policy.

09

ILLEGAL, FRAUDULENT, OR IMPROPER ACTIVITY

You will not use the Service, or any financial service or product provided by Bank, for any illegal, fraudulent, unauthorized, or improper activity (a "Prohibited Use"). If Bank suspects that you may be engaging in any Prohibited Use, including any violation of any terms or conditions relating to this Service or any financial service or product provided by Bank, your access to the Service and any financial service or product may be suspended or terminated without notice. Also, access to the Service may be suspended or terminated if any access device or code has been reported lost or stolen, or you do not follow Bank’s applicable security procedures, or when Bank reasonably believes that there is unusual activity on any of your financial accounts with us. You agree to cooperate fully with Bank to investigate any suspected Prohibited Activity or unauthorized use.

10

INDEMNIFICATION

You covenant and agree to indemnify, defend, and hold harmless Bank, its subsidiaries and affiliates, and their respective officers, directors, employees, agents, and permitted assigns (collectively, the "Indemnitees"), as such, against any and all losses, liabilities, fines, penalties or expenses (including reasonable attorney's fees and expenses) arising from any third-party legal action, claim, demand, or proceedings brought against any of the Indemnitees arising from or related to: (a) any breach of any of the provisions of the Agreement; (b) any use of the Service in violation of Applicable Law or the Agreement; (c) any modification of the Service other than at Bank's express direction or instruction; or (d) any combination of the Service with any third party hardware, software, or other materials or information not provided by, or performed at the express direction, approval, or instruction of, Bank.

11

DISCLAIMER

Bank provides the service on an "as is" and "as available" basis, without any warranties (express, implied, or statutory) including any warranties of fitness ofr a particular purpose, merchantability, title, or non-infringement. Bank does not guarantee that the service or the data provided by use of the service will be uninterrupted, continuously available, accurate, complete, or error-free. Your use or reliance on the service is at your own risk.

12

LIMITATION OF LIABILITY

In no event shall Bank of any of Bank's vendors be liable for any damages, including any incidental, consequential, special, direct or indirect damages, losses, or expenses arising in connection with the service or any linked website, user thereof or inability to use, by any party or in connection with any failure of performance, error, omission, interruption, defect, delay in operation, or transmission, computer virus, or line or system failure, including any loss data, even if Bank or its representative thereof, is advised of the possibility of such damages, losses or expenses, except as limited by applicable law. Some states do not allow the exclusion or limitation of incidental or consequential damages, so the above may not apply to you.

13

AVAILABILITY

The Service is not intended for distribution to, or use by, any person or entity in any jurisdiction or country where such distribution or use would be contrary to Applicable Law or regulation. Bank will restrict the availability of the Service during the time when you are in the following countries: Cuba, Iran, Liberia, Myanmar/Burma, North Korea, Sudan, and Syria in order to facilitate Bank's compliance with the U.S. laws administered by the Office of Foreign Assets Control.

14

CHANGES TO AGREEMENT

Bank reserves the right to modify this Agreement at any time without notice, but the most current version of the Agreement will always be available to you by clicking on the link at the bottom of the Developer Portal website. If you find the Agreement unacceptable at any time, you may discontinue your use of the Service, but such Agreement shall survive such discontinuation with respect to activity occurring prior to such discontinuation. By continuing to use the Service after the date of any change of the Agreement, including accessing the Developer Portal website, you agree to be bound by the provisions contained in the most recent version of the Agreement.

15

TERM/TERMINATION

15.1

Term

The Term of this Agreement commences on the date in which you checked the box marked “Accept” in connection with the Service or the date in which you first used the Service, whichever is earlier, and continues in effect until terminated in accordance with the provisions of the Agreement (the “Term”).

15.2

Termination

Either Party may terminate this Agreement at any time for any reason or no reason upon written notice to the other Party.

Bank may throttle or otherwise restrict your use of the Service or suspend your account and/or your access to the Service, if Bank reasonably believes: (i) you have materially breached this Agreement; (ii) the Service is experiencing technical problems; or (iii) such suspension is necessary to protect the rights or property of the Parties or applicable third parties or to comply with Applicable Law.

15.3

Effects Of Termination

Upon any termination of this Agreement (i) all licenses granted to you hereunder will end, (ii) you must cease any access and use of the Service; and Bank may, without liability to you or any third party, immediately deactivate or delete your username, password, and account, and all associated materials, without any obligation to provide any further access to such materials.

Sections 1, 3, 5, 6, 10, 11, 12, 13, 15, 16, 17, 18, 19, and 20 of this Agreement will survive the expiration or termination hereof.

16

APPLICABLE LAW/FORUM

The terms of this Agreement shall be governed by the statutes and laws of the State of Ohio, and the federal laws of the U.S.A., without regard to the conflicts of laws principles thereof. The application of the United Nations Convention of Contracts for the International Sale of Goods, and the model Uniform Computer Information Transactions Act approved by the National Conference of Commissioners on Uniform State Laws (as enacted and/or modified into any state law in the U.S.A.), are expressly excluded and shall not apply.

17

ARBITRATION

The terms and conditions of Key's Arbitration Provision posted on key.com is incorporated into and made a part of this Agreement.

18

ENFORCEABILITY

In the event any of the provisions of this Agreement shall be held to be unenforceable, the remaining provisions shall be unimpaired, and the unenforceable provision shall be replaced by such enforceable term or provision as comes closest to the intention underlying the unenforceable term or provision. This Agreement shall be subject to any other agreements you have entered into with Bank.

19

ELECTRONIC COMMUNICATIONS

To the fullest extent permitted by Applicable Law, this Agreement and any other agreements, notices, disclosures, messages or alerts, or other communications regarding the Service (collectively referred to as "Communications"), may be provided to you electronically and you agree to receive Communications in an electronic form. Electronic Communications may be posted on the pages within the Developer Portal website and/or delivered to your e-mail address on record with us. You will print a paper copy of any electronic Communication and retain it for your records. All electronic Communications will be considered to be "in writing," and to have been received and effective upon posting on the Developer Portal website or dissemination to your email address, whether or not you have retrieved or read the electronic Communication. Bank reserves the right to provide Communications in paper format. Your consent to receive Communications electronically is valid until you revoke your consent by notifying Bank by a paper writing of your decision to do so. If you revoke your consent to receive Communications electronically, Bank may terminate your right to use the Service.

20

COMPLICANCE WITH SANCTIONS REGULATIONS

You represent, warrant and covenant that neither you, nor any of the agents, subcontractors, or employees of the associated Organization under this Agreement is (i) an individual or entity that is listed in the annex to, or is otherwise subject to the prohibitions contained in, Executive Order No. 13224 on Terrorist Financing, effective September 24, 2001 (“Executive Order”) of the Office of Foreign Asset Control (“OFAC”) regulations; (ii) an individual or entity with whom Key or any financial institution is prohibited from dealing or otherwise engaging in business under any United States law, regulation, executive order (including, without limitation, the Executive Order, Section 19 of the Federal Deposit Insurance Act) or list published by OFAC; (iii) an individual or entity that is named on the current “Specially Designated Nationals and Blocked Persons List” and “Consolidated Non-SDN List” published by OFAC on its official website or any replacement website or other replacement official publication of such list; (iii) or otherwise a Sanctioned Person; or (iv) an individual prevented from providing Services to Key pursuant to background check. You are not, directly or indirectly, owned or controlled by or under common ownership or control with a Sanctioned Person.

21

MISCELLANEOUS

21.1

Monitoring

Bank may (but have no obligation to) monitor or analyze your access to or use of the Service. Bank may disclose information regarding your access to and use of the Service, and the circumstances surrounding such access and use, to anyone for any reason or purpose.

21.2

Force Majeure

Bank will not be liable to you for failure or delay in performing its obligations under the Agreement if such failure or delay is due to acts of any governmental body, war, insurrection, sabotage, or embargo; fire, flood or other Act of God; strike or other labor disturbance; interruption of or delay in transportation; unavailability of, interruption of or delay in telecommunications or third party services; epidemic, pandemic or other spread of disease; inability to obtain raw materials, supplies or power used in or equipment needed for performance of its obligations; or any other cause beyond Bank's reasonable control.

21.3

Relationship Of Parties

This Agreement does not, and will not be construed to, create any partnership, joint venture, employer-employee, agency, or franchisor-franchisee relationship between you and Bank.

21.4

Assignment and No Third-Party Beneficiaries

You may not assign or transfer any or all of your rights or obligations under this Agreement without Bank's express prior written consent. Bank may assign or transfer any or all of its rights or obligations under this Agreement without restriction. Any purported assignments, transfers, or delegations in violation of this section will be null and void. Nothing in this Agreement will confer any rights upon any person other than the Parties hereto and their respective heirs, successors, and permitted assigns.

21.5

Interpretation

For purposes of interpreting this Agreement, unless otherwise specifically stated, (a) the singular includes the plural, and the plural includes the singular; (b) the words "herein," "hereof," and "hereunder" and other words of similar import refer to this Agreement as a whole and not to any particular section or paragraph; (c) the words "include" and "including" will not be construed as terms of limitation, and will therefore mean "including but not limited to" and "including without limitation"; (d) the words "writing" or "written" mean preserved or presented in retrievable or reproducible form, whether electronic (including email but excluding voice mail) or hard copy; (e) the captions and section and paragraph headings used in this Agreement are inserted for convenience only and will not affect the meaning or interpretation of this Agreement; and (f) the references herein to the Parties will refer to their permitted successors and assigns..

21.6

Entire Agreement and Waiver

This Agreement is the final and complete expression of the agreement between the Parties regarding the subject matter of this Agreement. This Agreement supersedes, and the terms of this Agreement govern, all previous oral and written communications regarding these matters, all of which are merged into this Agreement. No waiver of this Agreement will be binding unless in writing and executed by Bank.

By checking the box marked “Accept” in connection with the Service, or by using the Service, you agree to the terms of the Agreement as indicated above.

Account Validation v1

clock 4-minute read calender 1.0.4 | updated May. 29, 2024

Verify an account and its owner with confidence

Important note: This version will soon deprecate and be replaced with Account Validation API v2. We recommend using the latest version and for existing clients to upgrade to v2.

What you can do Endpoint
Health check GET /accounts/validations/v1/healthCheck
Verify an account POST /accounts/validations/v1/verifyAccount

Before you begin

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

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

The following response rules apply for all fields:

  • The account data matched in the database is determined based on the account number (accountNumber) and routing number (routingNumber) in the request.

  • Account matching will be performed only if a request contains firstName and lastName, and/or businessName.

  • All fields included in the request will be matched against the database.

  • Case, spacing, and punctuation are ignored.

Account Validation responses include specific service-level processing information and account-level information as shown below:

 

Service-level

  • System error codes (errorCode)
  • Inquiry field validation error codes

Account-level

  • Condition codes (conditionCode)
  • Account status codes (primaryStatusCode)
  • Account owner field matching (accountOwnerResponse)

 


get /accounts/validations/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/validations/v1/verifyAccount

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

BODY FIELDTYPEDESCRIPTION
accountValidationRequestoptionalObjectaccountValidationRequest

Request example

copylink
{
    "accountValidationRequest": {
        "AOARequest": {
            "Inquiry": {
                "serviceType": "Owner",
                "secondaryId": "KeyCli01",
                "additionalId": "",
                "routingNumber": "122199983",
                "accountNumber": "123456789",
                "amount": "50.50",
                "serialNumber": "",
                "AcctOwner": {
                    "firstName": "Paul",
                    "lastName": "Wilson",
                    "middleName": "V",
                    "namePrefix": "Mr",
                    "nameSuffix": "Son",
                    "businessName": "Business by Paul",
                    "addressLine1": "127 Public Square",
                    "addressLine2": "Suite A",
                    "city": "Cleveland",
                    "state": "OH",
                    "zipCode": "44114",
                    "homePhone": "",
                    "workPhone": "",
                    "ssn": "9976",
                    "dob": "19730801",
                    "idType": "2",
                    "idNo": "6788",
                    "idState": "AL"
                },
                "Client": {
                    "clientDate": "2022-04-08",
                    "clientTime": "11:45:05",
                    "userDefined": "1234567890"
                }
            }
        }
    }
}
NAMETYPEDESCRIPTION
accountValidationResponseoptionalObjectaccountValidationResponse

Response example (200)

copylink
{
    "accountValidationResponse": {
        "AOAResponse": {
            "Result": {
                "errorCode": "000",
                "systemRecordId": "650580221072984",
                "primaryId": "TROM122101",
                "secondaryId": "KeyCli01",
                "routingNumber": "122199983",
                "accountNumber": "123456789",
                "feeAttrib": "HH",
                "amount": "50.50",
                "AcctOwner": {
                    "conditionCode": "000",
                    "nameMatch": "Y",
                    "firstNameMatch": "Y",
                    "lastNameMatch": "Y",
                    "middleNameMatch": "N",
                    "namePrefixMatch": "U",
                    "nameSuffixMatch": "U",
                    "addressMatch": "Y",
                    "cityMatch": "Y",
                    "stateMatch": "Y",
                    "zipCodeMatch": "Y",
                    "ssnMatch": "N",
                    "dobMatch": "Y",
                    "idTypeMatch": "Y",
                    "idNoMatch": "N",
                    "idStateMatch": "Y",
                    "overallMatchScore": "62"
                },
                "AcctStatus": {
                    "primaryStatusCode": "099",
                    "primMessage": "Open Valid"
                },
                "Client": {
                    "clientDate": "2022-04-08",
                    "clientTime": "11:45:05",
                    "userDefined": "1234567890"
                }
            }
        }
    }
}
NAMETYPEDESCRIPTION
ErrorMessageoptionalstringA human-readable message that describes the type or source of the error.
TransactionIdoptionalstringA unique transaction ID returned with the response, useful for traceability.
X-CorrelationIdoptionalstringA unique identifier generated for each transaction that remains with the transaction through the chain of API operations.
TransactionTimeoptionalstringDate (YYYY-MM-DD) and time (HH:MM:SS) the error occurred.
ServiceErroroptionaloneOfserviceErrorData connectError

Response example (400)

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

Response example (401)

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

Response example (403)

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

Response example (404)

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

Response example (415)

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

Response example (429)

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

Response example (500)

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

Response example (502)

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

Response example (503)

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

Response example (504)

copylink
{
    "ErrorMessage": "Error received from backend service",
    "X-CorrelationId": "2ebd5c24-0e8d-5a70-0e91-ffd2727c1aab",
    "TransactionId": "rrt-7709400285867417207-b-gce-27587-2383364-1",
    "TransactionTime": "2021-06-11T16:31:34.041Z",
    "ServiceError": {
        "ConnectError": "Request could not be processed on time (GatewayTimeout), please wait a moment and resubmit the request"
    }
}
NAMETYPEDESCRIPTION
firstNameoptionalstringFirst name of the account owner. Required with lastName if businessName is null.
lastNameoptionalstringLast name of the account owner. Required with firstName if businessName is null.
middleNameoptionalstringMiddle name of the account owner.
namePrefixoptionalstringOptional name prefix of the account owner. This field cannot exceed four characters. Example: Dr., Mr., Mrs.
nameSuffixoptionalstringOptional name suffix of the account owner. This field cannot exceed four characters. Example: Jr., PhD
businessNameoptionalstringBusiness name that owns the account. Required if lastName is null.
addressLine1optionalstringFirst line of the address on the account. This field cannot exceed 40 characters.
addressLine2optionalstringSecond line of the address on the account.
cityoptionalstringCity on the account.
stateoptionalstringTwo-character state abbreviation on the account.
zipCodeoptionalstringZIP code on the account. This can either be five digits or nine digits. If a nine-digit ZIP code is provided, a dash between the groups of digits is acceptable. Do not use a space.
homePhoneoptionalstring10-digit home phone number on the account. Do not add dashes, parenthesis, or any other non-numeric value.
workPhoneoptionalstring10-digit work phone number on the account. Do not add dashes, parenthesis, or any other non-numeric value.
ssnoptionalstringFull social security/tax ID number or the last four digits of the social security number of the account owner.
doboptionalstringDate of birth for the individual on the account. Format: YYYYMMDD
idTypeoptionalstringOne-character code that represents the type of identification used to verify the account owner.
idNooptionalstringID number for the account owner's form of identification. This field cannot exceed 28 characters.
idStateoptionalstringTwo-character state of issuance for the account owner's form of identification. If not a US state, enter the place of issuance. This field cannot exceed 6 characters.
NAMETYPEDESCRIPTION
firstNamerequiredstringFirst name of the account owner. Required with lastName if businessName is null.
lastNamerequiredstringLast name of the account owner. Required with firstName if businessName is null.
middleNameoptionalstringMiddle name of the account owner.
namePrefixoptionalstringOptional name prefix of the account owner. This field cannot exceed four characters. Example: Dr., Mr., Mrs.
nameSuffixoptionalstringOptional name suffix of the account owner. This field cannot exceed four characters. Example: Jr., PhD
businessNamerequiredstringBusiness name that owns the account. Required if lastName is null.
addressLine1optionalstringFirst line of the address on the account. This field cannot exceed 40 characters.
addressLine2optionalstringSecond line of the address on the account.
cityoptionalstringCity on the account.
stateoptionalstringTwo-character state abbreviation on the account.
zipCodeoptionalstringZIP code on the account. This can either be five digits or nine digits. If a nine-digit ZIP code is provided, a dash between the groups of digits is acceptable. Do not use a space.
homePhoneoptionalstring10-digit home phone number on the account. Do not add dashes, parenthesis, or any other non-numeric value.
workPhoneoptionalstring10-digit work phone number on the account. Do not add dashes, parenthesis, or any other non-numeric value.
ssnoptionalstringFull social security/tax ID number or the last four digits of the social security number of the account owner.
doboptionalstringDate of birth for the individual on the account. Format: YYYYMMDD
idTypeoptionalstringOne-character code that represents the type of identification used to verify the account owner.
idNooptionalstringID number for the account owner's form of identification. This field cannot exceed 28 characters.
idStateoptionalstringTwo-character state of issuance for the account owner's form of identification. If not a US state, enter the place of issuance. This field cannot exceed 6 characters.
NAMETYPEDESCRIPTION
firstNameoptionalstringFirst name of the account owner. Required with lastName if businessName is null.
lastNamerequiredstringLast name of the account owner. Required with firstName if businessName is null.
middleNameoptionalstringMiddle name of the account owner.
namePrefixoptionalstringOptional name prefix of the account owner. This field cannot exceed four characters. Example: Dr., Mr., Mrs.
nameSuffixoptionalstringOptional name suffix of the account owner. This field cannot exceed four characters. Example: Jr., PhD
businessNamerequiredstringBusiness name that owns the account. Required if lastName is null.
addressLine1optionalstringFirst line of the address on the account. This field cannot exceed 40 characters.
addressLine2optionalstringSecond line of the address on the account.
cityoptionalstringCity on the account.
stateoptionalstringTwo-character state abbreviation on the account.
zipCodeoptionalstringZIP code on the account. This can either be five digits or nine digits. If a nine-digit ZIP code is provided, a dash between the groups of digits is acceptable. Do not use a space.
homePhoneoptionalstring10-digit home phone number on the account. Do not add dashes, parenthesis, or any other non-numeric value.
workPhoneoptionalstring10-digit work phone number on the account. Do not add dashes, parenthesis, or any other non-numeric value.
ssnoptionalstringFull social security/tax ID number or the last four digits of the social security number of the account owner.
doboptionalstringDate of birth for the individual on the account. Format: YYYYMMDD
idTypeoptionalstringOne-character code that represents the type of identification used to verify the account owner.
idNooptionalstringID number for the account owner's form of identification. This field cannot exceed 28 characters.
idStateoptionalstringTwo-character state of issuance for the account owner's form of identification. If not a US state, enter the place of issuance. This field cannot exceed 6 characters.
NAMETYPEDESCRIPTION
firstNameoptionalstringFirst name of the account owner. Required with lastName if businessName is null.
lastNameoptionalstringLast name of the account owner. Required with firstName if businessName is null.
middleNameoptionalstringMiddle name of the account owner.
namePrefixoptionalstringOptional name prefix of the account owner. This field cannot exceed four characters. Example: Dr., Mr., Mrs.
nameSuffixoptionalstringOptional name suffix of the account owner. This field cannot exceed four characters. Example: Jr., PhD
businessNameoptionalstringBusiness name that owns the account. Required if lastName is null.
addressLine1optionalstringFirst line of the address on the account. This field cannot exceed 40 characters.
addressLine2optionalstringSecond line of the address on the account.
cityoptionalstringCity on the account.
stateoptionalstringTwo-character state abbreviation on the account.
zipCodeoptionalstringZIP code on the account. This can either be five digits or nine digits. If a nine-digit ZIP code is provided, a dash between the groups of digits is acceptable. Do not use a space.
homePhoneoptionalstring10-digit home phone number on the account. Do not add dashes, parenthesis, or any other non-numeric value.
workPhoneoptionalstring10-digit work phone number on the account. Do not add dashes, parenthesis, or any other non-numeric value.
ssnoptionalstringFull social security/tax ID number or the last four digits of the social security number of the account owner.
doboptionalstringDate of birth for the individual on the account. Format: YYYYMMDD
idTypeoptionalstringOne-character code that represents the type of identification used to verify the account owner.
idNooptionalstringID number for the account owner's form of identification. This field cannot exceed 28 characters.
idStateoptionalstringTwo-character state of issuance for the account owner's form of identification. If not a US state, enter the place of issuance. This field cannot exceed 6 characters.
NAMETYPEDESCRIPTION
firstNameoptionalstringFirst name of the account owner. Required with lastName if businessName is null.
lastNameoptionalstringLast name of the account owner. Required with firstName if businessName is null.
middleNameoptionalstringMiddle name of the account owner.
namePrefixoptionalstringOptional name prefix of the account owner. This field cannot exceed four characters. Example: Dr., Mr., Mrs.
nameSuffixoptionalstringOptional name suffix of the account owner. This field cannot exceed four characters. Example: Jr., PhD
businessNameoptionalstringBusiness name that owns the account. Required if lastName is null.
addressLine1optionalstringFirst line of the address on the account. This field cannot exceed 40 characters.
addressLine2optionalstringSecond line of the address on the account. This field cannot exceed 40 characters.
cityoptionalstringCity on the account.
stateoptionalstringTwo-character state abbreviation on the account.
zipCodeoptionalstringZIP code on the account. This can either be five digits or nine digits. If a nine-digit ZIP code is provided, a dash between the groups of digits is acceptable. Do not use a space.
homePhoneoptionalstring10-digit home phone number on the account. Do not add dashes, parenthesis, or any other non-numeric value.
workPhoneoptionalstring10-digit work phone number on the account. Do not add dashes, parenthesis, or any other non-numeric value.
ssnoptionalstringFull social security/tax ID number or the last four digits of the social security number of the account owner.
doboptionalstringDate of birth for the individual on the account. Format: YYYYMMDD
idTypeoptionalstringOne-character code that represents the type of identification used to verify the account owner.
idNooptionalstringID number for the account owner's form of identification. This field cannot exceed 28 characters.
idStateoptionalstringTwo-character state of issuance for the account owner's form of identification. If not a US state, enter the place of issuance. This field cannot exceed 6 characters.
NAME TYPE DESCRIPTION
conditionCodeoptional string Three-digit system response code that reflects the state of the account owner provided.
nameMatchoptional string First name, middle name, and last name match status. Valid values: Y, N, C, U
firstNameMatchoptional string First name match status. Valid values: Y, N, U
lastNameMatchoptional string Last name match status. Valid values: Y, N, U
middleNameMatchoptional string Middle name or initial match status. Valid values: Y, N, U
namePrefixMatchoptional string Name prefix match status. U will always be returned for a name prefix if included in the request. Valid values: Y, N, U
nameSuffixMatchoptional string Name suffix match status. U will always be returned for a name suffix if included in the request. Valid values: Y, N, U
businessNameMatchoptional string Business name match status. Valid values: Y, N, C, U
addressMatchoptional string Combined address line one and two match status. Valid values: Y, N, C, U
cityMatchoptional string City match status. Valid values: Y, N, C, U
stateMatchoptional string State match status. Valid values: Y, N, U
zipCodeMatchoptional string ZIP code match status. Valid values: Y, N, C, U
homePhoneMatchoptional string Home phone number match status. Valid values: Y, N, C, U
workPhoneMatchoptional string Work phone number match status. Valid values: Y, N, C, U
ssnMatchoptional string SSN/TIN or last four digits of SSN match status. Valid values: Y, N, C, U
dobMatchoptional string Date of birth match status. Valid values: Y, N, C, U
idTypeMatchoptional string ID type match status. Valid values: Y, N, U
idNoMatchoptional string ID number match status. Valid values: Y, N, C, U
idStateMatchoptional string State or place of issuance match status. Valid values: Y, N, U
overallMatchScoreoptional string The measure of how closely the inquiry request attributes match the actual account ownership data. This number is calculated based on the analysis of all information sent. Valid values: 0-100
NAMETYPEDESCRIPTION
primaryStatusCodeoptionalstringPrimary three-digit account status code. This is an informational response code that represents the status of an account.
primMessageoptionalstringMessage associated with the primary status code.
NAMETYPEDESCRIPTION
InquiryoptionalObjectinquiry
NAMETYPEDESCRIPTION
errorCodeoptionalstringThree-digit error code. Returns a "000" when no errors are present.
systemRecordIdoptionalstringUnique, system-generated transaction ID.
primaryIdoptionalstringPrimary client ID returned via a KeyBank lookup.
secondaryIdoptionalstringSecondary client ID provided in the original request.
additionalIdoptionalstringAdditional client ID, if provided in the original request.
routingNumberoptionalstringNine-digit routing number for the account provided in the original request.
accountNumberoptionalstringFull bank account number provided in the original request.
feeAttriboptionalstringTwo-character code that represents how a transaction took place. Currently, the only value reported is "HH", which represents an ACH transaction.
amountoptionalstringAmount of the transaction, if provided in the original request.
serialNumberoptionalstringSerial number of the check, if provided in the original request.
AcctOwneroptionalObjectaccountOwnerResponse
AcctStatusoptionalObjectaccountStatus
ClientoptionalObjectclient
NAMETYPEDESCRIPTION
accountValidationRequestoptionalObjectaccountValidationRequest
NAMETYPEDESCRIPTION
accountValidationResponseoptionalObjectaccountValidationResponse
NAMETYPEDESCRIPTION
clientDateoptionalstringClient-provided date the inquiry request was made. Format: YYYY-MM-DD
clientTimeoptionalstringClient-provided time the inquiry request was made. Format: HH:MM:SS
userDefinedoptionalstringClient-provided descriptive text about the inquiry request. This field cannot exceed 255 characters.
NAMETYPEDESCRIPTION
ConnectErroroptionalstringAPI connectivity error information, if available.
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
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
serviceTyperequiredstringRepresents the type of request made to the API. This value is case-sensitive and must be set to "Owner".
secondaryIdrequiredstringSecondary client ID provided by KeyBank.
additionalIdoptionalstringAdditional client ID provided by KeyBank. This is only required if provided during onboarding.
routingNumberrequiredstringNine-digit routing number for the account, including leading zeroes.
accountNumberrequiredstringFull bank account number, without separators or leading zeroes. The length and format depends on the bank. This field cannot exceed 17 characters.
amountoptionalstringDollar amount of the transaction. The amount can be formatted as a whole dollar amount or with cents. This field cannot exceed 12 characters.
serialNumberoptionalstringSerial number of the check. Serial number does not apply to ACH inquiries.
AcctOwneroptionalanyOfaccountOwnerFirstLastName accountOwnerBusinessFirstName accountOwnerBusinessName accountOwnerBusinessLastName accountOwnerBusinessFirstLastName
ClientoptionalObjectclient
NAMETYPEDESCRIPTION
errorCodeoptionalstringThree-digit error code. Returns a "000" when no errors are present.

For more information about errors, see Error handling.

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

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

 

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

 

Account status codes are the specific account codes that may result from an account validation request and are returned in the response payload in the primaryStatusCode field.

STATUS CODE DESCRIPTION
000 Routing number/account number combination cannot be located
012 Account is closed
096 No positive or negative information is known about the account
099 Account is present in participant's master account file and contains no other status code

 

Depending on the service type configured, the accountOwnerResponse 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). 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.

CODE DESCRIPTION Applies to match fields
Y Close or exact match firstNameMatch, lastNameMatch, middleNameMatch, namePrefixMatch, nameSuffixMatch, stateMatch, ssnMatch (if the last four digits are provided in the request), idType, idState
N No match
C Conditional match nameMatch, businessNameMatch, addressMatch, cityMatch, zipCodeMatch,homePhoneMatch, workPhoneMatch, ssnMatch (if nine digits are provided in the request),dobMatch, idNoMatch
U No identifying data is available Applies to all fields

 

Enjoy embedded banking made easy

The KeyBank Developer Portal has everything you need to bring our services to your software. Browse a suite of flexible APIs and read our comprehensive documentation. Integrate, test, and take it live. Better banking begins now.

Hero_illustrationConstruction crew and equipment putting together a development website.

Why KeyBank?

It’s simple. We designed our self-service developer portal for one thing: easy and effective embedded banking. And we deliver it by offering all the technology you need with a guided, personal touch.

A computer screen with the cursor pointing on a window box.
Flexible APIs

Complete with comprehensive documentation and helpful user guides, our APIs take the guess work out of your work. Browse the API products we offer.

 

Woman using a computer at a desk.
Easy onboarding

The Getting Started Guide gets you up and running in a hurry. We’ll help you through the process with a few tips and tricks for a smooth ride.

Cloud with gears and workflow objects
KeyVAM

Key Virtual Account Management (KeyVAM) is a digital solution to manage multiple accounts with one physical account. Go to KeyVAM site to learn more.

 

Laptop with code screen and beaker for experiments.
API Simulator

Simulate dynamic request and response operations to get a better understanding of the APIs. We currently offer this experience for our ACH APIs.

Explore the possibilities

What can you do with KeyBank APIs? Well, for starters, you can:

  • Confirm accounts before paying

    Help keep your money safe by verifying the status of a payer or payee before sending any payments.

    Person icon with verified checkmark in green circle.

    Verify an account and its owner.

    View specs | View guide

  • Make and manage payments

    Move and track money quickly with super-fast payment options, easy stops, and instant status checks.

    Lighting bolt with money symbol in green circle.

    Create and send a real-time payment.

    View specs

    Stop sign with a dollar sign.

    Stop an issued payment.

    View specs

    Financial institution with a dollar sign in a green circle.

    Make an ACH payment.

    View specs | View guide

    Object with a dollar sign in green circle and arrow indicating transfer.

    Prepare and send a wire payment.

    View specs

  • Review your account activity

    See how your money moves with comprehensive, on-demand reporting and recordkeeping for all transactions.

    Calendar with dollar sign in a green circle.

    Get past transaction activity.

    View specs

    Green circle in the middle of curved line with arrows.

    Get transaction activity for the current day.

    View specs

    Image of a check.

    Get a single check image.

    View specs

    Bell with ACH in a red circle.

    Get the status of an ACH payment.

    View specs | View guide

    Large arrow with dollar sign in green circle.

    Get the status of a wire payment.

    View specs

How to get started

Integrating our APIs into your software is easy. Here's how it works:

1

LEARN MORE

Explore the portal to learn more about KeyBank APIs.

2

Get involved

Onboard with KeyBank and exchange certificates.

3

Begin Testing

Test our APIs with your data in a certified and secure environment.

4

Go Live

Create API sequences and publish your work.