Celtic boss Neil Lennon revealed on Tuesday that the 20-year-old right-back had been allowed to speak to another club after a "robust offer" was made.
He added that Frimpong had made his desire to leave Celtic clear and was not open to extending his contract.
Leverkusen reportedly made an £11.5million bid for the former Manchester City youth player.
Celtic wrote on Twitter: "Jeremie Frimpong has joined @bayer04_en on a permanent basis. We would like to thank @JeremieFrimpong for his contribution to the club and wish him all the best for his future career."
The German club confirmed that Frimpong had signed a four-year contract.