Cash purchases and sales

When goods/merchandise are bought on short term credit, a purchase invoice is required. However, when I make a cash purchase, no invoice is needed (as explained here:

Apparently, using the standard (non-manual) invoice methods in Tryton, to reach the “Pay” stage of a purchase, an invoice is always created.

Does the functionality exist to make cash transactions without creating an invoice, which would automatically create and link the associated account and stock moves?

It is really a bad idea to want to create such cash purchase (cash sale is probably forbidden everywhere for any business) because you will not have any tax reporting and if it is goods or assets buy you will not have any inventory move.
But you can set any account on the statement line so you can choose a expense account.

Suppose I sell stationery supplies at a retail store. If I go to a wholesaler and pay for the merchandise upfront, I will get a receipt from the seller. Now if I record this in Tryton, a purchase invoice will be created in the process. And then payment will be recorded. Is this your recommended procedure?

As a business you have to request an invoice otherwise you lose the taxes.

If you record just an invoice, you will have no stock.

Only if you record it.

So if I go ahead with the existing method, posting the invoice will create

  1. An account move for a credit transaction
  2. A stock move

Then when I “Pay” the invoice, the cash transaction will be recorded, and the liability will be paid off.


Not sure what you mean by this. I’m using just the basic “tryton_account” module, so please could you point out if this requires an additional one.

You should use the purchase module which will install the account_invoice and also the stock one. I think you should first look at the usage of the purchase module and do the same for the account invoice and the stock one.

This should give you an overview of how the system is designed.

He is pointing to the account_statement module which is normally used to book transactions related to cash or banks.

Yes, I’m using the purchase module and I have read the guidance. It’s just that when the invoice lines are posted, it makes a bookkeeping entry involving accounts payable (liability), when all that’s needed is a cash transaction.

I’ll have a look at the account_statement module.

Many thanks to you and @ced for the timely replies.

And what is the problem? You just register the payment just after.

I get your point.

But what if I wish to differentiate between the following two types of purchases:

Type a). Cash purchases: those purhases for which I pay cash first (full advance payment, or % advance payment) and then the goods are shipped. This is typical when buying from sellers who only sell on credit to businesses with whom they have a longstanding relationship.

Type b). Credit purchases: Purchases for which I receive goods first and then pay later.

For Type b), the standard procedure of posting an invoice is fine. But what about Type a) ? What’s the best way of going about this?

In this case you will create first the cash move (to account that you have paid something in advance) and the register the invoice latter when you receive it. After receiving the invoice you will be able to mark it as paid by reconciling it with the previous payment.

This can be easly achieved by booking cash or banks transactions with account_statement module:

Right, so I’ll create an entry for advance cash payment with account_statement module.

However, the invoice that will be received later will only be for the remaining amount that needs to be paid (i.e. total cost of goods received minus advance payment). Will I be able to create such an invoice using Tryton?

No the invoice must be for the full amount otherwise you are missing accounting document for the full amount. This is the basis of accrual accounting.

So based on the above, l should create the full invoice and post it at receipt of goods. So basically I’ll be doing this:

Then I will reconcile this with the cash payment made earlier. That’s the proposed solution, right?

Yes, the full amount (along with product details) will be there, but there will be a deduction for the advance payment after the total.

This can happen only if you have another invoice for the advance payment amount. So you will have to register also this one.

Basically what would be ideal would be an invoice that would look roughly like this

  Product         Qty       Price        Amount         
       A           1         100            100
       B           2         100            200
     Total                                  300 
   Advance                                 (150)
  To Pay Today                              150

However, the solution are recommending is:

Am I correct?

On your example you should create a move for the advance payment, then book the full amount invoice and reconcile it when the resulting amount has been paid.

The reconciliation will link the two payments with the payable account of the supplier

I should point out however, that while this works, it is less than an ideal solution. Why not have something like the account_deposit module which automatically recalls prior customer deposits at the invoice stage.

If such functionality exists for customer deposits, then why not for deposits to suppliers?

There is no restriction to use account_deposit on supplier invoice. But the main difficulty is that the supplier may decide the use the deposit differently from the way Tryton will compute it (with the wizard).
But you can definitely use the deposit account to book the deposit.