Fresh from home series wins over Bangladesh, India and Australia this season, it will be the sixth time South Africa have toured Sri Lanka, having previously claimed series success in 1993 and 2014.
The first test will be played in Galle and the second in Colombo, followed by the five ODIs that start on July 29 in Dambulla. There will also be a single Twenty20 International played in Colombo on Aug. 14.
The original tour schedule had involved three tests, according to reports, but Sri Lanka Cricket asked for one of these to be replaced by an extended limited overs series that is more commercially viable.
“This will be a very important tour for us,” CSA acting Chief Executive Thabang Moroe said in a statement.