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.

pe_match
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

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 status Closed.
  • 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 to figo.
  • 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 and Canceled 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.

  1. Open the Payment Entries tab.
  2. Click Import CSV File.

    pay_entry_import
    Selecting a CSV file for a payment data import

  3. 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.

  4. 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.

  5. 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.

    See Adding Data Retrieval Button.

  1. Open the Payment Entries tab.
  2. Select a list view.

    Note that the list view Recently Viewed does not display the button Retrieve finleap connect Transactions.

  3. 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:

    1. Specify your finleap connect credentials.
    2. Select the bank accounts that you want to access.
    3. Click Connect.

      This redirects you the Retrieve finleap connect Transactions page.

  4. 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.

  5. 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.

  6. 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 to figo.

    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.

  1. Open the Payment Entries tab.
  2. Select a list view.

    Note that the list view Recently Viewed does not display the button Delete.

  3. Select the checkboxes next to the payment entries you want to delete.

  4. Click Delete.

    Leaving all checkboxes unmarked deletes all entries. Note that in this case, the content filter creation is not available.

  5. 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.

    1. Select the Create Transaction Content Filter checkbox to enable the filter creation.
    2. Define the filter condition.

      Select whether the payment entry field Customer Name or Reference 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.

    3. 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 content John 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.

  6. 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.

  1. Open the Payment Entries tab.
  2. Select a list view.

    Note that the list view Recently Viewed does not display the button Force finleap connect Authorization.

  3. Click Force finleap connect Authorization.

    You are redirected to the finleap connect login page:

    1. Specify your finleap connect credentials.
    2. Select the bank accounts that you want to access.
    3. 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:

  1. Open the Payment Entries tab.
  2. From the list view picklist, select New.
  3. 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.

  4. Click Match.

  5. Select the checkboxes next to the targets to which you want to match the selected payment entries.
  6. 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:

  1. In the Payment Entries tab, select Matched from the list view picklist.
  2. Review the matches.
  3. 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.

  4. Click Assign.

  5. Select the checkboxes next to the targets to which you want to assign the selected payment entries.
  6. Click Continue.

    This creates balance records of the type Payment, assigned to the corresponding target objects, and sets the selected payment entries to the status Converted.

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 status Converted.