Decrypting and decoding API parameters
There are fields present across KeyBank APIs, in both request and response objects, that have predefined values. Some of these values are specific to KeyBank and others are industry-standard values. The purpose of this page is to catalog as many of these data values as possible and provide definitions for their usage within our APIs.
Each data value definition contains a brief description, the specific fields and APIs where the data value can be found, and a tabular listing of possible values and what these values mean.
Data values | Field names | Applicable APIs | Description |
---|---|---|---|
Addenda type codes | addendaTypeCode |
| A two-digit code that defines the specific interpretation and format for the addenda information contained in the addenda record. |
BAI codes | baiCode , amountTypeCode , derivedBaiCode ,transactionCodeBAI2 |
| A BAI (Bank Administration Institute) code is a three-digit code identifying a banking transaction and are divided into balance codes and transaction codes. |
Change codes | changeCode , nocChangeCode |
| In the case of a Notification of Change (NOC), this is a three-character code beginning with the letter 'C' that indicates the information being changed. |
Foreign bank type codes | foreignBankSystemType |
| Five-character global routing/clearing codes for payments in foreign countries. |
Pay subtype codes | paySubType |
| A four-digit code that corresponds to a particular wire drawdown scenario. |
Return reason codes | returnReasonCode , retReturnReasonCode |
| In the case of a returned ACH payment, this is a three-character code beginning with the letter 'R' that identify a reason an ACH payment was returned. |
Transaction codes | transactionCode , retTranCode , tranCode |
| A two-digit code identifying various types of debit and credit entries. |
Wire and RTP webhook statuses | tranBusnStatusCode |
| The intermittent or final status for Wire and RTP webhook alerts. |
Addenda type codes
A two-digit code that defines the specific interpretation and format for the addenda information contained in the addenda record.
Addenda type codes can be found in the following fields:
addendaTypeCode
: ACH Origination, ACH Inquiry
Code | Description |
---|---|
02 | Point of Sale Entry (POS), Shared Network Transaction (SHR), or Machine Transfer Entry (MTE) |
05 | Corporate Credit or Debit (CCD), Customer Initiated Entries (CIE), Corporate Trade Exchange (CTX), Prearranged Payment and Deposit (PPD), Internet Initiated/Mobile Entries (WEB) |
10-16 | 1st-7th addenda records for International ACH Transaction (IAT) |
17 | IAT Remittance Information addenda record |
18 | IAT Foreign Correspondent Bank addenda record |
98 | Used for Notification of Change (NOC) entries |
99 | Used for Return entries |
BAI codes
A BAI (Bank Administration Institute) code is a three-digit code identifying a banking transaction and are divided into balance codes and transaction codes.
BAI codes can be found in the following fields:
baiCode
: ACH Inquiry, Previous Day Reporting, Intraday ReportingamountTypeCode
: Intraday ReportingderivedBaiCode
: Intraday ReportingtransactionCodeBAI2
: Intraday Reporting
Balance codes
Code | Description |
---|---|
010 | Opening Ledger |
015 | Closing Ledger |
040 | Opening Available |
045 | Closing Available |
072 | One Day Float |
074 | Two or More Day Float |
100 | Total Credits |
109 | Current Day Total Lockbox Deposits |
111 | Lockbox Deposit - Zero Day Float |
112 | Lockbox Deposit - One Day Float |
113 | Lockbox Deposit - Two Day Float |
115 | Lockbox Deposit |
140 | Total ACH Credits |
190 | Total Incoming Money Transfers |
400 | Total Debits |
450 | Total ACH Debits |
490 | Total Outgoing Money Transfers |
580 | Total Controlled Disbursement Debits |
584 | Total Disbursements Late Amount |
585 | Disbursing Funding Requirement |
602 | Total CDA Adjustments |
Transaction codes
Code | Description |
---|---|
158 | Real Time Payment Credit |
165 | Pre-authorized ACH Credit |
171 | Individual Loan Deposit |
172 | Deposit Correction |
195 | Incoming Money Transfer |
201 | Individual Automatic Transfer Credit |
206 | Book Transfer Credit |
213 | Letter of Credit |
214 | Foreign Exchange Credit |
229 | Miscellaneous International Credit |
237 | Individual Collection Credit |
238 | Collection of Dividends |
244 | Interest / Matured Principle Payment |
252 | Debit Reversal |
258 | ACH Reversal Credit |
275 | ZBA Credit |
295 | ATM Credit |
301 | Commercial Deposit |
306 | Fed Funds Sold |
351 | Individual Investment Sold |
354 | Interest Credit |
357 | Credit Adjustment |
359 | Interest Adjustment Credit |
395 | Check Reversal |
398 | Miscellaneous Fee Refund |
399 | Miscellaneous Credit |
451 | ACH Debit Received |
455 | Pre-authorized ACH Debit |
458 | Real Time Payment Debit |
475 | Check Paid |
481 | Individual Loan Payment |
495 | Outgoing Money Transfer |
501 | Individual Automatic Transfer Debit |
506 | Book Transfer Debit |
512 | Letter of Credit Debit |
513 | Letter of Credit |
514 | Foreign Exchange Debit |
529 | Miscellaneous International Debit |
544 | Interest / Matured Principle Payment |
552 | Credit Reversal |
555 | Deposited Item Returned |
558 | ACH Reversal Debit |
564 | Overdraft Fee |
567 | Return Item Fee |
575 | ZBA Debit |
595 | ATM Debit |
627 | Fed Funds Purchased |
631 | Debit Adjustment |
651 | Individual Investment Purchased |
654 | Interest Debit |
659 | Interest Adjustment Debit |
661 | Account Analysis Fee |
666 | Currency and Coin Shipped |
690 | Miscellaneous Debit |
694 | Deposit Reversal |
695 | Deposit Correction Debit |
698 | Miscellaneous Fees |
699 | Miscellaneous Debit |
760 | Commercial Loan Debit |
Change codes
In the case of a Notification of Change (NOC), this is a three-character code beginning with the letter 'C' that indicates the information being changed.
Change codes can be found in the following fields:
changeCode
: ACH InquirynocChangeCode
: Webhooks (ACH alerts)
Code | Description |
---|---|
C01 | Incorrect bank account number |
C02 | Incorrect transit/routing number |
C03 | Incorrect transit/routing number and bank account number |
C04 | Bank account name change |
C05 | Incorrect transaction code |
C06 | Incorrect bank account number and transaction code |
C07 | Incorrect transit/routing number, bank account number, and transaction code |
C08 | Incorrect Receiving DFI Identification (IAT only) |
C09 | Incorrect individual identification |
C10 | Incorrect company name |
C11 | Incorrect company identification |
C12 | Incorrect company name and identification |
C13 | Addenda format error |
Foreign bank type codes
Five-character global routing/clearing codes for payments in foreign countries.
Foreign bank type codes can be found in the following field:
foreignBankSystemType
: Wire Transfer, RTP Send Payment
Code | Description |
---|---|
ATBLZ | Austria |
AUBSB | Australia |
CACPA | Canada |
CHSIC | Switzerland |
DEBLZ | Germany |
ESNCC | Spain |
GBDSC | Great Britain |
HKNCC | Hong Kong |
IENCC | Ireland |
INFSC | India |
ITNCC | Italy |
NZNCC | New Zealand |
PTNCC | Portugal |
USABA | US FedWire |
ZANCC | South Africa |
Pay subtype codes
A four-digit code that corresponds to a particular wire drawdown scenario.
Pay subtype codes can be found in the following field:
paySubType
: Wire Inquiry
Code | Description |
---|---|
1031 | Request for customer drawdown |
1032 | Transfer honoring customer drawdown request |
1033 | Refusal of customer drawdown request |
1631 | Request for bank-to-bank drawdown |
1632 | Transfer honoring bank-to-bank drawdown request |
1633 | Refusal of bank-to-bank drawdown request |
Return reason codes
In the case of a returned ACH payment, this is a three-character code beginning with the letter 'R' that identify a reason an ACH payment was returned.
Return reason codes can be found in the following fields:
returnReasonCode
: ACH InquiryretReturnReasonCode
: Webhooks (ACH alerts)
Code | Description |
---|---|
R01 | Insufficient funds - The available and/or cash reserve balance is not sufficient to cover the dollar value of the debit entry. |
R02 | Account closed – A previously active account has been closed by action of the customer or the RDFI. |
R03 | No account/unable to locate account – The account number structure is valid and it passes the check digit validation, but the account number does not correspond to the individual identified in the entry, or the account number designated is not an existing account. |
R04 | Invalid account number structure – The account number structure is not valid. |
R05 | Unauthorized debit to consumer account using corporate SEC code – CCD or CTX debit entry was transmitted to a Consumer Account of the receiver and was not authorized by the receiver. |
R06 | Returned per ODFI’s request – The ODFI has requested that the RDFI return an erroneous entry. |
R07 | Authorization revoked by customer – The RDFI’s customer (the receiver) revoked the authorization previously provided to the originator for this debit entry. |
R08 | Payment stopped – The receiver has placed a stop payment order on this debit entry. |
R09 | Uncollected funds – A sufficient ledger balance exists to satisfy the dollar value of the transaction, but the available balance is below the dollar value of the debit entry. |
R10 | Customer advises unauthorized, improper, ineligible, or part of an incomplete transaction – The RDFI has been notified by the receiver that the entry is unauthorized, improper, ineligible, or part of an Incomplete Transaction. |
Transaction codes
A two-digit code identifying various types of debit and credit entries.
Transaction codes can be found in the following fields:
transactionCode
: ACH Inquiry, ACH Origination, Intraday ReportingretTranCode
: Webhooks (ACH alerts)tranCode
: Webhooks (ACH alerts)
DDA credits
Code | Description |
---|---|
20 | Reserved |
21 | Return or Notification of Change for original transaction code 22, 23, or 24 |
22 | Demand credit (checking deposit) |
23 | Prenotification for a demand credit; death notification (non-dollar); automated enrollment entry (non-dollar) |
24 | Zero dollar with remittance data (for CCD, CTX, and IAT entries); acknowledgement entries (ACK and ATX entries) |
DDA debits
Code | Description |
---|---|
25 | Reserved |
26 | Return or Notification of Change for original transaction code 27, 28, or 29 |
27 | Demand debit (checking withdrawal) |
28 | Prenotification for a demand debit (non-dollar) |
29 | Zero dollar with remittance data (for CCD, CTX, and IAT entries) |
Savings credits
Code | Description |
---|---|
30 | Reserved |
31 | Return or Notification of Change for original transaction code 32, 33, or 34 |
32 | Savings credit (savings deposit) |
33 | Prenotification for a savings credit; death notification (non-dollar); automated enrollment entry (non-dollar) |
34 | Zero dollar with remittance data (for CCD, CTX, and IAT entries); acknowledgement entries (ACK and ATX entries) |
Savings debits
Code | Description |
---|---|
35 | Reserved |
36 | Return or Notification of Change for original transaction code 37, 38, or 39 |
37 | Savings debit (savings withdrawal) |
38 | Prenotification for a savings debit (non-dollar) |
39 | Zero dollar with remittance data (for CCD, CTX, and IAT entries) |
Loan credits
Code | Description |
---|---|
51 | Return or Notification of Change for original transaction code 52, 53, or 54 |
52 | Loan account credit |
53 | Prenotification for a loan account credit |
54 | Zero dollar with remittance data (for CCD, CTX, and IAT entries) |
Loan debits
Code | Description |
---|---|
55 | Loan account debit (reversals only) |
56 | Return or Notification of Change for original transaction code 55 |
Wire and RTP webhook alert statuses
Review the tranBusnStatusCode
in the alertBody
object. The status value identifies the payment event in an intermittent (payment under processing), final (completed payment processed), and success (payment successfully completed) status.
Status | Description | Interim Status | Final Status | Success |
---|---|---|---|---|
Pre Qualifying | Payment is being evaluated for errors by the Network. | X | ||
Funds Release | Payment is waiting for OLDS memo post response. | X | ||
PaymentNotification | Payment stopped pending manual release for various reasons. | X | ||
Repair | Payment needs correction before it continues processing. | X | ||
Duplicate Content | Payment matches criteria of another payment. Requires action to process further. | X | ||
Regulatory Filter | Payment is waiting for response from Fraud or OFAC check. | X | ||
Clearing | Payment is waiting for a response from the Payment Network. | X | ||
Product Selection | EPP determines the product for the payment that drives which steps in the workflow will execute. | X | ||
Limit check | Checks EPP for any applicable account or customer limits. | X | ||
Advising | Most of our customer advising is done outside of EPP, but this could be performing payment network advising of some sort as well. | X | ||
Pricing | Billing codes and/or network channel fees are applied to the payment | X | ||
Held Requiring Cover | This payment requires an Operator to clear it out of the Direct and Cover Matching-in Payment Intervention. | X | ||
Internal Filter | Scans EPP filters for alternate or special processing of the payment | X | ||
Future Warehouse | The payment is moved to a future business date because it missed the payment network cutoff time. When that future business date arrives and the payment network opens for business, the payment will re-enter the workflow to ultimately reach a FINAL status. | X | ||
Cancelled | Payment was cancelled. | X | ||
Returned | Payment was returned by receiving bank. | X | ||
Fatal | A serious error has occurred. Payment will not complete workflow. | X | ||
Rejected | Payment was rejected by Network. Payment will not complete workflow. | X | ||
Future Warehouse Cancelled | Payment was cancelled from Future Warehouse Queue. | X | ||
Abandoned | Payment was manually forced to not complete in EPP. | X | ||
Completed | Payment processed successfully through workflow. | X |