Accounting & Statements
The accounting API provides unified financial data across all blockchains — real-time balances, historical statements, and a transaction-level ledger for reconciliation and compliance.
Real-Time Balances
Get current balances across vaults and accounts:
curl -H "Authorization: Bearer $TOKEN" \
"https://api.carabaas.com/api/v1/accounting/balances?organizationId=djk2wDuMhsx9KR2r7JgBQW"
Historical Statements
Pull balance snapshots for a date range — incoming balance, deposits, withdrawals, outgoing balance, and fees:
curl -H "Authorization: Bearer $TOKEN" \
"https://api.carabaas.com/api/v1/accounting/statements?startDate=2026-04-01&endDate=2026-04-30"
Filter Options
| Parameter | Description |
|---|---|
| startDate | Start date (YYYY-MM-DD) |
| endDate | End date (YYYY-MM-DD) |
| vaultId | Filter by vault |
| accountId | Filter by account |
| network | Filter by network |
| filter[asset] | Filter by asset |
Accounting Transactions
A unified ledger of every financial event — deposits, withdrawals, fees, and internal movements:
curl -H "Authorization: Bearer $TOKEN" \
"https://api.carabaas.com/api/v1/accounting/transactions?organizationId=djk2wDuMhsx9KR2r7JgBQW"
Response Example
{
"data": [
{
"id": "66245",
"vaultId": "d9JKtJKKjHKcpFkgstJ8nz",
"accountIndex": 2,
"address": "0x1405...401c",
"blockchainHash": "0xd7a9...97fc",
"account": "a",
"type": "payin_confirmed",
"asset": "c1_t0xCaC5...3bB9",
"amount": "100000000",
"amountFormatted": {
"asset": {
"name": "PYUSD Sepolia",
"decimals": 6,
"type": "erc20",
"network": "ethereum-sepolia"
},
"value": "100"
},
"status": "CONFIRMED",
"network": "ethereum-sepolia",
"createdAt": "2026-04-15T08:28:37.375Z",
"financedAt": "2026-04-15T08:28:36.000Z"
}
],
"pagination": { "page": 0, "pageSize": 25 },
"hasMore": true
}
Transaction Types
| Type | Ledger | Description |
|---|---|---|
payin_confirmed | Balance | Incoming deposit confirmed on-chain |
payout_processing | Freeze | Amount reserved for pending withdrawal |
payout_confirmed | Balance | Withdrawal confirmed on-chain |
payout_confirmed | Freeze | Reserved amount released after confirmation |
payout_fee | Balance | Network fee deducted from the sending address |
Ledger Model
The platform uses a double-entry ledger for withdrawals:
- Balance — confirmed on-chain position
- Freeze — amounts reserved for pending outgoing transactions
- Available balance = Balance - Freeze
This prevents double-spending by reserving funds immediately when a transaction is created, before it reaches the blockchain.
Key Fields
| Field | Description |
|---|---|
type | Operation type (see table above) |
amount | Raw amount in smallest unit (wei, satoshi, etc.) |
amountFormatted | Human-readable value with asset metadata |
account | a = actual balance, freeze = reserved amount |
status | CONFIRMED (on-chain), IN_BLOCK, INIT (pending) |
financedAt | Block timestamp (when the event happened on-chain) |
createdAt | Platform timestamp (when the event was recorded) |
blockchainHash | On-chain transaction hash (absent for freeze entries) |
Top Vault Addresses
Get the top addresses by balance for a vault:
curl -H "Authorization: Bearer $TOKEN" \
https://api.carabaas.com/api/v1/accounting/vaults/{vaultId}/top
See Also
- Reporting & Reconciliation (product overview)
- Balance Reconciliation (integration guide)
- Webhooks