If you happen to use Square (I'm sure the others provide this as well), you can simply create a payment URL that allows customers to add any amount. You can also add a custom field for "Invoice Number" so that info is captured with the payment. Add that URL to a button on your website and you're good to go! I use this for my tax/accounting clients who provide services so they can offer online payments to their customers.