A 2025#

a. 2025-05

#

Entry Stats

You can now query more information about your Ledger Entries using ledgerEntryStats including counts by status, type, and date ranges.

Small improvements

  • You can now define the Linked Account Types in your Schema from inside the Dashboard
  • Introduced advanced Tag filtering with TagMatchInput type, enabling complex queries including NOT, ANY, ALL, and NONE operations
  • Enhanced Group-based filtering with a GroupMatchInput filter type for flexible matching conditions
  • Tags can now be updated and deleted from Entries with the updateLedgerEntry mutation and removeFromTags parameter
  • Updated our Documentation page content and design
  • Workspace members is now a dedicated option in the main navigation of the Dashboard

b. 2025-04

#

Entry Versioning

  • You can now update an Entry types by incrementing its typeVersion field. This will automatically happen when editing your Schema within the Dashboard.
  • Once you deploy the Schema, the new Entry type version will become available alongside existing versions. To post to versioned entries addLedgerEntry and reconcileTx now both have a typeVersion parameter. This field is optional and will default to 1, so none of your existing callsites will be impacted.

Small improvements

  • Ledger Account names can now be updated in your Schema
  • Mitigated impact of noisy neighbours on historical balance updates in multi-tenant environments
  • Improved handling of retries when DynamoDB returns an Internal Server Error
  • Fixed bug where ledgerAccount queries could return ledger_account_not_found on existing accounts in high-throughput scenarios
  • Trying to use a deleted ledger now returns a specific error message instead of ledger_not_found
  • Better error messages when an invalid Ledger Account path is received

c. 2025-03

#

Repost Ledger Entries

You can now reverse and repost a Ledger Entry using the same idempotency key up to 10 times. This will create a chain to reversals and reposting that all share an idempotency key and the id of each LedgerEntry is unique.

Small improvements

  • Added drag and drop reordering of Schema Entry types in the FRAGMENT Dashboard
  • Fixed a race condition with updateLedger and deleteLedger
  • New invite feature to add members to your workspace via email
  • Updated the gen-graphql CLI command to support query generation for runtime Entries
  • Added delete-custom-txs, delete-ledger, delete-schema, and reverse-ledger-entry to the FRAGMENT CLI
  • Add support for notEqualTo and notIn on StringFilter, to support filtering on LedgerEntry.type

d. 2025-02

#

Reverse Ledger Entries

  • Introduced a reverseEntryLedger mutation. This will post a new entry with the opposite amounts of an existing LedgerEntry. It will also free up the idempotency key, and allow you to repost a new LedgerEntry.
  • Ledger Entry and Ledger Line now expose reversalHistory, reversalPosition, reversedBy and reverses to traverse this chain.

Small improvements

  • Increased throughput when posting Entries that instantiate Ledger Accounts templates
  • List Entries now support filtering on Groups

e. 2025-01

#

Balances over a period

The LedgerAccount type now exposes balancesDuring and balanceChangesDuring fields for efficiently querying all hourly, daily or monthly balances in a specified time period. These can be used to display portfolio charts or generate trial balance reports.

Get monthly balances for a year
query GetBalanceHistory(
  $ledgerAccount: LedgerAccountMatchInput!
) {
  ledgerAccount(ledgerAccount: $ledgerAccount) {
    # Get monthly balances for a year
    yearlyBalances: balancesDuring(
      startTime: "2021"
      duration: 12
      granularity: monthly
    ) {
      startTime
      endTime
      granularity
      nodes {
        at
        amount {
          currency {
            code
          }
          amount
        }
      }
    }
  }
}

Learn more in the documentation.

Small Improvements

  • Started enforcing that static parameters in the Schema cannot have an empty string key or value