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.
Smith steps down as South Africa's T20 captain
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