The 22-year-old former Real Madrid playmaker has agreed a four-and-a-half year contract with the Basque club and will be presented at the start of next week.
No fee has been confirmed but reports suggest Sociedad could pay up to 4.5million euros for Canales, who was once regarded as one of Spain's top prospects but has seen his progressed checked by injury.
A statement on www.realsociedad.com read: "Real Sociedad have reached an agreement with Valencia and with Sergio Canales for the signing of the young Cantabrian midfielder until June 30, 2018.
"Sergio Canales has already passed his medical prior to signing and will be officially presented next Monday."
Canales started his career with home-town club Racing Santander and made his Primera Division debut as a 17-year-old before Madrid signed him in 2010 in a deal reportedly worth around five million euros.
After making only a handful of appearances for Madrid, he joined Valencia on loan in 2011 before making the move permanent in 2012. He struggled to tie down a first-team berth at the Mestalla though and his progress was badly hampered by two serious knee injuries which sidelined him for significant spells.
In total, Canales has played 109 competitive games in his career, scoring 12 goals, while at international level he has represented Spain at all levels up to the Under-21s.
Sociedad are sixth in the Primera Division standings and through to the semi-finals of the Copa del Rey.