The Ohio Inspector General found that $34 million in requested refunds dating back several years were placed on pending status and therefore not paid out, according to the report, which said the practice violates Ohio tax law and dates to at least 1999.
"For years, the Ohio Department of Taxation has ignored the fact that they are holding taxpayer money that doesn't belong to the state," Inspector General Randy Meyer said in a statement.
The majority of money involved the corporate franchise tax, a former business tax that has now largely been replaced by Ohio's commercial activities tax. It also included sales and uses taxes and employers' withholding taxes.
The money represents a fraction of the $28 billion in tax revenue Ohio is expected to collect this year.
Thursday's report also said the practice of the Department of Taxation was not to inform taxpayers of any overpayments.
Last year, as the investigation was underway, the agency said it would begin alerting businesses when they've unknowingly overpaid taxes and help them reclaim their money.
At the time of the announcement in December, Gov. John Kasich and tax commissioner Joe Testa said the state would begin notifying about 3,500 taxpayers who may have overpaid by a total of up to $13.7 million.