Bangladesh Test captain Shakib Al Hasan has been given a two-year ban for "failing to report corrupt approaches".
The 32-year-old accepted three charges relating to requests for "inside information for betting purposes".
The approaches came during an international tri-series also involving Sri Lanka and Zimbabwe in January 2018, and that year's Indian Premier League.
Shakib is the top all-rounder in the one-day international rankings and has played 338 matches for Bangladesh.
He was the third-highest run-scorer in the 2019 Cricket World Cup and hit two hundreds, including against England in Cardiff in the group stage.
One year of Shakib's ban is suspended and he will be able to return to the sport on 29 October 2020.
Shakib told the anti-corruption unit of the International Cricket Council (ICC) he "did not act upon", "provide any information" or "receive any money or other reward" for the approaches.
He has been punished for failing to disclose "full details of any approaches or invitations received to engage in corrupt conduct", a statement from the governing body said.
"I am obviously extremely sad to have been banned from the game I love, but I completely accept my sanction for not reporting the approaches," said Shakib, who is also Bangladesh's Twenty20 captain.
Alex Marshall, the general manager of the ICC's anti-corruption unit, said: "Shakib Al Hasan is a highly experienced international cricketer. He has attended many education sessions and knows his obligations under the code.
"He should have reported each of these approaches."
Last week, Shakib led a strike by Bangladesh's players who are calling for better pay, improved facilities and changes to domestic one-day tournaments.
He has been replaced as Test captain by Mominul Haque and as T20 skipper by Mahmudullah.
The ICC has published a list of written reasons behind its decision to ban Shakib following interviews the all-rounder had with the ICC's anti-corruption unit on 23 January 2019 and 27 August 2019. These include: