Booking Trains: Websites and Station Tickets
Train ticket booking in Bali: the short answer
Train ticket booking does not apply inside Bali, because the island has no railway. No passenger rail service operates on the island, so there is nothing to select on a booking screen. Train booking matters when your itinerary includes Java, where the railway network is concentrated. For a Bali–Java journey, you combine road travel to the western port, a car ferry crossing to Java, and onward ground transport to a railway station. A train ticket covers only the rail segment.
That distinction prevents a common planning error: searching for a direct Bali–Yogyakarta or Bali–Surabaya train and treating the ferry as though it were part of the same ticket. It is not. Decide first whether a railway leg adds value to your route, then book each separate movement with enough time between them.
What train travel can and cannot do from Bali
Most of Indonesia’s railways are on Java, rather than Bali. On Java, trains connect major cities including Jakarta, Bandung, Semarang, Yogyakarta, Surakarta (Solo) and Surabaya. This makes rail useful for a mainland itinerary that links several of those places. It does not make rail a practical way of getting around Bali itself: there is no Bali station, no rail timetable and no island train ticket to select.
Rail may still fit a longer trip that begins or ends in Bali. The western port of Gilimanuk is connected by car ferry to Ketapang, on the Java side of the Bali Strait. From Ketapang you need a separate onward transfer to reach a station serving a longer intercity journey. A traveller arriving by train in East Java has to reach the ferry terminal and cross to Bali before continuing by road. The ferry and the railway are distinct legs, with separate boarding points and separate tickets.
For a short Bali holiday, adding this chain solely to ride a train usually consumes more of the trip in transfers than a Bali-only plan would. It becomes more sensible when Java is itself a destination, for example when you want to travel overland between Yogyakarta and Surabaya, or when you are pairing a Java visit with Bali at one end. The right comparison is the whole door-to-door journey, including the time spent reaching the port and the station, rather than the train segment in isolation.
Choose the railway segment before buying tickets
Start with the cities and nights you actually want on Java. A route such as Jakarta to Yogyakarta is a substantial intercity journey, not a day excursion from Bali. A route between Yogyakarta and Surabaya also takes real time on the mainland, and the station you need depends on the train and the destination. Check the exact departure and arrival stations shown for the service you select. City names can have more than one station, and a ticket to one station does not take you to every address in that city.
Do not buy an attractive-looking train departure until the Bali side is workable. If you are travelling from Bali, identify how you will reach Gilimanuk, how you will cross to Ketapang, and how you will get from the Java ferry terminal to the railway station. If you are travelling towards Bali, work backwards from the rail arrival: allow time to leave the station, reach Ketapang and board the ferry, then continue across Bali from Gilimanuk. Each hand-off adds uncertainty, so a tight connection can turn one late vehicle or a queue into a missed departure.
For a journey built around the train, consider an overnight near the port or station rather than forcing every leg into one day. That is particularly useful when an international flight, a long road transfer and an intercity departure would otherwise depend on one another. A separate overnight costs a night of the itinerary, but it gives each ticket a realistic margin and makes a disruption easier to absorb.
When tickets open and what to check
Ticket sale windows can differ by date and by service. Do not assume a fixed number of days ahead. Search for the intended date on the operator’s official channels once it appears, and verify the departure date and station before paying.
Before completing a booking, check these details on the selected service:
- Origin and destination stations: match them to the city and onward transfer you have planned, not just the broad city label.
- Travel date and departure time: compare the displayed date with the local calendar, especially if you are booking from another time zone or the journey crosses midnight.
- Passenger identity: enter each traveller’s name and identity details exactly as requested. A mismatch can complicate checks at the station.
- Train class and seat: choose an option that suits the duration and the group. If travelling together matters, make the passenger selection in one booking where the system allows it, then inspect the seat allocation.
- Booking code: save the confirmation and booking reference somewhere you can retrieve them without a reliable mobile signal.
Use the operator’s official channels or an authorised sales point, and make sure the confirmation you receive carries a valid booking reference. A search result or a reseller listing on its own does not hold a seat. Do not treat a screenshot of a search result as a finished booking.
Booking as an overseas visitor
Foreign visitors can plan an intercity train journey as well. Keep the identity document for the person travelling at hand and copy the name carefully. If a field rejects a document number or a country selection, do not substitute another passenger’s details to get through the form. Resolve the input problem through the booking channel before travel, while the ticket can still be checked or corrected.
Use one consistent spelling of each passenger’s name across the booking and the travel documents. Long names, multiple given names and punctuation can be handled differently by forms, so check the final confirmation rather than assuming the preview saved exactly what you typed. For a group, confirm that each passenger is attached to the correct seat and that the booking reference covers everyone. Keep the booking reference accessible offline as well as in the account or email used to buy the ticket.
Booking interfaces and payment methods can change, so do not build a trip around a particular card or app flow until you have completed a transaction successfully. If a payment appears to fail, check whether a ticket was issued before trying again, because repeated attempts can create confusion about which booking is active. What matters is a booked itinerary with the correct passenger, date, route and booking reference.
Plan the Bali–Java transfer as separate legs
Gilimanuk and Ketapang sit on opposite sides of the Bali Strait. A typical overland connection involves travelling across Bali to Gilimanuk, taking the car ferry to Ketapang, then arranging local transport onward in East Java. The ferry does not deliver passengers to an intercity railway platform. Leave time to disembark, orient yourself and complete the next transfer, and do not set a train departure for the moment you expect the boat to arrive.
The same logic applies in reverse. A train ticket ending in East Java does not include the drive to Ketapang or the ferry to Gilimanuk. On reaching Bali, you still have a substantial road journey to destinations such as Denpasar, Ubud, Sanur or the south-west coast. If you are heading directly to the airport, place a generous buffer between arrival in Bali and a flight. A sequence of separate tickets moves the risk of a missed connection onto you, so build in slack at every hand-off.
Use the Bali ferry and fast boat guide to understand how the crossing differs from faster passenger services, and the guide to getting around Bali to plan the road portion after landing on the island. If the trip starts or ends at the airport, the Bali airport guide helps you place that arrival or departure within the wider itinerary. Each one covers a leg that a rail booking leaves out.
At the station: make the ticket usable
Arrive at the station identified on the ticket, with enough time to find the correct entrance and departure area. Large city stations can serve many trains, so check the service name, destination and departure time on the station displays rather than following a train number from memory. Keep the booking reference and the passenger’s identity document available for checks. If your booking offers an electronic boarding pass, use it; if your ticket needs another step, follow the instructions attached to that booking.
Do not assume that every station facility or boarding process is identical. A busy terminal in a large city is a different setting from a smaller station on a regional route, and local services can use a different ticketing process from intercity trains. Your booking confirmation is the controlling record for the service you bought. If you have a connection after arrival, locate the station exit and your onward pickup arrangement before the train reaches the platform where possible.
For luggage, keep essentials and documents with you rather than in a place that cannot be reached during boarding. If you are travelling as a family or group, agree on a meeting point inside the station in case the group is split by a queue or a platform change. These simple preparations matter most at transfer points: once a group exits into a busy forecourt, finding one another can take longer than the rail journey’s final few minutes.
Common booking mistakes on a Bali itinerary
- Searching for a Bali train: there is no railway on the island. Search for rail only after deciding which Java segment you want.
- Treating the ferry as included: a Java rail ticket does not cover Bali road travel or the Bali Strait ferry. Arrange and time those legs separately.
- Using the wrong station: confirm the station name in both directions, especially when a city has more than one station or the onward vehicle leaves from another part of town.
- Assuming a fixed booking window: check the sale period for your exact travel date on the official channel before relying on it.
- Building a fragile same-day chain: road, ferry and station transfers are separate movements. A schedule with no margin is vulnerable to any delay at a hand-off.
- Keeping confirmation details only online: keep the booking code and itinerary available offline, with the passenger’s identity document accessible.
Frequently asked questions about train booking
Can I take a train from Bali to Jakarta?
There is no direct train from Bali because the island has no railway. A journey to Jakarta requires separate road and ferry travel to reach Java, followed by a train from a suitable Java station. Treat the ferry transfer and the railway departure as separate parts of the itinerary.
How early can I book an Indonesian intercity train?
The sale period can vary by service and date. Check availability for the exact date you intend to travel rather than assuming a fixed number of days in advance.
Does a train ticket include the ferry to Bali?
No. The railway and the ferry are separate services, and the rail ticket does not include the transfer between a station and Ketapang or Gilimanuk. Allow time and arrange each leg independently.
Is train travel useful during a Bali holiday?
It is useful if Java is part of the trip, particularly for a planned mainland route between cities. It does not help with movement between Bali destinations. For a Bali-only stay, organise road transport around the areas you plan to visit.
For more on this area, see Bali Essentials.
