Search and query real-time payments transactions
RTP INQUIRY ENDPOINTS
| What can you do | Endpoint |
|---|---|
| Health check | get /rtp/v1/healthCheck |
| Search real time payment transactions | post /rtp/v1/transactions/list |
| Get a real time payment transaction by its transaction ID | get /rtp/v1/transactions/detail/{transactionId} |
Key notes
Before you begin
All KeyBank APIs require certificates, user credentials, and certain permissions. Details about what is required to become an API partner with KeyBank are in the Get started section to learn more.
Requirements
Before using any endpoint, make sure you understand the required parameters and conditions for a valid request.
Account number
When retrieving a list of wire transactions, you need a valid (16-character) accountNumber. This account number pulls all related transactions within the specified date range of the request.
Date range
Use the fromDate and toDate in the request to specify the date range for settled transactions for the account number provided.
The start date (fromDate) must be within 100 days of the current day. This date has to occur before the end date (toDate). The end date cannot be a future date. Date formats are in YYYY-MM-DD.
Transaction ID
If you are looking for details about a specific transaction, you must specify the transactionId in the detail request. The transactionId is the unique ID number associated with the original payment request. The maximum amount of characters for a transactionId is 100, but typically they are around 16 characters in length.
How do I get the transaction ID?
The transactionId is returned in the response for the list API. Use this ID returned in your detail request to return additional information about an RTP transaction.
Pennies to 1 billion
Retrieve detailed insights into transactions of any size—from high-value wires up to $1B to penny transactions traced down to the cent. Refer to Amount0To1B for the full range of supported values and input requirements.
Health check
get /accounts/transactions/v1/healthCheck
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/rtp/v1/healthCheck" --header 'Bearer testZcKJDWnwDWmmf9qah6PJvPy8'
Responses
Successful response
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| Status | string | Status of the health check response. |
| Source | string | Origin of the system response can be 'Gateway' or 'Roundtrip'. Roundtrip returns a response from the farthest system involved. |
| Timestamp | string | Date (YYYY-MM-DD) and time (HH:MM:SS) of response from the API service. |
| ClientIp | string | Client IP address the gateway receives from the request. |
| X-Forwarded-For | string | Sequence of IP addresses for systems between the client and the gateway. |
Response example (200)
{
"Status": "Ok",
"Source": "Roundtrip",
"Timestamp": "2022-09-15T04:49:03",
"ClientIp": "192.0.2.1",
"X-Forwarded-For": "[192.0.2.1]"
}Search real time payment transactions
post /rtp/v1/transactions/list
Based on search criteria provided, get a list of RTP transactions. The account number and date range are required for every request.
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 | Amount0To1B |
| maximumAmountoptional | string | Amount0To1B |
| requestReference | string | A reference value for the original request that is useful for traceability and reporting. The ID cannot exceed 32 characters. |
| pageNumberoptional | interger | The number of the page being viewed. This number must be greater than or equal to 1. |
| pageSizeoptional | integer | 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.52",
"requestReference": "USRSIM-0.0001",
"pageNumber": "1",
"pageSize": "500"
}Responses
Search results match the criteria
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| transactions | array | RTPListTransaction |
| metadata | object | PageMetadata |
Response example (200)
{
"transactions": [
{
"transactionId": "US99999000999999",
"transactionStatus": "COMPLETED",
"transactionStatusTimestamp": "2026-01-12T12:18:01",
"transactionDate": "2026-01-12",
"transactionAmount": 32772.63,
"requestReference": "1122334455",
"sendersReference": "US99999000999999",
"creditor": {
"name": "Global Markets LLC"
},
"creditorAccount": {
"accountNumber": "987654321"
},
"debtor": {
"name": "Paul Wilson"
},
"debtorAccount": {
"accountNumber": "123456789"
},
"originator": {
"name": "VAM TEST BANK"
},
"beneficiary": {
"name": "MARKET CAPITAL"
}
}
],
"metadata": {
"page": {
"pageNumber": 1,
"pageSize": 25,
"totalPages": 3,
"totalRecords": 75,
"lastPage": false
}
}
}Bad input parameter
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| ErrorMessage | string | A human-readable message that describes the type or source of the error. |
| TransactionId | string | A unique transaction ID returned with the response, useful for traceability. |
| X-CorrelationId | string | A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. |
| TransactionTime | string | Date and time the error occurred. |
| Api-Url | string | The API URL path of the call that generated the response. |
| ServiceError | oneOf | ServiceErrorData ConnectError |
Response example (400)
{
"ErrorMessage": "Error received from backend service",
"TransactionId": "84293235-5d2c-42ba-afc3-a5d4afc5f88e27097",
"X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
"TransactionTime": "2021-06-11T16:31:34.041Z",
"Api-Url": "https://partner-api-qv.key.com/rtp/v1/transactions/list",
"ServiceError": {
"metadata": {
"messages": [
{
"code": "RTP-List-400-toDate",
"message": "toDate format must be YYYY-MM-DD"
}
]
}
}
}Unauthorized request
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| ErrorMessage | string | A human-readable message that describes the type or source of the error. |
| TransactionId | string | A unique transaction ID returned with the response, useful for traceability. |
| X-CorrelationId | string | A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. |
| TransactionTime | string | Date and time the error occurred. |
| Api-Url | string | The API URL path of the call that generated the response. |
| ServiceError | oneOf | ServiceErrorData ConnectError |
Response example (401)
{
"ErrorMessage": "Received request is unauthorized, please provide valid credentials",
"TransactionId": "0635f201-8fbb-418f-b93a-138d5103e2b91348",
"X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
"TransactionTime": "2021-06-11T16:31:34.041Z",
"Api-Url": "https://partner-api-qv.key.com/rtp/v1/transactions/list"
}Entitlements validation failed
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| ErrorMessage | string | A human-readable message that describes the type or source of the error. |
| TransactionId | string | A unique transaction ID returned with the response, useful for traceability. |
| X-CorrelationId | string | A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. |
| TransactionTime | string | Date and time the error occurred. |
| Api-Url | string | The API URL path of the call that generated the response. |
| ServiceError | oneOf | ServiceErrorData ConnectError |
Response example (403)
{
"ErrorMessage": "Error received from backend service",
"TransactionId": "84293235-5d2c-42ba-afc3-a5d4afc5f88e27097",
"X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
"TransactionTime": "2021-06-11T16:31:34.041Z",
"Api-Url": "https://partner-api-qv.key.com/rtp/v1/transactions/list",
"ServiceError": {
"metadata": {
"messages": [
{
"code": "403-Forbidden",
"message": "Entitlements Validation Failed"
}
]
}
}
}Request timeout error
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| ErrorMessage | string | A human-readable message that describes the type or source of the error. |
| TransactionId | string | A unique transaction ID returned with the response, useful for traceability. |
| X-CorrelationId | string | A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. |
| TransactionTime | string | Date and time the error occurred. |
| Api-Url | string | The API URL path of the call that generated the response. |
| ServiceError | oneOf | ServiceErrorData ConnectError |
Response example (408)
{
"ErrorMessage": "Error received from backend service",
"TransactionId": "84293235-5d2c-42ba-afc3-a5d4afc5f88e27097",
"X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
"TransactionTime": "2021-06-11T16:31:34.041Z",
"Api-Url": "https://partner-api-qv.key.com/rtp/v1/transactions/list",
"ServiceError": {
"metadata": {
"messages": [
{
"code": "RTP-List-408-timeout",
"message": "The request exceeded the timeout limit. Please adjust your request parameters and try again."
}
]
}
}
}Unexpected server error
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| ErrorMessage | string | A human-readable message that describes the type or source of the error. |
| TransactionId | string | A unique transaction ID returned with the response, useful for traceability. |
| X-CorrelationId | string | A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. |
| TransactionTime | string | Date and time the error occurred. |
| Api-Url | string | The API URL path of the call that generated the response. |
| ServiceError | oneOf | ServiceErrorData ConnectError |
Response example (500)
{
"ErrorMessage": "Error received from backend",
"TransactionId": "84293235-5d2c-42ba-afc3-a5d4afc5f88e27097",
"TransactionTime": "2021-06-11T16:31:34.041Z",
"X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
"Api-Url": "https://partner-api-qv.key.com/rtp/v1/transactions/list",
"ServiceError": {
"metadata": {
"messages": [
{
"code": "500-InternalServerError",
"message": "An unexpected error occurred. Please try again later or contact support if the problem persists."
}
]
}
}
}View the details of a RTP transaction by its ID
get /rtp/v1/transactions/detail/{transactionId}
Provide the transaction ID to retrieve all available fields for that single real time payment transaction.
Request
| path FIELD | TYPE | DESCRIPTION |
|---|---|---|
| transactionIdrequired | string | The unique ID number associated with the original payment request. |
Request example
curl --location: '{host}/rtp/v1/transactions/detail/US99999000999999'
--header 'Accept: application/json'
--header 'X-CorrelationId: 1234567890abcdef'
--header 'Authorization: Bearer testZcKJDWnwDWmmf9qah6PJvPy8'
Responses
A RTP transaction matches the provided transactionId
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| transactionId | string | The unique ID number associated with the original payment request. |
| transactionStatus | string | The status of the RTP payment. Valid values: CANCELLED, COMPLETED, FAILED, IN PROCESS, IN REVIEW, RETURNED |
| transactionStatusTimestamp | string | Timestamp for the most recent status change on the transaction. |
| transactionDate | string | Date the transfer occurred. Format: YYYY-MM-DD |
| transactionAmount | number | The dollar amount of the transaction. |
| transactionDirection | string | RTP Transaction Direction |
| requestReference | string | A reference value for the original request that is useful for traceability and reporting. The ID cannot exceed 32 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. |
| clearingReferenceNumber | string | Messages or instructions shared from one bank to another. Data retrieved if part of the original wire transfer. |
| creditor | Object | PartyDetail |
| creditorAccount | Object | AccountExtended |
| debtor | Object | PartyDetail |
| debtorAccount | Object | AccountExtended |
| originator | Object | OriginatorPartyDetail |
| originatorAccount | Object | Account |
| beneficiary | Object | BeneficiaryPartyDetail |
| beneficiaryAccount | Object | Account |
| ultimateCreditor | Object | PartyDetail |
| ultimateCreditorAccount | Object | Account |
| ultimateDebtor | Object | PartyDetail |
| ultimateDebtorAccount | Object | Account |
| 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. |
| customData | string | A client-defined free-form text field (up to 500 alphanumeric characters) that remains associated with the transaction throughout its lifecycle in the KeyBank network. |
| intermediaryBank1 | Object | IntermediaryBank |
| intermediaryBank2 | Object | IntermediaryBank |
| intermediaryBank3 | Object | IntermediaryBank |
| beneficiaryBank | Object | Bank |
| originatorBank | Object | Bank |
| failureReasons | Object | FailureReasons |
Response example (200)
{
"transactionId": "US99999000999999",
"transactionStatus": "COMPLETED",
"transactionStatusTimestamp": "2026-01-12T12:18:01",
"transactionDate": "2026-01-12",
"transactionAmount": 32772.63,
"transactionDirection": "INBOUND",
"requestReference": "1122334455",
"sendersReference": "US99999000999999",
"clearingReferenceNumber": "20209999MMZZZZZD099999",
"remittanceInformation": "Payment 01/12/2026_Invoice 123456789 Cust",
"bankToBankInstructions": "Final Payment",
"customData": "USER ID 1",
"creditor": {
"name": "Global Markets LLC",
"postalAddress": {
"type": "Office",
"department": "Financial",
"subDepartment": "Sub financial",
"street": "Columbus pike",
"buildingNumber": "123",
"postalCode": "43240",
"city": "Columbus",
"region": "OH",
"countryCode": "US",
"addressLine": "123 SIM ST,STE W123 |SIMCITY OH 12345|I/US"
}
},
"creditorAccount": {
"accountNumber": "987654321",
"virtualAccountNumber": "95312346654532"
},
"debtor": {
"name": "Paul Wilson",
"postalAddress": {
"type": "Office",
"department": "Financial",
"subDepartment": "Sub financial",
"street": "Columbus pike",
"buildingNumber": "123",
"postalCode": "43240",
"city": "Columbus",
"region": "OH",
"countryCode": "US",
"addressLine": "123 SIM ST,STE W123 |SIMCITY OH 12345|I/US"
}
},
"debtorAccount": {
"accountNumber": "123456789",
"virtualAccountNumber": "95312346654532"
},
"originator": {
"name": "VAM TEST BANK NA",
"originalName": "Raul Wilson",
"postalAddress": {
"type": "Office",
"department": "Financial",
"subDepartment": "Sub financial",
"street": "Columbus pike",
"buildingNumber": "123",
"postalCode": "43240",
"city": "Columbus",
"region": "OH",
"countryCode": "US",
"addressLine": "123 SIM ST,STE W123 |SIMCITY OH 12345|I/US"
}
},
"beneficiary": {
"name": "SIM IV INC",
"ultimateName": "Saul Wilson",
"postalAddress": {
"type": "Office",
"department": "Mortgage",
"subDepartment": "Housing",
"street": "123 BNFW1 ST",
"buildingNumber": "123",
"postalCode": "12334",
"city": "BNFCITY",
"region": "OH",
"countryCode": "US",
"addressLine": "123 BNFW1 SIM ST,BNFW1 123 |BNFCITY OH 12334|I/US"
}
},
"beneficiaryAccount": {
"accountNumber": "9350371100"
},
"originatorAccount": {
"accountNumber": "9350371111"
},
"ultimateCreditor": {
"name": "ULTCR Party1",
"postalAddress": {
"type": "Office",
"department": "dept",
"subDepartment": "subDept",
"street": "Oak Point Rd",
"buildingNumber": "100",
"postalCode": "12335",
"city": "Amherst",
"region": "NY",
"countryCode": "US",
"addressLine": "dept subDept 100 Oak Point Rd Amherst NY pstC44001d"
}
},
"ultimateCreditorAccount": {
"accountNumber": "1234321"
},
"ultimateDebtor": {
"name": "ULTDB Party",
"postalAddress": {
"type": "Office",
"department": "dept",
"subDepartment": "subDept",
"street": "Oak Point Rd",
"buildingNumber": "100",
"postalCode": "12335",
"city": "Amherst",
"region": "NY",
"countryCode": "US",
"addressLine": "dept subDept 100 Oak Point Rd Amherst NY pstC44001d"
}
},
"ultimateDebtorAccount": {
"accountNumber": "567651"
},
"intermediaryBank1": {
"name": "SIMW1 BANK",
"aba": "012345678",
"bic": "SIMWUS01",
"addressLine": "0123 INT2W1 ST|NEW YORK 01234 US"
},
"intermediaryBank2": {
"name": "SIMWINT2 BANK",
"aba": "112345555",
"bic": "SIMWUS22",
"addressLine": "0123 INT2W1 ST|NEW YORK 01235 US"
},
"intermediaryBank3": {
"name": "SIMINTW3 CANADA BANK",
"aba": "112346666",
"bic": "SIMINT3W1",
"addressLine": "0123 INT2W1 ST|NEW YORK 01238 US"
},
"beneficiaryBank": {
"aba": "021007821",
"bic": "SIMCRKEYBUS21"
},
"originatorBank": {
"aba": "011007822",
"bic": "SIMDBKEYBUS22"
},
"failureReasons": {
"initiatingFailureReasonCode": "KEY-9998",
"initiatingFailureReasonTitle": "Unauthorized for account",
"networkFailureReasonCode": "123",
"networkFailureReasonTitle": "Network Failure"
}
}Unauthorized request
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| ErrorMessage | string | A human-readable message that describes the type or source of the error. |
| TransactionId | string | A unique transaction ID returned with the response, useful for traceability. |
| X-CorrelationId | string | A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. |
| TransactionTime | string | Date and time the error occurred. |
| Api-Url | string | The API URL path of the call that generated the response. |
| ServiceError | oneOf | ServiceErrorData ConnectError |
Response example (401)
{
"ErrorMessage": "Received request is unauthorized, please provide valid credentials",
"TransactionId": "0635f201-8fbb-418f-b93a-138d5103e2b91348",
"X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
"TransactionTime": "2021-06-11T16:31:34.041Z",
"Api-Url": "https://partner-api-qv.key.com/rtp/v1/transactions/detail/US99999000999999"
}No RTP transaction was found with the provided transactionId
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| ErrorMessage | string | A human-readable message that describes the type or source of the error. |
| TransactionId | string | A unique transaction ID returned with the response, useful for traceability. |
| X-CorrelationId | string | A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. |
| TransactionTime | string | Date and time the error occurred. |
| Api-Url | string | The API URL path of the call that generated the response. |
| ServiceError | oneOf | ServiceErrorData ConnectError |
Response example (404)
{
"ErrorMessage": "Error received from backend service",
"TransactionId": "84293235-5d2c-42ba-afc3-a5d4afc5f88e27097",
"X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
"TransactionTime": "2021-06-11T16:31:34.041Z",
"Api-Url": "https://partner-api-qv.key.com/rtp/v1/transactions/detail/US99999000999999",
"ServiceError": {
"metadata": {
"messages": [
{
"code": "RTP-Detail-404-no-records",
"message": "Record Not Found"
}
]
}
}
}Unexpected server error
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| ErrorMessage | string | A human-readable message that describes the type or source of the error. |
| TransactionId | string | A unique transaction ID returned with the response, useful for traceability. |
| X-CorrelationId | string | A unique identifier generated for each transaction that remains with the transaction through the chain of API operations. |
| TransactionTime | string | Date and time the error occurred. |
| Api-Url | string | The API URL path of the call that generated the response. |
| ServiceError | oneOf | ServiceErrorData ConnectError |
Response example (500)
{
"ErrorMessage": "Error received from backend",
"TransactionId": "84293235-5d2c-42ba-afc3-a5d4afc5f88e27097",
"TransactionTime": "2021-06-11T16:31:34.041Z",
"X-CorrelationId": "929618f2-6163-bf73-51b0-6c54a8533c74",
"Api-Url": "https://partner-api-qv.key.com/rtp/v1/transactions/detail/US99999000999999",
"ServiceError": {
"metadata": {
"messages": [
{
"code": "500-InternalServerError",
"message": "An unexpected error occurred. Please try again later or contact support if the problem persists."
}
]
}
}
}Schemas
RtpDetailTransaction
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| transactionId | string | The unique ID number associated with the original payment request. |
| transactionStatus | string | The status of the RTP payment. Valid values: CANCELLED, COMPLETED, FAILED, IN PROCESS, IN REVIEW, RETURNED |
| transactionStatusTimestamp | string | Timestamp for the most recent status change on the transaction. |
| transactionDate | string | Date the transfer occurred. Format: YYYY-MM-DD |
| transactionAmount | number | The dollar amount of the transaction. |
| transactionDirection | string | RTP Transaction Direction |
| requestReference | string | A reference value for the original request that is useful for traceability and reporting. The ID cannot exceed 32 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. |
| clearingReferenceNumber | string | Messages or instructions shared from one bank to another. Data retrieved if part of the original wire transfer. |
| creditor | Object | PartyDetail |
| creditorAccount | Object | AccountExtended |
| debtor | Object | PartyDetail |
| debtorAccount | Object | AccountExtended |
| originator | Object | OriginatorPartyDetail |
| originatorAccount | Object | Account |
| beneficiary | Object | BeneficiaryPartyDetail |
| beneficiaryAccount | Object | Account |
| ultimateCreditor | Object | PartyDetail |
| ultimateCreditorAccount | Object | Account |
| ultimateDebtor | Object | PartyDetail |
| ultimateDebtorAccount | Object | Account |
| 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. |
| customData | string | A client-defined free-form text field (up to 500 alphanumeric characters) that remains associated with the transaction throughout its lifecycle in the KeyBank network. |
| intermediaryBank1 | Object | IntermediaryBank |
| intermediaryBank2 | Object | IntermediaryBank |
| intermediaryBank3 | Object | IntermediaryBank |
| beneficiaryBank | Object | Bank |
| originatorBank | Object | Bank |
| failureReasons | Object | FailureReasons |
RTPListTransaction
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| transactionId | string | The unique ID number associated with the original payment request |
| transactionStatus | string | The status of the RTP transfer. Valid values: CANCELLED, COMPLETED, FAILED, IN PROCESS, IN REVIEW, RETURNED |
| transactionStatusTimestamp | string | Timestamp for the most recent status change on the transaction. |
| 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 32 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 | PartySummary |
| creditorAccount | Object | Account |
| debtor | Object | PartySummary |
| debtorAccount | Object | Account |
| originator | Object | PartySummary |
| beneficiary | Object | PartySummary |
Amount0To1B
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| AmountAsNumber | number | Amount between 0 and 1 billion. Decimals are optional. If present, must contain 1 or 2 digits (e.g., 2433.0, 3939.2, 100.25). |
| AmountAsString | string | String amount may include commas. If commas are used, they must be valid thousands separators (e.g., 1,234,567). Must be 0..1,000,000,000 inclusive. Decimals are optional; if present, must be 1 or 2 digits (e.g., 2433.0, 3939.2, 100.25). Note: 1,000,000,000 may only be whole dollars or with a decimal value of .0/.00. |
Account
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| accountNumber | string | Account number of the party. |
AccountExtended
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| Account | object | Account |
| virtualAccountNumber | string | Account number for the viral account (VAM). |
PartySummary
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| namerequired | string | Contains the customer name |
PartyDetail
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| PartySummary | object | PartySummary |
| postalAddress | object | PostalAddress |
BeneficiaryPartyDetail
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| PartyDetail | object | PartyDetail |
| ultimateName | string | Contains the ultimate beneficiary name. |
OriginatorPartyDetail
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| PartyDetail | object | PartyDetail |
| originalName | string | Contains the original origination customer name |
PostalAddress
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| type | string | Address type for the party that specifies if it is a home, business, or mailing address. Valid values: ADDR, PBOX, HOME, BIZZ, MLTO, DLVY |
| department | string | Department of the party for the mailing address, if applicable. This field cannot exceed 70 characters. |
| subDepartment | string | Sub-department of the party, if applicable. This field cannot exceed 70 characters. |
| street | string | Street address for the party. This field cannot exceed 70 characters. |
| buildingNumber | string | Building number. This field cannot exceed 16 characters. |
| postalCode | string | The postal code or zip code for the address. This field cannot exceed 16 characters. |
| city | string | Name of the town. This field cannot exceed 35 characters. |
| region | string | Name of subdivision of a country like a state, region, or county. This field cannot exceed 35 characters. |
| countryCode | string | Two-character country abbreviation. |
| addressLine | string | An unstructured address line. |
IntermediaryBank
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| Bank | object | Bank |
| name | string | Name. |
| addressLine | string | Address line. |
Bank
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| aba | string | An ABA routing number is a nine-digit code used in the United States to identify specific financial institutions |
| bic | string | Business Identifier Code (BIC) is an 8 to 11-character alphanumeric code that uniquely identifies a specific bank or financial institution worldwide |
FailureReasons
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| initiatingFailureReasonCode | string | Reason code for initiating failure |
| initiatingFailureReasonTitle | string | Reason description for initiating failure |
| networkFailureReasonCode | string | Reason code for network failure |
| networkFailureReasonTitle | string | Reason description for network failure |
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 transactions (records) available in the result set. |
| lastPage | boolean | Indicates the last page of the total pages. |
PageMetadata
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| page | Object | Page |
ServiceErrorData
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| metadata | Object | ErrorMetadata |
ConnectError
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| ConnectError | string | API connectivity error information, if available. |
ErrorMetadata
| NAME | TYPE | DESCRIPTION |
|---|---|---|
| messagesoptional | array | Message |
Errors
For more information about general error, see Error Handling. If you get stuck, check out our Troubleshooting page.
Changelog
1.2.3
June 2026 | MID Impact
- Added new parameters like:
Amount0ToBto capture a wider range of amount queries.PostalAddressto capture more formal address data that aligns with ISO standards.
- Added
intermediaryBank,BeneficiaryPartyDetail, andOriginatorPartyDetailfields to capture additional bank identification details for participating parties. - Party information is more detailed with new objects like
PartySummary,PartyDetail, andAccountExtended(for virtal account management). - Improved error messaging, expanding on particular issues with
FailureReasonsobject.
1.2.2
May 2026 | MID Impact
- New parameters added to support international wire transfer queries like the
PostalAddressschema. - Broadened accepted amount values to include commas as thousand separators, decimals than cannot be more than two decimal places, and allowed amounts between 1 and 1,000,000,000.
- Added
intermediaryBank,beneficiary, andoriginatorfields to capture additional bank identification details for participating parties. - Party information is more robust with
PartySummaryandPartyDetailobjects.
1.2.2
March 2026 | MID Impact
Added transactionStatusTimestamp to both /list and /details response payloads to indicate the date and time the transaction status last changed.
1.2.1
February 2026 | MID impact
Added customData to the RtpDetailTransaction object. The custom data defined during payment initiation can now be recalled in this field for the detail endpoint.
1.2.0
April 2025 | MID impact
- Added the following parameters to the
RtpListTransactionobject:originatororiginatorAccountbeneficiarybeneficiaryAccount
- In the
AccountListobject, added thevirtualAccountNumberfield to return VAM account information, if applicable.
1.1.0
February 2025 | LOW impact
Added requestReference to the /list endpoint. You can now recall a RTP transaction by the request reference ID.
1.0.0
November 2024
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