[Freelancing] How To Make Sure Your Client Pays


I've been freelancing, making Android applications for about a year now (started out in '14). I made several applications, for various clients, both individuals and companies, one of which was an Italian mobile commerce company for which I developed three utility Android applications.
When you find clients over Fiverr, or similar websites, you are generally sure you will get your money for the work you do, and the website will resolve disputes, if any.

The problem arises when you communicate with your client over gmail, where he can thug you if he's a cheat.
The solution?

This is the ideal way to go ahead with the transaction.
1. [Negotiate Price] Communication between client and freelancer.
2. [Finish the app dev] Freelancer notifies the client the application is made.
3. [Send across developed APK] Freelancer sends apk to client.
4. [Payment] Client pays freelancer over Paypal, or predecided gateway.
5. [Code shared] If the client payed for the code, the freelancers sends it across only once he receives the payment.
6. [Both happy :D]

I've faced  a problem at step 4 many times. Once I send across the completed (unsigned) apk to the client, he generally takes weeks, almost months to respond to emails, and pay the due amount.

Cheated.
Here's how to solve this :
Let the application not work post a fixed date. That way, your client will be forced to pay you!
Yes, this has worked for me. The Italian company took its time, almost 2 months to pay, and that's when I learnt my lesson of not trusting every client, even if they're a popular big name in the industry. Or maybe it was just because they were Italian. No offence. :p

Here's the code for this :

public class HomeActivity extends Activity {

    @Override    
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        int year = 2016;
        int month = 2; /*Jan - 0, Feb - 1, March - 2 ..*/        
        int day = 10;
        Date date = new Date(year, month, day);

        if (System.currentTimeMillis() > date.getTime()) {
            /* APK expired activity */            
            setContentView(R.layout.activity_expired_apk);
        } else {
            /* Open app normally */            
            setContentView(R.layout.activity_home);
        }
    }
}

Hope this helps someone!

Comments

Popular posts from this blog

[Breaking News] AI takes over universe to calculate Pi

Firebase Auth | The Debug vs Release Signature Problem

Cold Showers