This is an old thread, and you all may have already found a solution since then, but I had the same issue and ran into some issues using Zapier and recently discovered that the "Invoice Updated" trigger works when a payment is received/applied to an invoice. Depending on what you were looking for the received payment trigger to do/carry forward to future steps, I thought this might be helpful info.
For our use case, I mainly wanted some quickbase records updated as paid when an invoice balance was 0, so adding that filter to the "Invoice Updated" trigger to only run if the invoice balance was 0 did the trick.
I tried adding a filter to only run if {{a.balance}} <> {{a.$prev.balance}}, so it would only run specifically when the balance changed to 0, but that logic doesn't seem to be working at this point and it still triggers even when there's a non-numerical update to the invoice and the balance is 0. Thankfully we are a really small company and don't update invoices after they're paid very frequently, so it shouldn't be too much of a step run suck to not have the extra logic barrier.
------------------------------
Stacy
------------------------------