The match was scheduled to start at 15:00 CET but the toss was delayed indefinitely and the umpires eventually decided there was no prospect of play in the sodden coastal city.
The match was to be the first on India's all-format tour to South Africa, with further T20 matches to come in Gqeberha (formerly Port Elizabeth) on Tuesday and Johannesburg on Thursday.
They will then switch format for three One Day Internationals between December 17th and 21st, while the first test will start on December 26th in Pretoria, with the second on January 3rd at Newlands in Cape Town.