Usually contracting with a client is pretty straight forward and simple . . . a contract is a good idea . . . but for straight forward projects it can be as simple as an email exchange outlining the scope and quote. 50% upfront is pretty standard and then 50% upon completion then deliver the code/product after the final payment (keep it on your hosting for reiview/final ok.) That said best practice is to always setup a simple contract, I don't always though and if the total is less than $1k I don't expect you're going to take them to court to uphold their end of the contract especially overseas . . . typically you can keep everyone happy and receive payments using an incremental review/payment. 50% up front, then 50% at the end or maybe two 25% milestones. If you get some payment up front and keep code on your server till final payment you're pretty well covered. If they balk at 50% get 25% upfront . . . or do a quick 25% milestone.

The goal is a combination to see they are paying . . . have them view the work . . . see that they are happy and want to move forward. Then you just keep moving milestone to milestone.

You might run in to issues on paypal occasionally but not often. If you have a string of emails from the same email address they send payments from you can usually submit that string of emails and paypal will dispute and win the charge back. I understand your concern but paypal is simple and fast. Just make sure to ask for an email indicating the project was completed successfully and they are happy with the work if you're worried about it.

Wire transfers are a pain, you could setup a domain name/SSL and use stripe for payments but they could always request a charge back. In the states most clients are happy to just mail a check (make sure they clear before sending the code over/going to far)

For the scraping app . . . note in the scope that at some point the website being scraped will change and the scraper will have to be updated. Can you setup a monthly fee to monitor that part of the app. Build in an automated email if the scrape fails and you can fix it as part of your monthly fee (setup via stripe or paypal (gasp!). Or have a maintenance fee already quoted for making those updates each time. They should understand that the format of a 3rd party site is out of your control/and their control and will require some tweaks occasionally. Try for monthly, recurring revenue is always best.

For tax records just track your side business income and expenses. In the states they are required to send you a 1099 for work totaling over $600 in a year. See getting an EIN number below that you can use on your W-9 they need to generate your 1099. You'll most likely file a schedule C or C-ez along with your 1040. It's not real elaborate they only ask for totals. Just keep invoices and wire/paypal/stripe records to verify your numbers if needed.

If you're worried about your address, get a UPS store address. To protect your Social Security Number you can get an EIN number using your name as the sole proprietorship name. This is useful for affil. programs or anything else that generates revenue to minimize exposing your SSN.

When you do use a contract I usually note that the client can use the delivered code as they see fit and that I retain the right to use and re-use portions of the code provided on past, current and future projects. Most code is modular and re-useable and every developer has modules they re-use.

Also add to your contract that you aren't responsible for lost revenue or potential revenue resulting from delays or downtime. And that you will guarantee the product/code is functional and you will resolve any defects with in the first 90(or 180) days. (if their project is super time sensitive you can provide them with a proposal that is 20x your quote if they want a guaranteed delivery date that they feel will impact them significantly financially if it's not met. Occasionally I've ran in to a client that thinks they are losing $20k/week because their project is delayed.

Relax most clients are trust worthy and just want a well developed project delivered on time and are happy to pay for that. There are bad apples out there but not many. If you get a bad feeling about a potential client it's usually wise to trust that and pass on the project.

Good luck in 2015.