Skip to content

How to book cheap train tickets in Indonesia

Booking trains in Java, Indonesia wasn’t as hard as you’d expect. Here’s everything you need to know to get your tickets from Jakarta to Yogyakarta (or Jogja). 

You might find cheap flights but I’d suggest to take the train instead. The landscapes you’ll come across are stunning. Here are a couple of tips that will help you get on that ride. If you still need a good reason to go to Indonesia, we’d recommend to visit those six awesome places!

Get started!

In our case, we arrived in Jakarta without any plan and decided to take the train to Jogja the day after our arrival. While it’s totally possible to book last minute, you might want to make sure to book in advance if you’re travelling during holidays (i.e. the Islamic national holiday of Idul Fitri (Eid) at the end of Ramadan). The trains can sell out weeks ahead of time. You can book up to 90 days in advance. If you know your plans and want to skip the stress, you know what to do.

Should I take the train during the day or the night?

The 530km trip between the two cities usually takes between 8 and 9 hours (most trains run on time, unlike in most countries around). I suggest the day train to enjoy the beautiful countryside, the paddy fields and the mountains. The night train might seem like a smart option to skip the costs of a night in a hostel but keep in mind that you’ll arrive around 3-4am. Most of hotels/hostels in Yogyakarta don’t have early check-ins so you’ll have to wait (at least) until 10am to get your room.

What is the difference between Executive, Business and Economy class?

Indonesian trains have three classes: Executive (Eksecutif), Business (Bisnis) and Economy (Ekonomi).  All classes are air-conditioned and all tickets in all classes come with a reserved seat.

The main differences between the three is the price and duration of the trip. Executive is the most expensive but the service quality is pretty much the same as in Business (it just makes more stops). We didn’t take the Economy one but from what we’ve heard they are a little less comfortable, they can get a little hotter during the day and they take 1 or 2 hours more to get to Jogja. So if you’re travelling on a budget, the cheaper Economy class will perfectly do, if you wish a little bit more comfort go for business or executive class. The choice might depend on what’s available too, obviously.

Which station should I leave from?

There are two main stations in Jakarta (Jakarta Gambir and Jakarta Pasar Senen) and two in Jogja (Tugu Yogyakarta and Lempuyangan Station). The choice of station depends on the class you take and the schedule you choose. Plan your accommodation accordingly as Jakarta is very congested and it can be tricky to arrive on time.

Executive and business trains depart at Gambir and arrive at Tugu Station. While cheaper Economy trains depart at Pasar Senen and arrive at Lempuyangan Station. Should you arrived from the airport, check out this useful guide by Discover Your Indonesia for how to get from there to the city.

Where to find schedules?

The official schedules and fares can be found on the railway company website. Go to the Reservasi section and user the search box to the right. It’s pretty straight forward.

An alternative is to use (that has an English version), which will also be useful to book your ticket online.

Where should I buy my ticket?

Unless you don’t have a credit card or need a last-minute ticket during peak season, I’d recommend booking your ticket online. Don’t waste your time trying to book directly from the railway company. Most of the time they reject foreign credit cards and you’ll have to go through the whole process in Indonesia.

Instead, head on over to and follow the next steps to book your ticket:

  1. Select Gambir (GMR), Jakarta Pusat as Departure station.
  2. Select Tugu Yogyakarta as Destination station.
  3. If your credit card gets rejected, use the Customer Service chat and they’ll whitelist it for you.
  4. You’ll receive a booking confirmation by email. You can either print it out at your hotel or use the reference number to get your ticket and / or boarding pass printed at a booth at the station.
  5. IMPORTANT: before getting on the train you need to have your boarding pass (it’s an orange ticket) printed. If you have a blue ticket, this is NOT your boarding pass. To print yours you must enter the reference number or scan the barcode at one of the check-in machines (Check-In Mandiri) no later than 10 minutes before departure. Don’t let anyone else do it for you unless it’s an official Kereta Api employee.

A couple of quick notes

  • Bring a sweater and something to cover your legs. You’ll get cold when the AC blasts freezing air all over you!
  • Bring food and drinks. The choices on the train are pretty limited (especially if you’re vegetarian / vegan) and can be expensive.
  • Should you find yourself not being able to book online, you can easily buy tickets at the station or Indomaret and Alfamart supermarkets.
  • There is a 20kg luggage limit and might be enforced. You can pay for more though (and it’s very cheap).
  • Keep your passport on hand. They will most likely control it to let you pass the ticket check in the station.
  • Information and booking procedures can change over time. We’d recommend you check out Seat61 for the last updates about trains in Southeast Asia.
  • Be there way in advance. It can get a little busy and passengers are required to check in at least 1 hour prior to the time of departure.

If you feel like exploring the world with your better half, check out the best decisions we’ve made during our adventures in Southeast Asia! 🙂


  1. Rod Palmer

    Hello, I’ve just tried to book rail tickets in Indonesia using and it won’t accept my trips in April (9th 10th 11th), yet I find all the literature says that they handle reservations three months in advance. Am I doing something wrong? Rod Palmer. Australia.

    • G

      Hi Rod! Unfortunately, I have no idea why it wouldn’t work. Maybe they’re having a 2020 bug with their booking system? Have you tried reaching out to them?

Leave a Reply

Your email address will not be published. Required fields are marked *

Join us on Instagram