Managing Payment Entries
JustOn registers invoice-relevant payment transactions that have occurred in external systems as payment entries. Each payment entry record represents a payment operation registered at a bank. See the payment entry as a "container" for external payment information, which must finally be saved as a balance record.
There are two ways to acquire payment entries:
- importing bank statements from CSV files or
- retrieving banking transactions from finleap connect.
Matching payments
Users assign the payment entries to invoices, which creates corresponding balance records of the type Payment
and associates them with both the (converted) payment entry and the target invoice. The payment entry itself is not directly linked to the invoice. It is the balance association, which reduces the payment amount of the invoice, or, if balanced out completely, sets the (open) invoice Paid
.
Info
Using an integration with an external payment provider, like PayPal or Stripe, JustOn directly creates payment balance records for the captured amount.
In addition, you can manually set an invoice Paid
using the function Register Payment, which also directly creates a payment balance record.
This documentation covers
- the payment entry import from CSV files, and
- the banking transaction retrieval from finleap connect.
Payment entry matching and assignment
After importing payment entries, you assign them to invoices. This is a two-step process:
(1) First, JustOn automatically matches payment entries to existing invoices and dunnings. This produces a list of likely matches based on the following main conditions:
- The invoice has the status
Open
, or, respectively, the dunning has the statusClosed
. - The invoice number or, respectively, the dunning number is found in the reference field of the payment entry.
JustOn compares the contents of the payment reference with specified fields of the matching target objects. If a matching invoice number is found, it always takes precedence over other possible matches. For further details, see Matching Logic.
(2) Second, after reviewing the matching proposals, users assign the payment entries to invoices or dunnings. This creates balance records of the type Payment
, which are assigned to the corresponding invoices or dunnings. The originally imported payment entries are set to the status Converted
.
If there is no matching invoice or dunning but a matching account, a payment entry can be assigned to the corresponding account. This creates a balance record on the account. Doing so, you can, for example, handle pre-payments received from customers before the invoices are issued.
Be aware of the following payment matching specifics:
- For the matching to work, the payment entry field
Payment Provider
must be either empty or set tofigo
. - Overpayments are split along the open invoice amount: one part covers the open invoice amount and is assigned to the invoice, whereas the remainder is assigned to the account.
- If there are more than one open invoices found for an account, JustOn sorts them by their date and settles the oldest one first.
- If a payment entry matches a cancellation invoice or a canceled invoice, JustOn uses the account of the originally canceled invoice as the matching target. Any created payment balances will be assigned to this account, without relating to the canceled invoice or the cancellation invoice.
- If a payment entry matches a paid invoice, JustOn uses the account of the invoice as the matching target. Any created payment balances will be assigned to this account, without relating to the paid invoice.
- In case of a chargeback, JustOn includes invoices of the statuses
Paid
,Settled
,Closed
andCanceled
to find a likely match. -
For payment entries assigned to statements (dunnings or account statements), JustOn distributes the payment amount to the invoices referred to by the statement. Again, the invoices are sorted by their date, with the oldest one settled first.
In case of an overpayment, JustOn creates an account balance for the remaining amount.
For information about payment entry data, refer to the Payment Entry object reference.
Importing CSV Payment Data
Payment Amount Calculation
When creating the payment entry from imported payment data, the effective payment amount is calculated as follows:
Field | Description |
---|---|
Credit | For deposits from customers. An empty value equals 0. |
Debit | For payouts to customers. An empty value equals 0. |
Payment Amount | Credit - Debit |
Info
The invoice amount or credit amount is matched against the calculated payment amount.
Settling a credit of -10 €
Import
Credit | Debit | Payment Amount |
---|---|---|
10 | -10 |
or
Credit | Debit | Payment Amount |
---|---|---|
-10 | -10 |
Settling an invoice of 10 €
Import
Credit | Debit | Payment Amount |
---|---|---|
10 | 10 |
or
Credit | Debit | Payment Amount |
---|---|---|
-10 | 10 |
Starting CSV Payment Data Import
Note
Make sure that the CSV file import is configured according to your CSV file format. For details, see CSV Import Configuration.
- Open the Payment Entries tab.
-
Click Import CSV File.
Selecting a CSV file for a payment data import -
Select the CSV file to be uploaded, and select the corresponding CSV import configuration.
Optionally, specify the rows to be skipped during the import.
CSV files to be imported must have a unique name.
-
If applicable, select
Import as Chargeback
.This option forces all imported payment entries to become chargebacks, bypassing the automatic chargeback detection, which works only if the conditions for the automatic chargeback detection are met.
Select this option only if you are sure that all entries of the selected CSV file are chargebacks.
If a CSV file contains chargebacks and other entries, you can set a
Filter Expression
in the CSV Import Configuration to selectively import the chargeback rows only. -
Click Upload File.
This starts the import process. The Info section shows the process progress.
After the import is completed, JustOn displays the list of payment entries.
JustOn writes the name of the original CSV file into the
Info
field of the produced payment entry. This helps avoid importing the same file twice.
Import configuration example
The following examples illustrate possible import configurations. To understand the examples, make sure you are familiar with JustOn's approach to the payment amount calculation.
Be aware that the CSV structure and the corresponding import configuration depend on your environment.
Assume a simple CSV file with just four columns: date, invoice number, credit (absolute amount), debit (absolute amount).
2019-10-12;201900023;150,00;0
2019-10-13;201900045;260,00;0
2019-10-16;201900078;0;80,00
Note that the first two entries represent payments, but the third entry represents a payout. So you need this field mapping to correctly set the corresponding payment entry fields:
1 BookingDate__c;2 Reference__c;3 Credit__c;4 Debit__c
This creates the following payment entries on import:
# | Booking Date | Reference | Credit | Debit |
---|---|---|---|---|
1 | 2019-10-12 | 201900023 | 150,00 | |
2 | 2019-10-13 | 201900045 | 260,00 | |
3 | 2019-10-16 | 201900078 | 80,00 |
Now assume the same payment operations (two payments and one payout) in a more complex CSV file with headers and more information (which you may not need). Note that there is only one column for the amount with both positive and negative values. So you will, consequently, fill one field with these values – namely the one that handles the same positive or negative values with the same payment or payout effect.
Date;Type;Reference;Recipient/Payer;Account;Amount;Currency
2019-10-12;standing order;201900023;Firma;DE75512108001245126199;150,00;EUR
2019-10-13;direct debit;201900045;Individuel;FR7630006000011234567890189;260,00;EUR
2019-10-16;credit;201900078;Zadruga;BA393385804800211234;-80,00;EUR
To extract the information to produce the same payment or payout effect, you need this field mapping:
Date BookingDate__c;Reference Reference__c;Amount Credit__c
This creates the following payment entries on import:
# | Booking Date | Reference | Credit | Debit |
---|---|---|---|---|
1 | 2019-10-12 | 201900023 | 150,00 | |
2 | 2019-10-13 | 201900045 | 260,00 | |
3 | 2019-10-16 | 201900078 | -80,00 |
Managing finleap connect Banking Transactions
JustOn integrates with finleap connect to retrieve banking transactions, which are to be stored as payment entries.
Info
The finleap connect integration is available as of JustOn 2.55 and requires at least the Salesforce Enterprise Edition.
Reference: finleap connect Data Conversion
finleap connect stores banking transactions in the figo Connect Transaction object. Upon data transfer, JustOn automatically maps the retrieved transaction JSON data to the Payment Entry object.
The following table shows which data is written to the payment entry.
Payment Entry Field | Value | Description |
---|---|---|
ExternalTransactionId__c | FIGO + <transaction_id> |
External ID that is used to uniquely match a finleap connect transaction |
TransactionNo__c | <transaction_id> |
Internal finleap connect transaction ID |
PaymentProvider__c | figo |
Name of the payment provider |
Status__c | New |
Status for newly created objects |
Debit__c | <amount> if the value is positive |
The debit amount |
Credit__c | <amount> if the value is negative |
The credit amount |
Reference__c | <purpose> |
Purpose text, can be empty if the transaction has no purpose |
CustomerName__c | <name> |
Name of originator or recipient |
BankAccountId__c | <account_id> |
Internal finleap connect account ID |
BookingDate__c | <booking_date> |
Booking date |
ProviderSpecificData__c | complete transaction JSON data | The retrieved finleap connect transaction JSON data for this object |
The JSON data of the figo Connect Transaction object contains a number of additional fields. JustOn can write additional data values to custom fields of the payment entry. Each JSON value is processed in the following way:
(1) The JSON field name is converted to a Salesforce field name, where
- underscores are removed,
- if the JSON value belongs to a child object, the field name is prefixed with the field name of the parent object, connected by an underscore,
- the string
FIGO_
is prepended, - the string
__c
is appended.
(2) If there is a matching field on the Payment Entry object, the field value is written to this field.
(3) The type of the Payment Entry field must match the type of the JSON field value, like Text (255)
for bank_name
, Currency
for amount
or Date
for value_date
. JustOn automatically converts the JSON value to the type of the Payment Entry field.
Example field conversions
JSON Field | Salesforce Field Name | Type |
---|---|---|
account_number | FIGO_AccountNumber__c | Text (255) |
value_date | FIGO_ValueDate__c | Date |
end_to_end_reference | FIGO_EndToEndReference__c | Text (255) |
additional_info.gross_amount | FIGO_AdditionalInfo_GrossAmount__c | Currency (13,5) |
When retrieving finleap connect transactions from the banking server, the response may contain a list of deleted transactions. For these transactions, JustOn also creates payment entries with the following data:
Payment Entry Field | Value | Description |
---|---|---|
ExternalTransactionId__c | FIGO + <transaction_id> |
External ID that is used to uniquely match a finleap connect transaction |
TransactionNo__c | <transaction_id> |
Internal finleap connect transaction ID |
PaymentProvider__c | figo |
Name of the Payment Provider |
Status__c | New |
Status for newly created objects |
IsDeleted__c | true |
Indicates that the corresponding transaction is deleted |
Retrieving finleap connect Banking Transactions
Before processing your banking transaction data, you must retrieve them from the banking service. You can retrieve transactions for a specific bank account and period. JustOn stores each transaction as a payment entry record.
Info
To retrieve banking transactions, you must be a registered user of finleap connect. On first use, the Retrieve finleap connect Transactions button redirects you to the finleap connect registration page.
Note
Make sure of the following:
-
Use one finleap connect account only to retrieve banking transactions for your Salesforce org.
finleap connect distinguishes banking transactions using user-specific IDs, so the same banking transaction is not unique to multiple finleap connect user accounts. This is why retrieving transactions with multiple finleap connect user accounts may duplicate transactions upon retrieval, which would, consequently, produce duplicate payment entries for the same banking transaction.
-
Users who trigger the data retrieval from finleap connect must have online banking access to the relevant bank accounts.
To retrieve transaction data, finleap connect establishes online banking connections. With PSD2, making online banking connections requires strong customer authentication, so the user must be able to authenticate the bank account accesses.
-
The button Retrieve finleap connect Transactions must be available on the payment entry list view.
- Open the Payment Entries tab.
-
Select a list view.
Note that the list view
Recently Viewed
does not display the button Retrieve finleap connect Transactions. -
Click Retrieve finleap connect Transactions.
To access your banking service account, you must authenticate yourself to the provider.
If you retrieve transactions for the first time or if your authentication has expired, you are redirected to the finleap connect login page:
- Specify your finleap connect credentials.
- Select the bank accounts that you want to access.
-
Click Connect.
This redirects you the Retrieve finleap connect Transactions page.
-
On the Retrieve finleap connect Transactions page, select the bank account from which you want to retrieve the transactions.
You can specify a finleap connect Transaction Filter for each account or finleap connect Transaction Content Filters to filter the retrieved transactions by its contents. If available, the filters are applied automatically when retrieving transactions.
-
Define the period for which you want to retrieve the transactions.
-
For the period start, you can either select the checkbox
Start with transactions since last transfer
or specify a date.If you leave the start date empty or have selected
Start with transactions since last transfer
without existing transactions for the selected period, the retrieval starts with the first available transaction. -
For the period end, you can specify a date. If not set, the current date is used by default.
-
-
Click Retrieve.
This retrieves the banking transactions for the specified account and the specified period from the bank server and creates the corresponding payment entries. The field
Payment Provider
of the produced payment entries is set tofigo
.If a payment entry with the same finleap connect transaction ID has already been retrieved, it is updated.
Info
If there is a large number of transactions to be transferred, JustOn recommends to retrieve the transactions in smaller packages. Select the checkbox Start with transactions since last transfer
and specify a reasonable end date in the past. This limits the number of retrieved transactions to a manageable amount. Then select a later end date and repeat the retrieval until all transactions are retrieved.
Deleting finleap connect Payment Entries
You can select and delete payment entries retrieved from banking transactions.
For your convenience, the Delete Payment Entries page allows for creating finleap connect Transaction Content Filters automatically based on your selection. JustOn displays the options for creating the filters if at least one payment entry that has been created by a finleap connect transaction retrieval is selected for deletion.
Info
You can adjust the payment entry list view to show only payment entries that have been created from banking transactions, using the field Payment Provider
, which is set to figo
, as a filtering criterion.
- Open the Payment Entries tab.
-
Select a list view.
Note that the list view
Recently Viewed
does not display the button Delete. -
Select the checkboxes next to the payment entries you want to delete.
-
Click Delete.
Leaving all checkboxes unmarked deletes all entries. Note that in this case, the content filter creation is not available.
-
Optionally, configure the content filter creation on the Delete Payment Entries page.
Use this option with care. Be aware that once created and activated, the filter will exclude all matching entries in the future. To deactivate or delete the filter, you need administrative access to the custom settings.
- Select the
Create Transaction Content Filter
checkbox to enable the filter creation. -
Define the filter condition.
Select whether the payment entry field
Customer Name
orReference
is used for the filter creation.JustOn creates a filter for each unique value of the selected payment entry field, except there is already a corresponding filter.
-
Select the
Delete all matching Payment Entries
checkbox to apply all new and existing active filters to all retrieved finleap connect-based payment entries.If, for example, you create a filter with the content
John Doe
, then JustOn will delete all existing payment entries that match the contentJohn Doe
, even if you have not selected them for deletion.Following the options section, the Delete Payment Entries page shows a table that lists the new and existing filters that match the selected payment entries. For new filters, the table allows to edit the filter name (by default, the first 30 characters of the filter content value) as well as to deactivate the filter. Existing filters cannot be modified.
- Select the
-
Click Continue.
This deletes the selected payment entries and, if the option
Delete all matching Payment Entries
is selected, also all other finleap connect-based payment entries that match the active new and existing filters.
Forcing finleap connect Authorization
You can force the authorization to the finleap connect banking server before retrieving transactions or to redo an existing authorization, for example, if you need to access other bank accounts.
Note
Make sure that the button Force finleap connect Authorization is available on the payment entry list view, see Adding Authorization Button.
- Open the Payment Entries tab.
-
Select a list view.
Note that the list view
Recently Viewed
does not display the button Force finleap connect Authorization. -
Click Force finleap connect Authorization.
You are redirected to the finleap connect login page:
- Specify your finleap connect credentials.
- Select the bank accounts that you want to access.
- Click Connect.
This redirects you to the Payment Entries tab.
Matching Payment Entries
Matching logic
Basically, the matching implementation assumes that you want to balance out an open invoice amount. This is why by default, JustOn assigns a credit payment amount to an open invoice (or, conversely, debit amounts to open credits). For details, see Payment Amount Calculation.
To find the correct assignment target, the automatic matching process compares all words (strings separated by spaces) that are contained in the Reference
field of the payment entry with specified fields of matching target objects. The custom setting Payment Matching Fields determines which fields of which objects to consider, controlling the matching scope.
The matching process involves multiple passes.
The basic procedure compares the payment entry Reference
content with invoice fields. To this end, JustOn ships pre-defined matching settings for the invoice number, the IBAN and the account number:
Name | Source | Field | Reference Match Expression |
---|---|---|---|
Invoice Number | Invoice__c |
Name |
|
Invoice IBAN | Invoice__c |
BankAccount__c |
[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30} |
Account Number | Invoice__c |
Account__r.AccountNumber |
Should this pass yield no results, a second one is performed: JustOn searches fields of related objects in order to find the correct invoice, like a customer number from the account.
Info
JustOn compares the payment reference with all specified fields. A matching invoice number, however, always takes precedence over other possible matches.
Note that the order of the matching field definitions is irrelevant to the matching process. In the first pass, all invoice fields are examined, in the second pass all other fields.
For the payment matching to succeed,
- avoid specifying multiple invoices per payment operation, and
- prevent line breaks, space characters or semicolons from breaking the invoice number in the reference string.
Info
Importing payment entries as output by accounting systems (rather than bank statements) helps facilitate the payment matching in JustOn.
Usually, no customization is needed. Depending on your data or business requirements, you may need, however, to modify the matching logic. In this case, make sure that you use only fields that are set to be unique, that is, whose value can only exist once in your org. Otherwise you may produce poor results or break the matching logic.
For details about customizing the matching logic, see Payment Matching Fields.
To support return debits or other chargeback operations, JustOn allows to handle chargeback payment entries. Assigning a chargeback payment entry creates a balance of the type Chargeback
, which offsets a payment balance. Consequently, assigning a chargeback balance to a paid or settled invoice will set the invoice back to the status Open
.
Executing Matching Procedure
Note
Make sure that the matching fields are configured according to your payment data and target object. For details, see Payment Matching Fields.
To trigger the automatic matching process:
- Open the Payment Entries tab.
- From the list view picklist, select
New
. -
Select the checkboxes next to the payment entries you want to match to target objects.
Not explicitly selecting payment entries includes all listed payment entries.
-
Click Match.
- Select the checkboxes next to the targets to which you want to match the selected payment entries.
-
Click Continue.
This executes the automatic matching process.
Executing Assignment Procedure
Info
The assignment procedure requires a matching process before actually assigning the payment entries to invoices.
If matches are not created as intended, modify the reference and repeat the matching process. Once all matches are created correctly, you can proceed to the assigning process.
To finally assign matched payment entries to target objects:
- In the Payment Entries tab, select
Matched
from the list view picklist. - Review the matches.
-
Select the checkboxes next to the payment entries you want to assign to target objects.
Not explicitly selecting payment entries includes all listed payment entries.
-
Click Assign.
- Select the checkboxes next to the targets to which you want to assign the selected payment entries.
-
Click Continue.
This creates balance records of the type
Payment
, assigned to the corresponding target objects, and sets the selected payment entries to the statusConverted
.
Assigning batch bookings
Customers may use batch bookings (or consolidated payments) to pay for multiple invoices at once.
Assume the following example: There are three invoices for an account, INV001
, INV002
and INV003
, with an open amount of 100 € each. Now the customer pays 300 € in one transaction, specifying the reference INV001, INV002, INV003
. Settling the three invoices involves three steps:
(1) Applying the usual matching and assignment procedure, you have JustOn match the payment entry with the oldest invoice (INV001
) and split the 300 € payment, creating a 100 € payment balance on the invoice and a 200 € payment balance on the account.
(2) Now you manually set the second invoice Paid
using the function Register Payment, which assigns another 100 € of the available balance amount on the account to the current invoice (INV002
).
(3) Finally, you repeat the operation Register Payment for the third invoice, manually assigning the remaining 100 € to INV003
.
That is, when handling consolidated payments or batch bookings, JustOn can only settle one of the involved invoices automatically using the matching and assignment procedure. The remaining invoices must be set Paid
manually using the Register Payment operation.
Info
JustOn checks existing balance records for the specified payment provider and transaction no. If Payment Provider
is set to figo
and the value of Transaction No.
matches the value of Transaction No.
of the retrieved payment entry, the balance record is considered a "finleap connect balance" and therefore subject to the following procedure:
- If there is already an existing balance record that matches the retrieved payment entry, JustOn sets the payment entry to the status
Converted
but does not create a new balance record. This prevents duplicate payment matching. - If the
Is Deleted
checkbox on the payment entry is selected and a balance object that matches the payment entry exists, JustOn deletes the balance record and sets the payment entry to the statusConverted
.