Investigators found near the scene a handwritten letter that claimed responsibility for the attack, prosecutor Sandra Luecke said.
One explosive device failed to go off, Luecke said.
Dortmund police Chief Gregor Lange said police have not ruled out any possible motives for the attack, which led to the match being postponed until Wednesday night.
Spanish defender Marc Bartra, 26, suffered injuries to an arm and hand, the team said. Bartra, who has played 29 games in all competitions for Dortmund this season, was treated at the scene and hospitalized.
The team later said Bartra was in surgery for a broken radius — a bone in the forearm — and for “bits of debris lodged in his hand.” He will not play Wednesday.
“We hope that he will make a speedy recovery,” Dortmund captain Marcel Schmelzer said on the team website. “The prevailing mood in the Black and Yellow camp seems to be to play the match tomorrow for Marc.”
The team left its hotel about 7 p.m. local time (1 p.m. ET) for the UEFA Champions League quarterfinals match, a Dortmund police spokesman said.
Between 40 and 50 people, including the trainer and medical support staff, were on board the bus. A preliminary investigation indicates the explosives “could have been hidden in a hedge near a parking lot,” according to an update posted on the Dortmund police website.
Video from the scene showed police escorting American midfielder Christian Pulisic away from the bus, apparently unharmed. Other images showed head coach Thomas Tuchel and members of the team in training gear, accompanied by police with long guns, standing on the side of the road. Some of the players looked stunned.
“Our task now is to process this because in less than 24 hours we need to play,” Dortmund CEO Hans-Joachim Watzke said, according to a CNN translation. “That’s our job. There is no alternative. It’s an unlucky situation but there is no other solution.”
The location of the blast was roughly 13 kilometers (8 miles) from Westfalenstadion, also known as Signal Iduna Park.
As news of the incident spread inside the stadium, fans of Dortmund’s opponent, AS Monaco, stood, clapped and chanted “Dortmund!”
No one inside was in danger, police said. Security was heavy after the explosions and the stadium was evacuated.
Sport officials condemned the attack.
Football’s world governing body sent its regards to the wounded player.
The match, which will be played at 18:45 CET (12:45 p.m. ET), is the first of a home-and-away series that will send the winner to the semifinals.