Bookkeeping Data for Payment Balances
Thanks to the tight integration with JustOn Cash Management, JustOn Billing & Invoice Management receives payment information first-hand. Accordingly, it allows for writing bookkeeping data for payment balances. These records can then 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.
Ideally, you generate bookkeeping data from payment balances on a daily basis. To this end, JustOn provides a dedicated scheduled job. Once generated, you 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.
Bookkeeping data as generated from payment balances can hold account numbers, which are, typically, debtor numbers and bookkeeping accounts related to bank accounts or payment provider accounts. 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.
Enabling Bookkeeping Data for Payment Balances
Scheduling Payment Bookkeeping Data Generation
Best Practice: Generating Bookkeeping Data
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
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 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 balance change.
Booking details cannot be modified once they have been created.
The following fields are mapped from the balance to the booking detail:
Balance Field | Booking Detail Field |
---|---|
Account | Account |
Amount | Amount |
Date | Booking Date, Payment Date |
Type | Type |
Id | Balance |
Payment Provider | Payment Provider |
Bank Account Id | Bank Account Id |
Write Off Reason | Write Off Reason |
Clearing Reason | Clearing Reason |
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 | Revenue Tax Deferred Unbilled Revenue Contra Account |
Booking Detail Account Invoice Invoice Line Item |
[BookingAccountRule] [BookingDate] [BookingTaxCode] [BookingTaxRate] [BookingType] [BpAccountNo] |
Balance | Payment Refund Prepayment Payout Write-off Contra 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.
Workflow
JustOn Billing & Invoice Management 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 much 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 Account
field 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 G/L Account Number for Payment Bookkeeping Data and Enabling Debtor 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
.
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-12345 | 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 | 12345 | 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-12345 | 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 | 12345 | 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 |