Look up the status and details about a wire transaction
Wire Inquiry Endpoints
| What can you do | Endpoint |
|---|---|
| Health check | get /wireInquiry/v1/transactions/healthCheck |
| Search wire transfers | post /wireInquiry/v1/transactions/list |
| View transfer details with the transaction ID | get /wireInquiry/v1/transactions/detail/{transactionId} |
Health check
get /wireInquiry/v1/transactions/healthCheck
Request
Check the health of an API service and verify you can successfully connect. A bearer token is required.
Request example
curl "https://partner-api-qv.key.com/wireInquiry/v1/transactions/healthCheck" --header 'Bearer testZcKJDWnwDWmmf9qah6PJvPy8'
Successful response
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| Statusoptional | string | Status of the health check response. |
| Sourceoptional | string | System producing the health response. Genesis of the response could either be just from “gateway” or “roundtrip” from the farthest possible system involved in generating this response. |
| Timestampoptional | string | Timestamp when the health response is being returned by this service. |
| ClientIpoptional | string | IP of the client from which this request for health check is received by the gateway. |
| X-Forwarded-Foroptional | string | Sequence of all the Ips of the systems involved between the client and the gateway. |
Response example (200)
{
"Status": "Ok",
"Source": "Roundtrip",
"Timestamp": "2022-09-15T04:49:03",
"ClientIp": "156.77.111.28",
"X-Forwarded-For": "[156.77.111.28]"
}Search wire transfers
post /wireInquiry/v1/transactions/list
Based on search criteria provided, get a list of wire transfers. The account number and date range are required for every request.
Request
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| accountNumberrequired | string | The bank account number. This field cannot exceed 16 characters. |
| fromDaterequired | string | Start date for the date range. This date can be the current day or within 100 days prior to the current date. To search for a single date, this value will be the same as the toDate. Format: YYYY-MM-DD |
| toDaterequired | string | End date for the date range. This date must be the same or later than the start date (fromDate). To search for a single date, this value will be the same as the fromDate. To search for a range of dates, make sure the date range does not exceed 31 days. Format: YYYY-MM-DD |
| minimumAmountoptional | string | The minimum dollar amount of the transaction. This amount must be less than or equal to the maximum amount. Leave blank or enter zero for no minimum amount. |
| maximumAmountoptional | string | The maximum dollar amount of the transaction. This amount must be greater than or equal to the minimum amount. Leave blank to retrieve all amounts. This amount cannot exceed one billion dollars. |
| requestReference | string | A reference value for the original request that is useful for traceability and reporting. The ID cannot exceed 35 characters. |
| pageNumberoptional | string | The number of the page being viewed. This number must be greater than or equal to 1. |
| pageSizeoptional | string | The total number of pages returned. This number must be greater than or equal to 1 and cannot exceed 1000. |
Request example
{
"accountNumber": "3123456789",
"fromDate": "2024-02-01",
"toDate": "2024-02-01",
"minimumAmount": "100.00",
"maximumAmount": "75020.5",
"requestReference": "USt41001030ii016002",
"pageNumber": "1",
"pageSize": "500"
}Responses
Search results match the criteria
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| transactions | array | WireListTransaction |
| metadata | object | Metadata |
Response example (200)
{
"transactions": [
{
"transactionId": "US99999000999999",
"transactionStatus": "COMPLETED",
"transactionDate": "2024-02-01",
"transactionAmount": 32772.63,
"requestReference": "1122334455",
"sendersReference": "US99999000999999",
"creditor": {
"name": "Global Markets LLC"
},
"creditorAccount": {
"accountNumber": "987654321"
},
"debtor": {
"name": "Paul Wilson"
},
"debtorAccount": {
"accountNumber": "123456789"
}
}],
"metadata": {
"page": {
"pageNumber": 1,
"pageSize": 25,
"totalPages": 3,
"totalRecords": 75,
"lastPage": true
}
}
}View transfer details with the transaction ID
get /wireInquiry/v1/transactions/detail/{transactionId}
Provide the transaction ID to retrieve all available fields for that wire transfer.
Request
| path FIELD | TYPE | DESCRIPTION |
|---|---|---|
| transactionIdrequired | string | The unique ID number associated with the original payment request. |
Request example
curl --location: 'https://partner-api.key.com/wireInquiry/v1/transactions/detail/US99999000999999' --header 'EPPId: testwUhSQADUD4DwYyZz2hZkwLqsoFGK' --header 'Accept: application/json' --header 'Bearer testZcKJDWnwDWmmf9qah6PJvPy8'
Responses
A Wire transaction matches the provided transactionId
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| transactionId | string | The unique ID number associated with the original payment request. |
| transactionDate | string | Date the transfer occurred. Format: YYYY-MM-DD |
| transactionAmount | number | The dollar amount of the transaction. |
| requestReference | string | A reference value for the original request that is useful for traceability and reporting. The ID cannot exceed 35 characters. |
| sendersReference | string | A reference value provided by the sender. For outbound payments, this value is the same as the transaction ID. The ID cannot exceed 35 characters. |
| creditor | Object | PartyList |
| creditorAccount | Object | AccountList |
| debtor | Object | PartyList |
| debtorAccount | Object | AccountList |
| originator | Object | PartyList |
| originatorAccount | Object | AccountList |
| beneficiary | Object | PartyList |
| beneficiaryAccount | Object | AccountList |
| ultimateCreditor | Object | PartyList |
| ultimateCreditorAccount | Object | AccountList |
| ultimateDebtor | Object | PartyList |
| ultimateDebtorAccount | Object | AccountList |
| remittanceInformation | string | Information 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. Message length cannot exceed 256 characters. |
| bankToBankInstructions | string | Messages or instructions shared from one bank to another. Data retrieved if part of the original wire transfer. |
Response example (200)
{
"transactionId": "US99999000999999",
"transactionStatus": "COMPLETED",
"transactionDate": "2024-02-01",
"transactionAmount": 32772.63,
"requestReference": "1122334455",
"sendersReference": "US99999000999999",
"creditor": {
"name": "Global Markets LLC"
},
"creditorAccount": {
"accountNumber": "987654321"
},
"debtor": {
"name": "Paul Wilson"
},
"debtorAccount": {
"accountNumber": "123456789"
},
"remittanceInformation": "Payment 02\/01\/2024_Invoice - 123456789 Cust"
}No Wire transaction was found with the provided transactionId
Response example (404)
{
"messages": {
"code": "Wire-Detail-404-no-records",
"message": "Record Not Found",
"X-Forwarded-For": "[156.77.111.28]"
}
}Schemas
WireListTransaction
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| transactionId | string | The unique ID number associated with the original payment request |
| transactionDate | string | Date the transfer occurred. Format: YYYY-MM-DD |
| transactionAmount | number | The dollar amount of the transaction. |
| requestReference | string | A reference value for the original request that is useful for traceability and reporting. The ID cannot exceed 35 characters. |
| sendersReference | string | A reference value provided by the sender. For outbound payments, this value is the same as the transaction ID. The ID cannot exceed 35 characters. |
| creditor | Object | PartyList |
| creditorAccount | Object | AccountList |
| debtor | Object | PartyList |
| debtorAccount | Object | AccountList |
AccountList
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| accountNumber | string | Account number of the party. |
| virtualAccountNumber | string | Account number for the virtual account (VAM). |
PartyList
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| name | string | Contains the customer identification number and the company name. |
Message
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| code | string | Static code assigned by the network or payment system. |
| message | string | A human-readable message associated with the code. |
Page
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| pageNumber | integer | The number of the page being viewed. |
| pageSize | integer | The number of records per page. |
| totalPages | integer | The total number of pages available. |
| totalRecords | integer | The total number of the transactions (records) available in the result set. |
| lastPage | boolean | Indicates the last page of the total pages. |
responseHeader
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| statusrequired | string | Indicates whether the result was successfully retrieved. |
| statusDescriptionrequired | string | Description of the status |
| retreivedRows | string | Total number of transactions retrieved |
| totalRows | string | Total number of transactions matching the requested criteria |
Errors
For more information about general errors, see Error handling.
Changelog
September 2025
API Version: 1.3.2 | Impact: LOW
- Added
Api-Urlto error responses for the endpoint - /wireInquiry/v1/transactions/details. This field shows which URL path triggered the response.
June 2025
API Version: 1.3.1 | Impact: LOW
- Added a new field,
bankToBankInstructions, to theWireDetailTransactionobject. With detail inquiry requests, if there is a message between banks, it is now returned as part of the response. - Clarified and corrected the descriptions for
transactionStatusandremittanceInformation.
April 2025
API Version: 1.3.0 | Impact: HIGH
- To inquire about a wire transfer, use the two new endpoints to search for a list or by transaction ID. Added the following endpoints:
Added wireInquiry/v1/transactions/listAdded /wireInquiry/v1/transactions/detail/{transactionId}.
- Endpoint
/wireInquiry/v1/transactions/detailsand related schemas hidden from Developer Portal. This is still live in Production; however, we encourage you to migrate to the new and more dynamic inquiry paths.
May 2024
API Version: 1.2.1 | Impact: MID
- Added the
requestReferenceparameter. In the request, enter a short note, keyword, or descriptor that you can use in the future to trace or verify the transaction. TherequestReferencevalue returns in theWireInquiryResultobject. - Add
remittanceInfoto theWireInquiryResultresponse 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
WireInquiryResultresponse body. Parameters added include:beneficiaryName,beneficiaryAccountNumber,beneficiaryCreditorPostalAddressLine1,beneficiaryCreditorPostalAddressLine2. X-CorrelationIdhas 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.
March 2024
API Version: 1.1.5 | Impact: LOW
- Updated pattern format for the
channelCodeparameter. This field is no longer case sensitive. You can input a mix of uppercase and/or lowercase letters and still generate a successful return.
December 2023
API Version: 1.1.4 | Impact: HIGH
- Added
channelCode(optional) parameter toWireInquiryRequestandWireInquiryResultobjects. - Add
transactionCreateDateparameter to theWireInquiryResultobject. - Deprecated the
mdmIdfield. Backend services and processes have been enhanced to authenticate client API calls without the need for an MDM ID.
September 2023
API Version: 1.1.3 | Impact: LOW
- The
mdmIddescription has been updated to communicate that this field will soon deprecate in an upcoming release. - Added VAM parameters
creditVirtualAccountanddebitVirtualAccountto the response object,WireInquiryResult. You can now reconcile funds based on virtual account numbers.
July 2023
API Version: 1.1.1 | Impact: MID
- Added the
customDataparameter. You can append up to 500 characters of free-form text that stays with the transaction through its lifecycle. - Removed
properties. The addition of thecustomDataparameter rendered thepropertiesobject redundant. - Added the
paySubTypeparameter 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.
May 2023
API Version: 1.1.0 | Impact: MID
- Changed parameter
fromEnteredDatetofromDate. - Changed
toEnteredDatetotoDate. - Modified the format for the date parameters to match with KeyBank API standard date format of YYYY-MM-DD.
- The optional
sourceparameter has been deprecated and removed.
December 2022
API Version: 1.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