7.6. Process Invoice Payment

Eventually, you will receive payment from your customers for outstanding invoices. To register these payments, use the Process Payment application found in BusinessCustomerProcess Payment .


There is an alternative way of assigning a payment to (one or more) invoices where the payment transaction already exists, say in the case where transactions have been imported from a bank. There is no way to assign a payment to an invoice during the import process, so this must be done after transactions have been imported.

This can best be done starting from the asset account register holding the imported payment transaction (like your bank account). In that account, select the payment, right-click (control-click for macOS) and choose Assign as payment.... The payment window will pop-up, partly filled in with the information from the transaction. Fill in the missing information like the proper customer and invoice to complete the payment.

One caveat: the logic behind Assign as payment... won't properly detect credit note reimbursements and will wrongfully interpret such a transaction as a vendor bill.

The Process Payment application consists of:

7.6.1. Over Payments or Pre-Payments

If a customer overpays an invoice or pays for goods or services before they have been invoiced, Process Payment for the total amount received. GnuCash will then keep track of the over-payment (or pre-payment) in the A/R account and you can use the residual when paying the next invoice.

7.6.2. Partial Payments

Partial payments are possible too. Select the invoice to pay. GnuCash will automatically suggest that invoice's remaining balance as payment amount. Simply adjust that amount to what you want to pay.

7.6.3. Writing Off a Bad Debt


Please check with your accountant to ensure the following is acceptable in your region.

The usual way to do this is to process a payment for the invoice to a BadDebt account. Such an account would be an expense account. However, in GnuCash, you can't process a payment for an invoice directly to an expense account, so it takes two steps:

  1. Pay the invoice to an asset or liability account, such as your checking account.

  2. Change the asset or liability account, in the non Accounts Receivable split of the payment transaction, to the BadDebt expense account.


  • Remove all transactions from the A/R account related to the invoice, except for the invoice's transaction itself. This includes any payment transactions, and transactions between your BadDebt and A/R account.

    In case the payment has associated lot link transactionsa, remove those as well.

    If all is well, your Process Payment window for this customer should list the invoice the customer won't pay, and no prepayments.

  • Pay your invoice to an arbitrary asset or liability account. It can be your checking account. We will fix that in the next step.

  • Open the account register for your A/R account. For this invoice there should now be one payment transaction. If you are using GnuCash 2.6.0 - 2.6.4 there will also be one lot link transactiona.

  • Select the payment transaction and change the transfer account to your BadDebt account. Make sure to leave the transaction (eg by clicking on another transaction) to save the changes.

If all is well, your Process Payment window should still be clean: no pre-payments, and the bad debt invoice gone.


a GnuCash version

2.6.0 to 2.6.4

created lot link transactions which show in the A/R account register. This came with its own set of subtle issues.


had a flaw in the logic cleaning up the lot links.

It is recommended to upgrade to the latest (or at least 2.6.6) version, which fixes a lot of small problems. Once upgraded, please run ActionsCheck & Repair to clean up most of the lot link legacy. Don't forget to make a backup first just in case.

Distinction between Lot and Lot link


are used internally for relating payments to invoices. Lots themselves are invisible in the account registers. To see them you need to open the lot viewer, which can be found in ActionsView Lots… while in any A/R or A/P account register. Select a lot to see the Splits in lot.

Lot links

are transactions which you can see in your A/R and A/P accounts. They are unusual in the sense that all their splits are in one account (A/R or A/P). Each split in a lot link transaction is linked (hence the name) to an invoice or payment transaction by means of a lot.

See https://wiki.gnucash.org/wiki/Business_Features_Issues for more information.