Generally speaking, if your tax return shows a refund you should expect the IRS to pay you that refund upon processing the tax return assuming that the tax return is correct. There are instances, however, when you find that the refund is kept by the IRS.
Here are some of the instances when the IRS may keep your refund:
1) If you file the return after three years from the due date.
2) If you owe back taxes.
3) If you filed jointly with your spouse who owes back taxes.
4) If your refund is large enough to cause a question by the IRS and possibly refer your return to an audit.
If you file your returns late and three years passed on that refund you may have lost that refund forever. The IRS will keep your refund if it is three years old but it will keep demanding that tax owed beyond the three years. It is a one-way street in favor of the IRS. You may get some of the three year old refund back up to an amount equal to what you paid in tax the last two years preceding the filing of the refund claim.
Another instance when you lose your refund is when you owe back taxes to the IRS. Every time you have a refund they will keep that money. So, if you claim zero withholdings, expect the IRS to keep more of your money than you may have anticipated.
Some people think that if they have an installment agreement or are declared currently not collectible they will get a refund due when they file their taxes. This is not the case. Installment agreement or otherwise does not exempt you from paying any amount that the IRS deems to be extra coming your way.
You may not owe taxes to the IRS but you marry someone who owes taxes and you choose to file joint tax returns. Even if the refund is due to your earnings the IRS may keep that refund because of the joint filing. It is possible for you to get some of this refund if you file an innocent spouse claim.
Finally, your refund may be kept because of a relatively high amount of refund you are requesting. If the amount of refund is disproportionate to the level of income that you claimed, it may cause your tax returns to be flagged for an audit and thus delay or even prevent your refund. This also applies if the IRS audit resulted from other items that may delay your refund.
Summary: The IRS should not keep your refund unless you owe back taxes, your refund is over three years old, or if you are subject to an IRS audit.