The 30-year-old, who featured in the recent Test series against England, has been released from his contract with the United Cricket Board of South Africa (UCBSA), freeing him to play for the first division County.
"I have thought long and hard about how best to plan my future in cricket and am delighted that the opportunity has arisen for me to make a real contribution to an English County," van Jaarsveld said.
"I'm looking forward to working with (Kent captain) David Fulton and his team with the aim of bringing success to the Club."
Van Jaarsveld played nine Tests for his country after making his debut in 2002, scoring 397 runs at an average of 30.53. He also featured in 11 One-day Internationals, scoring 124 runs at 20.66.
He decided to retire from international cricket after learning that his chances of further selection were limited.
The UCBSA said the decision to end van Jaarsveld's contract, which had been due to expire in April anyway, had been taken by mutual consent.