As far as I read in many articles, all earnings (capital gains and
dividends) from Canadian stocks will be always tax-free. Right?
There's no withholding tax, ie. a $100 dividend means you get $100. There's no withholding for capital gains in shares for anybody.
You will still have to pay taxes on the amounts, but that's only due at tax time and it could be very minor (or even a refund) for eligible Canadian dividends. That's because the company has already paid tax on those dividends.
In contrast, holding U.S. or any foreign stock that yields dividends
in a TFSA will pay 15% withholding tax and it is not recoverable.
Correct, but the 15% is a special rate for regular shares and you need to fill out a W8-BEN. Your broker will probably make sure you have every few years.
But if you hold the same stock in a non-registered account, this 15%
withholding tax can be used as a foreign tax credit? Is this true or
not or what are the considerations?
That's true but reduces your Canadian tax payable, it's not refundable, so you have to have some tax to subtract it from.
Another consideration is foreign dividends are included 100% in income no mater what the character is. That means you pay tax at your highest rate always if not held in a tax sheltered account.
Canadian dividends that are in a non-registered account will pay
taxes, I presume and I don't know how much, but the amount can be used
also as a tax credit or are unrecoverable?
What happens in order to take into account taxes paid by the company is,
- you get $100 dividend
- you add $140 to your income for taxes (and pay tax on it)
- you get back $35 to account for taxes already paid by the company.
- (numbers approximate)
I read also that if you don't want to pay withholding taxes from foreign > dividends you can hold your stock in a RRSP or RRIF?
You don't have any withholding taxes from US entities to what they consider Canadian retirement accounts. So TFSAs and RESPs aren't covered.
Note that it has to be a US fund like SPY or VTI that trades in the US, and the account has to be RRSP/RRIF. You can't buy a Canadian listed ETF that holds US stocks and get the same treatment. This is also only for the US, not foreign like Europe or Asia.
Also something like VT (total world) in the US will have withholding taxes from foreign (Europe & Asia mostly) before the money gets to the US. You can't get that back.
Just an honourable mention for the UK, there's no withholding taxes for anybody, and I hear it's on sale.
But at some point, if I withdraw the money, who do I need to pay taxes, > U.S. or Canada?