D.C. Mayor Muriel E. Bowser (D) fields questions from reporters in October. A complaint filed with the Office of Campaign Finance seeks an investigation into some contributions to her 2014 campaign. (Jabin Botsford/The Washington Post)

Months before D.C. Mayor Muriel E. Bowser is expected to announce her bid for re-election, her last campaign may be under official review.

A division of the nonprofit organization Public Citizen, which aims to limit the influence of money in politics, filed a complaint this week with the District’s Office of Campaign Finance, saying it found more than 20 instances in which individuals or businesses appeared to have given Bowser (D) more than the legal limit of $2,000 apiece.

Combined, the contributions could represent $31,500 in illegal funds to Bowser’s successful 2014 mayoral campaign, Public Citizen said.

Wesley Williams, a spokesman for the District’s campaign office, said the agency has received the complaint but would not comment further.

Ben Soto, Bowser’s campaign treasurer, said he had found only record-keeping errors among the contributions identified by Public Citizen.

In one instance, Soto said, a pair of $2,000 contributions from a developer and his son — Franklin Haney Sr. and Franklin Haney Jr. — mistakenly lacked the “senior and junior” that should have delineated the two in records filed with the campaign office. Both contributions were listed as coming from “Franklin Haney,” and to an address in Tennessee, where the company has an office. Calls to the company’s D.C. and Chattanooga offices were not immediately returned.

“There’s no story here,” Soto said. “We could have done a better job showing their first name, last name and middle initial, or that there was a senior and junior in the same household,” he said. “But like any campaign, we’re all human beings, and mistakes can be made.”

Bowser’s campaign received more than 7,000 individual contributions, totaling more than $3.6 million. By either count, the number in question is a fraction of a percent.

But the complaint draws new attention to the money Bowser’s team solicited and received from wealthy developers who have sought — and in some cases received — continued city business or new contracts under her administration.

Among them is Sanford Capital. The owner of 19 apartment buildings in the city has received millions annually through housing vouchers used by low-income residents, despite the fact that it owes the city thousands in unpaid fines levied because of housing code violations. In addition, the D.C. attorney general is suing Sanford for substandard conditions in two buildings.

The company donated $2,000 to Bowser’s campaign in 2013 and then gave another $1,000 about eight months later, according to public records.

In all, about 15 of the 23 contributions identified by Public Citizen appear to be cases in which developers or those in real estate, construction or health industries contributed to Bowser multiple times.

The practice is common in D.C. campaigns — and legal — because individuals and companies can each give up to $2,000.

A Washington Post survey of the contributions identified by Public Citizen show that in several instances, the campaign attributed donations to a company that, if recorded differently and spread between individual corporate officers, would have fallen within legal limits.

Those include contributions from Four Points, which recently won a city subsidy to build an affordable-housing complex in Southeast. Two campaign contributions of $2,000 were listed from the company for a total of $4,000 - twice the legal limit. But if that money was spread among the company’s partners, the donations would comply with campaign finance laws. An email to company executives was not immediately returned.

In another case, duplicate maximum contributions were attributed to Blue Skye Development. That was one of at least three companies that gave money to Bowser’s campaign that were connected to longtime Bowser supporter Bryan “Scottie” Irving.

Some of the companies contributed up to the limit, while others did not. Individually, Irving gave $500, far below the limit.

Irving was involved in a potentially lucrative city lease approved by Bowser’s administration for a family homeless shelter last year. The D.C. Council later scuttled the plan. Irving did not respond to an email regarding the contributions identified by Public Citizen.

In addition to the campaign, Irving, his family members and companies gave more than $15,000 to a political action committee, dubbed Fresh PAC, that Soto and others created after the campaign but later abandoned amid accusations of pay-to-play politics.

The office of campaign finance audited Bowser’s campaign at an early stage, but that review occurred before several of the repeat contributions identified by Public Citizen were made.

After Bowser’s campaign account was closed last year, Soto received a letter from the office saying that its audit division “had reviewed all relevant reports and statements” filed by the committee and that the committee was found to be in “substantial compliance” with city election law.

Williams, the agency spokesman, declined to elaborate on the extent of any closing audit. He added that campaigns are required to maintain all records for three years after a campaign is closed “should some issue arise that must be reviewed.”

Aquene Freechild, a co-director of Public Citizen’s Democracy Is For People campaign, called on the campaign office to investigate.

“If this is due to sloppy reporting, it’s an egregious failure by the Bowser campaign and the Office of Campaign Finance,” she said. “If it’s an abuse of the District’s campaign finance law, Bowser needs to be held accountable.”