Smith announced he was stepping down from that role earlier this week.
Botha, 28, impressed as Proteas skipper after leading South Africa to a 4-1 away One-Day International series win against Australia during the 2008/9 season.
"I really enjoyed the captaincy when I stood in for Graeme before and I am proud to be offered the job now. I am looking forward to working with such a special team," Botha said in a statement.
Botha, who has played in three Tests, 57 ODIs and 21 Twenty20 matches, has had a controversial career, having been investigated twice by the International Cricket Council (ICC) for an alleged illegal bowling action.
South Africa's convener of selectors Andrew Hudson said Botha had all the qualities to succeed as captain.
"His appointment is part of the process of refreshing our Twenty20 squad and also deciding whether to follow the route of having different captains for different formats of the game," he said.
India face Aus, NZ in World Cup warm-up matches
'Kallis in RCB colours a big blow for Warriors'
South Africa to bid for 2020 Olympic Games
Injury forces Smith, Mascarenhas out of IPL 3
World XI to visit Pakistan: ECB chairman Clarke