Refunding a deposit with respect to an invoice

Version ie <v5.10.30>

Environment <Docker/Shared Hosting/Zip/Other> Docker

Checklist

  • Can you replicate the issue on our v5 demo site https://demo.invoiceninja.com or Invoice Ninja? Yes
  • Have you searched existing issues? Yes
  • Have you inspected the logs in storage/logs/laravel.log for any errors? Not applicable

Describe the bug

I’m looking for guidance on refunds with respect to a fully paid invoice. If I issue a refund then the invoice is being changed to unpaid and impacting the entire financials.

Steps To Reproduce

  1. Create an invoice for $200.
  2. Apply 2 separate payments of $150 & $50.
  3. Invoice status shows $0 balance/fully paid.
  4. Refund the payment $150
  5. Invoice switches back to unpaid with a due amount of $150.

Expected Behavior

Additional context

The context is, in my case, I do collect a deposit amount for each of my order and refund the same after certain period. How do I safely issue the refund back without impacting all the financials. Any help is appreciated. @hillel

Screenshots

Logs

Hi,

I’m not sure I understand, if you refund $150 from a $200 invoice shouldn’t the balance be $50 and the status be changed from paid to unpaid?

You are right. In my case I do have the actual cost of services/products and the deposit in the same invoice and I collect the payment. However, I refund the deposit back to the customer after certain period. So, I would like to understand if there is a better process to safely accept & refund the deposit without impacting the financial reports once the transaction is fully settled.

One option may be to issue a credit rather than apply a refund?

I’m running into a similar issue I think although the entire payment has not been applied. I need to refund the unused amount of a payment while some of it is applied to invoices. The invoices are not being refunded, but the unused amount. I think the payments are too tied down to invoices as I can start a refund process without selecting an invoice which I don’t want to do.

Credit still entails the customer to use that in a future order right. But my scenario is that we collect & refund the deposit for every transaction separately.

One approach I’ve tested is:

  1. I’ve a separate line for deposit in the invoice and process the deposit payment also separately.
  2. Change the deposit amount to 0 once the transaction is settled.
  3. Refund the deposit payment.
  4. Mark the invoice as paid as the net due balance becomes 0 after the refund.

This is partially clean, but it is still not marking the invoice in Paid status (even with 0 balance). So, I’ve to manually change the status to Mark as Paid and it is triggering another payment for $0 & another email to customer.

This is why I was looking for if someone else may have run into the similar situation and any cleaner approach to tackle this.