A 2025#

a. 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-txsdelete-ledgerdelete-schema, and reverse-ledger-entry to the <InlineLog /> CLI
  • Add support for notEqualTo and notIn on StringFilter, to support filtering on LedgerEntry.type

b. 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

c. 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