Some clients simply negotiate in bad faith.
I see you're a web developer, so I've got some experience to share with you.
Write down a simple contract, a couple of pages from a template should be enough and you get:
- a way to show you are a professional
- clear rules for both parties, and make sure to include
- scope of work
- dates (for payment, start of work, end of work, last payment)
- payment
- delivery
- late delivery fees
- late payment fees
- less scammers will try to get you to work for free
Processing the payment processes in a manner that is easier for both
Payoneer is amazing, I've been using it for the past years. However, they are not the best for user experience, and sometimes clients are just dumb and don't know how to use new things.
Instead of sending him the payment link, try sending the account details for the receiving account and ask him to make a regular bank transfer.
After you've received a payment, make sure to send the client an invoice with your client's details, your company's (or individual's) details, paid amounts and dates.
https://www.freshbooks.com/invoice-templates
Handling late payments and Handling the situations when a client has stopped responding or refusing to pay even when the work has been delivered as requested
The contract dictates everything, so you should let your client know in advance how it is all going to work:
- deliver only once the project is done
- keep the project in your own hosting servers until delivery
- preferably, setup a huge banner that says "this is a test site, all data is automatically cleared by the end of the month"
as a remote worker, there's nothing you can really do if the client decides to ignore you or not pay, you could pursue legal action but that will be very expensive and probably not worthy for you, so cover your vulnerabilities by conditioning your work to the money.
the same goes for your client, the client is afraid of paying you money and you disappearing, so you also need to give the client some safety measures like, asking for a small part of the money (like, 20%) and then start working, send the client regular updates so that the client feels safe that the work is being done.
you have a few good options here:
1 - 50% before you start working, 50% before delivery
2 - payment by milestones, this works for bigger projects
3 - monthly payments, for bigger projects you can condition the payment amount for a fixed rate and work hours, that way you can get some rest and mental health and have a stable work environment
Late fees should be agreed upon on the contract
- give your client room to wiggle out of paying late fees, for example:
"the amount should be fully paid by March, 25th, after that each late day incurres late fees in the amount of 1% of the total project value. If THE CLIENT knows beforehand that it will not be able to make the payments in time, a payment deadline can be extended by x days, conditioned to a formal notice by email from THE CLIENT to the email [email protected] ". or something like that.
Even with that, the client didn't pay
If the client stops paying, you stop working.
Ask a third party to guarantee payment eskrow
This is one of the most important services that a freelancing site offers. They collect the money from the client, then signal you can start working, once you are done, you signal to the client that you have completed the work and unless the client starts a mediation request, you will receive the money even if the client disappears, because the money is already in the hands of someone else.
An eskrow service will also charge you a fee for being an intermediary to this transaction, so you can't really run from the fees.
Good practice, in this case, is to get a stable client relationship in a freelancing site, or use a freelancing site as a trusted person until you know better who you're working with. It's better to lose 10-20% of the money in fees than to lose 100% of it by being made a fool out of it.
Charging hourly
You can charge by project, contract, pay as you go. How so?
Project
You make a quote based on the amount of work and you estimate(guess) the amount of hours, multiply by your hourly rate and then you get the project value.
In this case, the hour tracking is just so the client can see a 'progress bar' and keep up with what's happening on the project. You can also track your hours by tasks so you can generate data and actually know which parts take more time.
Contract
On a contract you would set on a weekly/monthly set of hours, with or without buffers, I'll give you a concrete example:
I've got a contract that I bill for 10/hours every month, regardless if they ask me to do anything or not. Sometimes they ask me to join calls, sometimes they ask me to perform tasks, but every now and then I get the 10 hours of payment with virtually no work at all. It's almost like a retainer contract, they pay for the availability.
This one has no buffer, because once the month is over, if they didn't ask for any work, the hour are gone.
A contract with buffer is a bit more complicated because it requires some math, and clients are notoriously bad at math, so you would probably have to demo out this idea using a spreadsheet or power point.
Here's how it work, the contract says: 20 hours of work a month, with 3 months of buffer time.
What does that mean?
At the beginning of every month you add 20 new hours to the hour buffer, and you expire any unused hours that were added up to three months ago.
If a client needs more than 20 hours of work that month, you can work knowing that you are agreed on a buffer.
So at any given point in time the buffer can be positive up to 60 hours or negative up to -60 hours.
So, this is a very good contract for
- clients that want some kind of support
- clients that don't want to manage you constantly
- people who don't want to negotiate work all the time
- you not be assigned bullshit work just to get the hours of work done
Pay as You Go
You set on an hourly rate with a client, they give you work and you start working, then you send them the bill later.
Accounting work hours
Regardless of how you'd like to set up your work, you would always be tracking hours using some sort of software.
- If you're working by project, hours are tracked to the project
- If you're working by contract, hours are tracked to the period of time (week, month)
- If you're working in a pay as you go format, hours are tracked by task
In any case you will need a way to track the hours, this has so many answers that I'll leave up to you to decide what works best for you, but here are some suggestions:
1 - paper, log the start and end time of your work on a paper or notebook, then later you can add those to a spreadsheet software. This seems archaic, but paper helps you remember to start/stop tracking which can be easily missed and ruin your tracking.
2 - spreadsheet, use a google spreadsheet to track your hours, use four columns: 1 client, 2 task/period/project, 3 start timestamp 4 end timestamp. Later you can create formulas and graphs to get some more insight into your date. Google spreadsheets also let you do some programming on them, so you can even have a local script that posts to google's API and adds a row to your spreadsheet.
3 - pomodoro, this will both help you with start/stop tracking and try to get you more productivity at the same time. Pomodoro apps usually have some sort of report that let you export the amount of pomodoros you've worked in a given task, then you can get that info and use it in a spreadsheet somewhere
4 - you can use an actual timetracking software.
Here are some options I like:
- Trello, they've got some options that allow you to track your work times using cards and power-ups. Web, mobile, desktop, integrations
- Toptracker, provide for free by toptal, it's a full timetracking software. It has some a weird setup because it's thoguth to be used mainly by clients inviting developers, but it's easy to learn and it has a timetracking app you can download to start/stop your clock. It also gives you lots of reports, let's you add screen shots and has built in invoicing.
And loads more options on other questions here in freelancing:
https://freelancing.stackexchange.com/questions/tagged/time-tracking
Tracking hours you are working for clients
Does anyone know of any free time tracking and invoicing software geared toward freelance software developers?