That's not really how contracts work. A contract is only "void" if it contains something fundamentally illegal, or if someone was forced to sign it. And that would be determined in court, not automatically.
The guy who promised to pay is breaching the contract by not paying, and the contractor's recourse is to sue him in civil court for the money.
That depends very much on the terms of the contract and how the rights to the work were approached. If the rights were only to transfer upon payment, or not at all, then this action is entirely appropriate.
It sounds very much like this was a freelancer creating a product, not a contractor providing work.
The guy who promised to pay is breaching the contract by not paying, and the contractor's recourse is to sue him in civil court for the money.