Enabling Revenue Bookings for SaaS Businesses
This article describes how to configure the bookkeeping data generation for invoices that are typically issued in SaaS businesses – that is, software licenses or other electronic services offered in a subscription model.
JustOn Billing & Invoice Management controls the booking data creation using dedicated configurations on invoice line items, G/L account settings, collective account settings and global settings. The following settings are required:
Object | Field | Value |
---|---|---|
Global Settings | Create Bookkeeping Data |
true |
Assignment Rules - G/L Account | G/L Account |
8400 |
Tax Code |
DE_19 |
|
Business Entity |
business entity name | |
Collective Account | Booking Account |
1776 |
Tax Code |
DE_19 |
|
Type |
Tax |
|
Collective Account | Booking Account |
0990 |
Type |
Deferred |
|
Invoice Line Item | Revenue Recognition Rule |
Booking Month |
Taxation Rule |
End of Service Period |
Use Case Outline
An invoice for a subscription-based service may typically look like this:
Title | Service Period Start | Service Period End | Tax Rate | Net Total | |
---|---|---|---|---|---|
Service | 2024-04-01 | 2025-03-31 | 19% | 1200,00 | |
Total (net) | 1200,00 | ||||
VAT | 228,00 | ||||
Grand Total | 1428,00 |
Conditions
Charges for the use of electronic services in the subscription model are usually paid for a year in advance, but the revenue is booked proportionally per month during the service period. To illustrate this approach, let us therefore assume the following conditions:
- Service period: one year
- Full payment at the beginning of the service period
- Deferred revenue on a monthly basis
- Separate bookings for the net revenue and the VAT
- Tax origin at the service period end, but due with the expected payment at the service period start
Booking Accounts
The bookings are expected to be made to the following accounts:
Account name | Account no. SKR 03 |
Configuration Type | Booking Detail Target Field |
---|---|---|---|
Revenue 19% VAT | 8400 | G/L Account | Booking Account |
VAT 19% | 1776 | Collective Account | Booking Account |
Deferred revenue | 0990 | Collective Account | Booking Account |
Debtor | 12345 | Debtor number | Contra Booking Account |
Expected Postings
In the first month of the service period (04/2024), the complete amount (1428,00) is initially distributed from the debtor account to:
- Revenue 19% VAT → 100,00
- VAT 19% → 228,00
- Deferred revenue ("Passive RechnungsDeferred") → 1100,00
Posting | Debit to account | Credit to account | Amount |
---|---|---|---|
1 | Debtor (12345) | Revenue 19% VAT (8400) | 100,00 |
2 | Debtor (12345) | VAT 19% (1776) | 228,00 |
3 | Debtor (12345) | Deferred revenue (0990) | 1100,00 |
In the following months (05/2024 – 03/2025), the deferrals are reversed and recorded as revenue in the period to which they relate:
Posting | Debit to account | Credit to account | Amount |
---|---|---|---|
4..14 | Deferred revenue (0990) | Revenue 19% VAT (8400) | 100,00 |
With respect to the booking accounts, the following postings will be recorded:
- Debtor
-
Posting Debit Credit 1 100,00 (04/2024) 2 228,00 (04/2024) 3 1100,00 (04/2024) - Revenue 19% VAT
-
Posting Debit Credit 1 100,00 (04/2024) 4 100,00 (05/2024) 5 100,00 (06/2024) 6 100,00 (07/2024) 7 100,00 (08/2024) 8 100,00 (09/2024) 9 100,00 (10/2024) 10 100,00 (11/2024) 11 100,00 (12/2024) 12 100,00 (01/2025) 13 100,00 (02/2025) 14 100,00 (03/2025) - VAT 19%
-
Posting Debit Credit 2 228,00 (04/2024) - Deferred revenue ("Passive RechnungsDeferred")
-
Posting Debit Credit 3 1100,00 (04/2024) 4 100,00 (05/2024) 5 100,00 (06/2024) 6 100,00 (07/2024) 7 100,00 (08/2024) 8 100,00 (09/2024) 9 100,00 (10/2024) 10 100,00 (11/2024) 11 100,00 (12/2024) 12 100,00 (01/2025) 13 100,00 (02/2025) 14 100,00 (03/2025)
Required Configuration
JustOn Billing & Invoice Management controls the booking data creation using dedicated configurations on invoice line items, G/L account settings, collective account settings and global settings. Enabling the bookkeeping data generation for the outlined use case involves the following configuration steps:
- Activating the booking detail creation
- Enabling the booking account allocation
- Setting the relevant revenue recognition rule
- Setting the relevant taxation rule
Activating Booking Data Creation
In order to globally enable the creation of bookkeeping data, the feature must be activated in the global settings.
-
Click to enter Setup, then open Custom Settings.
In Salesforce Lightning, navigate to Custom Code > Custom Settings.
In Salesforce Classic, navigate to Develop > Custom Settings.
-
Click Manage in the row of Global Settings.
- Click Edit in the Default row.
- Select the checkbox
Create Bookkeeping Data
. -
Optionally, select the checkbox
Create Bookkeeping Data for Deposit
.Select this option if your accounting requires deposit invoices to be booked as soon as they are created.
-
Click Save.
Once enabled, the bookkeeping data is generated automatically upon invoice finalization.
Info
Once created, the booking details can no longer be modified or deleted. In case of errors, however, you can regenerate booking details for invoices.
Enabling Booking Accounts
To provide for the correct booking account allocation, you create dedicated G/L Account Assignment Rules and Collective Account settings.
Booking revenue and taxes including deferred revenue according to the outlined use case requires the following booking accounts:
Account name | Account no. SKR 03 |
Configuration Type | Booking Detail Target Field |
---|---|---|---|
Revenue 19% VAT | 8400 | G/L Account | Booking Account |
VAT 19% | 1776 | Collective Account | Booking Account |
Deferred revenue | 0990 | Collective Account | Booking Account |
Debtor | 12345 | Debtor number | Contra Booking Account |
Remember that depending on your accounting system, the booking account numbers may differ.
-
Create an Assignment Rules - G/L Account setting to book the revenue.
To cover the use case for revenues with 19% VAT, you need the following setting:
Name G/L Account Tax Code Business Entity Revenue 19% VAT 8400 DE_19 business entity name For details, see Configuring G/L Account.
-
Create a Collective Account setting for the tax bookings.
To cover the outlined use case, you need the following setting:
Name Booking Account Tax Code Type VAT 19% 1776 DE_19 Tax Depending on your requirements, your Collective Account setting may, in addition, need to define the
Business Entity
.For details, see Configuring Collective Accounts.
-
Create a Collective Account setting for the deferred revenue bookings.
To cover the outlined use cases, you need at least this setting:
Name Booking Account Type Deferred 0990 Deferred Depending on your requirements, your Collective Account setting may, in addition, need to define the
Business Entity
.For details, see Configuring Collective Accounts.
-
Enable the debtor account number.
Depending on your requirements, the way to define the account number differs:
For customer-specific debtor numbers, you use the Account field
ON_DebtorNo
.- Navigate to the fields list of the Account object.
-
Create the following new field.
API Name Data Type Description Example Values ON_DebtorNo Text (255)
or
FormulaSpecifies the contra account number for booking details. If configured as a formula, it can determine the value based on other fields. 12345
AnotherField__c
To support collective debtors (or debtor groups), you use the Invoice field
DebtorNo
.Using a collective debtor number via the Invoice field
DebtorNo
does not require a collective account setting. Instead, you just set the intended booking account number to be transferred to the booking detail.- Navigate to the fields list of the Invoice object.
-
Create the following new field.
API Name Data Type Description Example Values DebtorNo Text (255)
or
FormulaSpecifies the contra account number for booking details. If configured as a formula, it can determine the value based on other fields. 12345
AnotherField__c
If the field is configured as a text, you can use the ON field mechanism to have it set using values from invoice source objects. Be aware, however, that if the field is configured as a formula, the ON field mechanism will not overwrite the
DebtorNo
value.
Setting Revenue Recognition Rule
JustOn Billing & Invoice Management writes deferred revenue bookings according to the revenue recognition rule set in the invoice line item field Recognition Rule
.
The ON field mechanism is a likely option for having the revenue recognition rule specified automatically on the invoice line item when generating invoices. Alternatively, you can use Salesforce flows or other automation tools.
To make use of the ON field mechanism, you set the field ON_RecognitionRule
on the invoice line item source object:
- Navigate to the fields list of the corresponding object.
-
Create the following new field.
API Name Data Type Description Use Case Value ON_RecognitionRule Text (255)
Formula (Text)
PicklistSpecifies the revenue recognition rule to be applied, is copied to the invoice line item during the invoice run. Booking Month
For help about creating fields, see Managing Object Fields.
Setting Taxation Rule
Taxation rules decide how to process invoice line items that span multiple time-based tax rules. For SaaS businesses, you typically apply the tax rate that is valid at the end of the service period, irrespective of any tax rate changes throughout the service period. This is why this use case assumes the taxation rule End of Service Period
.
Info
Generally, the timing of the tax origin determines which taxation rule to apply. This may depend on the type of product or service you invoice. Contact your tax consultant to determine the appropriate way for your business.
JustOn Billing & Invoice Management applies the taxation rule set in the invoice line item field Taxation Rule
.
The ON field mechanism is a likely option for having the taxation rule specified automatically on the invoice line item when generating invoices. Alternatively, you can use Salesforce flows or other automation tools.
To make use of the ON field mechanism, you set the field ON_TaxationRule
on the invoice line item source object:
- Navigate to the fields list of the corresponding object.
-
Create the following new field.
API Name Data Type Description Use Case Value ON_TaxationRule Text (255)
Formula (Text)
PicklistSpecifies the taxation rule to be applied, is copied to the invoice line item during the invoice run. End of Service Period
For help about creating fields, see Managing Object Fields.
Produced Booking Details
Once configured accordingly, JustOn Billing & Invoice Management produces the following booking details, covering the outlined use case:
- First service period month (04/2024)
-
# Booking Period Amount Debit/Credit Flag Booking Account Contra Booking Account Type 1 04/2024 100,00 H
8400
12345
Revenue 2 228,00 H
1776
12345
Tax 3 1100,00 H
0990
12345
Deferred - Following months (05/2024 – 03/2025), re-posting the deferred revenue
-
# Booking Period Amount Debit/Credit Flag Booking Account Contra Booking Account Type 4 05/2024 100,00 H
8400
12345
Revenue 5 -100,00 S
0990
Deferred 6 06/2024 100,00 H
8400
12345
Revenue 7 -100,00 S
0990
Deferred 8 07/2024 100,00 H
8400
12345
Revenue 9 -100,00 S
0990
Deferred 10 08/2024 100,00 H
8400
12345
Revenue 11 -100,00 S
0990
Deferred 12 09/2024 100,00 H
8400
12345
Revenue 13 -100,00 S
0990
Deferred 14 10/2024 100,00 H
8400
12345
Revenue 15 -100,00 S
0990
Deferred 16 11/2024 100,00 H
8400
12345
Revenue 17 -100,00 S
0990
Deferred 18 12/2024 100,00 H
8400
12345
Revenue 19 -100,00 S
0990
Deferred 20 01/2025 100,00 H
8400
12345
Revenue 21 -100,00 S
0990
Deferred 22 02/2025 100,00 H
8400
12345
Revenue 23 -100,00 S
0990
Deferred 24 03/2025 100,00 H
8400
12345
Revenue 25 -100,00 S
0990
Deferred