How period locking works
When you lock a period, DualEntry rejects any attempt to create or modify a journal entry with an accounting date in that period. This applies to manual entries, entries generated by sub-ledgers (Accounts Payable, Accounts Receivable), integration syncs, and API calls. The lock is enforced at thedate field on the journal entry header: if the date falls within a locked period, the operation fails with a locked-period error.
Locking is per-company. In a multi-entity setup, you lock each entity’s period independently so entities on different close schedules don’t block each other. For example, if your US entity closes on Day 3 and your UK entity closes on Day 5, you can lock the US entity’s period as soon as its close is complete without waiting for the UK entity to finish. This per-entity approach also means you can unlock a single entity’s period for a correction without affecting the lock status of other entities.
Soft lock vs. hard lock
DualEntry supports two lock levels that give you graduated control over who can still post to a closed period.| Lock level | Who can override | Use case |
|---|---|---|
| Soft lock | Admin, Controller | Period is closed but late adjustments may still be needed. Controllers can post entries without unlocking first. |
| Hard lock | Admin only | Period is final. Used after audit review or board sign-off. Only an admin can unlock. |
Lock and unlock a period
To lock a period:- Navigate to Settings → Period Locking.
- Select the company and the period (month/quarter) you want to lock.
- Choose Soft Lock or Hard Lock.
- Confirm the action.
- Navigate to Settings → Period Locking.
- Select the locked period.
- Choose Unlock.
- Enter a reason for unlocking. This field is required and recorded in the audit trail.
Permissions and audit trail
The following table shows which roles can perform lock and unlock actions:| Action | Soft lock | Hard lock |
|---|---|---|
| Lock | Admin, Controller | Admin, Controller |
| Post during soft lock | Admin, Controller | N/A |
| Unlock | Admin, Controller | Admin only |
- User - who performed the action.
- Timestamp - when it happened.
- Action - lock, unlock, or upgrade (soft to hard).
- Reason - the required explanation entered during unlock.
- Period - the affected company and date range.
Period locking is the final step in the month-end close checklist. If you lock the period before all checklist tasks are marked complete, DualEntry shows a warning but does not block the lock.
Controlling future-dated transactions
Period locking protects the past. To constrain how far ahead users can date transactions, use the organization-level future-dating setting. Navigate to Settings → Organization → Transaction Dating. The Allow future-dated transactions control has two parts:- Toggle - turn future dating on or off for the organization. When off, DualEntry rejects any transaction with an accounting date after today.
- Maximum days ahead - when future dating is on, set the number of days past today that transactions may be dated. Leave blank for no upper bound.
| Setting | Behavior |
|---|---|
| Off | No future-dated transactions allowed. Useful for teams that only book actuals. |
On, 0 days | Same-day only. Blocks anything dated after today but allows today’s date. |
On, 30 days | Permits routine forward-dating (e.g., recurring invoices, scheduled bills) up to a month out. |
| On, blank | No cap. Any future date is accepted. |
