Skip to content

Bookkeeping Data for Subscriptions

When billing subscriptions, your business may require to bill items at the end of their service period. to do so, you set the field Billing Practice to Invoicing in arrears (see Item-Specific Billing Practice). Your accounting, however, may still require bookkeeping data for those items before they are actually billed. To support this scenario, JustOn can generate preliminary bookkeeping data based on active subscriptions. This bookkeeping data is of the type Unbilled Revenue.

When creating and finalizing the corresponding invoices, the existing subscription bookkeeping data is assigned to the invoice and reverted. Consequently, the reverted bookkeeping data offsets the previous unbilled revenue. The actual revenue bookkeeping data for the invoice is generated in addition.

Finally, these records can be transferred to accounting systems like DATEV, SAP or Microsoft Dynamics via CSV export or, for DATEV, direct transfer. Once created, the booking details can no longer be modified or deleted.

Info

The support for subscription bookkeeping data is available as of JustOn 2.58.

Note

Subscription bookkeeping data do not support accounting in gross values. That is, you cannot use automatic accounts in DATEV for bookkeeping data produced from subscriptions.

Data structure

Bookkeeping data is structured in booking periods and booking details. Booking periods and booking details are in a master-detail relationship.

A booking period represents one month in bookkeeping. Hence, it aggregates the booking details produced for this month. Booking periods are grouped by business entities.

Be aware that the booking period status finally decides the booking detail allocation:

  • Open: A booking period with the status Open aggregates the booking details produced for this month.
  • Closed: A booking period with the status Closed is ignored. Any booking details produced for this period are moved to the next open booking period.

    booking_detail_period
    Booking detail allocation with closed booking periods

Note

Make sure to establish business processes to close booking periods according to your requirements.

A booking detail represents a record in an accounting ledger. JustOn creates one booking detail per subscription item. Basically, it holds the same data as a booking detail produced from an invoice line item, except for

  • Invoice
  • Invoice Line Items
  • Invoice No

These fields are not set since there is no invoice produced yet.

Workflow

JustOn "simulates" an invoice run per month to create the subscription bookkeeping data. It generates booking details for subscription items of the following types: Recurring, Recurring Prorated, Recurring Prorated AVG, One-Time and Minimum Fee. Transactional items are ignored.

With respect to the subscription bookkeeping data generation, be aware of the following specifics:

  • Subscription bookkeeping data is always created without taxes. That is, you cannot use automatic accounts in DATEV for bookkeeping data produced from subscriptions.
  • Subscription bookkeeping data is always created on a monthly base. That is, they may differ from the invoice bookkeeping data if you use longer (or shorter) billing periods or invoice run periods. JustOn makes sure, however, that the subscription bookkeeping data is properly reverted upon invoice finalization.
  • Subscription bookkeeping data is of the type Unbilled Revenue.
  • You can set account numbers or business partner account numbers for subscription bookkeeping data using the Collective Accounts custom setting.
  • Since there is no active invoice, subscription bookkeeping data does not consider deferred revenue.
  • If there is no start date set (neither for the subscription nor for the item), JustOn uses the current date as the start date.
  • If there is no end date, the bookkeeping data is generated for one year.
  • For periods for which invoices have already been issued, JustOn does not generate subscription bookkeeping data.

JustOn stores the start date for the next booking detail generation in the Item field Next Booking Detail Start. This field is used to determine the start date for generating new booking details if the bookkeeping data creation is started for a modified subscription, for example, after adding new items or on subscription renewal.

JustOn does not update existing subscription bookkeeping data. If, for example, you modify the price of an item before creating the invoice, JustOn will clear the difference by creating a correction booking detail when creating and finalizing the invoice.

For more information about subscription bookkeeping data, see Bookkeeping Data for Unbilled Revenue.

Enabling Bookkeeping Data Generation

In order to enable the creation of bookkeeping data, the feature must be activated in the global settings.

  1. In Setup, open Custom Settings.

    In Salesforce Lightning, navigate to Custom Code > Custom Settings.

    In Salesforce Classic, navigate to Develop > Custom Settings.

  2. Click Manage in the row of Global Settings.

  3. Click Edit in the Default row.
  4. Select the checkbox Create Bookkeeping Data.
  5. Click Save.

    Once enabled, the subscription bookkeeping data is generated upon process execution.

Info

Once created, the booking details can no longer be modified or deleted.

Creating Subscription Bookkeeping Data Processes

Usually, you want JustOn to create subscription bookkeeping data when the subscription or a related item changes. To this end, you create dedicated processes that run on subscriptions and items.

Note

Depending on your use cases, the criteria for executing the processes will vary.

  1. In Setup, open Process Builder.

    In Salesforce Lightning, navigate to Process Automation > Process Builder.

    In Salesforce Classic, navigate to Create > Workflow & Approvals > Process Builder.

  2. Click New.

  3. Specify a (descriptive) process name.
  4. Set the process to start when A record changes.
  5. Configure the process as required.

    Step Option Description
    Add Object Object The object whose modifications are to trigger the booking detail creation, must be Subscription or Item
    Start the process The type of record change that triggers the process, must be when a record is created or edited
    Add Criteria Criteria for Executing Actions The type of criteria, determines whether to check for specific field values or to evaluate records using a formula
    Set Conditions | Build Formula The use case-specific criteria, either the filter conditions for evaluating field values or the formula
    Since existing subscription bookkeeping data is not updated, it is usually sufficient to consider changes that affect the subscription or item end, like end date or status.
    Add Action Action Type The type of action to be executed, must be Apex
    Apex Class The Apex class to be executed, must be Create booking data on change
    Set Apex Variables Invocable variables for the Apex class
    The ID of the added/changed item/subscription specifies the reference to the ID field of the subscription or item whose modifications are to trigger the booking detail creation
  6. Click Save.

  7. Click Activate.

    When the defined process criteria are met, JustOn creates the subscription bookkeeping data.

    For help about creating processes, see Lightning Process Builder in the Salesforce Help.

Process configuration examples

You want JustOn to create subscription bookkeeping data on changes to the status or end date of an active subscription and on changes to the status, end date or billing period of an associated item. To this end, create two processes as follows:

Option Example Value
The process starts when A record changes
Object Subscription
Start the process when a record is created or edited
Criteria for Executing Actions Formula evaluates to true
Build Formula [ONB2__Subscription__c].ONB2__Account__c != null && ISPICKVAL([ONB2__Subscription__c].ONB2__Status__c , 'Active') && ( ISCHANGED([ONB2__Subscription__c].ONB2__Status__c ) || ISCHANGED([ONB2__Subscription__c].ONB2__EndDate__c ) )
Action Type Apex
Apex Class Create booking data on change
Set Apex Variables The ID of the added/changed item/subscription Field Reference [ONB2__Subscription__c].Id
Option Example Value
The process starts when A record changes
Object Item
Start the process when a record is created or edited
Criteria for Executing Actions Formula evaluates to true
Build Formula [ONB2__Item__c].ONB2__Subscription__c != null && ISCHANGED([ONB2__Item__c].ONB2__Active__c ) || ( ISCHANGED([ONB2__Item__c].ONB2__EndDate__c ) || ISCHANGED([ONB2__Item__c].ONB2__BillingPeriod__c ) )
Action Type Apex
Apex Class Create booking data on change
Set Apex Variables The ID of the added/changed item/subscription Field Reference [ONB2__Item__c].Id

Depending on your business requirements, the criteria for executing the processes will vary. For example, you may add a condition that narrows down the set of subscriptions that are subject to the bookkeeping data generation.