The deal between playoff contenders was announced as the Blue Jays were starting their game in Boston on Monday night.
The 29-year-old Valencia hit .282 with two home runs and 11 RBIs in 36 games for Kansas City. He also has played for Minnesota, Boston and Baltimore.
Kratz will join the Royals for Tuesday night's game against Minnesota and Hendriks will be assigned to Triple-A Omaha. Infielder Christian Colon will be called from Omaha and catcher Brett Hayes has been designated for assignment.
The 34-year-old Kratz hit .198 with three homers and 10 RBIs in 34 games for Toronto.
The 25-year-old Hendriks was 1-0 with a 6.08 ERA in three starts for Toronto. He was a Triple-A All-Star this year at Buffalo, going 8-1 with a 2.33 ERA.