Sometimes in business, you may receive a payment in advance from a customer, or you may have to pay an advance to your vendors before you place an order. As soon as you receive the payment in the bank, create a bank statement and reconcile it, as it is a payment in advance from the customer; don't select the counterpart at reconciliation.
When you have a partner linked to the entry without a counterpart, you will get the VALIDATE button instead of the RECONCILE button. Click on the VALIDATE button to process those entries; that will be considered as an advance from the customer or to the vendors. Let's take an example where I receive 5000 from China Export as an advance. Now take a look at the following screenshot:
Assume that after a few days the customer places an order after the payment is received. Create Customer Invoice, as soon as you confirm the invoice. At the top of the invoice, you will get the message You have outstanding payments for this customer. You can allocate them to mark this invoice as paid.
Odoo will let you know the balance available for the customer that you can assign to the current invoice:
Until the 5000 credit is not consumed completely, you will get a message on each invoice to consume the outstanding credit. As soon as you pay the invoice with the outstanding credit, the invoice will go to the PAID state.