Skip to main content
POST
/
transactions
/
roll-up
Consolidate transactions (roll up)
curl --request POST \
  --url https://api.breezing.io/v1/transactions/roll-up \
  --header 'Content-Type: application/json' \
  --data '
{
  "ids": [
    123
  ],
  "walletId": 1,
  "groupByContact": false
}
'
{
  "success": true,
  "data": {
    "processed": 123,
    "dedupedFrom": 123
  }
}

Query Parameters

orgId
string
required

Organization ID. Use GET /v1/companies to discover available org/company pairs.

Example:

"1"

companyId
string
required

Company ID. Use GET /v1/companies to discover available companies and their access levels.

Example:

"1"

Body

application/json
ids
integer[]
required

Transaction IDs to consolidate (max 500). All ids must belong to walletId. Transactions that belong to an exchange trade (non-null exchangeId) are skipped by the engine. Duplicate IDs are deduplicated server-side.

Required array length: 1 - 500 elements
type
enum<string>
required

Consolidation period. "day" merges same-token, same-direction transactions within each calendar day (the consolidated row is timestamped at 12:00 that day). "month" merges within each calendar month (timestamped on the 1st).

Available options:
day,
month
walletId
integer
required

The wallet whose transactions are being consolidated. Roll-up is a per-wallet operation: every id in "ids" must belong to this wallet, otherwise the request fails with 400 WALLET_MISMATCH. Use GET /wallets to find IDs.

Required range: x > 0
groupByContact
boolean
default:false

When true, transactions are additionally grouped by counterparty wallet, so transfers involving different contacts are not merged together. Defaults to false.

Response

Transactions submitted to the consolidation engine

success
enum<boolean>
required
Available options:
true
data
object
required
Last modified on June 10, 2026