curl --request GET \
--url https://api.next.orenda.finance/audit-trail/search \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.next.orenda.finance/audit-trail/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.next.orenda.finance/audit-trail/search"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"success": true,
"result": {
"total": 1,
"data": [
{
"customerId": "c9f8e7d6-1111-4b2c-8d3e-444455556666",
"accountId": "e4f5a6b7-3333-4d4e-8f5a-bbbbccccdddd",
"requestMethod": "POST",
"requestURL": "/v1/customers/c9f8e7d6/accounts/e4f5a6b7/payments",
"responseStatusCode": 200,
"providerRequestId": "5723116",
"identity": "officer@orenda.example",
"createdDateTime": "2026-06-10T08:45:12.000Z"
}
]
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>"
}
}Search the audit trail
Search audit-trail records of API activity. Required claim: audit.trail.view.
Records capture request/response metadata (method, URL, status code) keyed by customer, account, transaction, and payment. accountId accepts provider account IDs, which are resolved to internal account IDs before searching. If the underlying index is empty the endpoint returns an empty result set rather than an error.
All filters accept comma-separated values for multi-select.
curl --request GET \
--url https://api.next.orenda.finance/audit-trail/search \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.next.orenda.finance/audit-trail/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.next.orenda.finance/audit-trail/search"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"success": true,
"result": {
"total": 1,
"data": [
{
"customerId": "c9f8e7d6-1111-4b2c-8d3e-444455556666",
"accountId": "e4f5a6b7-3333-4d4e-8f5a-bbbbccccdddd",
"requestMethod": "POST",
"requestURL": "/v1/customers/c9f8e7d6/accounts/e4f5a6b7/payments",
"responseStatusCode": 200,
"providerRequestId": "5723116",
"identity": "officer@orenda.example",
"createdDateTime": "2026-06-10T08:45:12.000Z"
}
]
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
The program to scope results to. Required unless allPrograms=true is passed. Multi-program operators are bounded to their entitled programs.
Filter by customer ID. Comma-separated for multi-select.
Free-text search across indexed fields.
1-based page number. Defaults to 1.
x >= 1Maximum number of items per page.
x >= 1Lower bound (inclusive) on record date, ISO 8601.
Upper bound (inclusive) on record date, ISO 8601.
Filter by account ID (provider account IDs are accepted and resolved internally). Comma-separated for multi-select.
Filter by transaction ID. Comma-separated for multi-select.
Filter by payment ID. Comma-separated for multi-select.
Filter by provider request ID. Comma-separated for multi-select.
Filter by HTTP request method (e.g. GET, POST). Comma-separated for multi-select.
Filter by request URL. Comma-separated for multi-select.
Filter by HTTP response status code (e.g. 200, 403). Comma-separated for multi-select.