How can I ensure that I receive my payment from a client if I am working from home for an international client (not employment; a fixed-price job)? I want to ensure that I receive payment for my service. Should there be a contract that agrees that I will be paid? What if the client still doesn't want to pay? Thank you
Use some form of escrow agent:
Some freelancer sites provide payment escrow services (e.g. E-Lance). In this system the client puts money in escrow for the project in advance and then when they accept the project it forwards the payment to the provider.
Arrange a progress payment approach with the client where they pay at certain milestones rather than a single payment at the end of the project. Ideally you would have them pre-pay for each milestone before you start work on it. However, you could ask for payment after each milestone, which might be easier to sell to your client. It does leave some risk, but minimizes that risk somewhat.
You should absolutely have a contract between you and your client stipulating the quid-pro-quos of the arrangement. They get the product, you get the money.
First off, this contract should specify what you must do, and what they must do, for the contract to be "satisfied". This isn't necessarily just product for money; your client may be under deadlines to approve the product in various stages of work in process. Depending on the product, the client may be required to provide starting materials (like existing logos/slogans for advertising/marketing graphics), information on or access to computer systems (for software or infrastructure consulting, or accounting auditing), etc.
Second, if you provide a tangible product like graphics or software, the contract should clearly state that "intellectual property transfers on satisfaction of contract"; they don't own what you have made until they have accepted it and paid you accordingly. If they try to stiff you by taking what you made them and using it before you've been paid, you can take them to the cleaner's for copyright violations.
Third, you should structure a payment schedule; don't do too much for free. You can get the money in thirds, for instance; a third up front, a third at some defined halfway point and a third on final delivery and acceptance.
Lastly, you should stipulate that the client is responsible for all expenses incurred by you as a result of their failure to pay as stipulated, up to and including attorney's fees.
Definitely have a lawyer draft these agreements; contract law is a many-layered area of law with hundreds of years of case law and slightly different nuances in every state. A competent lawyer will know things that can and can't be stipulated in a contract, and if you try to do it alone you'll wish you hadn't when the contract's tossed out by a judge because of some technicality.
If they refuse to pay, get the lawyer on the phone and file suit. A well-written contract drafted by a competent lawyer, which you have lived up to on your end, will give your client no loopholes to slip through. As far as recovering damages, it shouldn't matter whether he's in the U.S. or not; if he does business in the U.S. then he very probably has money in banks that have to listen to U.S. courts (or at least court orders).