Journal Entry
A manual, balanced posting straight to the general ledger β debit and credit lines against G/L accounts, with no business partner and no item.
A Journal Entry is a manual posting straight to the general ledger. Where almost every other SAP B1 document creates its journal entry automatically as a side effect β an A/R invoice posts revenue, a delivery posts cost of goods sold, a payment moves cash β a Journal Entry is the one document a person writes directly, naming the G/L accounts and the debit and credit amounts by hand.
In the Service Layer this is the JournalEntries service, object code
oJournalEntries (30), created at /b1s/v1/JournalEntries.
A Journal Entry has no business partner and no item. It does not describe a sale, a purchase, or a stock movement β it describes an accounting fact. Its content is a set of lines, each hitting one G/L account with a debit or a credit, and the entry is only valid when total debits equal total credits.
When it is used
A Journal Entry is the tool for accounting facts that no operational document captures:
- Accruals and deferrals at period end β recognising an expense incurred but not yet invoiced, or deferring revenue billed in advance.
- Depreciation β writing down asset value against a depreciation expense (outside the fixed-asset module).
- Reclassifications β moving a balance from one G/L account to another to correct a mis-posting.
- Corrections and adjustments found during reconciliation β bank charges, rounding differences, prior-period fixes.
- Opening balances when first loading the ledger.
- Provisions β booking a liability for a future obligation.
If the fact is really a sale, a purchase, a payment, or a stock movement, the correct document is the operational one (invoice, payment, goods issueβ¦), which posts its own journal entry with the right sub-ledger links. A manual Journal Entry is for the things that live purely in the G/L.
Key fields
The document is a header carrying dates and a memo, over a JournalEntryLines
collection where every line names a G/L account and either a debit or a credit.
Header
| Field | Type | Notes |
|---|---|---|
JdtNum | Edm.Int32 | Journal entry number (the document’s own key) |
Number | Edm.Int32 | User-visible transaction number |
ReferenceDate | Edm.String | Posting date β YYYYMMDD string |
DueDate | Edm.String | Due date of the transaction β YYYYMMDD string |
TaxDate | Edm.String | Tax point date β YYYYMMDD string |
Memo | Edm.String | Description of the whole entry (why it was posted) |
Reference | Edm.String | External reference (Reference 1) |
Reference2 | Edm.String | Second external reference |
Series | Edm.Int32 | Numbering series |
AutoVAT | SAPB1.BoYesNoEnum | Whether SAP computes VAT lines automatically |
There is deliberately no CardCode, no DocType, no DocumentLines with items β
this is a ledger document, not a partner or stock document.
Line (JournalEntryLines)
| Field | Type | Notes |
|---|---|---|
Line_ID | Edm.Int32 | Line index within the entry |
AccountCode | Edm.String | G/L account this line posts to β required |
Debit | Edm.Double | Debit amount (leave 0 if this line is a credit) |
Credit | Edm.Double | Credit amount (leave 0 if this line is a debit) |
ShortName | Edm.String | Account short name (mirrors AccountCode for G/L lines) |
LineMemo | Edm.String | Per-line description |
CostingCode | Edm.String | Cost centre / profit-centre dimension |
ProjectCode | Edm.String | Project dimension |
ReferenceDate1 | Edm.String | Line-level reference date |
Each line is either a debit or a credit against one AccountCode β never
both. SAP B1 supports up to five dimensions (cost centre, department, project,
region, β¦) per line via CostingCode and related fields, so a single balanced entry
can spread cost across the analytical structure.
GL and stock effect
Stock: none. A Journal Entry never touches inventory quantities.
Accounting: the entry posts exactly the debits and credits its lines specify, directly to the named G/L accounts. The one hard rule is balance:
Ξ£ Debit = Ξ£ CreditThe document will not post unless total debits equal total credits. A typical accrual entry:
DR Rent Expense 2,000 β expense recognised this period
CR Accrued Liabilities 2,000 β obligation to pay next periodBecause the accounts are chosen by hand, a Journal Entry can hit any combination of P&L and balance-sheet accounts β the responsibility for correctness sits entirely with the person (or agent) writing it. There is no sub-ledger reconciliation behind it the way there is for an invoice or a payment, which is exactly why manual journal entries are the line item reviewers scrutinise most at period close.
Service Layer
| Property | Value |
|---|---|
| Service (entity) | JournalEntries |
| Object code | oJournalEntries (30) |
| Create path | POST /b1s/v1/JournalEntries |
| Read one | GET /b1s/v1/JournalEntries(<JdtNum>) |
| Sub-collection | JournalEntryLines (the balanced debit/credit lines) |
A create payload names the memo and the balanced lines β no partner, no item:
POST /b1s/v1/JournalEntries
{
"Memo": "Month-end rent accrual",
"ReferenceDate": "20260731",
"JournalEntryLines": [
{ "AccountCode": "620000", "Debit": 2000.0, "LineMemo": "Rent expense" },
{ "AccountCode": "210000", "Credit": 2000.0, "LineMemo": "Accrued liability" }
]
}Norma’s connector and mock use the
/b1s/v1/paths shown here; a live SAP B1 on Feature Pack 2405 or later exposes the same entity under/b1s/v2/with identical shape.
The response returns the assigned JdtNum. If total debits do not equal total
credits, the create is rejected β an unbalanced journal entry cannot exist.