Best Practice: Generating Bookkeeping Data
JustOn allows for writing bookkeeping data to be transferred to accounting systems like DATEV, SAP or Microsoft Dynamics. This article describes how JustOn produces the corresponding booking details in various scenarios.
- Booking net amounts
- Booking gross amounts
- Separately booking net amounts to individual accounts
- Separately booking gross amounts to individual accounts
- Booking invoice cancellation
- Booking revenue deferral
- Booking deferred revenue cancellation
- Modeling split bookings
- Booking dunning fees
- Booking deposit invoices
- Booking payment refunds
For an overview of usual use cases, see also Bookkeeping Models.
Basic Use Cases
This example invoice is the base for the accounting scenarios below:
Pos. | Title | Tax Rate | Net Price | |
---|---|---|---|---|
1 | Some Goods | 19% | 1000 | |
Subtotal Net | 1000 | |||
Tax Amount | 190 | |||
Grand Total | 1190 |
- Booking net amounts
- Booking gross amounts
- Separately booking net amounts to individual accounts
- Separately booking gross amounts to individual accounts
Now assume these use cases:
(1) The business issues the invoice.
(2) The customer pays the invoice, the business receives the payment.
Once set up accordingly, JustOn produces booking details for the invoice data and for the payment data.
Creating accounts
JustOn models the accounts used in this example as follows:
Booking Account | Booking Detail Field | Configuration |
---|---|---|
Revenues | G/L Account Number | G/L Account Number |
Taxes | G/L Account Number | Collective Accounts |
Trade Receivables (Debtors) | Contra Booking Account | Enabling Debtor Accounts |
Bank | G/L Account Number | Collective Accounts |
Booking Net Amounts
The common method to handle revenues is to split the net amount from the taxes and to book them to separate accounts. Consequently, JustOn creates two booking details by default: one for the net revenue, and one for the taxes.
To book net amounts, the global setting Enable Accounting in Gross Values
must not be selected.
Expected posting records
From an accounting perspective, these uses cases make the following posting records:
# | Debit to Account | Amount | Credit to Account |
---|---|---|---|
1 | Trade Receivables (Debtors) | 1190,00 € | |
1000,00 € | Revenues | ||
190,00 € | Taxes | ||
2 | Bank | 1190,00 € | |
1190,00 € | Trade Receivables (Debtors) |
Expected account bookings
With respect to the individual accounts, the example produces the following bookings:
Trade Receivables (Debtors)
Debit | Credit |
---|---|
1190,00 € | |
1190,00 € |
Revenues
Debit | Credit |
---|---|
1000,00 € |
Taxes
Debit | Credit |
---|---|
190,00 € |
Bank
Debit | Credit |
---|---|
1190,00 € |
Produced Booking Details
According to the example, JustOn creates three booking details:
# | Amount | Debit/Credit Flag | Account | Contra Account |
---|---|---|---|---|
1 | 1000,00 | H (Credit) |
Revenues G/L Account Number 4000 |
Trade Receivables (Debtors) Contra Booking Account DEB12345 |
2 | 190,00 | H (Credit) |
Taxes G/L Account Number 5000 |
Trade Receivables (Debtors) Contra Booking Account DEB12345 |
3 | -1190,00 | S (Debit) |
Bank G/L Account Number 1000 |
Trade Receivables (Debtors) Contra Booking Account DEB12345 |
Revenue and tax booking details
Payment booking detail
Exported Booking Details
This is a DATEV posting batch-compliant CSV file exported from the three example booking details.
EXTF | 510 | 21 | Buchungsstapel | 7 | 2,02001E+16 | SV | Admin | tenant.ClientNumber__c | ||
Umsatz (ohne Soll/Haben-Kz) | Soll/Haben-Kennzeichen | WKZ Umsatz | Kurs | Basis-Umsatz | WKZ Basis-Umsatz | Konto | Gegenkonto (ohne BU-Schluessel) | BU-Schluessel | Belegdatum | Belegfeld 1 |
1000 | H | 4000 | DEB12345 | 0102 | 202000053 | |||||
190 | H | 5000 | DEB12345 | 0102 | 202000053 | |||||
1190 | S | 1000 | DEB12345 | 0102 |
Booking Gross Amounts
Depending on the requirements of your accounting system (for example, when using automatic accounts in DATEV), you can configure JustOn to use gross values when creating bookkeeping data. To do so, activate the corresponding global setting Enable Accounting in Gross Values
.
This creates one booking detail for each business use case (remember, 1 – issuing the invoice, 2 – receiving the payment), which includes the tax.
Expected posting records
From an accounting perspective, these uses cases make the following posting records with gross booking:
# | Debit to Account | Amount | Credit to Account |
---|---|---|---|
1 | Trade Receivables (Debtors) | 1190,00 € | |
1190,00 € | Revenues (Automatic Account) | ||
2 | Bank | 1190,00 € | |
1190,00 € | Trade Receivables (Debtors) |
Expected account bookings
According to the example, this produces the following individual account bookings:
Trade Receivables (Debtors)
Debit | Credit |
---|---|
1190,00 € | |
1190,00 € |
Revenues (Automatic Account)
Debit | Credit |
---|---|
1190,00 € |
Bank
Debit | Credit |
---|---|
1190,00 € |
Produced Booking Details
When booking gross amounts, JustOn creates two booking details in the example scenario:
# | Amount | Debit/Credit Flag | Account | Contra Account |
---|---|---|---|---|
1 | 1190,00 | H (Credit) |
Revenues G/L Account Number 4000 |
Trade Receivables (Debtors) Contra Booking Account DEB12345 |
2 | -1190,00 | S (Debit) |
Bank G/L Account Number 1000 |
Trade Receivables (Debtors) Contra Booking Account DEB12345 |
Gross revenue booking detail
Payment booking detail
Exported Booking Details
This is a DATEV posting batch-compliant CSV file exported from the two example booking details.
EXTF | 510 | 21 | Buchungsstapel | 7 | 2,02001E+16 | SV | Admin | tenant.ClientNumber__c | ||
Umsatz (ohne Soll/Haben-Kz) | Soll/Haben-Kennzeichen | WKZ Umsatz | Kurs | Basis-Umsatz | WKZ Basis-Umsatz | Konto | Gegenkonto (ohne BU-Schluessel) | BU-Schluessel | Belegdatum | Belegfeld 1 |
1190 | H | 4000 | DEB12345 | 3001 | 202000030 | |||||
1190 | S | 1000 | DEB12345 | 3101 |
Booking Net Amounts to Separate Accounts
Some accounting systems are unable to process booking details that specify both an account number and a contra account number. To support these systems, you can set up JustOn to split booking details on the basis of G/L Account Number
and Contra Booking Account
, creating separate booking details for the account and the contra account.
For the doubled booking detail, JustOn
- multiplies the amount with
-1
, - reverses the debit/credit flag,
- sets the (original) contra account number as the account number,
- sets the type to
Contra Account
.
To enable the booking detail split along accounts, activate the corresponding global setting Separate Contra Account Booking Details
.
Produced Booking Details
Following the example, JustOn creates six booking details when booking net amounts to separate accounts:
# | Amount | Absolute Amount | Debit/Credit Flag | Account |
---|---|---|---|---|
1 | 1000,00 | 1000,00 | H (Credit) |
Revenues G/L Account Number 4000 |
2 | 190,00 | 190,00 | H (Credit) |
Taxes G/L Account Number 5000 |
3 | -1000,00 | 1000,00 | S (Debit) |
Trade Receivables (Debtors) G/L Account Number DEB12345 |
4 | -190,00 | 190,00 | S (Debit) |
Trade Receivables (Debtors) G/L Account Number DEB12345 |
5 | -1190,00 | 1190,0 | S (Debit) |
Bank G/L Account Number 1000 |
6 | 1190,00 | 1190,00 | H (Credit) |
Trade Receivables (Debtors) G/L Account Number DEB12345 |
Revenue and tax booking details for account and contra account
Payment booking detail for the bank account
Payment booking detail for the contra account
Exported Booking Details
Here is the DATEV posting batch-compliant CSV file exported from the six example booking details.
EXTF | 510 | 21 | Buchungsstapel | 7 | 2,02001E+16 | SV | Admin | tenant.ClientNumber__c | ||
Umsatz (ohne Soll/Haben-Kz) | Soll/Haben-Kennzeichen | WKZ Umsatz | Kurs | Basis-Umsatz | WKZ Basis-Umsatz | Konto | Gegenkonto (ohne BU-Schluessel) | BU-Schluessel | Belegdatum | Belegfeld 1 |
1190 | S | 1000 | DEB12345 | 0302 | ||||||
1190 | H | DEB12345 | 0302 | |||||||
1000 | H | 4000 | DEB12345 | 0302 | 202000049 | |||||
190 | H | 5000 | DEB12345 | 0302 | 202000049 | |||||
1000 | S | DEB12345 | 0302 | 202000049 | ||||||
190 | S | DEB12345 | 0302 | 202000049 |
Booking Gross Amounts to Separate Accounts
Now, you may need to combine gross value booking with separate account booking. To this end, activate the global settings Enable Accounting in Gross Values
and Separate Contra Account Booking Details
.
Produced Booking Details
Following the example, JustOn creates four booking details when booking gross amounts to separate accounts:
# | Amount | Absolute Amount | Debit/Credit Flag | Account |
---|---|---|---|---|
1 | 1190,00 | 1190,00 | H (Credit) |
Revenues G/L Account Number 4000 |
2 | -1190,00 | 1190,00 | S (Debit) |
Trade Receivables (Debtors) G/L Account Number DEB12345 |
3 | -1190,00 | 1190,0 | S (Debit) |
Bank G/L Account Number 1000 |
4 | 1190,00 | 1190,00 | H (Credit) |
Trade Receivables (Debtors) G/L Account Number DEB12345 |
Gross revenue booking details for account and contra account
Payment booking detail for the bank account
Payment booking detail for the contra account
Exported Booking Details
Here is the DATEV posting batch-compliant CSV file exported from the four example booking details.
EXTF | 510 | 21 | Buchungsstapel | 7 | 2,02001E+16 | SV | Admin | tenant.ClientNumber__c | ||
Umsatz (ohne Soll/Haben-Kz) | Soll/Haben-Kennzeichen | WKZ Umsatz | Kurs | Basis-Umsatz | WKZ Basis-Umsatz | Konto | Gegenkonto (ohne BU-Schluessel) | BU-Schluessel | Belegdatum | Belegfeld 1 |
1190 | H | 4000 | DEB12345 | 0202 | 202000057 | |||||
1190 | S | DEB12345 | 0202 | 202000057 | ||||||
1190 | S | 1000 | DEB12345 | 0202 | ||||||
1190 | H | DEB12345 | 0202 |
Advanced Use Cases
- Booking invoice cancellation
- Booking revenue deferral
- Booking deferred revenue cancellation
- Modeling split bookings
- Booking dunning fees
- Booking deposit invoices
- Booking payment refunds
Booking Invoice Cancellation
Invoices in the statuses Open
or Paid
can be canceled. If the bookkeeping data generation is enabled, JustOn creates booking details as follows when finalizing the cancellation invoice:
- For each existing booking detail of the canceled invoice, JustOn creates a new, "opposite" booking detail.
- For booking details of the type
Revenue
, JustOn appends the related account number to the name of the new booking detail. - For the amount of the new booking detail, JustOn sets the inverted amount of the existing booking detail.
- For the booking date of the new booking detail, JustOn sets the date of the canceled invoice as long as the original booking period is
Open
. If, however, the original booking period isClosed
, JustOn uses the first day of the next open booking period. - For the booking text of the new booking detail, JustOn prepends
Cancellation:
(or another, project-specific label) to the original booking text.
To illustrate the scenario, assume the following example:
There is an invoice that is to be canceled.
Field | Value |
---|---|
Pos Total Net | 1000 € |
Tax | 200 € |
Grand Total | 1200 € |
Booking Account | Example Value | Booking Detail Field | Configuration |
---|---|---|---|
Revenues | 0004 |
G/L Account Number | G/L Account Number |
Taxes | T-020 |
G/L Account Number | Collective Accounts |
Trade Receivables (Debtors) | 1718 |
Contra Booking Account | Enabling Debtor Accounts |
Produced Booking Details
Accordingly, JustOn generates the following booking details for the original invoice:
# | Amount | Debit/Credit Flag | Account | Contra Account |
---|---|---|---|---|
1 | 1000 | H (Credit) |
Revenues G/L Account Number 0004 |
Trade Receivables (Debtors) Contra Booking Account 1718 |
2 | 200 | H (Credit) |
Taxes G/L Account Number T-020 |
Trade Receivables (Debtors) Contra Booking Account 1718 |
Revenue and tax booking details for the original invoice
Now when canceling this invoice, JustOn creates a cancellation invoice. When finalizing this cancellation invoice, JustOn additionally creates the following booking details for it:
# | Amount | Debit/Credit Flag | Account | Contra Account |
---|---|---|---|---|
1 | -1000 | S (Debit) |
Revenues G/L Account Number 0004 |
Trade Receivables (Debtors) Contra Booking Account 1718 |
2 | -200 | S (Debit) |
Taxes G/L Account Number T-020 |
Trade Receivables (Debtors) Contra Booking Account 1718 |
Revenue and tax booking details for the cancellation invoice
Exported Booking Details
Here is the DATEV posting batch-compliant CSV file exported from these booking details.
EXTF | 510 | 21 | Buchungsstapel | 7 | 2,02001E+16 | SV | Admin | tenant.ClientNumber__c | ||
Umsatz (ohne Soll/Haben-Kz) | Soll/Haben-Kennzeichen | WKZ Umsatz | Kurs | Basis-Umsatz | WKZ Basis-Umsatz | Konto | Gegenkonto (ohne BU-Schluessel) | BU-Schluessel | Belegdatum | Belegfeld 1 |
1000 | H | 0004 | 1718 | 0104 | 202000122 | |||||
200 | H | T-020 | 1718 | 0104 | 202000122 | |||||
1000 | S | 0004 | 1718 | 0104 | 202000123 | |||||
200 | S | T-020 | 1718 | 0104 | 202000123 |
Booking Revenue Deferral
Your accounting may require to book deferred revenue to a dedicated account (see Handling Deferred Revenue). This may be the case, for example, if you distribute the revenue of an invoice over multiple future booking periods using the Booking Month
revenue recognition rule. Consequently, the revenue amount booked during the defined period is "taken out" from the deferred revenue account.
Info
Staged payment plans (installments) do not imply revenue deferral. If not specifically set otherwise, JustOn consequently applies the Default
revenue recognition rule when generating bookkeeping data for invoices with installments.
You can, however, combine the Service Month
revenue recognition rule and the Sync With Revenue
tax recognition rule with installments.
Consider the following example: There is an invoice whose amount is to be distributed equally to four booking periods using the Booking Month
recognition rule.
Field | Value |
---|---|
Pos Total Net | 6000 € |
Tax | 1200 € |
Grand Total | 7200 € |
Booking Account | Example Value | Booking Detail Field | Configuration |
---|---|---|---|
Revenues | 0004 |
G/L Account Number | G/L Account Number |
Taxes | T-020 |
G/L Account Number | Collective Accounts |
Trade Receivables (Debtors) | 1718 |
Contra Booking Account | Enabling Debtor Accounts |
Deferred Revenue | D007 |
G/L Account Number | Collective Accounts |
Deferred Revenue Contra Account | DC09 |
Contra Booking Account | Collective Accounts By default, JustOn fills the field Contra Booking Account in booking details for deferred revenue using the value of the Business Partner Account field of the corresponding Collective Accounts custom setting record. Your business use case, however, may require to use the value of the custom field ON_DebtorNo on the account instead. To support this scenario, activate the corresponding global setting Use Debtor No for Deferred Revenue . |
Be aware of the following specifics:
- The tax is always booked in the first booking period, based on the booking date.
- 3/4 of the revenue is booked to the deferred revenue account in the first booking period, based on the booking date.
- 1/4 of the revenue is booked in the first revenue-relevant booking period – based on the service period.
- In every subsequent booking period, 1/4 of the revenue is booked and, at the same time, taken out from the deferred revenue account to offset the booked revenue.
Produced Booking Details
Accordingly, JustOn generates the following booking details:
# | Booking Period | Amount | Debit/Credit Flag | Account | Contra Account | Type |
---|---|---|---|---|---|---|
1 | 2020-04 | 1200 | H (Credit) |
Taxes G/L Account Number T-020 |
Trade Receivables (Debtors) Contra Booking Account 1718 |
Tax |
2 | 1500 | H (Credit) |
Revenues G/L Account Number 0004 |
Trade Receivables (Debtors) Contra Booking Account 1718 |
Revenue | |
3 | 4500 | H (Credit) |
Deferred Revenue G/L Account Number D007 |
Deferred Revenue Contra Account Contra Booking Account DC09 |
Deferred | |
4 | 2020-05 | 1500 | H (Credit) |
Revenues G/L Account Number 0004 |
Trade Receivables (Debtors) Contra Booking Account 1718 |
Revenue |
5 | -1500 | S (Debit) |
Deferred Revenue G/L Account Number D007 |
Deferred Revenue Contra Account Contra Booking Account DC09 |
Deferred | |
6 | 2020-06 | 1500 | H (Credit) |
Revenues G/L Account Number 0004 |
Trade Receivables (Debtors) Contra Booking Account 1718 |
Revenue |
7 | -1500 | S (Debit) |
Deferred Revenue G/L Account Number D007 |
Deferred Revenue Contra Account Contra Booking Account DC09 |
Deferred | |
8 | 2020-07 | 1500 | H (Credit) |
Revenues G/L Account Number 0004 |
Trade Receivables (Debtors) Contra Booking Account 1718 |
Revenue |
9 | -1500 | S (Debit) |
Deferred Revenue G/L Account Number D007 |
Deferred Revenue Contra Account Contra Booking Account DC09 |
Deferred |
Revenue, tax and deferred revenue booking details distributed over multiple booking periods
Exported Booking Details
Here are the DATEV posting batch-compliant CSV files exported from the booking details.
For the first booking period (2020-04):
EXTF | 510 | 21 | Buchungsstapel | 7 | 2,02001E+16 | SV | Admin | tenant.ClientNumber__c | ||
Umsatz (ohne Soll/Haben-Kz) | Soll/Haben-Kennzeichen | WKZ Umsatz | Kurs | Basis-Umsatz | WKZ Basis-Umsatz | Konto | Gegenkonto (ohne BU-Schluessel) | BU-Schluessel | Belegdatum | Belegfeld 1 |
1500 | H | 0004 | 1718 | 0104 | 202000138 | |||||
4500 | H | D007 | DC09 | 0104 | 202000138 | |||||
1200 | H | T-020 | 1718 | 0104 | 202000138 |
For the second booking period (2020-05):
EXTF | 510 | 21 | Buchungsstapel | 7 | 2,02001E+16 | SV | Admin | tenant.ClientNumber__c | ||
Umsatz (ohne Soll/Haben-Kz) | Soll/Haben-Kennzeichen | WKZ Umsatz | Kurs | Basis-Umsatz | WKZ Basis-Umsatz | Konto | Gegenkonto (ohne BU-Schluessel) | BU-Schluessel | Belegdatum | Belegfeld 1 |
1500 | H | 0004 | 1718 | 0105 | 202000138 | |||||
1500 | S | D007 | DC09 | 0105 | 202000138 |
For the third booking period (2020-06):
EXTF | 510 | 21 | Buchungsstapel | 7 | 2,02001E+16 | SV | Admin | tenant.ClientNumber__c | ||
Umsatz (ohne Soll/Haben-Kz) | Soll/Haben-Kennzeichen | WKZ Umsatz | Kurs | Basis-Umsatz | WKZ Basis-Umsatz | Konto | Gegenkonto (ohne BU-Schluessel) | BU-Schluessel | Belegdatum | Belegfeld 1 |
1500 | H | 0004 | 1718 | 0106 | 202000138 | |||||
1500 | S | D007 | DC09 | 0106 | 202000138 |
For the fourth booking period (2020-07):
EXTF | 510 | 21 | Buchungsstapel | 7 | 2,02001E+16 | SV | Admin | tenant.ClientNumber__c | ||
Umsatz (ohne Soll/Haben-Kz) | Soll/Haben-Kennzeichen | WKZ Umsatz | Kurs | Basis-Umsatz | WKZ Basis-Umsatz | Konto | Gegenkonto (ohne BU-Schluessel) | BU-Schluessel | Belegdatum | Belegfeld 1 |
1500 | H | 0004 | 1718 | 0107 | 202000138 | |||||
1500 | S | D007 | DC09 | 0107 | 202000138 |
Booking Deferred Revenue Cancellation
Your accounting may require to book deferred revenue to a dedicated account, as illustrated in Booking Revenue Deferral. What happens when you cancel an invoice that involves deferred revenue bookings?
As explained in Booking Invoice Cancellation, JustOn creates a new, "opposite" booking detail for each existing booking detail of the canceled invoice, which also applies to split booking details to cover deferred revenue.
Booking deferred revenue and a corresponding cancellation
Some of the original booking periods may already be closed. In this case, JustOn moves the booking details produced for these periods to the next open booking period.
Booking detail allocation with closed booking periods
Now your bookkeeping system may expect one posting that combines the relevant bookings. To support this scenario, your export configuration can define a rule that aggregates these deferred revenue booking details, for example
"aggregationRules": {
"bookingDetailRow": [{
"fieldsToAggregate": {"Amount__c": "SUM"},
"conditions": {"Type__c": "Deferred"},
"groupBy": ["Name","DebitCreditFlag__c"]
}]
}
Produced Booking Details
Following the example above and assuming that the booking periods 2020-04 and 2020-05 are Closed
, JustOn creates these nine "opposite" booking details.
# | Booking Period | Amount | Debit/Credit Flag | Account | Contra Account | Type |
---|---|---|---|---|---|---|
1 | 2020-06 | -1200 | S (Debit) |
Taxes G/L Account Number T-020 |
Trade Receivables (Debtors) Contra Booking Account 1718 |
Tax |
2 | -1500 | S (Debit) |
Revenues G/L Account Number 0004 |
Trade Receivables (Debtors) Contra Booking Account 1718 |
Revenue | |
3 | -4500 | S (Debit) |
Deferred Revenue G/L Account Number D007 |
Deferred Revenue Contra Account Contra Booking Account DC09 |
Deferred | |
4 | -1500 | S (Debit) |
Revenues G/L Account Number 0004 |
Trade Receivables (Debtors) Contra Booking Account 1718 |
Revenue | |
5 | 1500 | H (Credit) |
Deferred Revenue G/L Account Number D007 |
Deferred Revenue Contra Account Contra Booking Account DC09 |
Deferred | |
6 | -1500 | S (Debit) |
Revenues G/L Account Number 0004 |
Trade Receivables (Debtors) Contra Booking Account 1718 |
Revenue | |
7 | 1500 | H (Credit) |
Deferred Revenue G/L Account Number D007 |
Deferred Revenue Contra Account Contra Booking Account DC09 |
Deferred | |
8 | 2020-07 | -1500 | S (Debit) |
Revenues G/L Account Number 0004 |
Trade Receivables (Debtors) Contra Booking Account 1718 |
Revenue |
9 | 1500 | H (Credit) |
Deferred Revenue G/L Account Number D007 |
Deferred Revenue Contra Account Contra Booking Account DC09 |
Deferred |
Booking details produced when canceling an invoice with deferred revenue
Exported Booking Details
Upon export, JustOn combines the deferred revenue booking details with the same debit/credit flag using the illustrated aggregation function. Consequently, the DATEV posting batch-compliant CSV files would be as follows.
For the first open booking period (2020-06):
EXTF | 510 | 21 | Buchungsstapel | 7 | 2,02001E+16 | SV | Admin | tenant.ClientNumber__c | ||
Umsatz (ohne Soll/Haben-Kz) | Soll/Haben-Kennzeichen | WKZ Umsatz | Kurs | Basis-Umsatz | WKZ Basis-Umsatz | Konto | Gegenkonto (ohne BU-Schluessel) | BU-Schluessel | Belegdatum | Belegfeld 1 |
1500 | S | 0004 | 1718 | 0106 | 202000139 | |||||
4500 | S | D007 | DC09 | 0106 | 202000139 | |||||
1200 | S | T-020 | 1718 | 0106 | 202000139 | |||||
1500 | S | 0004 | 1718 | 0106 | 202000139 | |||||
1500 | S | 0004 | 1718 | 0106 | 202000139 | |||||
3000 | H | D007 | DC09 | 0106 | 202000139 |
For the next booking period (2020-07):
EXTF | 510 | 21 | Buchungsstapel | 7 | 2,02001E+16 | SV | Admin | tenant.ClientNumber__c | ||
Umsatz (ohne Soll/Haben-Kz) | Soll/Haben-Kennzeichen | WKZ Umsatz | Kurs | Basis-Umsatz | WKZ Basis-Umsatz | Konto | Gegenkonto (ohne BU-Schluessel) | BU-Schluessel | Belegdatum | Belegfeld 1 |
1500 | S | 0004 | 1718 | 0107 | 202000139 | |||||
1500 | H | D007 | DC09 | 0107 | 202000139 |
Modeling Split Bookings
In double-entry bookkeeping, you may need to split credit bookings (for example, for revenues that originate from different product groups), on the one hand, and to aggregate the offsetting debit bookings on the other hand. This approach is known as "split booking" or "breakdown posting".
To support this approach with JustOn, you
-
Activate the corresponding global setting
Separate Contra Account Booking Details
For details, see Contra Account Split
-
Define a rule to aggregate the contra account booking details into one
For details, see Defining CSV File JSON Configuration. Your aggregation rule may, for example, look like
"aggregationRules": { "bookingDetailRow": [{ "fieldsToAggregate": {"Amount__c": "SUM"}, "conditions": {"Type__c": "Contra Account"}, "groupBy": ["AccountNo__c"] }] }
Look at the following example invoice:
Pos. | Title | G/L Account | Tax Rate | Net Price | |
---|---|---|---|---|---|
1 | Product A | PG1 | 20% | 1000 | |
2 | Product B | PG2 | 20% | 1000 | |
Subtotal Net | 2000 | ||||
Tax Amount | 400 | ||||
Grand Total | 2400 |
The booking accounts include
Booking Account | Example Value | Booking Detail Field | Configuration |
---|---|---|---|
Revenues PG1 | PG1 |
G/L Account Number | G/L Account Number |
Revenues PG2 | PG2 |
G/L Account Number | G/L Account Number |
Taxes | T-020 |
G/L Account Number | Collective Accounts |
Trade Receivables (Debtors) | DEB12345 |
Contra Booking Account | Enabling Debtor Accounts |
Produced Booking Details
Accordingly, JustOn generates the following booking details when finalizing the invoice:
# | Amount | Debit/Credit Flag | Type | Account | Contra Account |
---|---|---|---|---|---|
1 | 1000 | H (Credit) |
Revenue | Revenues PG1 G/L Account Number PG1 |
Trade Receivables (Debtors) Contra Booking Account DEB12345 |
2 | -1000 | S (Debit) |
Contra Account | Trade Receivables (Debtors) Contra Booking Account DEB12345 |
|
3 | 1000 | H (Credit) |
Revenue | Revenues PG2 G/L Account Number PG2 |
Trade Receivables (Debtors) Contra Booking Account DEB12345 |
4 | -1000 | S (Debit) |
Contra Account | Trade Receivables (Debtors) Contra Booking Account DEB12345 |
|
5 | 400 | H (Credit) |
Tax | Taxes G/L Account Number T-020 |
Trade Receivables (Debtors) Contra Booking Account DEB12345 |
6 | -400 | S (Debit) |
Contra Account | Trade Receivables (Debtors) Contra Booking Account DEB12345 |
Exported Booking Details
Upon export, JustOn combines the contra account booking details using the illustrated aggregation function. Be aware that the example does not resemble a DATEV posting batch-compliant CSV file but a simpler one.
Amount | Debit/Credit | Account | Contra Account | Date | Statement No. |
1000 | H | PG1 | DEB12345 | 0107 | 202000160 |
1000 | H | PG2 | DEB12345 | 0107 | 202000160 |
400 | H | T-020 | DEB12345 | 0107 | 202000160 |
-2400 | S | DEB12345 | 0107 | 202000160 |
Booking Dunning Fees
Your business has very likely set up dunning processes to help tracking and claiming outstanding payments. This may involve a percentage late fee or a flat dunning fee (see Dunning Levels Information). From an accounting perspective, you want these fees to be booked on a dedicated account.
When finalizing a dunning, JustOn usually creates balances of the type Dunning Fee
for any involved flat dunning fee or percentage late fee and adds them to the account balance of the relevant account. Dunning fee balances, however, will show up as outstanding receivables. Therefore, your business may require to not immediately create dunning fee balances. In this case, you can disable the creation of dunning fee balances on dunning finalization.
Doing so, JustOn will still track dunning fees. If a dunning level defines a dunning fee or a late fee rate, it is saved in the invoice fields Expected Dunning Fee
or Expected Dunning Late Fee
. Now if a registered payment includes an additional amount to cover dunning fees, it is split into a Payment
balance that covers the original open invoice amount, and an additional Dunning Income
balance for the dunning fee amount. The two balances are assigned to the original invoice. Using this approach, a dunning fee produces a booking-relevant record only if and when it is actually paid. With a payment that covers the open invoice amount only, an invoice will still become Paid
.
Dunning income balance example
Assume this dunning statement:
Detail | Amount |
---|---|
Invoice | 100 |
Dunning fee | 10 |
With dunning fee balances disabled, JustOn creates these balance records when registering a payment of 110:
# | Type | Amount |
---|---|---|
1 | Payment | 100 |
2 | Dunning Income | 10 |
Either way, you must, consequently, generate bookkeeping data from balances to produce dedicated dunning fee bookings. To set the intended account number, you need a collective account setting where Account
specifies the required G/L account and Type
is set to Dunning Fee
or Dunning Income
, respectively. For correctly booking dunning income balances, you need, in addition, a collective account setting for payments, where Account
specifies the relevant G/L account and Type
is set to Payment
.
Info
JustOn will not create new booking details for the invoices that are subject to dunning processes. Bookkeeping data for invoices is produced on invoice finalization only.
Dunning-relevant booking details
Operation | Dunning Records | Relevant Step | Accounting Records |
---|---|---|---|
Generating draft invoice | Invoice Invoice line items |
||
Finalizing invoice | ↳ | (1) | Invoice booking details |
Generating draft dunning | Statement Statement details |
||
Finalizing dunning or Registering payment |
Dunning fee balances or Dunning income balances |
(2) | |
Creating balance booking details | ↳ | (3) | Balance booking details |
The following example illustrates the scenario. Assume there is a dunning statement with two statement details: one that represents the outstanding invoice with an added late fee and another one that represents an additional dunning flat fee.
# | Title | Type | Amount | Notes |
---|---|---|---|---|
1 | 202000113 | Dunning | 105,00 | 100,00 (original invoice amount) + 5,00 (5% late fee) |
2 | Dunning Fee | Dunning Fee | 10,00 | Dunning flat fee |
Now the balance creation differs depending on whether you have JustOn create dunning fee balances when finalizing the dunning or dunning income balances when registering a corresponding payment.
With the default approach, JustOn creates two balance records when finalizing the dunning:
# | Amount | Type | Related Invoice |
---|---|---|---|
1 | 5,00 | Dunning Fee | 202000113 |
2 | 10,00 | Dunning Fee | 202000113 |
The additional relevant booking account ( 16dun
) is configured using a collective account setting. The contra account number ( DEB12345
) is taken from the corresponding account, as described in Enabling Debtor Accounts.
With dunning fee balances disabled, JustOn creates a dunning income balance. Note that the dunning income balance aggregates the late fee and the flat fee (following the example, 5,00 and 10,00).
# | Amount | Type | Related Invoice |
---|---|---|---|
1 | 15,00 | Dunning Income | 202000113 |
Correctly booking dunning income requires two G/L accounts, both to be configured as individual collective account settings – one for the dunning income ( 16dun
), and one for the payment booking ( 1000
).
Produced Booking Details
Accordingly, JustOn generates the following booking details when executing the job for balance bookkeeping data generation:
# | Amount | Debit/Credit Flag | Type | G/L Account | BP Account |
---|---|---|---|---|---|
1 | 5,00 | H | Dunning Fee | 16dun | DEB12345 |
2 | 10,00 | H | Dunning Fee | 16dun | DEB12345 |
3 | -5,00 | S | Contra Account | DEB12345 | |
4 | -10,00 | S | Contra Account | DEB12345 |
Booking details produced from dunning fee balances
# | Amount | Debit/Credit Flag | Type | G/L Account | BP Account |
---|---|---|---|---|---|
1 | -15,00 | S | Dunning Income | 1000 | 16dun |
2 | 15,00 | H | Contra Account | 16dun |
Booking details produced from a dunning income balance
Info
Remember that JustOn will not create new booking details for the invoices that are subject to dunning processes. For accounting purposes, you must still use the bookkeeping data produced on invoice finalization.
Exported Booking Details
These are the DATEV posting batch-compliant CSV files as exported from the produced booking details.
EXTF | 510 | 21 | Buchungsstapel | 7 | 2,02001E+16 | SV | Admin | tenant.ClientNumber__c | ||
Umsatz (ohne Soll/Haben-Kz) | Soll/Haben-Kennzeichen | WKZ Umsatz | Kurs | Basis-Umsatz | WKZ Basis-Umsatz | Konto | Gegenkonto (ohne BU-Schluessel) | BU-Schluessel | Belegdatum | Belegfeld 1 |
5 | H | 16dun | DEB12345 | 1008 | ||||||
10 | H | 16dun | DEB12345 | 1008 | ||||||
5 | S | DEB12345 | 1008 | |||||||
10 | S | DEB12345 | 1008 |
EXTF | 510 | 21 | Buchungsstapel | 7 | 2,02001E+16 | SV | Admin | tenant.ClientNumber__c | ||
Umsatz (ohne Soll/Haben-Kz) | Soll/Haben-Kennzeichen | WKZ Umsatz | Kurs | Basis-Umsatz | WKZ Basis-Umsatz | Konto | Gegenkonto (ohne BU-Schluessel) | BU-Schluessel | Belegdatum | Belegfeld 1 |
15 | S | 1000 | 16dun | 1008 | ||||||
15 | H | 16dun | 1008 |
Booking Deposit Invoices
Deposit invoices do usually not constitute a legally binding payment request. This is why they are usually exempt from bookkeeping data generation. If your accounting approach, however, requires to book deposit invoices as soon as they are created, you can explicitly enable the bookkeeping data generation for deposit invoices.
To this end, you
- Activate the corresponding global setting
Create Bookkeeping Data for Deposit
-
Create a G/L account rule to assign the relevant account number to booking details produced for deposit amounts
For the corresponding rule, you use the field
Invoice Type
set toDeposit
as the matching criterion. Most probably, you have another rule for assigning a G/L account number used for "usual" revenue bookings – in this rule, you leaveInvoice Type
empty because "usual" invoices do not have a specific invoice type – that is, theType
field on the invoice is empty.
Assume, for example, you have created a 20% deposit invoice for a product to be sold:
Pos. | Title | Tax Rate | Net Price | |
---|---|---|---|---|
1 | Product | 20% | 1000 | |
Subtotal Net | 1000 | |||
Tax Amount | 200 | |||
2 | Deposit | 0 | 200 | |
Grand Total | 200 |
Once the deposit invoice is paid and closed, you create the final invoice:
Pos. | Title | Tax Rate | Net Price | |
---|---|---|---|---|
1 | Product | 20% | 1000 | |
Subtotal Net | 1000 | |||
Tax Amount | 200 | |||
Grand Total | 1200 | |||
Received Payments | -200 | |||
Remaining Final Payment (net) | 800 | |||
Remaining Tax | 200 | |||
Payment Amount | 1000 |
The booking accounts include
Booking Account | Example Value | Booking Detail Field | Configuration |
---|---|---|---|
Revenues | 0004 |
G/L Account Number | G/L Account Number |
Taxes | T-020 |
G/L Account Number | Collective Accounts |
Trade Receivables (Debtors) | DEB12345 |
Contra Booking Account | Enabling Debtor Accounts |
Deposit | D933 |
G/L Account Number | G/L Account Number |
Produced Booking Details
Now when finalizing the deposit invoice and, accordingly, generating booking details, JustOn involves the deposit amount only. It does not produce booking details for revenues or taxes.
Note, in addition, that the booking detail produced for the deposit amount is of the type Revenue
but assigned the G/L account number defined for deposits:
# | Amount | Debit/Credit Flag | Type | G/L Account | Contra Account |
---|---|---|---|---|---|
1 | 200,00 | H | Revenue | D933 | DEB12345 |
2 | -200,00 | S | Contra Account | DEB12345 |
When finalizing the final invoice, JustOn produces a reverse booking detail for originally booked deposit amount. Accordingly, it creates the following booking details. If you usually book net amounts to separate accounts, there is no difference to a "regular" invoice (except for the deposit booking reversal):
# | Amount | Debit/Credit Flag | Type | G/L Account | Contra Account |
---|---|---|---|---|---|
1 | 1000,00 | H | Revenue | 0004 | DEB12345 |
2 | 200,00 | H | Tax | T-020 | DEB12345 |
3 | -200,00 | S | Revenue | D933 | DEB12345 |
4 | -1000,00 | S | Contra Account | DEB12345 | |
5 | -200,00 | S | Contra Account | DEB12345 | |
6 | 200,00 | H | Contra Account | DEB12345 |
Exported Booking Details
Here is the DATEV posting batch-compliant CSV file exported from the produced booking details.
EXTF | 510 | 21 | Buchungsstapel | 7 | 2,02001E+16 | SV | Admin | tenant.ClientNumber__c | ||
Umsatz (ohne Soll/Haben-Kz) | Soll/Haben-Kennzeichen | WKZ Umsatz | Kurs | Basis-Umsatz | WKZ Basis-Umsatz | Konto | Gegenkonto (ohne BU-Schluessel) | BU-Schluessel | Belegdatum | Belegfeld 1 |
200 | H | D933 | DEB12345 | 2808 | 202000188 | |||||
200 | S | DEB12345 | 2808 | 202000188 | ||||||
1000 | H | 0004 | DEB12345 | 3108 | 202000196 | |||||
200 | H | T-020 | DEB12345 | 3108 | 202000196 | |||||
200 | S | D933 | DEB12345 | 3108 | 202000196 | |||||
1000 | S | DEB12345 | 3108 | 202000196 | ||||||
200 | S | DEB12345 | 3108 | 202000196 | ||||||
200 | H | DEB12345 | 3108 | 202000196 |
Booking Payment Refunds
Using the payment page shipped with the (legacy) JustOn Self-Service Extension, businesses used to provide their customers the option to directly pay their invoices. To this end, the JustOn Self-Service Extension could integrate with payment service providers.
Depending on your payment service provider integration, you can use JustOn's balance management functionality to directly refund a payment made via the payment page of the (legacy) JustOn Self-Service Extension.
Refunding a payment balance directly returns the specified amount to the customer. In JustOn, this operation creates a balance record of the type Refund
for the account.
For general example use cases, see Credit and Refund Workflows and Refund Handling Examples.
To illustrate the booking detail creation with refunds, assume the following scenario:
- You finalize an invoice.
- You register a corresponding payment.
- You refund the payment.
Refunding a registered payment
(1) You finalize the invoice. This is the relevant information:
Field | Value |
---|---|
Invoice No. | 202000207 |
Status | Open |
Grand Total | 100 |
(2) Registering the payment assigns this payment balance to the invoice:
Field | Value |
---|---|
Amount | -100 |
Type | Payment |
Invoice | 202000207 |
This sets the invoice Paid
.
(3) Now you refund the payment, which
- creates the refund balance,
- locks both the original payment balance and the refund balance, and
- sets the invoice status back to
Open
(since you have returned the money)
Field | Value |
---|---|
Amount | 100 |
Type | Refund |
Locked |
Produced Booking Details
Assume the involved booking accounts include
Booking Account | Example Value | Booking Detail Field | Configuration |
---|---|---|---|
Revenues | 0004 |
G/L Account Number | G/L Account Number |
Trade Receivables (Debtors) | DEB12345 |
Contra Booking Account | Enabling Debtor Accounts |
Bank | 2020 |
G/L Account Number | Collective Accounts |
When finalizing the invoice, JustOn creates this booking detail:
# | Amount | Debit/Credit Flag | Type | G/L Account | Contra Account |
---|---|---|---|---|---|
1 | 100,00 | H | Revenue | 0004 | DEB12345 |
When executing the job for balance bookkeeping data generation, JustOn generates the following booking details for the payment balance and the refund balance:
# | Amount | Debit/Credit Flag | Type | G/L Account | Contra Account |
---|---|---|---|---|---|
1 | -100,00 | S | Payment | 2020 | DEB12345 |
2 | 100,00 | H | Refund | 2020 | DEB12345 |
Booking details produced from payment and refund balances
Exported Booking Details
Here is the DATEV posting batch-compliant CSV file exported from the produced booking details.
EXTF | 510 | 21 | Buchungsstapel | 7 | 2,02001E+16 | SV | Admin | tenant.ClientNumber__c | ||
Umsatz (ohne Soll/Haben-Kz) | Soll/Haben-Kennzeichen | WKZ Umsatz | Kurs | Basis-Umsatz | WKZ Basis-Umsatz | Konto | Gegenkonto (ohne BU-Schluessel) | BU-Schluessel | Belegdatum | Belegfeld 1 |
100 | H | 0004 | DEB12345 | 1611 | 202000207 | |||||
100 | S | 2020 | DEB12345 | 1811 | ||||||
100 | H | 2020 | DEB12345 | 1811 |