The collision happened yesterday when the bus was attempting to cross rail tracks in the city of Anahuac, Nuevo Leon, state civil protection chief Jorge Camacho told AFP.
The accident occurred just after 5:00 pm local time at Camarones station, near the border with the United States.
Two children were among the 16 dead, said Mayor Desiderio Urteaga, although other local officials warned that the final toll could be nearer to at least 20 because some passengers were trapped after the crash.
Nine women and five men were identified among the dead, in addition to the two children, Camacho said.
More From This Section
Of the 30 people injured, 22 were taken to hospitals in the nearby border town of Nuevo Laredo, around 60 kilometres away.
The bus, which normally transports around 40 people, was traveling with 60 passengers, as it made its way from Nuevo Laredo to the northern city of Nueva Rosita.
Camacho said an investigation was underway to determine whether the bus driver was trying to beat the train when the vehicle was struck.
There was no fog or rain in the area at the time, he said.
Prosecutors were already at the scene.