Bookkeeping Data for Payments
JustOn Billing & Invoice Management can receive payment information first-hand – either directly from JustOn Cash Management or from imported payment data.
If you have integrated JustOn Billing & Invoice Management with JustOn Cash Management, the payment bookkeeping data will be created immediately – together with the relevant balance records – when registering payment events. For details, see Payment Bookings With JustOn Cash Management.
Assigning imported payments to invoices in JustOn Billing & Invoice Management produces balance records. Subsequently, the software allows for writing bookkeeping data for payment balances.
The data is able to track changes made to payment balances, like amount change or deletion. Payment bookkeeping data is unalterable with regard to balance assignment and overpayment splitting in order to keep the data clean.
Ideally, you generate bookkeeping data from payment balances on a daily basis. To this end, JustOn provides a dedicated scheduled job. For details, see Balance-Based Workflow.
Once generated, users can export the bookkeeping data to accordingly configured CSV files, like DATEV posting batch or SAP CSV, which can then be transferred to the corresponding accounting system.
Payment Bookkeeping Data Structure
Bookkeeping data is structured in booking periods and booking details, where booking periods represent bookkeeping months, and booking details represent the records in an accounting ledger.
Technically, booking periods and booking details are in a master-detail relationship.
Booking Period
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
Openaggregates the booking details produced for this month. -
Closed: A booking period with the status
Closedis ignored. Any booking details produced for this period are moved to the next open booking period.
Booking detail allocation with closed booking periods
Note
Make sure to establish business processes to close booking periods according to your requirements.
Booking Details
A booking detail represents a record in an accounting ledger. JustOn creates one booking detail per payment change.
Info
Booking details cannot be modified once they have been created.
The following table lists the relevant payment booking data and its possible sources:
| Booking Detail Field | CM Integration Source Fields | Balance Source Fields | Notes |
|---|---|---|---|
| Name | Auto-generated using BOOKINGDATE-ACCOUNTNUMBER |
||
| Account | context.paymentAccount |
Balance.Account |
|
| Account Rule | CollectiveAccount.Name |
CollectiveAccount.Name |
|
| Amount | Payment.InitialAmountPayment.OpenAmountPayment.RefundedAmountPayment.SettledAmount |
Balance.Amount |
|
| Bank Account ID | Payment.BankAccount.IBAN |
Balance.BankAccountId |
|
| Balance | Balance.Id |
Balance.Id |
Balance linked to CM_EntryItem |
| Booking Account | CollectiveAccount.Account |
CollectiveAccount.Account |
|
| Booking Date | Payment.CollectionDate |
Balance.Date |
|
| Booking Text | Built using TYPE or Reversed: TYPE |
||
| Clearing Reason | Balance.ClearingReason |
||
| Contra Booking Account | Account.DebtorNoCollectiveAccount.Account2CollectiveAccount.BpAccount |
Account.DebtorNoCollectiveAccount.Account2CollectiveAccount.BpAccount |
|
| CM_EntryItem | EntryItem.Id |
First assigned entry item for the relevant account; last entry item for reversals | |
| CM_Payment | Payment.Id |
Set according to context | |
| Invoice | Invoice.Id |
Invoice.Id |
|
| Is Gross | Set according to context | ||
| Origin | JPAY1 |
Set according to context | |
| Payment Date | Payment.CollectionDate |
Balance.Date |
|
| Payment Provider | Payment.PaymentProvider.Name |
Balance.PaymentProvider |
|
| Tax Base Amount | InvoiceLineItem.PosTotalNet |
Set for Interim Tax only |
|
| Tax Code | InvoiceLineItem.TaxCode |
Set for Interim Tax only |
|
| Type | Set according to context | ||
| Write Off Reason | Balance.WriteOffReason |
Booking Text
Accountants may expect specific references to the operation from which produced booking details originate. To support this requirement, you can use booking texts. They define the content and pattern of this human-readable reference information, and JustOn then populates the Booking Detail field Booking Text accordingly.
Implementation details
JustOn implements booking texts using the custom setting Booking Text. It includes the following information:
| Field | Data Type | Description |
|---|---|---|
| Name | Text | Specifies the type of the booking detail, like Revenue, Tax or Payment. At the same time, the unique name for the custom setting record.Use one Booking Text setting record for each relevant booking detail type. |
| Text | Text(255) | Specifies the booking reference text for the particular booking detail type. Can contain custom placeholders. |
JustOn can use placeholders to populate the booking texts with available information automatically. JustOn provides a number of default placeholders available for booking texts. Depending on the booking detail context, the placeholder sources vary:
| Booking Detail Context | Booking Detail Types | Available Placeholder Sources | Booking-Related Placeholders |
|---|---|---|---|
| Invoice | RevenueTaxDeferred RevenueExpensePre-TaxDeferred ExpenseUnbilled RevenueContra Account |
Booking Detail Account Invoice Invoice Line Item |
[BookingAccountRule][BookingDate][BookingTaxCode][BookingTaxRate][BookingType][BpAccountNo] |
| Balance | PaymentRefundPrepaymentPayoutWrite-offContra Account |
Booking Detail Account Balance Invoice (if applicable) |
[BalanceDate][BalancePaymentMethod][BalancePaymentProvider][BalanceReference][BalanceTransactionNo][BalanceType] |
For a list of other available, commonly used placeholders, see Custom Placeholder Information.
Remember that you can create additional custom placeholders for custom fields you may have defined. Be aware, however, that JustOn does not support formula fields on booking details (or other fields set after a booking detail has been created) as source fields for booking text placeholders.
Payment Bookings With JustOn Cash Management
If you have integrated JustOn Billing & Invoice Management with JustOn Cash Management, the payment bookkeeping data is created directly without resorting to balances.
General Workflow
Thanks to the integration, JustOn Billing & Invoice Management immediately writes payment-related booking details when JustOn Cash Management registers payment events – together with the relevant balance records. The produced booking details will have the field Origin set to JPAY1, and will be linked to the original payment records in JustOn Cash Management.
Info
Any produced balances with the field Origin set to JPAY1 will be exempt from the payment bookkeeping data job.
The following processes in JustOn Cash Management trigger the direct booking detail creation in JustOn Billing & Invoice Management:
- initially associating payments with open entries (settlements)
- reassigning payments to different accounts (using interim accounts or via the original payment account)
- issuing refunds
- registering chargebacks
Interim Account Bookings
JustOn Cash Management allows users to reassign payments to different accounts. To track those movements, accounting systems may require specific booking data. To this end, JustOn Billing & Invoice Management can write booking details of the type Interim Account after integrating with JustOn Cash Management.
Since interim account booking details track money that is temporarily put in a transit account, they always come in pairs:
- One with a positive amount for money moving into the interim booking account
- Another one with a negative amount for money moving out
Generally, booking details are created per payment and per account. This means:
- When a payment is received for a single debtor, one booking detail is created for that payment on that debtor's account.
- When a payment is moved to a different debtor (debtor change), additional booking data is created because money moves between accounts.
-
When money is reassigned to a different entry on the same account, no additional booking data is created – as long as the booking detail still refers to a valid, active entry item.
Each booking detail is linked to the first entry item with a non-zero amount on the account. As long as this entry item remains unchanged, the booking detail stays valid and no update is needed.
However, if the entire amount of the related entry item is moved to a different entry on the same account, that entry item's amount becomes zero. The booking detail now points to an entry item that no longer carries any assigned money. In this case, the system updates the booking detail to refer to the new active entry item – or, if the booking detail has already been exported, creates additional interim account booking data (a reversal and a forward booking).
The following scenarios illustrate the behavior:
Scenario 1: Payment reassigned to a different claim on the same debtor (already exported)
A payment was settled with an entry A of an account. The booking detail was exported to the accounting system. Now the payment is reassigned to entry B of the same account.
As a result, two new interim account booking details are created:
- A reversal (negative amount) related to the original entry
- A forward booking (positive amount) related to the new entry
If the original booking detail has not yet been exported, it is simply updated in place – no interim account records are needed.
Scenario 2: Unassigned payment assigned to a claim (already exported)
A payment was assigned to a debtor's account without being linked to a specific entry. The booking detail was exported. Now the payment is assigned to an entry.
As a result, two new interim account booking details are created as well:
- A reversal (negative amount) related to the account
- A forward booking (positive amount) related to the new entry
If the original booking detail has not yet been exported, it is updated in place – no interim account records are needed.
Scenario 3: Payment moved to a different debtor (debtor change)
A payment originally assigned to account A is moved to account B using the manual settlement dialog.
As a result, a pair of interim account booking details is created:
- On debtor A's account: a positive-amount booking (money leaving the debtor into the interim account)
- On debtor B's account: a negative-amount booking (money arriving from the interim account to the new debtor)
Scenario 4: Payment distributed across multiple debtors
A payment originally booked to a collective debtor is distributed to entries of multiple accounts.
As a result, multiple new interim account booking details are created:
- A reversal (negative amount) related to the original account
- One forward booking (positive amount) per target account
Info
After integrating with JustOn Cash Management, JustOn Billing & Invoice Management will ignore the global setting Enable Transfer Booking Details and no longer write booking details of the type Transfer to handle balance transfers.
Balance-Based Workflow
JustOn Billing & Invoice Management provides a dedicated scheduled job to generate bookkeeping data from payment-related balances.
Once set up, the software generates booking details for balances of the following types: Payment, Refund, Prepayment, Payout, Write-off, Clearing (if Clearing Reason is set and not Final Invoice), Dunning Fee, Dunning Income, Chargeback. All other balance types are ignored.
Since payment balances are subject to change, like amount modification, deletion or splitting, JustOn does not track payment balances and booking details in a one-to-one relationship, but uses a payment hash instead. The following Balance fields are used to compute the hash: Account, Date, Payment Method, Payment Provider, Reference, Transaction No and Type. This means, all balances where these fields have the same value are aggregated to the same booking detail.
Info
Other changes, like assigning balances to invoices, are not relevant with respect to the booking detail creation for balances.
JustOn uses the Booking Detail field Balance to link back to the original balance. This does not guarantee, however, its accuracy in case of a balance split or recombination. Use this field for information or navigation purposes only.
The bookkeeping data creation does not update existing payment booking details. JustOn always creates a new booking detail record to track an individual payment balance change.
JustOn tracks amount modifications to existing balances as new booking details with a new amount. That is, a change by a delta of 5,00 EUR results in a new booking detail with an amount of 5,00 EUR.
Deleted balances are written off: JustOn creates a new booking detail, reverting the amount, like Amount * (-1). By default, the new reverse booking detail includes only the original JustOn fields. If you need additional project-specific fields to be copied, you must use the custom setting Copy Additional Fields.
Note
By default, JustOn generates booking details for balances that have been created or modified in the past eight days (according to the SystemModstamp information). This is why the payment bookkeeping data job must run at least once per week – otherwise it does not detect all new, changed or deleted balances.
You can, however, overwrite the default period of past eight days using a dedicated batch parameter setting. If, for example, the job executions uses too many resources because of a large number of balances to process, you can set a shorter period to consider and, consequently, adjust the execution interval for the payment bookkeeping data job accordingly. For details, see Overwriting Default Period.
BatchBalanceExportJob parameters example
| Field | Value | Description |
|---|---|---|
| Name | BatchBalanceExportJob |
Must match the Job Name to be set when scheduling the jobUsing the original batch chain name overwrites the default settings |
| Batch Chain | BatchBalanceExportJob |
The name of the batch chain to be executed |
| Parameter 1 | Period = 3 |
Sets the period to the past 3 days |
Assigning Bookkeeping Accounts
With booking details created from payment balances, the field G/L Account Number specifies the bookkeeping account number of the bank account or payment provider. To have the field set, you use a dedicated collective account setting.
The field Contra Booking Account specifies the debtor number of the related account. The way to set the debtor number depends on your business use cases:
- For customer-specific debtor numbers, you use the optional Account field
ON_DebtorNo. - To support collective debtors (or debtor groups), you use the
Business Partner Accountfield of the relevant collective account setting.
When creating booking details, the Account field ON_DebtorNo takes precedence over the Collective Account field Business Partner Account. If the Account field ON_DebtorNo is empty or does not exist, JustOn uses the Collective Account field Business Partner Account to set Contra Booking Account in the booking detail.
For details, see Enabling Payment Booking Accounts.
Handling Provider Fees
Provider fees are tracked on the balance using the field Provider Fee. Some payment provider integrations via the (legacy) JustOn Self-Service Extension may also define the custom formula field ON_ProviderFee for calculating the provider fees. If the field is not available or empty, JustOn uses the standard Provider Fee field.
If JustOn detects a provider fee when generating the bookkeeping data, it will create an individual booking detail of the type Provider Fee. You can move these booking details to separate bookkeeping accounts using the collective accounts feature.
Handling Business Entities
If a balance is associated with an invoice, JustOn takes the business entity of the invoice to determine the correct booking period. If a balance is unassigned, the business entity is determined from the customer account using a business entity mapping.
Correction booking details, like for an amount modification or a deletion, always use the business entity of the original booking detail.
Handling Balance Transfer
Users can manually transfer balances that represent payment transactions (Payment, Refund, Prepayment, Payout, Chargeback and Chargeback Fee) from one account to another. If the creation of bookkeeping data is enabled and at least one booking detail exists for the moved balance, JustOn will update the bookkeeping data accordingly.
- 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 settingEnable Transfer Booking Details.This option is not supported if you integrate JustOn Billing & Invoice Management with JustOn Cash Management. The integration tracks debtor changes using interim account bookings.
Payment Booking Details Examples
The following examples show how JustOn writes booking details for payment balances and tracks further changes on involved balances.
Receiving PayPal payment with provider fee
Assume the following actions:
- Customer pays via the payment page with PayPal
- Payment balance is created and assigned to the account and invoice
- Invoice is set
Paid - Booking detail is created from payment balance
This produces two booking details with the following information:
| Field | Example Value | Description |
|---|---|---|
| Name | 2019-01-15-10000 | Concatenation of payment date and debtor number (with fallback to the account name). |
| Amount | -100 | Taken from the Balance field Amount. |
| Payment Date | 2019-01-15 | The date of the payment transaction. |
| Booking Date | 2019-01-15 | The booking date may be different from the payment date if the target booking period is closed and the booking detail has been moved. |
| Payment Hash | abc123 | Calculated by JustOn in order to track changes on involved balances. |
| Type | Payment | Taken from the Balance field Type. |
| Balance | - | Links to the associated balance. |
| Account No | 10000 | The G/L account, taken from the Account field ON_DebtorNo, can be set by collective account rules if it is empty or not available. |
| Business Partner Account No | 67890 | The contra account, set by collective account rules. |
| Field | Example Value | Description |
|---|---|---|
| Name | 2019-01-15-76543 | Concatenation of payment date and G/L account number (with fallback to the account name). |
| Amount | 2,75 | Taken from the Balance fields ON_ProviderFee or Provider Fee. |
| Payment Date | 2019-01-15 | The date of the payment transaction. |
| Booking Date | 2019-01-15 | The booking date may be different from the payment date if the target booking period is closed and the booking detail has been moved. |
| Payment Hash | xyz987 | Calculated by JustOn in order to track changes on involved balances. |
| Type | Provider Fee | Set by JustOn. |
| Balance | - | Links to the associated balance. |
| Account No | 34567 | Set by collective account rules. |
| Business Partner Account No | 98765 | Set by collective account rules. |
Importing payment entries with manual assignment
Assume the following actions:
- Import payment entries from CSV file, match to account
- Manually assign balance to the next open invoice
The bookkeeping data can be generated before or after the invoice assignment. The result is the same.
| Field | Example Value | Description |
|---|---|---|
| Name | 2019-01-15-10000 | Concatenation of payment date and debtor number (with fallback to the account name). |
| Amount | -75 | Taken from the Balance field Amount. |
| Payment Date | 2019-01-15 | The date of the payment transaction. |
| Booking Date | 2019-01-15 | The booking date may be different from the payment date if the target booking period is closed and the booking detail has been moved. |
| Payment Hash | def567 | Calculated by JustOn in order to track changes on involved balances. |
| Type | Payment | Taken from the Balance field Type. |
| Balance | - | Links to the associated balance. |
| Account No | 10000 | The G/L account, taken from the Account field ON_DebtorNo, can be set by collective account rules if it is empty or not available. |
| Business Partner Account No | 67890 | The contra account, set by collective account rules. |
Manual balance with amount change, debtor number not available
Assume the following actions:
- Register partial payment on invoice
- Generate bookkeeping data
- Change amount of partial payment
- Generate bookkeeping data
The first booking detail creation:
| Field | Example Value | Description |
|---|---|---|
| Name | 2019-01-15-Foo Inc. | Concatenation of payment date and fallback to the account name (no debtor number available). |
| Amount | -35 | Taken from the Balance field Amount. |
| Payment Date | 2019-01-15 | The date of the payment transaction. |
| Booking Date | 2019-01-15 | The booking date may be different from the payment date if the target booking period is closed and the booking detail has been moved. |
| Payment Hash | asd84578 | Calculated by JustOn in order to track changes on involved balances. |
| Type | Payment | Taken from the Balance field Type. |
| Balance | - | Links to the associated balance. |
| Account No | 1111 | Set by collective account rules. |
| Business Partner Account No | 2222 | Set by collective account rules. |
From the second bookkeeping data creation results a booking detail that covers the amount change:
| Field | Example Value | Description |
|---|---|---|
| Name | 2019-01-15-Foo Inc. | Concatenation of payment date and fallback to the account name (no debtor number available). |
| Amount | 5 | Calculated as follows: new amount minus original amount (like -30 - (-35) = 5). |
| Payment Date | 2019-01-15 | The date of the payment transaction. |
| Booking Date | 2019-02-01 | Moved to the next booking period, since the original booking period has been closed. |
| Payment Hash | asd84578 | The same hash as for the original booking detail. |
| Type | Payment | Taken from the Balance field Type. |
| Balance | - | Links to the associated balance. |
| Account No | 1111 | Set by collective account rules. |
| Business Partner Account No | 2222 | Set by collective account rules. |
Manual balance with deletion
Assume the following actions:
- Register partial payment on invoice
- Generate bookkeeping data
- Delete partial payment
- Generate bookkeeping data
The first booking detail creation:
| Field | Example Value | Description |
|---|---|---|
| Name | 2019-01-15-Foo Inc. | Concatenation of payment date and fallback to the account name (no debtor number available). |
| Amount | -35 | Taken from the Balance field Amount. |
| Payment Date | 2019-01-15 | The date of the payment transaction. |
| Booking Date | 2019-01-15 | The booking date may be different from the payment date if the target booking period is closed and the booking detail has been moved. |
| Payment Hash | klm654 | Calculated by JustOn in order to track changes on involved balances. |
| Type | Payment | Taken from the Balance field Type. |
| Balance | - | Links to the associated balance. |
| Account No | 1111 | Set by collective account rules. |
| Business Partner Account No | 2222 | Set by collective account rules. |
From the second bookkeeping data creation results a booking detail that covers the balance deletion:
| Field | Example Value | Description |
|---|---|---|
| Name | 2019-01-15-Foo Inc. | Concatenation of payment date and fallback to the account name (no debtor number available). |
| Amount | 35 | Calculated as follows: original amount multiplied by -1 (like -35 * (-1) = 35). |
| Payment Date | 2019-01-15 | The date of the payment transaction. |
| Booking Date | 2019-02-01 | Moved to the next booking period, since the original booking period has been closed. |
| Payment Hash | klm654 | The same hash as for the original booking detail. |
| Type | Payment | Taken from the Balance field Type. |
| Balance | - | Links to the associated balance. |
| Account No | 2222 | The original Contra Booking Account. |
| Business Partner Account No | 1111 | The original G/L account number. |
Payment balance transfer
- Debtor no for account A:
123 - Debtor no for account B:
456 - Account no for the bank:
4711
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 |
|---|---|---|---|---|
| Payment | A | -1000 | 123 | 4711 |
After manually transferring the balance to account B, the resulting booking details will be:
| Type | Account | Amount | BP Account No | G/L Account |
|---|---|---|---|---|
| Payment | A | +1000 | 123 | 4711 |
| Payment | B | -1000 | 456 | 4711 |
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 123 to 456 without relaying it via 4711:
| Type | Account | Amount | BP Account No | G/L Account |
|---|---|---|---|---|
| Transfer | B | -1000 | 456 | 123 |
This option is not supported if you integrate JustOn Billing & Invoice Management with JustOn Cash Management. The integration tracks debtor changes using interim account bookings.