Zuma "has cancelled his visit to Indonesia in order to attend to matters at home relating to the attacks on foreign nationals," his office said.
The decision came amid growing alarm within South Africa -- and rising outcry abroad -- over a surge of attacks against foreigners that have left several people dead.
More than 30 arrests were made overnight today around Johannesburg alone.
"We reiterate our message that there can be no justification for the attacks on foreign nationals. These attacks go against everything we believe in," Zuma said in the statement on his cancelled visit.
Anti-foreigner violence has spread after erupting in the country's eastern port city of Durban several weeks ago, displacing thousands and sparking alarm at the United Nations and in neighbouring countries.
Most of the victims targeted "are refugees and asylum seekers who were forced to leave their countries due to war and persecution," the United Nations High Commissioner for Refugees noted.