Take out a credit card for about 3 months, and pay it on time. Even if you just use R100 or so, and pay it back.
In 2015, earned enough to get a smartphone for R319 per month, but Telkom wouldn't give me a contract. My credit rating was not 'bad', it was non existant, i.e. the bureau didn't have any info on me.
So I took the phone from FNB, since they did not do any credit check, and they can see the money movement in my account.
Check the experian and mytransunion websites. It should show 12 month activity on your credit rating
Eventually, I took out a credit card, and checked my credit score later, it was up to date.
If you are declined a credit card for the same reason, then this won't work
