For this project:
Did they refuse to pay actively ("We won't pay you."), or passively (No replies to emails.) The latter might be incompetence.
As others mentioned, specific legal advice depends on respective jurisdictions, but an offical lawyer's letter sometimes wakes up legal when accounting is drifting.
Did you deliver the final access to the code / server / credentials? If not, gently bring servers, DBs, platforms to a halt pending final payments.
Future projects:
Contract, always.
Up-front commencement payments, always.
Price yourself higher in the initial quote, and ask for staged payments, such that by the time your delivery schedule is 50-75% done you are 100% paid.
You control the source code accounts, you control the server credentials, you control the database access credentials, you hand over final access after the final check has cleared.