Invoice marked paid but no money

I have an invoice that shows paid via PayPal, however I don’t have any email confirmation from PayPal of a payment, nor was there a deposit into my account.

Is this issue common with 1.5.2?

I do have a call in to PayPal and I’m waiting for them to call me back. However the last time they held a payment, I received an email stating the payment was on hold. Of course this was two years ago.

If there is no proper confirmation that a payment was accepted from PayPal’s side the invoice won’t be marked as paid.
Also please check the database, there is a table called ip_merchant_responses.
Please search for the invoice ID and take a look at the merchant_response and merchant_response_reference fields.
The merchant_response contains an error message if there was one, the merchant_response_reference contains the internal PayPal ID that was generated for this transaction. This ID might be helpful with your contact to PayPal.

Yup it’s there.

This transaction couldn’t be completed. Please redirect your customer to PayPal.

My bigger issue, is that the invoice was marked paid.

I don’t want you to think i’m ungrateful for the software. I think IP is great, but somehow in the logic it updated the invoice to paid without the transaction actually completing.

Also, am I safe to manually undo the payment by removing the payment method and deleting the entry in ip_payments? I didn’t know if there was anything you’d want look at.

Well this shouldn’t happen.
I created a new ticket for that: https://development.invoiceplane.com/browse/IP-554

To correct the payment delete the payment itselfif there is one for the invoice. Then open your ipconfig.php file and change DISABLE_READ_ONLY=false to DISABLE_READ_ONLY=true. You can now edit the invoice and set the status to sent.

I now found some time to take a look at it and it seems to be a very weird issue. The thing is:

  • the function has a method that checks if the transaction was successfull on an API level and only if it will mark the invoice as paid.
  • if an invoice is marked as paid the internal merchant_response is not filled.

So your client paid via paypal, was redirected back to the site and InvoicePlane got the response, that the payment was successful because it was marked as paid. But… I ask me now how the merchant response was saved and why a payment that was delivered back as paid has an error.

Are you sure that there is only one payment that was entered? I cannot explain this issue in any way.

I had this issue too but only when using the live one, no issues with sandbox. I got this response “This transaction couldn’t be completed. Please redirect your customer to PayPal.”. I have tested a few scenarios:

  1. Pay using Credit Card (first time used for PayPal) via PayPal without a PayPal account
    Merchant Response: 1
    Invoice marked as Paid

Result: I did not received payment properly in my PayPal account

  1. Pay using Credit Card (not first time used for PayPal) via PayPal without a PayPal account
    Merchant Response: 1
    Invoice marked as Paid

Result: I did not received payment properly in my PayPal account

  1. Pay using Credit Card via PayPal by logging in to PayPal
    Merchant Response: 1
    Invoice marked as Paid

Result: I received payment properly in my PayPal account

  1. Canceling the payment for an invoice
    Merchant Response: 0
    Invoice not marked as Paid

Result: I did received payment in my PayPal account, and invoice is still tagged to correct status, merchant response was correct to “Customer cancelled the purchase process”

Test scenario 3 and 4 above are the ideal situation.