---
tags: [accounting, service]
module: Accounting
---

# JournalEntryServices

## Connections
[[_Accounting]] · [[[Model]JournalEntry]] · [[[Service]PayrollServices]] · [[[Model]JournalRecord]] · [[[Model]Account]] · [[[Model]EasyEntry]] · [[[Repo]Repositories]] · [[[Controller]JournalEntryController]] · [[[Service]IntegrationSyncServices]] · [[[Job]Jobs]] · [[[Cross]CrossModuleDependencies]]

## Source
`Modules/Accounting/Services/JournalEntry/`

## Core CRUD Services
| Service | Responsibility |
|---|---|
| `CreatingNewJournalEntryService` | Central entry point for ALL journal entry creation; creates JE + records; updates customer/supplier balances; dispatches FillOpeningClosingBalance job |
| `UpdatingJournalEntryService` | Updates JE fields and record lines; reverts and re-applies balance changes |
| `DeletingJournalEntryService` | Soft-deletes JE; reverts all balance impacts |
| `DeletingJournalRecordService` | Deletes a single record from a JE |
| `RevertingManualJournalEntry` | Creates a reversing mirror entry |
| `HandleUpdatingJournalEntryService` | Orchestrates updates with locking |

## Retrieval & Preparation
`RetrievingManualJournalEntriesService` · `PreparingDataForCreatingManualJournalEntryService` · `PreparingDataForEditingJournalEntryService` · `PreparingOrderDataForCreatingJournalEntryService` · `RetrievingLastCodeService`

## Recurring Entries
`GenerateRecurringJournalEntryService` · `NotifyFailedRecurringJournalEntryService`

## Export
`JournalManualEntryExportingService` — PDF export of journal entries

## Integration Deletion
`DeletingFoodicsJournalEntry` · `DeletingZidJournalEntry` · `DeletingMarnJournalEntry` — delete JEs created by specific integrations, reversing their account impacts

## Bank Statement
`DeletingBankStatementService`

## Single Record Mode
(`Services/JournalEntry/JournalEntryInSingleRecord/`)
| Service | Responsibility |
|---|---|
| `CreatingNewJournalEntryInSingleRecordService` | Creates aggregated daily entries instead of per-transaction entries |
| `CreatingSingleJournalEntryService` | Creates one aggregated entry |
| `SingleRecordCollectorService` | Collects and groups records by date |
| `SingleRecordCollectorForSingleDayService` | Same, for one specific day |
| `SyncingOrderInSingleRecordService` | Syncs an integration order into single-record mode |
| `PreparingSingleRecordsDataService` | Prepares data for aggregation |
| `DateHandlerService` | Date range utilities for single-record processing |

## Key Trait
`UpdateRecordCustomerSupplierBalance` (`Modules/Accounting/Traits/`) — used by Create/Update/Delete services:
- `updateCustomerCurrentBalance` / `revertCustomerCurrentBalance`
- `updateSupplierCurrentBalance` / `revertSupplierCurrentBalance`
- Depends on [[[Cross]CrossModuleDependencies#Sales]] `CustomersRepository` and [[[Cross]CrossModuleDependencies#Purchases]] `SuppliersRepository`
