Just some thoughts because at the moment I have resolved all my outstanding payment issues.
There is little point to being selective about the jobs you take if you don't receive payment as agreed within a reasonable period of time. For an MSP to not pay you a bridge toll or bonus they agreed to is not only annoying, but you will find that with some MSPs and schedulers it appears to be almost routine. Now I recognize that we are all human and mistakes happen. When it was a mistake and you point it out, generally it will be handled quickly and graciously.
I would suspect that most of the MSPs out there work in no more professional an office than where you are working right now. Many are very small, perhaps one person, operations that will have, from time to time, cash flow problems. There is no specific regulation of this industry, so any discrepancies in your pay are for you to work out.
A few suggestions:
First, make sure you keep good records of both what you contracted for and what and when you received it. A shop sheet is good for this, but since many of these arrangements are done by phone or email, I usually ask the phone scheduler to confirm the details to me by email as "I'm not at my computer and I don't want to forget the job". Save the confirming email at least until you have been paid, but realize that not all schedulers will or can send the confirming email with pay details.
Second, make sure you see the bonus added to your job before you perform it. There are some MSPs where it will not show up on your job and for these, as you come across them, it is more important to keep a record of who you spoke to and when and what was agreed.
Third, when the check comes in short, contact your scheduler or the MSP immediately. Be as detailed as possible. "I was promised X and only got Y" is not enough detail. "When I spoke with Suzy on November 6th about job# 12345, she indicated the pay was A and offered a bonus of B. She also indicated I would be reimbursed C for the bridge toll and D for the required purchase. This totals to X and I was only sent Y, which I received today on check #1234."
Fourth, when an MSP indicates a payment period of "30 days", begin contacting them after 45 days. When they indicate the 15th of the month following the month in which the job was completed, you should start contacting them no sooner than about the 25th of the month.
Fifth, keep your eyes on the forums for "issues" with MSPs with whom you are registered. One problem within 6 months is no big deal because we are all human and accidents happen (and shoppers can not follow instructions). Several unresolved problems should cause concern. I feel very lucky that I had only one small job unpaid when CheckMark had their problems, I had none outstanding when Mystery Diner went out of business, and there is a company I am not comfortable shopping for at the moment because they have lengthened their pay cycle and reduced their fees (both of which together make me concerned that they will stay solvent long enough to pay me).
Record keeping is your best defense to being paid and being paid in a timely fashion.