A Batam ferry from Singapore advertises as S$28 to S$43 one-way, but that headline never includes the fees that hit before you board. By the time you add the S$10 Singapore passenger departure fee, the S$6 fuel surcharge that took effect on 12 March 2026, and the Batam seaport fee of about Rp100,000 (roughly S$10) charged on the Indonesian side, a one-way crossing usually lands between S$45 and S$55, and a return between S$75 and S$90 depending on operator. Sindo is the cheapest base fare, BatamFast and Majestic the most frequent. Bintan is a separate route from Tanah Merah and costs more. This guide gives the all-in 2026 numbers operator by operator, shows where every fee hides, and points out the cheapest realistic way across the strait. Figures are correct as of June 2026; fares and surcharges are revised often, so confirm the total on the operator's booking page before you pay.
Batam and Bintan are two different Indonesian islands reached by two different ferry systems, and people routinely confuse them. Batam is the close one, 45 to 70 minutes from Singapore, served by four operators from two terminals, and the cheaper trip. Bintan is further out, about 70 minutes from Tanah Merah, run mainly by Bintan Resort Ferries, and noticeably pricier. If someone quotes you a S$28 fare, they mean Batam.
The number that matters is not the ticket fare. It is the all-in cost after the three add-on charges that every operator passes through: the Singapore passenger departure fee, the fuel surcharge, and the Batam seaport fee on the Indonesian side. Most booking sites bundle these into the price you see, but the cheaper resellers sometimes show only the base fare, which is how a S$28 ticket quietly becomes S$50 at checkout.
Four operators run the Singapore to Batam route: Sindo Ferry, BatamFast, Majestic Fast Ferry and Horizon Fast Ferry. Sindo and BatamFast sail from both HarbourFront Centre and Tanah Merah; Majestic and Horizon are mainly HarbourFront. The base fares below are per operator as published in mid-2026, before the universal add-ons. Treat the all-in column as a planning estimate, not a quote, because the seaport fee is paid in rupiah and shifts with the exchange rate.
Sindo carries the lowest base fare at S$28 one-way and S$56 return, which is why budget travellers default to it. BatamFast, Majestic and Horizon cluster around S$43 one-way and S$76 return all-in, but they run more sailings, so you trade a few dollars for flexibility. None of these is a meaningful gap on a weekend trip, so frequency and timing usually matter more than the fare itself.
| Operator | One-way base | Return base | All-in return (est.) | Terminals |
|---|---|---|---|---|
| Sindo Ferry | S$28 | S$56 | ~S$80-90 | HarbourFront, Tanah Merah |
| BatamFast | S$43 | S$76 | S$76 (fees bundled) | HarbourFront, Tanah Merah |
| Majestic Fast Ferry | S$43 | S$76 | ~S$76 | HarbourFront |
| Horizon Fast Ferry | S$43 | S$76 | ~S$76 | HarbourFront |
This is where the maths goes wrong for first-timers. The fare is only one of four line items, and the other three are non-negotiable pass-through charges that apply no matter which operator you pick.
The Singapore passenger departure fee is S$10 per person from either HarbourFront or Tanah Merah, covering departure, security, system and admin charges. The fuel surcharge of S$6 per person leaving Singapore took effect on 12 March 2026 across operators; on the return leg it is charged in rupiah, around IDR 65,000. The Batam seaport fee on the Indonesian side is about Rp100,000, which the operators round to roughly S$10 per person. Stack those on a S$28 Sindo base fare and a one-way crossing is closer to S$50 in reality.
The cleanest way to avoid a checkout surprise is to read the price breakdown before paying. If the site shows only a fare with no departure fee or surcharge line, assume those get added later or collected at the terminal, and budget the extra S$20-something per person accordingly. Treating the whole trip as one budget line, the way a personal budget forces you to, stops these small charges slipping past unnoticed.
| Fee | Amount | When it applies |
|---|---|---|
| Singapore passenger departure fee | S$10 | Leaving Singapore (HarbourFront or Tanah Merah) |
| Fuel surcharge | S$6 (out), ~IDR 65,000 (return) | Both directions, since 12 Mar 2026 |
| Batam seaport fee | ~Rp100,000 (~S$10) | On arrival/departure at Batam ports |
If raw price is all you care about and your timing is flexible, Sindo's S$28 base fare is the lowest starting point, and booking the return rather than two singles shaves a little more. But the gap to BatamFast or Majestic is small once every operator's fees are loaded, so the real decision is frequency. BatamFast and Majestic run sailings roughly hourly through the day from HarbourFront, which means a missed boat costs you an hour, not a whole afternoon.
Resellers such as redBus or Klook sometimes undercut the operator counter with promo fares from around S$38 return, but promo tickets are usually fixed-date and non-refundable. That is fine if your dates are locked, and a trap if they are not, because a date change can mean rebooking the whole leg. Buy the cheapest fare only after your dates are firm.
Watch the JB alternative that some guides push. Routing through Johor Bahru to catch a cheaper ferry can look like a saving on paper, but once you cost the trip to JB, the checkpoint time and the extra transfers, it rarely beats a direct HarbourFront sailing for a Singapore-based traveller. The same discipline from our Johor Bahru budget guide applies: count every leg, not just the cheap one.
If your plan is a Bintan resort weekend rather than a Batam day trip, the numbers change. Bintan Resort Ferries runs the main service from Tanah Merah Ferry Terminal to Bandar Bentan Telani, the gateway to the Lagoi resort strip, and its fares are set well above Batam's. The crossing is about 70 minutes.
From BRF's published fares effective 12 March 2026, economy is S$62 one-way and S$100 return for an adult on regular dates, rising to S$110 return on peak or blackout dates such as holidays and weekends. Emerald class, with lounge access and premium seats, is S$89 one-way and S$154 return regular. Child fares (11 and under) run a little lower. On top of the fare, BRF lists levies of S$19 leaving Singapore and S$25 leaving Bintan per passenger, which are the Bintan equivalent of Batam's departure and seaport fees. So a regular economy adult return is roughly S$100 plus S$44 in levies, around S$144 all-in.
The practical takeaway: Bintan costs roughly double Batam per head, so it only makes sense when the destination is the resort itself, not just crossing the strait. For couples weighing a getaway against the cost, pricing the full trip the way our cheap travel hacks suggest, including ferry, levies, transfers and resort, keeps the weekend honest against your savings rate.
| Class | One-way | Return (regular) | Return (peak) |
|---|---|---|---|
| Economy | S$62 | S$100 | S$110 |
| Emerald | S$89 | S$154 | S$164 |
HarbourFront Centre is the convenient terminal: it sits directly above HarbourFront MRT on the North-East and Circle lines, so the cheap way in is the train, not a taxi from town. Tanah Merah Ferry Terminal at 50 Tanah Merah Ferry Road is not on the MRT; reach it by taking the train to Bedok or Tanah Merah and then SBS bus 35, which is far cheaper than a Grab. Arrive about an hour before your Batam sailing to clear check-in, baggage drop and immigration.
If you do take a ride to either terminal, a quick fare check pays off, since the first car that turns up is rarely the cheapest. The same logic from a Grab versus taxi comparison holds: compare before you book. On the Batam side, onward transport is by metered taxi or Grab from the port, so agree the fare or use the app rather than taking a tout's quote at the terminal door.
Singapore passport holders do not need a visa for Batam or Bintan and get up to 30 days per entry visa-free, with the clock starting on arrival. That alone saves the visa-on-arrival fee other nationalities pay. Singapore Permanent Residents holding a Blue IC from a visa-on-arrival-eligible country are also exempt from the VOA for short visits to Batam, Bintan and Tanjung Balai Karimun of up to four days, provided they show the physical Blue IC at immigration.
What does still apply is Indonesia's Electronic Customs Declaration (e-CD), which every traveller must complete within 72 hours of arrival. It is free, takes a few minutes online, and you need the completed form to clear customs on the Indonesian side. Skipping it is the cheap mistake that turns a smooth arrival into a queue. Make sure your passport has more than six months' validity on your entry date, since a near-expiry passport can get you turned away and the ferry fare is non-refundable once you miss the boat.
Batam and Bintan run on the Indonesian rupiah, and the worst rate you can get is at the ferry terminal money changer, which prices like an airport kiosk. Change a working amount at a good Singapore rate shop before you go, comparing the buy and sell columns the way our money changer guide lays out, so you are not handing over a poor margin on every note.
For card spend at resorts, malls and restaurants, a multi-currency or travel card with low foreign-exchange fees beats a standard credit card that adds a 3.25 percent or so foreign transaction fee on every swipe. Carry some cash for taxis, small warungs and the seaport fee, which is collected in rupiah, and keep your card for larger bills. Pricing the whole weekend in one place, with a simple money management habit, stops the ferry, levies, FX and food from each looking small while adding up to more than you planned.
Base fares run from about S$28 one-way and S$56 return with Sindo Ferry, up to S$43 one-way and S$76 return with BatamFast, Majestic and Horizon. The all-in cost is higher once you add the S$10 Singapore departure fee, the S$6 fuel surcharge from 12 March 2026, and the Batam seaport fee of about Rp100,000 (roughly S$10), so a real one-way crossing usually lands between S$45 and S$55.
Sindo Ferry has the lowest base fare at S$28 one-way and S$56 return. Once each operator's departure fee, fuel surcharge and Batam seaport fee are added, the gap to BatamFast, Majestic and Horizon narrows, so frequency and your preferred terminal often matter more than the few dollars of difference.
Three charges sit on top of the fare. The Singapore passenger departure fee is S$10 per person, the fuel surcharge is S$6 leaving Singapore (around IDR 65,000 on the return) since 12 March 2026, and the Batam seaport fee is about Rp100,000 (roughly S$10) collected on the Indonesian side. Some booking sites bundle these in; cheaper resellers sometimes show only the base fare.
The crossing is about 45 to 70 minutes depending on the route, with HarbourFront to Batam Centre nearer 55 to 70 minutes and the HarbourBay and Sekupang runs around 40 to 50 minutes. Door to door, add roughly an hour each way for check-in, baggage and immigration at the terminal.
Yes, noticeably. Bintan Resort Ferries from Tanah Merah charges S$62 one-way and S$100 return in economy on regular dates, rising to S$110 return on peak dates, plus levies of S$19 leaving Singapore and S$25 leaving Bintan. That works out to roughly double the per-head cost of a Batam crossing, so Bintan only makes sense when the resort itself is the destination.
No. Singapore passport holders are visa-free for stays up to 30 days per entry, with no visa-on-arrival fee. Every traveller still has to complete Indonesia's free Electronic Customs Declaration within 72 hours of arrival, and your passport must be valid for more than six months on your entry date.
Online booking on the operator or a reseller usually matches or beats the counter and locks your seat, which matters during peak periods when walk-up sailings sell out. Promo fares from around S$38 return are the cheapest, but they are fixed-date and non-refundable, so only book those once your travel dates are firm.
This is general financial information for Singapore, not personal financial advice. Figures change — verify current rates against the official sources above before acting. See our full disclaimer.