Commercial Accounts Reporting

clock 6-minute read calender 1.0.3 | updated Jun. 24, 2026

Sleek and accurate search for accounts and transactions

SummaryEndpoint
Retrieve account detailsget /commercial/accounts/v1/{accountId}
Search for accountsget /commercial/accounts/v1/list
Search prior day account transactionsget /commercial/accounts/v1/{accountId}/transactions/previous
Search current day account transactionsget /commercial/accounts/v1/{accountId}/transactions/current

Before you begin

To test or use any KeyBank API, you must be fully onboarded. This means having the right certificates, user credentials, and specific permissions for the API you're accessing. 

Need help getting started? Check out our Get started section for everything you need to know.

Request headers

HTTP request headers tell the server how to process the request and what format to use for the response. With the Commercial Accounts Reporting API, the following headers are required:

Accept

Specifies the expected response format. KeyBank APIs return JSON. Set this header to: Accept: application/json

The server responds with Content-Type: application/json.

Accept-Charset

Specifies the character encoding used for the request and response. Set this header to: Accept-Charset: UTF-8

AccountIdPath

Include the account ID in the request path to identify the account for which you want to retrieve data. 

FapiInteractionHeader

A unique identifier (UUID) assigned to each request for tracking and support purposes. The ID must be 36 characters long. 

UserAgent

Identifies the client application making the request, like the browser or integration tool. This is commonly used for troubleshooting and compatibility analysis. 

Balance as of date

The balance as of date is a query option to return historical balance information from a certain date. Balance information includes opening and closed ledger balances, opening and closing available balances, and commercial balances.  

  • Use the balanceAsOf field to define the length of the report data by date range. 
  • The date range should be within 180 days from the current date. 
  • Do not use the current date.
  • If a date is not provided, historical balance information is not returned.
  • The date provided should be in the format: YYYY-MM-DD.

Potential responses

Successful date ranges return a HTTP 200 or HTTP 206 message.

  • HTTP 200 returns full balance data. It is possible to have a successful response with no data if the date is valid but there are no records for that date. 
  • HTTP 206 returns with closest prior record if the date is valid, but there are no records for that day (like it is a weekend date or a holiday). 

Unsuccessful date ranges return a HTTP 400 or HTTP 404 message. 

  • HTTP 400 with error code 703 returns if you provide today's date or a date too far in the past (beyond the 180 days).
  • HTTP 404 with error code 1107 returns if the request parameters do not have any records associated with the ID or for the date specified. 

get /commercial/accounts/v1/{accountId}

Get full details about the account identified with the accountId parameter. 

To include account balance information like opening and closing ledger amounts, be sure to specify the balanceAsOf date in the request.

NAMETYPEDESCRIPTION
AcceptrequiredstringAccept
Accept-CharsetrequiredstringAcceptCharset
User-AgentrequiredstringUserAgent
FapiInteractionIdHeaderrequiredstringFapiInteractionIdHeader
AccountIdPathrequiredstringAccountIdPath
BalanceAsOfDateoptionalstringBalanceAsOfDate

Request example

curl --location: "https://partner-api-qv.key.com/commercial/accounts/v1/17e13f78-20c7-4ce6-ad4e-5afff48c8834?balanceAsOf=2025-08-21"
--header "Accept: application/json"
--header "Accept-Charset: UTF-8'
--header "User-Agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Mobile Safari/537.36 Edg/136.0.0.0'
--header "x-fapi-interaction-id: c770aef3-6784-41f7-8e0e-ff5f97bddb3a" 
--header "Bearer: testZcKJDWnwDWmmf9qah6PJvPy8"
NAMETYPEDESCRIPTION
AccountWithDetailsobjectAccountWithDetails

Response example (200)

copylink
{
  "accountId": "17e13f78-20c7-4ce6-ad4e-5afff48c8834",
  "accountNumberDisplay": "X5678", 
"accountNumber": "012345678", "accountCategory": "COMMERCIAL_ACCOUNT", "currentAvailableBalance": 1000.1, "currentLedgerBalance": 3000.2, "openingLedgerBalance": 123.45, "closingLedgerBalance": 25000.99, "openingAvailableBalance": 15000.5, "closingAvailableBalance": 25000.36, "balanceAsOf": "2025-08-21T00:00:00.000Z", "commercialBalances": [ { "commercialCode": { "type": "BAI", "code": "010", "memo": "Opening Ledger Balance" }, "amount": 123.45 }, { "commercialCode": { "type": "BAI", "code": "015", "memo": "Closing Ledger Balance" }, "amount": 25000.99 }, { "commercialCode": { "type": "BAI", "code": "040", "memo": "Opening Available Balance" }, "amount": 15000.5 }, { "commercialCode": { "type": "BAI", "code": "045", "memo": "Closing Available Balance" }, "amount": 25000.36 } ] }

It is possible to have a success message with a HTTP 206 code that indicates a partial success. For example, only a portion of the records are returned from the full set or the record is returning partial data. This can occur if the balanceAsOf date requested is a weekend date or a non-business day. Or, this can occur in an unlikely event that a dependent system or provider is down or has reduced performance. 

NAMETYPEDESCRIPTION
AccountWithDetailsobjectAccountWithDetails

Response example (206)

copylink
{
  "accountCategory": "COMMERCIAL_ACCOUNT",
  "accountNumberDisplay": "X5678",
  "balanceAsOf": "2019-08-24",
  "openingLedgerBalance": 0,
  "closingLedgerBalance": 0,
  "currentLedgerBalance": 0,
  "openingAvailableBalance": 0,
  "currentAvailableBalance": 0,
  "closingAvailableBalance": 0,
  "commercialBalances": [
    {
      "commercialCode": {
        "type": "BAI",
        "code": "string"     
        },
      "amount": 0,
      "memo": "string"
      }  
    ]
  ]
}
NAMETYPEDESCRIPTION
ErrorobjectError

Response example (400)

copylink
{
  "code": "401",
  "message": "Invalid input",
  "debugMessage": "Required header 'x-fapi-interaction-id' is not valid."			
}
NAMETYPEDESCRIPTION
ErrorobjectError

Response example (401)

copylink
{
  "code": "603",
  "message": "Unauthorized request",
  "debugMessage": "Please update the request and try again."			
}
NAMETYPEDESCRIPTION
ErrorobjectError

Response example (403)

copylink
{
  "code": "403",
  "message": "Forbidden",
  "debugMessage": "Please update the request and try again."			
}
NAMETYPEDESCRIPTION
ErrorobjectError

Response example (406)

copylink
{
  "code": "1203",
  "message": "Content Type not supported",
  "debugMessage": "Acceptable representations: [application/json, application/*+json]."
}

get /commercial/accounts/v1/list

Retrieve a list of commercial payment accounts.

A successful response returns an array of accounts for authorized commercial clients. In the account details, an accountId is returned. This identifier is required to retrieve account details or to search for current or past day transactions.

HEADERTYPEDESCRIPTION
AcceptrequiredstringAccept
Accept-CharsetrequiredstringAcceptCharset
User-AgentrequiredstringUserAgent
LimitQueryoptionalintegerLimitQuery
PageKeyQueryoptionalstringPageKeyQuery
FapiInteractionIdHeaderrequiredstringFapiInteractionIdHeader

Request example

curl --location: "https://partner-api-qv.key.com/commercial/accounts/v1/list?limit=50"
--header "Accept: application/json"
--header "Accept-Charset: UTF-8'
--header "User-Agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Mobile Safari/537.36 Edg/136.0.0.0'
--header "x-fapi-interaction-id: c770aef3-6784-41f7-8e0e-ff5f97bddb3a" 
--header "Bearer: testZcKJDWnwDWmmf9qah6PJvPy8"
NAMETYPEDESCRIPTION
AccountsobjectAccounts

Response example (200)

copylink
{
  "page": {
    "nextPageKey": "2",
    "previousPageKey": "1",
    "totalElements": 3
  },
  "links": {
    "next": {
      "href": "https://partner-api.key.com/accounts/12345"
    },
    "prev": {
      "href": "https://domain.com/accounts/12345"
    }
  },
  "accounts": [
    {
     "accountCategory": "COMMERCIAL_ACCOUNT",
     "accountId": "17e13f78-20c7-4ce6-ad4e-5afff48c8834",
     "accountNumberDisplay": "X5678",
     "accountNumber": "012345678"
    }
  ]
}
NAMETYPEDESCRIPTION
ErrorobjectError

Response example (400)

copylink
{
  "code": "401",
  "message": "Invalid input",
  "debugMessage": "Required header 'x-fapi-interaction-id' is not valid."			
}
NAMETYPEDESCRIPTION
ErrorobjectError

Response example (401)

copylink
{
  "code": "603",
  "message": "Authentication failed",
  "debugMessage": "Please update the request and try again."			
}
NAMETYPEDESCRIPTION
ErrorobjectError

Response example (403)

copylink
{
  "code": "403",
  "message": "Forbidden",
  "debugMessage": "Please update the request and try again."			
}
NAMETYPEDESCRIPTION
ErrorobjectError

Response example (404)

copylink
{
  "code": "1107",
  "message": "Data not found for request parameters",
  "debugMessage": "Please adjust your search criteria and try again."
}
NAMETYPEDESCRIPTION
ErrorobjectError

Response example (406)

copylink
{
  "code": "1203",
  "message": "Content Type not supported",
  "debugMessage": "Acceptable representations: [application/json, application/*+json]."		
}

get /commercial/accounts/v1/{accountId}/transactions/previous

Search for past transactions by accountId and date range, startDate and endDate. Do not specify a date range to search yesterday's transactions. If you enter a date range, remember the following:

  • If you enter a start date, you must also provide an end date.
  • You can look up to 180 days in the past (about 6 months).
  • The end date cannot be the current date.
  • To search for a specific date, the start date and the end date must be the same date. For example, .../commercial/v1/accounts/accountId12345/transactions/previous?startDate=2025-02-15&endDate=2025-02-15.
NAMETYPEDESCRIPTION
AcceptrequiredstringAccept
Accept-CharsetrequiredstringAcceptCharset
User-AgentrequiredstringUserAgent
FapiInteractionIdHeaderrequiredstringFapiInteractionIdHeader
AccountIdPathrequiredstringAccountIdPath
StartDateQueryoptionalstringStartDateQuery
EndDateQueryoptionalstringEndDateQuery
LimitQueryoptionalintegerLimitQuery
PageKeyQueryoptionalstringPageKeyQuery

Request example

curl --location: 'https://partner-api-qv.key.com/commercial/accounts/v1/FintechCo-25-7120aez/transactions/previous?startDate=2025-02-15&endDate=2025-02-28&limit=15&pageKey=2'
--header 'Accept: application/json'
--header 'Accept-Charset: UTF-8'
--header 'User-Agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Mobile Safari/537.36 Edg/136.0.0.0'
--header 'x-fapi-interaction-id: c770aef3-6784-41f7-8e0e-ff5f97bddb3a' 
--header 'Bearer: testZcKJDWnwDWmmf9qah6PJvPy8'
NAMETYPEDESCRIPTION
transactionsarrayTransactions

Response example (200)

copylink
{
  "page": {
    "nextPageKey": "2",
    "previousPageKey": "1",
    "totalElements": 3
  },
  "links": {
    "next": {
      "href": "https://partner-api.key.com/accounts/12345"
    },
    "prev": {
      "href": "https://partner-api.key.com/accounts/12345"
    }
  },
  "transactions": [
    {
      "accountCategory": "COMMERCIAL_ACCOUNT",
      "accountId": "17e13f78-20c7-4ce6-ad4e-5afff48c8834",
      "transactionId": "c83e25fa-f522-4b81-97fd-7b060fc76f38",
      "postedTimestamp": "2021-07-15T14:46:41.375",
      "transactionTimestamp": "2021-07-15T14:46:41.375",
      "description": "string",
      "debitCreditMemo": "CREDIT",
      "status": "AUTHORIZATION",
      "amount": 0,
      "lineItem": [
        {
          "description": "ACH",
          "amount": 0
        }
      ],
      "fiAttributes": [
        {
          "name": "transactionType",
          "value": "ACH"
        }
      ],
      "commercialCode": {
        "type": "BAI",
        "code": "string"
      }
    }
  ]
}

It is possible to have a success message with a HTTP 206 code that indicates a partial success. For example, only a portion of the records are returned from the full set or the record is returning partial data. This can occur if the daily batch hasn’t processed one or more of the dates being searched. Or, in an unlikely event that a dependent system or provider is down or has reduced performance. In either case, review the Content-Range response header for an explanation to the range of data provided.

NAMETYPEDESCRIPTION
AccountWithDetailsobjectAccountWithDetails

Response example (206)

copylink
{
  "page": {
    "nextPageKey": "2",
    "previousPageKey": "1"
  },
  "links": {
    "next": {
      "href": "https://partner-api.key.com/accounts/12345"
    },
    "prev": {
      "href": "https://partner-api.key.com/accounts/12345"
    }
  },
  "transactions": [
    {
      "accountCategory": "COMMERCIAL_ACCOUNT",
      "accountId": "17e13f78-20c7-4ce6-ad4e-5afff48c8834",
      "transactionId": "c83e25fa-f522-4b81-97fd-7b060fc76f38",
      "postedTimestamp": "2021-07-15T14:46:41.375",
      "lineItem": [],
      "fiAttributes": [
        {
          "name": "transactionType",
          "value": "ACH"
        }
      ]
    }
  ]
}
NAMETYPEDESCRIPTION
ErrorobjectError

Response example (400)

copylink
{
  "code": "401",
  "message": "Invalid input",
  "debugMessage": "Required header 'x-fapi-interaction-id' is not valid."			
}
NAMETYPEDESCRIPTION
ErrorobjectError

Response example (401)

copylink
{
  "code": "603",
  "message": "Authentication failed",
  "debugMessage": "Please update the request and try again."			
}
NAMETYPEDESCRIPTION
ErrorobjectError

Response example (403)

copylink
{
  "code": "403",
  "message": "Forbidden",
  "debugMessage": "Please update the request and try again."			
}
NAMETYPEDESCRIPTION
ErrorobjectError

Response example (404)

copylink
{
  "code": "1107",
  "message": "Data not found for request parameters",
  "debugMessage": "Please adjust your search criteria and try again."
}
NAMETYPEDESCRIPTION
ErrorobjectError

Response example (406)

copylink
{
  "code": "1203",
  "message": "Content Type not supported",
  "debugMessage": "Acceptable representations: [application/json, application/*+json]."			
}

get /commercial/accounts/v1/{accountId}/transactions/current

Search for current day transaction by accountId. Use pagination controls to limit or filter the data returned.

NAMETYPEDESCRIPTION
AcceptrequiredstringAccept
Accept-CharsetrequiredstringAcceptCharset
User-AgentrequiredstringUserAgent
FapiInteractionIdHeaderstringFapiInteractionIdHeader
AccountIdPathrequiredstringAccountIdPath
LimitQueryoptionalintegerLimitQuery
PageKeyQueryoptionalstringPageKeyQuery

Request example

curl --location: 'https://partner-api-qv.key.com/commercial/v1/accounts/FintechCo-25-7120aez/transactions/current?limit=15&pageKey=3'
--header 'Accept: application/json'
--header 'Accept-Charset: UTF-8'
--header 'User-Agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Mobile Safari/537.36 Edg/136.0.0.0'
--header 'x-fapi-interaction-id: c770aef3-6784-41f7-8e0e-ff5f97bddb3a' 
--header 'Bearer: testZcKJDWnwDWmmf9qah6PJvPy8'
NAMETYPEDESCRIPTION
transactionsarrayTransactions

Response example (200)

copylink
{
  "page": {
    "nextPageKey": "2",
    "previousPageKey": "1",
    "totalElements": 3
  },
  "links": {
    "next": {
      "href": "https://partner-api.key.com/accounts/12345"
    },
    "prev": {
      "href": "https://partner-api.key.com/accounts/12345"
    }
  },
  "transactions": [
    {
      "accountCategory": "COMMERCIAL_ACCOUNT",
      "accountId": "17e13f78-20c7-4ce6-ad4e-5afff48c8834",
      "transactionId": "c83e25fa-f522-4b81-97fd-7b060fc76f38",
      "postedTimestamp": "2021-07-15T14:46:41.375",
      "transactionTimestamp": "2021-07-15T14:46:41.375",
      "description": "string",
      "debitCreditMemo": "CREDIT",
      "status": "AUTHORIZATION",
      "amount": 0,
      "lineItem": [
        {
          "description": "ACH",
          "amount": 0
        }
      ],
      "fiAttributes": [
        {
          "name": "transactionType",
          "value": "ACH"
        }
      ],
      "commercialCode": {
        "type": "BAI",
        "code": "string"
      }
    }
  ]
}
NAMETYPEDESCRIPTION
ErrorobjectError

Response example (400)

copylink
{
  "code": "401",
  "message": "Invalid input",
  "debugMessage": "Required header 'x-fapi-interaction-id' is not valid."			
}
NAMETYPEDESCRIPTION
ErrorobjectError

Response example (401)

copylink
{
  "code": "603",
  "message": "Authentication failed",
  "debugMessage": "Please update the request and try again."			
}
NAMETYPEDESCRIPTION
ErrorobjectError

Response example (403)

copylink
{
  "code": "403",
  "message": "Forbidden",
  "debugMessage": "Please update the request and try again."			
}
NAMETYPEDESCRIPTION
ErrorobjectError

Response example (404)

copylink
{
  "code": "1107",
  "message": "Data not found for request parameters",
  "debugMessage": "Please adjust your search criteria and try again."
}
NAMETYPEDESCRIPTION
ErrorobjectError

Response example (406)

copylink
{
  "code": "1203",
  "message": "Content Type not supported",
  "debugMessage": "Acceptable representations: [application/json, application/*+json]."			
}
NAMETYPEDESCRIPTION
x-fapi-interaction-idstringFapiInteractionId
NAMETYPEDESCRIPTION
AcceptstringContentTypes
NAMETYPEDESCRIPTION
AcceptCharsetstringCharsets
NAMETYPEDESCRIPTION
AccountIdPathstringAccount Identifier
NAMETYPEDESCRIPTION
BalanceAsOfDatestringDateString
NAMETYPEDESCRIPTION
FapiInteractionIdHeaderobjectFapiInteractionId
NAMETYPEDESCRIPTION
LimitQueryintegerRestrict the amount of data you receive. For accounts, the limit can be between 1 and 100. If omitted, the default is 50. For transactions, the limit can be between 1 and 500. If omitted, the default is 100.
NAMETYPEDESCRIPTION
PageKeyQuerystringA secure and flexible pagination capability to retrieve the following set of records. 
NAMETYPEDESCRIPTION
StartDateQuerystring

Use start date to search a past date range. Leave the field blank to search prior day transactions. If you enter a date, you must also specify an end date. The start date cannot be older than 180 days from today. If no date range is provided, the request returns the prior weekday's information. Format: YYYY-MM-DD

DateString

NAMETYPEDESCRIPTION
EndDateQuerystring

Use end date for a date range. Leave the field blank to search prior day transactions. If you enter a date, you must also specify a start date. The end date cannot be today's date. To search for a single day's transactions, make the end date the same as the start date. If no date range is provided, the request returns the prior weekday's information. Format: YYYY-MM-DD

DateString

NAMETYPEDESCRIPTION
UserAgentstringIdentifies the web browser and/or cURL command line used in the HTTP request. We collect this data to see which products use our API data services, helpful for troubleshooting and compatibility. 
NAMETYPEDESCRIPTION
AccountobjectAccountDescriptor
NAMETYPEDESCRIPTION
PaginatedArrayobjectPaginatedArray
AccountsarrayAccount
NAMETYPEDESCRIPTION
AccountWithDetailsoneOfCommercialAccount
NAMETYPEDESCRIPTION
AccountCategorystringThe account type for the transaction. Valid values: COMMERCIAL_ACCOUNT
NAMETYPEDESCRIPTION
accountCategoryrequiredObjectAccountCategory
accountIdObjectIdentifier
accountNumberDisplaystringThe account display number suitable for the interface provider.
accountNumberstringThe bank account number.
NAMETYPEDESCRIPTION
CharsetsstringThe supported character set for the content. UTF-8 contains the accepted Unicode character list for standard English and Latin characters.
NAMETYPEDESCRIPTION
Commercial Account entityallOfAccount
balanceAsOfobjectTimestamp
openingLedgerBalancenumberThe ledger balance at the start of the business day (balance as-of date) for which the activity is being reported.
closingLedgerBalancenumberThe ledger balance at the end of the business day (balance as-of date) for which the activity is being reported. Calculated as: Opening Ledger + Total Credits - Total Debits = Closing Ledger Balance
currentLedgerBalancenumberThe ledger balance at the time during the day the information is being reported. It includes debits and credits that have been processed up to that time. Calculated as: Opening Ledger Balance + the Current Net of Debits and Credits = Current Ledger Balance.
openingAvailableBalancenumberThe available balance at the start of the business day following the day for which activity is reported. Calculated as: Closing Available   Balance Reported + The Net of One-day Float = Opening Available Balance.
currentAvailableBalancenumberThe available balance at a given time during the business day the information is being reported. It includes zero-float debits and credits processed up to that time. Calculated as: Opening Available Balance + the Current Net of Zero Day Float Debits and Credits = Current Available Balance.
closingAvailableBalancenumberThe available balance at the end of the business day for which activity is being reported. Calculated as: Closing Ledger Balance - Float = Closing Available Balance.
commercialBalancesarrayCommercialBalance
NAMETYPEDESCRIPTION
commercialCodeobjectCommercialCode
amountnumberThe treasury management balance amount
memostringMemo field for the treasury management balance amount
NAMETYPEDESCRIPTION
typeobjectTreasuryManagementType
codestringThe code of the Treasury Management defined field
NAMETYPEDESCRIPTION
CommercialTransactionobjectTransaction
commercialCodeobjectCommercialCode
NAMETYPEDESCRIPTION
ContentTypesstringTypes of supported document formats.
NAMETYPEDESCRIPTION
DateStringstringDate format based on ISO 8601 standards. Format: YYYY-MM-DD
NAMETYPEDESCRIPTION
codestringCode indicates the type of error that occurred.
messagestringInformation associated with the code that helps you diagnose the error.
debugMessagestringMessage used to debug the root cause of the error and determine what needs correction in the request. Content can change depending on the request data provided. 
NAMETYPEDESCRIPTION
FapiInteractionIdstringUniversally unique identifier for this interaction, used across all API requests and responses. A valid ID must be 36 characters in length.
NAMETYPEDESCRIPTION
namestringName of attribute
valuestringValue of attribute
NAMETYPEDESCRIPTION
hrefstringURL address to invoke the action on the resource.
NAMETYPEDESCRIPTION
HateoasLinksarrayHateoasLink
NAMETYPEDESCRIPTION
IdentifieroptionalstringValue for a unique identifier
NAMETYPEDESCRIPTION
descriptionstringBrief details about the transaction.
amountnumberThe amount of money for this line item.
NAMETYPEDESCRIPTION
nextPageKeystringDisplays the next page number. This is an opaque identifier and does not need to be numeric or have any specific pattern.
previousPageKeystringDisplay the previous page number. This is an opaque identifier and does not need to be numeric or have any specific pattern.
totalElementsintegerTotal number of elements
NAMETYPEDESCRIPTION
nextobjectHateoasLink
prevobjectHateoasLink
NAMETYPEDESCRIPTION
pageObjectPageMetadata
linksObjectPageMetadataLinks
NAMETYPEDESCRIPTION
TimestampstringDate and time format based on ISO 8601 standard. Format: YYYY-MM-DDThh:mm:ss.nnn
NAMETYPEDESCRIPTION
accountCategorystringThe account type for the transaction. Valid values: COMMERCIAL_ACCOUNT
accountIdstringThe account identifier for the transaction.
transactionIdstringLong term persistent identity of the transaction (unique to account)
postedTimestampstringThe date and time that the transaction was posted to the account. If the transaction is not yet posted, the transactionTimestamp value is returned. Format: YYYY-MM-DDThh:mm:ss.nnn
transactionTimestampstringThe date and time that the transaction was added to the server and backend systems. Format: 'YYYY-MM-DDThh:mm:ss.nnn
descriptionstringThe description of the transaction, such as information about a merchant's name or place of business in a manner that is user friendly and accessible to the customer.
debitCreditMemostringThe posting type of a transaction. Valid values: DEBIT, CREDIT
statusstringThe status of the transaction. Valid values: PENDING, POSTED
amountnumberThe amount of funds in the currency of the account owner.
lineItemarrayLineItem
fiAttributesarrayFiAttribute
referencestringA reference number like a check number or lockbox number.
NAMETYPEDESCRIPTION
TransactionStatusstringThe status of a transaction. Valid values: PENDING, POSTED
NAMETYPEDESCRIPTION
PaginatedArrayobjectPaginatedArray
TransactionsobjectCommercialTransaction
NAMETYPEDESCRIPTION
TreasuryManagementTypestringIdentifies the source of the treasury management account. Valid values: BAI, BTRS, ISO, SWIFT

For errors, a standard HTTP response is returned with a code that provides further details for why the request was unsuccessful. These errors follow a basic format with three parameters: code, message, and debugMessage.

Error reporting
 HTTP
status code
Error codeError message
400401Invalid Input
403403Forbidden, inadequate authorization
409409Conflict with current state of target resource
500500Internal server error
501501Subsystem unavailable
503503Scheduled Maintenance
404601Customer not found
403602Customer not authorized
401603Authentication failed
404701Account not found
400702Invalid start for end date
400703Invalid date range
422704Account type not support
409705Account is Closed
404800Payee not found
400801Payee cannot be modified or deleted
404802Payment not found
400803Due date too soon
400804Payment rejected
400805Payment cannot be modified or cancelled
404806Recurring payment not found
400807Recurring payment rejected
400808Recurring payment cannot be modified or cancelled
404901Source account not found
404902Source account closed
401903Source account not authorized for transfer
404904Destination account not found
404905Destination account closed
401906Destination account not authorized for transfer
400907Invalid amount
409908Duplicate transfer request
503909Transfer not available due to end of day processing
400910Insufficient funds
400911Transaction limit exceeded
404950Transfer not found
5001000Unable to retrieve key from JWKS endpoint
4041100Update ID not found
4041101Reward program ID not found
4041102Categories not found for the reward program
4041103Image ID not found for Transaction
4041104Statement ID not found for account
5011106FDX version not supported or not implemented
4041107Data not found for request parameters
4041108Statements not found for given Account
4041200 Tax form not found
4001201Tax form type not supported
4001202Tax year not supported
4061203Content type not supported
4001204Account ID is required
4091205Tax forms not yet been made available
4051206Method not allowed
4291207Too many requests
4001300Statement is processing

1.0.3

June 2026 | LOW

  • Improved ledger balance descriptions for the CommericalAccounts schema, including details as to how the balance is calculated.
  • Simplified account descriptions in AccountDescriptor schema.
  • Added clarity to balanceAsOf field in the Key notes section and in Errors to assist with troubleshooting.

1.0.2

June 2026 | LOW

Removed 'Z' from timestamp parameters as the zone is automatically set to EDT (Eastern Daylight Time).

April 2026 | LOW

Added the accountNumber field to the AccountDescriptor object to support unmasked account number display for the /list endpoint.

1.0.1

February 2026 | LOW

Modified parameter options for debitCreditMemo, status, and TransactionStatus.

1.0.0

September 2025

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