In addition to on-the-spot fines, offenders now face being placed on the register for 10 years under the legislation approved by 42 senators with no opposition, the ATS news service reported.
Those who pay up would stay on the list for two years provided they did not get caught without a proper ticket again during this period.
The register would be managed by individual public transport companies, such as Swiss Federal Railways (SBB), with the union of public transport, an umbrella group.
Last year, the federal data protection agency discovered that SBB had violated Swiss privacy laws by storing information about fare dodgers going back to 1999.
A total of 250,000 names were on the list, according to the SonntagsZeitung newspaper.
SBB acknowledged that the names were supposed to have been removed after two years but were not because of technical mistake.
It is not clear how the planned new registry would square with Switzerland's data protection act.
The senate, which has representatives from each of the country’s 26 cantons, also backed measures to fine beggars when a transport company bans such activity, ATS said.
Action against beggars would only be taken if there is a complaint.
The transport legislation has been already approved by the lower house of parliament (house of representatives), although contrary to the senate it favours blanket penalties for begging on trains and buses.
That issue will return to the lower house for further debate.
The senate also approved a lower house motion that would give transport police online access to information for checking the identities of passengers.
The police would have access to data kept by border guards over such information as asylum seekers and people with visas to visit the country.
The move is meant to eliminate the need to detain people at police stations in cases where ID is an issue, ATS reported.