# JournalEntryForm

> Line grid with live balance check and dimension capture.

Source: https://lopifi.com/components/journal-entry-form
Part of: Lopifi — US GAAP books on autopilot, reviewed by a CPA (https://lopifi.com)

---

- **Family:** Accounting core (GL) — 
- **Status:** Implemented
- **Spec:** https://lopifi.com/docs/catalog/09-accounting-core

## Install

```bash
npx shadcn@latest add @lopifi/theme
npx shadcn@latest add @lopifi/journal-entry-form
```

## Specification

Line grid with account, dimensions, debit, credit, memo. Running balance check updates live at the bottom. Tab moves across the row, Enter adds a line, and the amount fields follow [`AmountInput`](03-payments.md#amountinput) rules. Reads `requiredDimensions` from the account the moment it's picked and adds those fields inline. Blocks posting into a closed period with the [cutoff explanation](../domain/02-periods-and-close.md#3-cutoff), not a bare rejection.

## Rules this component obeys

Money is minor units, never floats. `null` is not `0` and neither is redacted. Negatives render in accounting parentheses with the parenthesis column reserved on both sides. Debit and credit are two columns. Per-currency decimal places. Polarity is explicit — up is not always good. Every figure states its period, entity, currency, basis and as-of.
