The 90-day report is one of those Thai immigration rules that sounds simple, then quietly turns into one of the more confusing parts of long-stay life. It isn’t an extension. It isn’t a renewal. It’s a check-in: every 90 consecutive days you spend in Thailand, you tell immigration “I’m still at this address.”
This is the practical guide. Open it the day before you need to file. The rules in 2026 have changed in some quietly important ways — particularly the TDAC integration — and the official portal is, charitably, not winning UX awards. Here’s how it actually works.
The basics, fast
- Who has to file: any foreigner staying in Thailand for more than 90 consecutive days on a long-stay visa. DTV, retirement, marriage, work, education, Privilege, Elite — all of them. Tourist visa holders don’t, because tourist stays max out below 90 days anyway.
- When it’s due: 90 days from your most recent entry into Thailand, or 90 days from your last 90-day report — whichever is more recent.
- Filing window: 15 days before your due date to 7 days after. Roughly a three-week window.
- Cost: free, if you file on time.
- If you’re late: 2,000 THB fine if you self-report, up to 5,000 THB if immigration finds you first.
- Where to file: online at tm47.immigration.go.th, in person at your local immigration office, or by mail.
The single most important thing to know: leaving Thailand resets the clock. If you fly to Phuket, no reset. If you fly to Singapore, the clock resets when you land back in Thailand. So if you’re regularly in and out of the country, you may never need to file at all.
When exactly is your report due?
Count 90 days from one of these:
- The date stamped on your most recent entry into Thailand, or
- The “Next 90-day report due” date printed on the receipt from your last report
Whichever is later. The receipt date is what immigration looks at — keep it safe.
If you’re not sure, find your last entry stamp in your passport, count 90 days forward, and that’s your worst-case due date. The portal will also tell you the exact date once you log in.
Worked example. You enter Thailand on a DTV on January 10. Your first 90-day report is due around April 10. You file it on April 5 (in-person, since first reports can’t be online). The receipt says “Next due: July 4.” So your second report’s window opens June 19 and closes July 11. That’s the rhythm.
The big 2026 change: TDAC is now linked to your TM47
This is new and it’s catching people out. Since May 2025, every foreigner arriving in Thailand has had to fill out the Thailand Digital Arrival Card (TDAC) at tdac.immigration.go.th within 72 hours of landing. It’s the digital replacement for the old TM6 paper form.
In 2026, your 90-day report is digitally linked to your TDAC record. The online TM47 system pulls your entry data from the TDAC database. Practical implications:
- If you skipped the TDAC on entry, the online report will fail. You’ll need to file in person.
- If your TDAC reference number is buried in your inbox, dig it out before you start.
- If the TDAC system was down when you entered (it happens), you may have an entry that the TM47 system can’t find. In-person is your fallback.
It’s a small administrative step, but in 2026 it’s the most common reason the online filing rejects.
Filing online — the realistic walkthrough
This is the path most people take after their first report. Some honest framing first: the portal is slow, occasionally broken, and visually unchanged since approximately 2014. That’s fine. It works, mostly, and it beats sitting at immigration for two hours.
A few things you need to know before you start:
You can’t file online for your first report on this visa. First report is in-person, every time, no exceptions. Online filing only works once your visa is “in the system.”
You can’t file online if you have a brand-new passport. Even if you’ve reported before. Renewing your passport breaks the link, and you have to go in-person once to re-establish it.
You can’t file online outside the window. Earlier than 15 days before your due date or later than 7 days after, the system will reject you. If you’re inside that window though, you should be fine.
Step by step
-
Go to tm47.immigration.go.th. Bookmark this. The interface is in English; it’s slow but functional.
-
Register or log in. First-time online filers click Register and enter name, passport number, email, and a password. Save the password — you’ll use this every 90 days for years.
-
Have these ready:
- Your passport (bio page and current visa page)
- Your most recent entry stamp (date is what matters)
- Your TDAC reference number
- Your previous TM47 receipt (if you have one)
- Your current address in Thailand exactly as it should appear
-
Click “Notification of staying in the Kingdom over 90 days (TM.47)” on the dashboard.
-
Fill in your visa info and current address. This is where most people get tripped up. The address has to match — exactly — what immigration has on file from your TM30. If your landlord filed your TM30 with “Soi 5/1” but you type “Soi 5”, the system can reject. Worth checking your TM30 receipt before you start typing.
-
Review and acknowledge. Tick the box, click Accept.
-
Save the PDF. This is your interim receipt while the application processes. Don’t skip this.
-
Wait for status to change. Initially shows “Pending.” Check back in 1–3 working days. When it says “Approved,” log in, print the new receipt, and store it in your passport. This is what you’ll need to show next time, and what an immigration officer will ask for if they ever check.
If the status stays “Pending” for more than 5 working days, or shows any error, treat it as rejected and go in person. Don’t wait.
Filing in person — the Pattaya version
If it’s your first report, your passport is new, the online system rejects you, or you missed the window, you’re going in person. In Pattaya/Chonburi, that means the immigration office on Soi Khao Noi.
The honest experience: it can be quick (under an hour) or it can be an entire morning, depending on the day, the hour, and luck. Here’s how to maximize the chance of quick.
Before you go:
- Download and print the TM47 form (here) — fill it out at home, neatly, in black pen. Some people prefer to fill it at the office because the staff can correct mistakes, but doing it at home saves time at the counter.
- Photocopy your passport pages: bio page, current visa page, latest entry stamp page, TM30 receipt, and previous TM47 receipt if you have one. Two copies of each, just in case. The 7-Eleven across the road copies if you forget.
- Bring your original passport. Obviously.
- Bring a pen. The shared ones grow legs.
- Bring 20–40 baht for parking and any small surprises.
When to go:
- Mornings are busiest. Counter opens around 8:30am.
- The lull is usually early afternoon, around 1:00–2:30pm, after the morning rush has cleared but before the late afternoon close.
- Avoid: Mondays (everyone who postponed Friday), the day after a public holiday, and the last day of the month (visa runners).
- Bring a power bank. You may be there a while.
The actual flow at the counter:
- Walk in. There’s a receptionist or a queue ticket machine — grab a number for “90-day reporting.”
- Wait for your number. Officer takes your TM47, your passport, and your supporting documents.
- They check, stamp, and print a new receipt with your next due date.
- Done.
Total time inside if you’ve timed it well: 20–45 minutes. If you’ve timed it badly: 2+ hours. The counter staff are generally efficient — the slow part is the queue, not the processing.
Filing by mail (the third option nobody uses)
You can technically mail your report. You’d send a completed TM47, copies of the relevant passport pages, your previous receipt, and a self-addressed stamped envelope to the immigration office. Mail it at least 15 days before your due date.
Two reasons almost nobody does this:
- Thai Post is reliable for documents but not perfect, and a lost report still results in your fine.
- The online system is faster and less stressful.
If you’re remote in a province with no nearby immigration office and online is failing, mail is your fallback. Otherwise, skip it.
What if you’re late?
Late reporting happens. The fine for self-reporting late is 2,000 THB. The fine if immigration catches you (during an extension, a stop at a checkpoint, anywhere) is up to 5,000 THB plus 200 THB per day.
Self-report. Always. The penalty is smaller and you avoid the much bigger problem of having a “non-compliance” note attached to your record, which creates friction at every future immigration interaction.
To self-report late: go to immigration in person, hand over your TM47 and documents, pay the fine, get the new receipt. You can’t self-report late online — the system blocks the submission outside the window.
Don’t claim a lost receipt to cover late filing. Some people try this. Don’t. If immigration catches it (and they often do, because everything’s now digital), you can pick up additional charges for false statements. A 2,000 baht fine is annoying. A criminal note on your immigration record is a different category of problem.
TM30 vs 90-day report — the constant confusion
These get mixed up constantly. Quick distinction:
- TM30 is your landlord’s (or hotel’s) duty. Within 24 hours of you arriving at any new accommodation, the property owner must notify immigration that you’re staying there. The receipt is your address proof — but the filing is their job.
- 90-day report (TM47) is your duty. Every 90 consecutive days, you tell immigration you’re still living at the address that was reported.
In practice, immigration will often want to see a recent TM30 receipt when you submit your TM47. If your landlord hasn’t filed a TM30 — and many foreign landlords forget — you have a paperwork problem before the TM47 is even relevant.
Hotels handle TM30 automatically. Long-term landlords are supposed to, often don’t. If you self-manage your own condo, you file your own TM30. If you rent from someone, push them to file it within 24 hours of you moving in, and ask for the receipt.
Common mistakes that cost people fines
A short list of the ways people get tripped up:
- Forgetting the report exists. The first one always sneaks up. Set a calendar reminder for day 75 the moment you arrive.
- Counting from the wrong date. Re-entering Thailand resets the clock. People sometimes count from their previous report instead of their last entry, and over-stay the deadline by accident.
- Filing too early. The 15-day-before window is a hard limit. The portal will reject anything earlier.
- Address mismatch. Your TM47 address must exactly match your TM30 address. Soi numbers, room numbers, building names — match them character for character.
- Not saving the receipt. When you complete a report, you get a new “next due” date. Lose that, and you’re guessing.
- Trusting an agent without verification. Agents are usually fine. But occasionally they cut corners or get behind. Always ask for a copy of your filed receipt, and confirm the next due date.
A simpler way
The whole 90-day system is the kind of thing that should just happen in the background. You’re at the same address. Immigration knows you’re at the same address. Why are you re-typing it on a slow portal every 90 days?
Until it does happen in the background, the only reliable solution is reminders. A calendar entry on day 75 of every cycle. An email to yourself the week before. Anything to keep the date in front of you.
We’re building a tool that handles this exactly — automatic reminders 14 days, 7 days, and 1 day before your TM47 is due, with TM30 checks too. Join the waitlist for the Visa Tracker if you want notification when it launches.
In the meantime: set the reminder, save the receipt, and remember that this is the easiest part of Thai immigration. Once you’ve done your second report, you’ll never think about it again until the calendar pings.
Questions about your specific situation — multi-entry visa, weird employment, recent passport renewal? Email me at hello@thairesident.com. I read everything.