As of the 1st of February 2017, it is now possible to book your Thai railway ticket online, direct from the State Railway of Thailand (SRT).
Train tickets can be booked online via SRT, a minimum of two hours before departure, up to 60 days in advance and there is a small (20 - 30 Baht) booking fee to add to the ticket price.
The first thing you have to do is visit the State Railway of Thailand online train booking website (this is a link to the SRT English language booking website) :
Alternatively, you can also book train tickets through an online agent :
If the trains are full on the day you want to travel or you just want to compare travel prices,
Once you are on their website, you can now check to see if there are any seats available on the day and train route you want to travel on.
You will first have to select the train line you want to use : Northern, North Eastern or Southern.
Please Note : You may want to create an account before selecting your train tickets as you have to be logged in to purchase tickets online.
This will bring up all the stations along that particular railway line (unfortunately they are not in English alphabetical order, so this can be a little confusing and time consuming trying to find your station of departure and arrival).
Then enter your date of travel, number of passengers and then click the search button.
The results page will then bring up all the available trains on that particular route - trains with a green "Select Coach" button have seats or berths still available to purchase.
Select which train you want and all the available seats and sleeping berths will appear, with the relevant fares / ticket prices.
Select your seat or sleeping berth (Green "Available" buttons means you can buy tickets for that particular seat or berth).
At this point you will then be asked to login.
If this is your first time booking online, you will now have to create an account giving your e-mail address, personal details and a password.
Once logged in, fill out / check your personal details, select your seat or berth, then pay by credit card (Visa / Mastercard) or by Bangkok Bank debit card.
Once the booking is confirmed, a pdf e-Ticket will appear on your screen and also be sent to your e-mail address.
Print out the ticket and take it with you to board your train.
You will need this ticket to show to the onboard ticket inspector - they do not accept tickets shown on a mobile phone, laptop or tablet - you need a hard copy.
So make sure you print out your ticket!