I worked in accounts payable, so here is why this is happening, which changes what you should do.
Your contact is almost certainly not the person who pays you. He approves; someone else runs the payment. When an invoice sits, it is usually one of four things, and none of them is a decision not to pay you:
- It never reached accounts payable — it is in your contact's inbox, unforwarded
- It is in their system but unapproved, waiting on your contact to click something
- Something on it does not match — no purchase order number, a name that does not match their vendor record, the wrong entity
- It missed a payment run and is queued for the next one
That last one is why net-30 often means forty days in practice: many companies pay on fixed days, so an invoice that misses one waits for the next.
So the highest-value move is not a firmer email to your contact. It is contacting accounts payable directly and asking a specific question: "Can you confirm you have invoice 1043 dated the 2nd, and tell me which payment run it is in?" That is not escalation, it is routine, and AP deal with it all day. Ask your contact for the AP email — people give it willingly because it takes the problem off them.
Nine times in ten you find it was never entered, and it is paid within a fortnight.