The limited-overs tournament will be held at the Brabourne stadium in Mumbai, the Sardar Patel stadium in Ahmedabad, the Punjab Cricket Association ground in Mohali and the Sawai Man Singh stadium in Jaipur.
The ICC, which previously insisted on just three venues for the month-long event, okayed a fourth venue after the Indian board agreed to pay 200,000 dollars to the world body as compensation.
"The ICC had initially asked for a million dollars, but we convinced them to bring it down to 200,000 dollars," said Indian cricket chief Sharad Pawar.
Regular Test centres like Chennai and Bangalore were rejected by the ICC because of the threat of rain at that time, while the Eden Gardens in Kolkata declined to host matches.
The final programme for the October 7-November 5 tournament, organised by the ICC to raise funds for its developmental activities, will be unveiled in New Delhi on April 27.
The biennial tournament, regarded as a mini World Cup, features the six top limited-overs teams as on April 1, 2006 and two qualifiers drawn from the remaining four Test-playing nations.
Sri Lanka, the West Indies, Zimbabwe and Bangladesh will play each other on a round-robin basis from October 7 to determine the two qualifiers.
World champions Australia, England and hosts India have been drawn in group A of the main tournament along with the second-placed qualifier.
The other group comprises South Africa, Pakistan, New Zealand and the top qualifier.
Two teams from each group will make the semi-finals. The final takes place on November 5.
The West Indies won the last edition of the Champions Trophy two years ago defeating hosts England in the final.
The tournament is a prelude to the next World Cup that takes place in the Caribbean from March next year.