It is understood Sane will sign a four-year deal worth around £80,000-a-week.
Sane made his international debut in November and helped Germany reach the Euro 2016 semi-finals.
But he informed Schalke sporting director Christian Heidel last month that he wanted to join City and work with Guardiola.
Schalke had been holding out for a fee in excess of £40m and bosses from both clubs have spent the last few weeks negotiating a price.
Sane is a product of the Schalke youth system and made his debut for them in April 2014.