Also stay in the loop with what's going on through these awesome links:
I made a mistake in processing 100% of a payment, when I only meant to process 50% of a payment on an invoice through the virtual terminal. When I refunded the partial payment to the client, the initial invoice reflected the entire amount had been paid. Now, I have to create an entirely new invoice in order to process the remaining 50%. If a refund is issued on an invoice, you need to fix this so that the invoice that the end-user is using reflects this accurately.