In banking and accounting, a balance represents an amount of money due on an account, produced as the result of debit and credit transactions.
In JustOn, specifically, business operations like, for example, finalizing invoices or credits, assigning payments, issuing refunds, applying dunning fees, etc., create individual balance records. Consequently, the balances show the debits and credits for each account.
Generally, JustOn creates balances automatically with specific operations, for example, finalizing invoices, assigning payment entries, etc. Certain business use cases, however, may require balances to be created manually, like pre-payments or payouts.
Balances are associated to the account in a master-detail relationship.
JustOn adds up the balance records for invoices and for accounts, thus creating invoice balances and account balances.
- The account balance is the sum of all balances for a particular account. A positive amount is considered a debit, and a negative amount is considered a credit.
- The invoice balance is the sum of all balances for a particular invoice. If this sum is
0, the invoice is considered
Paid; if the sum is not zero, the invoice is set
The balance aggregation affects the following fields:
|Object||Affected Field||Field Type||Description|
|Account||Balance||Roll-Up Summary (SUM Balance.Amount)||Shows the sum of all balances associated to this account. A positive amount is considered a debit, and a negative amount is considered a credit.|
|Invoice||Balance||Currency (16,2)||The sum of all balances for this invoice. An invoice is considered paid or settled when the balance is zero.|
|Status||Picklist||The main invoice status, is set
|Payment Date||Date||The date on which the payment for this invoice has been received completely. Is cleared when the balance is not zero, is set to the date of the last balance record when the balance is zero.|
Think of the following example: A customer has made a pre-payment for an ordered product, and a user registers this, creating a balance record of the type
Prepayment. Pre-payments (or any other existing balance records) are considered accordingly upon invoice creation. When the invoice is finalized (its status set
Open), JustOn generates a balance record of the type
Invoice. The balance record amount equals the grand total amount of the invoice. Then, the user registers the final payment with the invoice, generating a record of the type
Payment. The invoice balance records may look like this:
|Prepayment||-10 €||2017-03-02||Received a pre-payment of 10 € from the customer|
|Invoice||25 €||2017-03-27||Set the invoice
|Payment||-15 €||2017-03-31||Received the outstanding 15 € from the customer|
The invoice is set
Paid (-10 + 25 -15 = 0) with a payment date of 2017-03-31.
Standard Balance Types
Depending on the semantics, there are various types of balances. Some are set by JustOn, others can be selected by users.
|System Balance Type||Description|
|Invoice||Is created for an invoice on finalization.|
|Credit||Is created for a credit on finalization.|
|Payment||Is created for a registered payment entry or as a reverse balance on SEPA direct debit export.|
|Payout||Is created as a reverse balance on SEPA credit export.|
|Prepaid||Is created for specific pre-payment data on invoices.|
|Clearing||Is created for an invoice or credit when it is balanced out (by a corresponding credit or invoice), or for a discount amount when a discounted invoice is paid.|
|Settlement||Is created for an invoice or credit on settlement.|
|Cash||Is created for an invoice with the payment method
|Is created for dunning fees.
|Write-Off||Is created for an invoice on write-off.|
|Refund||Is created when refunding a payment.|
|Chargeback||Is created for a chargeback.|
User-selectable balance types include
Payout. Balances are, however, not restricted to these types. You can create new types adding new picklist values to the
Type field. In addition, JustOn accepts other type values when importing balances.
We recommend to not create balances of the type
Clearing manually. JustOn creates clearing balances to offset given amounts on cancellations or settlements. A clearing balance that has been created manually from scratch may produce errors when processing cancellations or settlements.
Automatic Balance Assignment
Usually, JustOn assigns new balances to invoices on finalization if the following conditions are met:
- The balance does not refer to an invoice
- The checkbox
No Auto Assignmentis unselected
- The balance is not locked as a result of a refund
- The amount does not equal zero
- With respect to the invoice grand total, the amount has a reversed +/- sign
If there is a subscription linked to the balance, the balance is only assigned to invoices of the linked subscription. If there is the field
Lookup(Opportunity)) on the balance, the balance is only assigned to invoices for the linked opportunity.
If an invoice has set a balance assignment key, JustOn assigns balances only if they have set the same key or if their key fields are empty.
You can disable the automatic assignment
- either selecting the checkbox
No Auto Assignmenton the balance,
- or adding and selecting the custom checkbox field
ON_NoAutoBalanceAssignment__con the invoice.
For details on manual balance assignment, see Manually Controlling Assignments.
Your business model may involve pre-payments – payments for some product or service, executed before the corresponding invoice is created. On invoice generation, however, you must take into account these pre-payments and, accordingly, reduce the open invoice amount.
JustOn supports two ways for automatically dealing with pre-payments. Which to use depends on the type of products you sell and the corresponding billing model:
For one-time products, you can have the pre-payment data directly added to the invoices. On finalization, JustOn creates specific prepaid balances, which reduce the payment amount or settle the invoices immediately.
For details, see Using Pre-Payment Data on Invoices
For repeated billing, you can have a pre-payment balance automatically assigned to an invoice. This reduces the payment amount or, if balanced out completely, sets the invoice
For details, see Assigning Pre-Payment Balance to Invoice
Using Pre-Payment Data on Invoices
JustOn can generate balance records of the type
Prepaid based on specific pre-payment data on invoices.
JustOn automatically creates a prepaid balance for pre-payments when an invoice that contains specific pre-payment data is finalized. If the pre-payment covers the open invoice amount, the invoice immediately becomes
IsPrepaid marks the balance as a prepaid balance. Consequently, deselecting this checkbox removes the particular treatment of prepaid balances. The balance type is irrelevant with this respect.
IsPrepaid is not displayed on the balance layout by default.
As opposed to other balances, the prepaid balances are deleted and thus removed from the account when the corresponding invoice is canceled. This simplifies the import of invoices with pre-payments: there is no more need to import the payment entries in an additional step. In case of an error, you can cancel the invoice and import it again without dealing with duplicate pre-payment balances.
Prepaid balances have particular properties:
- The balance is automatically created when an invoice with specific pre-payment data is finalized.
- The balance is automatically deleted when the corresponding invoice is canceled. Recreating the (corrected) invoice will immediately recreate the prepaid balance as well – if the pre-payment data is still available on the source record.
- It is not possible to delete the balance manually.
- The balance is never split, even on overpayment or when additional payment entries are registered with the invoice.
Assigning Pre-Payment Balance to Invoice
For repeated billing based on recurring items or automatic subscription renewal, you can have a balance of the type
Prepayment assigned to the first invoice of the expected series. JustOn makes use of a specific balance assignment key to make sure that the automatic balance assignment correctly relates the balances with the matching invoices. To hold the key, JustOn 2.66 has introduced the field
Balance Assignment Key on the Subscription, Invoice and Balance objects.
In broad outline, the feature works as follows:
(1) You use an external system that handles orders and payments. Based on this information, the external system prepares the source data for both JustOn's invoice creation and balance assignment, making sure that the balance assignment key is correctly set.
The source data preparation and provision is project-specific, as it depends on your business data and system environment. Be aware that providing for the required source data may involve some implementation effort.
(2) JustOn retrieves the invoicing data, including the balance assignment key, either as source data for automatically building subscriptions or for the generic invoice run. To support the balance assignment key with the subscription build or the generic invoice run, you must create the field
ON_BalanceAssignmentKey on the corresponding source object and then make sure to have it set on the relevant source records. Subsequently,
- when building subscriptions, the balance assignment key is set on the produced subscriptions, from where it is copied to the invoices on invoice generation,
- with the generic invoice run, the balance assignment key is immediately set on the produced invoices.
(3) JustOn retrieves the pre-payment data, creating balance records of the type
Prepayment, which also include the balance assignment key.
(4) On invoice finalization, JustOn applies the automatic balance assignment, relating the available pre-payment balances with the corresponding invoices
- if the balance assignment keys on the invoice and the balance match, or
- if the balance assignment key on the invoice is set and the key field on the balance is empty.
Once the source data is set up and prepared accordingly, JustOn automatically assigns the available pre-payment balances to the corresponding invoices. No further configuration is necessary.
You can assign balances to draft invoices that exceed the grand total of the invoice, which results in an overpayment. When the invoice is finalized, that is, set
Open, JustOn usually splits the overpayment balance along the open invoice amount: one part covers the open invoice amount and is assigned to the invoice, whereas the remainder is unlinked from the invoice.
|Invoice finalization||Invoice||100,00||2017-11-20||Invoice balance is created when the invoice is set
|Payment entry (75,00)||Payment||-75,00||2017-11-21||Partial payment is registered.|
|Payment entry (30,00)||Payment||-25,00||2017-11-24||Second payment entry of 30,00 is registered and split into two balance records of -25,00 and -5,00.|
|Payment||-5,00||2017-11-24||Remainder balance (-5,00) is unassigned from the invoice. It remains assigned to the account and can be used for a future invoice.|
The invoice is set
Paid (100 - 75 - 25 = 0) on 2017-11-24.
JustOn assigns any available open balances to invoices on finalization, immediately reducing the open invoice amount. In addition, you can schedule a job in order to have remainder balances automatically assigned to open invoices on a regular basis.
When manually assigning balances to draft or open invoices using the Register Payment functionality, you can select the Split Payments option. This splits an overpayment balance, irrespective of the corresponding setting
Certain business use cases require overpayments to be kept on invoices. Assume, for example, you receive monthly payments (100,00) for a usage-based service that is invoiced once per year. Now the actual consumption yields a grand total of the yearly invoice that is lower (1150,00) than the sum of the received payments. If you allow an overpayment on the invoice, the difference remains assigned to this invoice, which prevents it to be used for other invoices of this account. You can then refund the overcharged amount (50,00) and manually create an according balance record for the invoice of the type
Payment Balance Transfer
Users can manually transfer balances that represent payment transactions (
Chargeback Fee) from one account to another. This may be necessary, for example, in case of incorrectly assigned payments or when clearing collective debtor accounts.
When moving a balance, users can also directly assign it to an invoice, even to another one of the same account.
Moving a balance involves the following steps:
- JustOn unregisters the balance from the current invoice. This may change the status of the invoice, like from
- The balance is transferred to the selected account.
- If the user has selected a target invoice, JustOn also assigns the balance to the selected invoice. This may change the status of the invoice, like from
If the creation of bookkeeping data is enabled and at least one booking detail exists for the balance, JustOn will update the bookkeeping data.
- By default, it creates two new payment booking details: one for the new debtor booking account and a "reverse" one for the old debtor booking account (using the bank booking account as a "relay" account).
- If required by your accounting system, JustOn can bypass this two-step move using a booking detail of the type
Transfer. Doing so directly transfers the balance amount from the old debtor to the new debtor without involving the bank. To this end, you enable the global setting
Enable Transfer Booking Details.
Booking detail creation example
- Debtor no for account A:
- Debtor no for account B:
- Account no for the bank:
JustOn creates the following booking detail after a balance with an amount of
-1000 has been initially created for account A:
|Type||Account||Amount||BP Account No||G/L Account|
After manually transferring the balance to account B, the resulting booking details will be:
|Type||Account||Amount||BP Account No||G/L Account|
4711 is used as an intermediary account.
Now you enable the global setting
Enable Transfer Booking Details: Using a transfer booking detail will directly transfer the balance amount from
456 without relaying it via
|Type||Account||Amount||BP Account No||G/L Account|