The 38-year-old all-rounder, who has scored 13,174 runs and taken 292 wickets in 165 Tests, remains available for one-day international matches.
"It's been an honour and a privilege to have been part of the team since making my debut 18 years ago," he said.
"I've enjoyed every moment but the time is right to hang up my Test whites
He has accumulated his runs at an average of 55.12, scoring 44 centuries and 58 half-centuries.Kallis is South Africa's highest Test runscorer and the fourth highest in Test history, behind India's Sachin Tendulkar, Australia's Ricky Ponting and Rahul Dravid of India.
His 292 Test wickets have cost an average of 32.53 runs, while his tally of 199 catches ranks him second behind Dravid in the Test list.
Kallis has also accumulated 11,574 runs from 325 one-day internationals and is hopeful of playing in the 2015 World Cup.
"It wasn't an easy decision to come to, especially with Australia [visiting for a Test series in February 2014] and the success this team is enjoying, but I have made my contribution in this format," he continued.
"I don't see it as goodbye because I still have a lot of hunger to push South Africa to that World Cup in 2015 - if I am fit and performing."
South Africa coach Russell Domingo said: "The impact Jacques has made on the South African cricket has been immense, not just as a player but as a human being. I'm not sure we will ever see another player of that stature very soon.
"He has ambitions of playing in the 2015 World Cup and it will be important for us to manage him accordingly so that he is in prime form leading into the tournament."
Kallis, who had spells with Middlesex and Glamorgan in the 1990s, scored 34 in the second innings as South Africa fell eight runs short of completing a world record run chase in the drawn first Test of their two-match series with India.
The second Test starts in Durban on 26 December.