The 27-year-old Germany international will undergo a medical once he returns from Bayern's training camp in Qatar this week before signing a contract, Schalke said in a statement on Tuesday.
Badstuber, once seen as the most versatile defender of his generation having earned a starting spot at Bayern in 2009, has played only a few dozen matches since tearing his cruciate ligament in 2012.
He suffered a string of injuries after that which put his career on hold and dropped him further down the pecking order at the German champions.
Schalke are 11th in the Bundesliga, which resumes in 10 days following a one-month winter break.
News that makes sense
Your trusted source for staying up-to-date with the world around you. Get free daily news updates and analysis, straight to your inbox.
(Reporting by Karolos Grohmann; Editing by Toby Davis)
