Skip to content
OFFICIAL SS DOCUMENTATION

SS.Accounting 1.2.0

Exact-decimal as-of balances, multi-currency booked and revalued reporting, linked accrual reversals, immutable ledgers, closing, audit trail and snapshots
API 1.2.0
MIT
source

Language compatibility: >=1.0.0 <2.0.0
Runtime compatibility: >=1.0.0 <2.0.0

No package dependencies declared.

Public API

Public signature
export function account(string code, string name, string kind, string currency, decimal openingBalance)->Account

Parameters: code: string, name: string, kind: string, currency: string, openingBalance: decimal


Public signature
export record Account(public string code, public string name, public string kind, public string currency, public decimal openingBalance)

Parameters: code: string, name: string, kind: string, currency: string, openingBalance: decimal


Public signature
export function accountBalance(Ledger ledger, string code)->decimal

Parameters: ledger: Ledger, code: string


Public signature
export record AsOfTrialBalance(public int throughPeriod, public string[] accountCodes, public decimal[] debitPositiveBalances, public decimal debits, public decimal credits, public bool balanced)

Parameters: throughPeriod: int, accountCodes: string[], debitPositiveBalances: decimal[], debits: decimal, credits: decimal, balanced: bool


Public signature
export function closePeriod(Ledger ledger, string closingId, string retainedEarningsCode)->Ledger

Parameters: ledger: Ledger, closingId: string, retainedEarningsCode: string


Public signature
export function closingRetainedEarnings(decimal opening, decimal netIncome, decimal dividends)->decimal

Parameters: opening: decimal, netIncome: decimal, dividends: decimal


Public signature
export function createLedger(Account[] accounts, string baseCurrency, int openPeriod)->Ledger

Parameters: accounts: Account[], baseCurrency: string, openPeriod: int


Public signature
export function creditNormalBalance(decimal opening, decimal[] debits, decimal[] credits)->decimal

Parameters: opening: decimal, debits: decimal[], credits: decimal[]


Public signature
export function currencyLedgerReport(Ledger ledger)->CurrencyLedgerReport

Parameters: ledger: Ledger


Public signature
export record CurrencyLedgerReport(public string[] currencies, public decimal[] originalDebitPositiveBalances, public decimal[] bookedBaseDebitPositiveBalances, public decimal bookedBaseDebits, public decimal bookedBaseCredits, public bool balanced)

Parameters: currencies: string[], originalDebitPositiveBalances: decimal[], bookedBaseDebitPositiveBalances: decimal[], bookedBaseDebits: decimal, bookedBaseCredits: decimal, balanced: bool


Public signature
export function debitNormalBalance(decimal opening, decimal[] debits, decimal[] credits)->decimal

Parameters: opening: decimal, debits: decimal[], credits: decimal[]


Public signature
export record FxRevaluationReport(public string[] currencies, public decimal[] foreignBalances, public decimal[] bookedBaseBalances, public decimal[] revaluedBaseBalances, public decimal[] unrealizedGains, public decimal totalUnrealizedGain)

Parameters: currencies: string[], foreignBalances: decimal[], bookedBaseBalances: decimal[], revaluedBaseBalances: decimal[], unrealizedGains: decimal[], totalUnrealizedGain: decimal


Public signature
export function grossProfit(decimal revenue, decimal costOfGoodsSold)->decimal

Parameters: revenue: decimal, costOfGoodsSold: decimal


Public signature
export record JournalEntry(public string id, public int period, public string description, public JournalLine[] lines, public string reverses)

Parameters: id: string, period: int, description: string, lines: JournalLine[], reverses: string


Public signature
export record JournalLine(public string accountCode, public decimal debit, public decimal credit, public string transactionCurrency, public decimal basePerTransaction)

Parameters: accountCode: string, debit: decimal, credit: decimal, transactionCurrency: string, basePerTransaction: decimal


Public signature
export function journalTotals(decimal[] debits, decimal[] credits)->JournalTotals

Parameters: debits: decimal[], credits: decimal[]


Public signature
export record JournalTotals(public decimal debits, public decimal credits, public bool balanced)

Parameters: debits: decimal, credits: decimal, balanced: bool


Public signature
export record Ledger(public Account[] accounts, public JournalEntry[] entries, public string baseCurrency, public int openPeriod, public int closedThrough)

Parameters: accounts: Account[], entries: JournalEntry[], baseCurrency: string, openPeriod: int, closedThrough: int


Public signature
export record LedgerReport(public string[] accountCodes, public decimal[] debitPositiveBalances, public decimal debits, public decimal credits, public decimal assets, public decimal liabilities, public decimal equity, public decimal revenue, public decimal expenses, public decimal netIncome, public bool balanced)

Parameters: accountCodes: string[], debitPositiveBalances: decimal[], debits: decimal, credits: decimal, assets: decimal, liabilities: decimal, equity: decimal, revenue: decimal, expenses: decimal, netIncome: decimal, balanced: bool


Public signature
export record LedgerSnapshot(public Account[] accounts, public JournalEntry[] entries, public string baseCurrency, public int openPeriod, public int closedThrough, public int entryCount, public decimal debitChecksum, public decimal creditChecksum)

Parameters: accounts: Account[], entries: JournalEntry[], baseCurrency: string, openPeriod: int, closedThrough: int, entryCount: int, debitChecksum: decimal, creditChecksum: decimal


Public signature
export function post(Ledger ledger, JournalEntry entry)->Ledger

Parameters: ledger: Ledger, entry: JournalEntry


Public signature
export function postAccrualAndReversal(Ledger ledger, JournalEntry accrual, string reversalId)->Ledger

Parameters: ledger: Ledger, accrual: JournalEntry, reversalId: string


Public signature
export function reconcile(decimal bankBalance, decimal bookBalance, decimal depositsInTransit, decimal outstandingChecks, decimal bankCredits, decimal bankCharges)->Reconciliation

Parameters: bankBalance: decimal, bookBalance: decimal, depositsInTransit: decimal, outstandingChecks: decimal, bankCredits: decimal, bankCharges: decimal


Public signature
export record Reconciliation(public decimal adjustedBank, public decimal adjustedBook, public decimal difference, public bool reconciled)

Parameters: adjustedBank: decimal, adjustedBook: decimal, difference: decimal, reconciled: bool


Public signature
export function report(Ledger ledger)->LedgerReport

Parameters: ledger: Ledger


Public signature
export function restore(LedgerSnapshot value)->Ledger

Parameters: value: LedgerSnapshot


Public signature
export function revalueForeignCurrencyBalances(Ledger ledger, string[] currencies, decimal[] currentBasePerCurrency)->FxRevaluationReport

Parameters: ledger: Ledger, currencies: string[], currentBasePerCurrency: decimal[]


Public signature
export function reverseEntry(Ledger ledger, string sourceId, string reversalId)->Ledger

Parameters: ledger: Ledger, sourceId: string, reversalId: string


Public signature
export function snapshot(Ledger ledger)->LedgerSnapshot

Parameters: ledger: Ledger


Public signature
export function straightLineDepreciation(decimal cost, decimal residualValue, int usefulPeriods)->decimal

Parameters: cost: decimal, residualValue: decimal, usefulPeriods: int


Public signature
export function trialBalance(decimal[] debitBalances, decimal[] creditBalances)->JournalTotals

Parameters: debitBalances: decimal[], creditBalances: decimal[]


Public signature
export function trialBalanceAsOf(Ledger ledger, int throughPeriod)->AsOfTrialBalance

Parameters: ledger: Ledger, throughPeriod: int


Documentation version

Language 1.0.0, compiler 1.0.0, runtime 1.0.0. This reference is generated from the official SS documentation so package and language details stay consistent with the release.