Pass columns= to project response fields, then filter and sort the transactions data set.
Pass a columns= list to choose which fields appear in each row, then use filters and sorting to narrow the data set.
Description
GET /reporting/transactions no longer returns a full transaction object by default. Callers must pass the columns query parameter to project the fields they need. Filters, sort, and pagination still control which rows come back; columns controls which fields each row includes.
Column selection (columns) — required for most integrations
columns) — required for most integrationsUse a comma-separated list of camelCase keys:
columns=name,paymentRoutingNumber,returnCode,authorizedAt
| Behavior | Detail |
|---|---|
Omitted columns | Response uses the default grid set only (see below), plus always-on chrome fields. Sparse fields such as routing number, return details, card auth/capture timestamps, holds, and NOCs are not included. |
Explicit columns | Only the requested keys (plus always-on fields and automatic companions) are selected and returned. Nested detail objects omit unrequested keys instead of returning null. |
| Unknown key | Request fails with 400 (invalid columns). |
| Companions | Some keys pull related IDs automatically (e.g. batchNumericId also selects batchUuid; accountNumber also selects panFirstSix). |
Always-on (included on every list response): uuid, numericId, companyUuid, companyName, amount, type, method, status, createdAt, isSameDay, sequenceUuid, historicalId, reversedAt, reversalUuid, settlementProcessedAt, lateReturnedAt, saleAt.
Default when columns is omitted: numericId, companyName, uuid, amount, type, method, status, name, accountNumber, effectiveDate, createdAt, batchNumericId, settlementNumericId (plus always-on).
Allowlisted columns keys
columns keys| Key | Notes |
|---|---|
uuid, numericId, companyUuid, companyName | Always-on |
amount, type, method, status, createdAt | Always-on |
isSameDay, sequenceUuid, historicalId | Always-on |
reversedAt, reversalUuid | Always-on |
settlementProcessedAt, lateReturnedAt, saleAt | Always-on |
effectiveDate, name, accountNumber | Default grid |
paymentAccountType, paymentRoutingNumber | Payment details (request explicitly for routing/account type) |
batchNumericId, batchUuid, batchedAt, traceNumber | Batch |
settlementNumericId, settlementUuid, expectedToSettleAt | Settlement |
standardEntryClassCode, externalUniqueId, isDuplicate, rtpTransactionId | Core optional |
returnCode, returnReason, returnedAt | Returns satellite |
lateReturnSettlementNumericId, lateReturnSettlementUuid, lateReturnSettlementProcessedAt | Late-return settlement |
changeCode, changeReason, changedAt, nocReceivedAt | NOC satellite |
holdCode, holdReason, releasedAt | Holds satellite |
rejectReason, rejectedAt, restoredAt, voidedAt, acknowledgedAt | Exceptions satellite |
cardNumber, panFirstSix, panLastFour, authorizedAt, authResponseCode, capturedAt | Card satellite |
description, failureReason, ingestionFileUuid, idempotencyKey | Metadata satellite |
If you need routing numbers, return codes, card auth/capture times, holds, or NOCs in the response, list those keys in columns. Filtering on a field does not automatically include it in the projection.
Filterable fields
These lowercase names are used in field:condition=value filters (and may differ from the camelCase columns keys above).
| Field Name | Type |
|---|---|
| uuid | VARCHAR(255) |
| numericid | INT |
| companyuuid | VARCHAR(255) |
| companyname | VARCHAR(255) |
| categoryuuid | VARCHAR(255) |
| amount | INT |
| batchedat | TIMESTAMP |
| batchuuid | VARCHAR(255) |
| batchnumericid | INT |
| category | VARCHAR(255) |
| createdat | TIMESTAMP |
| effectivedate | TIMESTAMP |
| externaluniqueid | VARCHAR(255) |
| method | VARCHAR(255) |
| name | VARCHAR(255) |
| accounttype | VARCHAR(255) |
| routingnumber | VARCHAR(255) |
| accountnumber | VARCHAR(255) |
| latereturnedat | TIMESTAMP |
| returncode | VARCHAR(4) |
| returnedat | TIMESTAMP |
| returnreason | VARCHAR(255) |
| returnnumericid | VARCHAR(255) |
| returnuuid | VARCHAR(255) |
| expectedtosettleat | TIMESTAMP |
| latereturnsettlementprocessedat | TIMESTAMP |
| latereturnsettmentuuid | VARCHAR(255) |
| latereturnsettlementnumericid | VARCHAR(255) |
| settlementprocessedat | TIMESTAMP |
| settlementuuid | VARCHAR(255) |
| settlementnumericid | INT |
| changecode | VARCHAR(255) |
| changereason | VARCHAR(255) |
| changedat | TIMESTAMP |
| nocreceivedat | TIMESTAMP |
| changenewvalue | JSONB |
| changeoldvalue | JSONB |
| standardentryclasscode | VARCHAR(4) |
| status | VARCHAR(255) |
| type | VARCHAR(255) |
| holdreason | VARCHAR(255) |
| releasedat | TIMESTAMP |
| voidedat | TIMESTAMP |
| isduplicate | BOOLEAN |
| sequenceuuid | VARCHAR(255) |
| historicalid | VARCHAR(255) |
| panfirstsix | VARCHAR(6) |
| panlastfour | VARCHAR(4) |
| issameday | BOOLEAN |
Available Conditions
A field can be combined with a condition using the field:condition=value query-parameter syntax (a bare field=value means equals).
| Condition | SQL equivalent |
|---|---|
| eq | = |
| neq | != |
| gt | > |
| gte | >= |
| lt | < |
| lte | <= |
| nn | IS NOT NULL |
| null | IS NULL |
| empty | equals the empty string |
| like | ILIKE '%value%' |
| in | IN ('x','y','z') (comma-delimited values) |
| between | BETWEEN x AND y (two comma-delimited values) |
Sorting
A field can also be provided to sort the data. This corresponds to an ORDER BY statement in the SQL query. The sort key is provided to get this desired functionality — the value is the field to sort by. The sortDir key can be used with values ASC or DESC to get the desired sort direction.
Examples
Example 1
Debit transactions between $10.00 and $50.00 (amounts in cents), projecting payment and batch fields:
/reporting/transactions?page=0&pageSize=50&columns=name,paymentRoutingNumber,paymentAccountType,batchNumericId&amount:gt=1000&amount:lt=5000&type=Debit
The page and pageSize parameters are required for pagination. columns= lists the extra fields beyond always-on chrome. Without columns=paymentRoutingNumber, routing numbers will not appear in the response even when the row has one.
Example 2
Transactions created after January 1st, 2025, including return details, sorted ascending by id:
/reporting/transactions?page=0&pageSize=10&columns=returnCode,returnReason,returnedAt&createdat:gt=2025-01-01T00:00:00Z&sort=id&sortDir=ASC
Example 3
Card transactions with auth/capture timestamps (these are not in the default grid):
/reporting/transactions?page=0&pageSize=50&columns=authorizedAt,capturedAt,panFirstSix,panLastFour&method=CRD
Example Response
Response for Example 1 (columns=name,paymentRoutingNumber,paymentAccountType,batchNumericId). Unrequested nested keys are omitted rather than returned as null.
{
"status": "success",
"data": [
{
"uuid": "dbf1b9b8-cb47-4f78-8da2-f21c50a83ec0",
"numericId": 5,
"companyUuid": "53d993ae-fa4c-489d-be3d-e747c3235b0c",
"companyName": "Merchant C",
"method": "ACH",
"type": "Debit",
"amount": 592,
"status": "Settled",
"createdAt": "2025-05-05T13:32:25.72707Z",
"effectiveDate": "2025-03-14T00:00:00Z",
"isSameDay": false,
"settlementProcessedAt": "2025-07-24T17:45:19.553773Z",
"paymentDetails": {
"name": "Jennifer Schamberger",
"accountType": "Checking",
"accountNumber": "123456789",
"routingNumber": "121000248"
},
"batchDetails": {
"batchUuid": "1315d84d-d0d3-4876-9c9d-598704722590",
"batchNumericId": "191"
},
"settlementDetails": {
"settlementUuid": "9b694ffb-ce2f-492f-98b3-20964e65613c",
"settlementNumericId": "4",
"settlementProcessedAt": "2025-07-24T17:45:19.553773Z"
}
}
],
"errors": null,
"meta": {
"pagination": {
"page": 0,
"pageSize": 10,
"totalFilteredRows": 1,
"totalRows": 1648
},
"timestamp": "2025-08-14T19:06:24Z",
"version": "0.0.0"
}
}