A declaração de investimentos no Imposto de Renda pode parecer complicada, mas com este guia você vai entender exatamente como declarar cada tipo de ativo. Evite a malha fina e aproveite as isenções fiscais legais.
Quem Precisa Declarar Investimentos?
Você é obrigado a declarar o Imposto de Renda 2026 (ano-base 2026) se se enquadrar em pelo menos um dos critérios abaixo:
Critérios de Obrigatoriedade
| Critério | Limite |
|---|---|
| Rendimentos tributáveis | Acima de R$ 30.639,90 |
| Rendimentos isentos | Acima de R$ 200.000,00 |
| Patrimônio em bens | Acima de R$ 800.000,00 |
| Operações em bolsa | Qualquer valor |
| Ganho de capital | Qualquer valor |
| Atividade rural | Receita bruta acima de R$ 153.199,50 |
Importante: Se você realizou qualquer operação em bolsa de valores (compra ou venda de ações, FIIs, ETFs, BDRs), você é obrigado a declarar, independentemente do valor.
Prazo de Entrega 2026
- Início: 17 de março de 2026
- Término: 30 de maio de 2026
- Multa por atraso: 1% ao mês sobre o imposto devido (mínimo R$ 165,74)
Estrutura da Declaração de Investimentos
A declaração de investimentos envolve três partes principais:
estrutura_declaracao = {
'bens_e_direitos': {
'onde': 'Ficha "Bens e Direitos"',
'o_que': 'Posição em 31/12 de cada ativo',
'obrigatorio': 'Sim, para todos os ativos'
},
'rendimentos': {
'onde': 'Fichas específicas por tipo',
'o_que': 'Dividendos, JCP, rendimentos de FIIs, etc.',
'obrigatorio': 'Sim, para rendimentos recebidos'
},
'ganho_de_capital': {
'onde': 'Ficha "Renda Variável" ou GCAP',
'o_que': 'Lucro ou prejuízo na venda de ativos',
'obrigatorio': 'Sim, para vendas realizadas'
}
}Como Declarar Ações
1. Bens e Direitos - Posição em Carteira
Código: 31 - Ações (inclusive as listadas em bolsa) Grupo: 03 - Participações Societárias
Informações obrigatórias:
- CNPJ da empresa
- Quantidade de ações
- Custo total de aquisição
- Discriminação detalhada
Exemplo de discriminação:
500 ações PETR4 - Petróleo Brasileiro S.A.
CNPJ: 33.000.167/0001-01
Corretora: XP Investimentos
Custo médio: R$ 35,20 por ação
Custo total: R$ 17.600,002. Rendimentos - Dividendos e JCP
Dividendos (Isentos de IR)
Ficha: Rendimentos Isentos e Não Tributáveis Código: 09 - Lucros e dividendos recebidos
exemplo_dividendos = {
'ticker': 'ITUB4',
'empresa': 'Itaú Unibanco S.A.',
'cnpj': '60.872.504/0001-23',
'valor_recebido': 1250.00,
'tributacao': 'Isento',
'onde_declarar': 'Rendimentos Isentos - Código 09'
}Juros sobre Capital Próprio (JCP)
Ficha: Rendimentos Sujeitos à Tributação Exclusiva Código: 10 - Juros sobre capital próprio
exemplo_jcp = {
'ticker': 'BBDC4',
'empresa': 'Banco Bradesco S.A.',
'cnpj': '60.746.948/0001-12',
'valor_bruto': 500.00,
'ir_retido': 75.00, # 15% retido na fonte
'valor_liquido': 425.00,
'onde_declarar': 'Tributação Exclusiva - Código 10'
}3. Ganho de Capital - Vendas de Ações
Isenção para Operações Normais (Swing Trade)
Isenção: Vendas de ações até R$ 20.000 por mês são isentas de IR (apenas operações normais, não day trade).
def calcular_imposto_acoes(valor_venda_mensal, lucro, tipo_operacao):
"""Calcula imposto sobre venda de ações"""
if tipo_operacao == 'swing_trade':
if valor_venda_mensal <= 20000:
return {
'isento': True,
'imposto': 0,
'motivo': 'Vendas até R$ 20.000/mês são isentas'
}
else:
imposto = lucro * 0.15 # 15% sobre o lucro
return {
'isento': False,
'imposto': imposto,
'aliquota': '15%',
'vencimento_darf': 'Último dia útil do mês seguinte'
}
elif tipo_operacao == 'day_trade':
imposto = lucro * 0.20 # 20% sobre o lucro
return {
'isento': False,
'imposto': imposto,
'aliquota': '20%',
'nota': 'Day trade nunca é isento'
}
# Exemplo: Vendeu R$ 25.000 com lucro de R$ 3.000
resultado = calcular_imposto_acoes(25000, 3000, 'swing_trade')
print(f"Imposto devido: R$ {resultado['imposto']:.2f}")
# Imposto devido: R$ 450.00Como Preencher a Ficha de Renda Variável
Na ficha Renda Variável > Operações Comuns/Day-Trade, preencha mês a mês:
| Campo | Descrição |
|---|---|
| Mercado à vista - Ações | Lucro ou prejuízo do mês |
| Prejuízo a compensar | Prejuízos de meses anteriores |
| Base de cálculo | Lucro - Prejuízos compensados |
| Imposto devido | 15% (swing) ou 20% (day trade) |
| IR fonte | Valor retido na fonte (0,005%) |
| Imposto a pagar | Devido - IR fonte |
Como Declarar FIIs (Fundos Imobiliários)
1. Bens e Direitos
Código: 73 - Fundo de Investimento Imobiliário Grupo: 07 - Fundos
Exemplo de discriminação:
100 cotas HGLG11 - CSHG Logística FII
CNPJ: 11.728.688/0001-47
Administrador: Credit Suisse Hedging-Griffo
Corretora: Clear
Custo médio: R$ 165,00 por cota
Custo total: R$ 16.500,002. Rendimentos de FIIs (Isentos para PF)
Ficha: Rendimentos Isentos e Não Tributáveis Código: 26 - Outros rendimentos isentos
Importante: Rendimentos de FIIs são isentos de IR para pessoa física, desde que:
- O FII tenha no mínimo 50 cotistas
- As cotas sejam negociadas em bolsa
- O cotista possua menos de 10% das cotas
exemplo_rendimento_fii = {
'ticker': 'XPLG11',
'fundo': 'XP Log FII',
'cnpj': '26.502.794/0001-85',
'rendimentos_ano': 1560.00, # 12 x R$ 130
'tributacao': 'Isento',
'onde_declarar': 'Rendimentos Isentos - Código 26'
}3. Ganho de Capital na Venda de FIIs
Atenção: Diferente de ações, FIIs NÃO têm isenção para vendas até R$ 20.000. Todo lucro é tributado em 20%.
def calcular_imposto_fii(lucro_venda):
"""FIIs sempre pagam 20% sobre o lucro, sem isenção"""
imposto = lucro_venda * 0.20
return {
'lucro': lucro_venda,
'aliquota': '20%',
'imposto': imposto,
'isencao': 'Não existe para FIIs',
'vencimento_darf': 'Último dia útil do mês seguinte'
}
# Exemplo: Lucro de R$ 500 na venda de FIIs
resultado = calcular_imposto_fii(500)
print(f"Imposto: R$ {resultado['imposto']:.2f}")
# Imposto: R$ 100.00Como Declarar ETFs
ETFs de Renda Variável (BOVA11, IVVB11, etc.)
Seguem as mesmas regras de ações:
- Código Bens e Direitos: 74 - ETF - Exchange Traded Fund
- Isenção: Vendas até R$ 20.000/mês (swing trade)
- Alíquota: 15% (swing) ou 20% (day trade)
ETFs de Renda Fixa (IMAB11, FIXA11, etc.)
Tributação na fonte, similar a fundos de investimento:
- IR retido na fonte: 15% a 22,5% (tabela regressiva)
- Come-cotas: Pode haver antecipação semestral
exemplo_etf = {
'bens_direitos': {
'codigo': 74,
'grupo': '07 - Fundos',
'discriminacao': '50 cotas IVVB11 - iShares S&P 500 FI',
'cnpj': '19.909.560/0001-91',
'custo_total': 7500.00
},
'tributacao_venda': {
'isencao_20k': True,
'aliquota_swing': '15%',
'aliquota_daytrade': '20%'
}
}Como Declarar Tesouro Direto
1. Bens e Direitos
Código: 45 - Aplicação de Renda Fixa (CDB, RDB e outros) Grupo: 04 - Aplicações e Investimentos
Exemplo de discriminação:
Tesouro IPCA+ 2035
Quantidade: 2,5 títulos
Data de compra: 15/03/2024
Valor aplicado: R$ 6.250,00
Corretora: BTG Pactual2. Rendimentos
Ficha: Rendimentos Sujeitos à Tributação Exclusiva Código: 06 - Rendimentos de aplicações financeiras
O IR já é retido na fonte pela corretora. Basta informar conforme o informe de rendimentos.
exemplo_tesouro = {
'titulo': 'Tesouro Selic 2029',
'posicao_31_12': 10500.00, # Valor atualizado
'custo_aquisicao': 10000.00, # Declarar na ficha de bens
'rendimento_ano': 1425.00,
'ir_retido': 213.75, # 15% sobre rendimento
'rendimento_liquido': 1211.25
}Como Declarar Investimentos no Exterior
1. Bens e Direitos
Código: 74 - Aplicações e investimentos no exterior Grupo: 04 - Aplicações e Investimentos
Para cada ativo no exterior, informe:
- Nome do ativo e corretora
- País
- Valor em moeda original e em reais (câmbio de 31/12)
Exemplo - ETF Irlandês:
500 cotas VWRA - Vanguard FTSE All-World UCITS ETF
Corretora: Interactive Brokers
País: Irlanda
Valor: USD 55.000,00
Câmbio PTAX 31/12/2024: R$ 4,8412
Valor em reais: R$ 266.266,002. Ganho de Capital no Exterior
Isenção: Vendas até R$ 35.000 por mês em ativos no exterior são isentas de IR.
def calcular_imposto_exterior(valor_venda_reais, lucro_reais):
"""Calcula imposto sobre venda de ativos no exterior"""
if valor_venda_reais <= 35000:
return {
'isento': True,
'imposto': 0,
'motivo': 'Vendas até R$ 35.000/mês são isentas'
}
else:
# Tabela progressiva para ganho de capital
if lucro_reais <= 5000000:
aliquota = 0.15
elif lucro_reais <= 10000000:
aliquota = 0.175
elif lucro_reais <= 30000000:
aliquota = 0.20
else:
aliquota = 0.225
imposto = lucro_reais * aliquota
return {
'isento': False,
'imposto': imposto,
'aliquota': f"{aliquota*100}%"
}
# Exemplo: Vendeu USD 8.000 (R$ 40.000) com lucro de R$ 5.000
resultado = calcular_imposto_exterior(40000, 5000)
print(f"Imposto: R$ {resultado['imposto']:.2f}")
# Imposto: R$ 750.003. Programa GCAP para Ganhos no Exterior
Para ganhos de capital no exterior, use o programa GCAP (Programa de Apuração de Ganhos de Capital):
- Baixe o GCAP no site da Receita Federal
- Informe a operação de venda
- Apure o ganho em reais
- Pague o DARF até o último dia útil do mês seguinte
- Importe os dados para a declaração anual
Como Declarar Criptomoedas
1. Bens e Direitos
Código específico por criptomoeda:
| Criptomoeda | Código |
|---|---|
| Bitcoin (BTC) | 81 |
| Altcoins (ETH, etc.) | 82 |
| Stablecoins (USDT, etc.) | 83 |
| NFTs | 89 |
| Outros criptoativos | 89 |
Grupo: 08 - Criptoativos
Exemplo de discriminação:
0,5 Bitcoin (BTC)
Exchange: Binance
Custo de aquisição: R$ 85.000,00
Data de aquisição: 10/05/20242. Ganho de Capital
Isenção: Vendas de criptomoedas até R$ 35.000 por mês são isentas.
def calcular_imposto_cripto(valor_venda_mensal, lucro):
"""Calcula imposto sobre venda de criptomoedas"""
if valor_venda_mensal <= 35000:
return {
'isento': True,
'imposto': 0,
'motivo': 'Alienações até R$ 35.000/mês são isentas'
}
else:
# Tabela progressiva
if lucro <= 5000000:
imposto = lucro * 0.15
elif lucro <= 10000000:
imposto = lucro * 0.175
else:
imposto = lucro * 0.20
return {
'isento': False,
'imposto': imposto,
'vencimento': 'Último dia útil do mês seguinte'
}3. Obrigatoriedade de Informar à Receita
Se você opera com criptomoedas, pode ser obrigatório informar mensalmente:
| Situação | Obrigatoriedade |
|---|---|
| Exchange brasileira | Exchange reporta automaticamente |
| Exchange estrangeira | Você deve informar via IN 1.888 |
| Saldo acima de R$ 5.000 | Obrigatório declarar |
Como Declarar BDRs
BDRs (Brazilian Depositary Receipts) seguem regras específicas:
1. Bens e Direitos
Código: 49 - BDR - Brazilian Depositary Receipt Grupo: 04 - Aplicações e Investimentos
2. Dividendos de BDRs
Atenção: Dividendos de BDRs são tributáveis (diferente de ações brasileiras):
tributacao_bdr = {
'dividendos': {
'tributacao': 'Carnê-leão mensal',
'aliquota': 'Tabela progressiva (até 27,5%)',
'onde_declarar': 'Rendimentos Recebidos de PJ no Exterior'
},
'ganho_capital': {
'isencao_20k': False, # BDRs NÃO têm isenção
'aliquota': '15% (swing) ou 20% (day trade)'
}
}3. Ganho de Capital
Importante: BDRs NÃO têm isenção para vendas até R$ 20.000. Todo lucro é tributado.
Compensação de Prejuízos
Regras de Compensação
regras_compensacao = {
'acoes': {
'prejuizo_swing': 'Compensa com lucro swing de ações',
'prejuizo_daytrade': 'Compensa apenas com lucro day trade',
'fii': 'NÃO compensa com FII',
'cripto': 'NÃO compensa com cripto'
},
'fiis': {
'prejuizo': 'Compensa apenas com lucro de FIIs',
'acoes': 'NÃO compensa com ações'
},
'cripto': {
'prejuizo': 'Compensa apenas com lucro de cripto',
'outros': 'NÃO compensa com outros ativos'
},
'prazo': 'Prejuízos podem ser carregados indefinidamente'
}Exemplo Prático de Compensação
def compensar_prejuizos(lucro_mes_atual, prejuizo_acumulado):
"""Demonstra compensação de prejuízos"""
if prejuizo_acumulado >= lucro_mes_atual:
return {
'base_calculo': 0,
'prejuizo_restante': prejuizo_acumulado - lucro_mes_atual,
'imposto': 0,
'nota': 'Todo lucro compensado com prejuízo anterior'
}
else:
base_calculo = lucro_mes_atual - prejuizo_acumulado
imposto = base_calculo * 0.15
return {
'base_calculo': base_calculo,
'prejuizo_restante': 0,
'imposto': imposto,
'nota': 'Prejuízo totalmente utilizado'
}
# Exemplo: Lucro de R$ 5.000 com prejuízo acumulado de R$ 3.000
resultado = compensar_prejuizos(5000, 3000)
print(f"Base de cálculo: R$ {resultado['base_calculo']}")
print(f"Imposto: R$ {resultado['imposto']:.2f}")
# Base de cálculo: R$ 2.000
# Imposto: R$ 300.00DARF - Como Emitir e Pagar
Quando é Necessário Emitir DARF?
| Situação | DARF Necessário? |
|---|---|
| Vendas de ações até R$ 20k/mês | Não |
| Vendas de ações acima R$ 20k/mês com lucro | Sim |
| Qualquer venda de FII com lucro | Sim |
| Day trade com lucro | Sim |
| Vendas no exterior acima R$ 35k/mês | Sim |
| Cripto acima R$ 35k/mês | Sim |
Como Emitir DARF
dados_darf = {
'codigo_receita': {
'acoes_fiis': '6015',
'exterior': '4600',
'cripto': '4600'
},
'periodo_apuracao': 'Mês da operação (ex: 01/2026)',
'vencimento': 'Último dia útil do mês seguinte',
'valor': 'Imposto calculado',
'onde_emitir': 'Sicalc ou site da Receita Federal'
}Passo a Passo para Emitir
- Acesse o site da Receita Federal
- Vá em "Pagamentos" > "DARF"
- Informe o código de receita
- Preencha o período de apuração
- Informe o valor do imposto
- Gere o DARF e pague até o vencimento
Documentos Necessários
Informe de Rendimentos
Sua corretora deve disponibilizar até 28 de fevereiro:
documentos_corretora = {
'informe_rendimentos': {
'dividendos': 'Valor total recebido',
'jcp': 'Valor bruto e IR retido',
'rendimentos_fiis': 'Valor total isento',
'ganhos_renda_fixa': 'Rendimentos e IR retido'
},
'posicao_custodia': {
'acoes': 'Quantidade e custo médio',
'fiis': 'Quantidade e custo médio',
'etfs': 'Quantidade e custo médio',
'tesouro': 'Títulos e valores'
},
'notas_corretagem': {
'para_que': 'Calcular custo médio e resultado'
}
}Calculando Custo Médio
def calcular_custo_medio(operacoes):
"""
Calcula custo médio de aquisição para declaração
Método PEPS (Primeiro que Entra, Primeiro que Sai) ou Custo Médio
"""
total_quantidade = 0
total_custo = 0
for op in operacoes:
if op['tipo'] == 'compra':
total_quantidade += op['quantidade']
total_custo += op['quantidade'] * op['preco'] + op['taxas']
elif op['tipo'] == 'venda':
# Custo médio das ações vendidas
custo_medio = total_custo / total_quantidade
custo_venda = op['quantidade'] * custo_medio
total_quantidade -= op['quantidade']
total_custo -= custo_venda
if total_quantidade > 0:
custo_medio_atual = total_custo / total_quantidade
else:
custo_medio_atual = 0
return {
'quantidade_atual': total_quantidade,
'custo_total': round(total_custo, 2),
'custo_medio': round(custo_medio_atual, 2)
}
# Exemplo de operações
operacoes = [
{'tipo': 'compra', 'quantidade': 100, 'preco': 30.00, 'taxas': 10},
{'tipo': 'compra', 'quantidade': 50, 'preco': 35.00, 'taxas': 8},
{'tipo': 'venda', 'quantidade': 30, 'preco': 40.00, 'taxas': 5}
]
resultado = calcular_custo_medio(operacoes)
print(f"Custo médio atual: R$ {resultado['custo_medio']:.2f}")Usando brapi.dev para Controle de Investimentos
A API brapi.dev pode ajudar no controle e declaração dos seus investimentos:
Consultando Cotações para Posição Atual
import requests
def consultar_carteira(tickers, token):
"""Consulta cotações atuais da carteira"""
url = f"https://brapi.dev/api/quote/{','.join(tickers)}?token={token}"
response = requests.get(url)
data = response.json()
carteira = []
for ativo in data['results']:
carteira.append({
'ticker': ativo['symbol'],
'nome': ativo.get('longName', ''),
'preco_atual': ativo['regularMarketPrice'],
'variacao_dia': ativo['regularMarketChangePercent']
})
return carteira
# Consultar carteira
tickers = ['PETR4', 'VALE3', 'ITUB4', 'HGLG11']
carteira = consultar_carteira(tickers, 'SEU_TOKEN')Obtendo Dados de Dividendos
def obter_dividendos(ticker, token):
"""Obtém histórico de dividendos para declaração"""
url = f"https://brapi.dev/api/quote/{ticker}?modules=dividendsData&token={token}"
response = requests.get(url)
data = response.json()
if 'dividendsData' in data['results'][0]:
dividendos = data['results'][0]['dividendsData']['cashDividends']
# Filtrar dividendos do ano
dividendos_ano = [d for d in dividendos if d['paymentDate'].startswith('2024')]
total = sum(d['rate'] for d in dividendos_ano)
return {
'ticker': ticker,
'total_dividendos': total,
'pagamentos': len(dividendos_ano)
}
return NoneResumo: Tabela de Códigos
Bens e Direitos
| Ativo | Grupo | Código |
|---|---|---|
| Ações | 03 | 31 |
| FIIs | 07 | 73 |
| ETFs | 07 | 74 |
| BDRs | 04 | 49 |
| Tesouro Direto | 04 | 45 |
| CDB/LCI/LCA | 04 | 45 |
| Bitcoin | 08 | 81 |
| Altcoins | 08 | 82 |
| Stablecoins | 08 | 83 |
| Investimentos no exterior | 04 | 74 |
Rendimentos Isentos (Código 09)
- Dividendos de ações brasileiras
- Rendimentos de FIIs (pessoa física)
- Lucros e dividendos
Tributação Exclusiva
| Tipo | Código |
|---|---|
| JCP | 10 |
| Renda Fixa | 06 |
| Ganho de Capital | Ficha específica |
Checklist da Declaração
Antes de Começar
- Reunir informes de rendimentos de todas as corretoras
- Baixar notas de corretagem do ano
- Calcular custo médio de cada ativo
- Verificar DARFs pagos durante o ano
- Levantar prejuízos acumulados de anos anteriores
Durante a Declaração
- Declarar posição em 31/12 de cada ativo
- Informar rendimentos (dividendos, JCP, FIIs)
- Preencher ficha de Renda Variável
- Declarar investimentos no exterior
- Informar criptoativos
Após a Declaração
- Conferir pendências no e-CAC
- Guardar documentos por 5 anos
- Acompanhar processamento
Conclusão
A declaração de investimentos exige atenção aos detalhes, mas seguindo este guia você consegue:
- Evitar a malha fina: Declarando todos os ativos corretamente
- Aproveitar isenções: R$ 20.000/mês em ações, R$ 35.000/mês no exterior
- Compensar prejuízos: Reduzindo imposto futuro
- Manter controle: Usando ferramentas como brapi.dev
Próximos Passos
- Tesouro Direto - Guia Completo - Entenda a renda fixa
- FIIs - Guia Completo - Invista em imóveis
- API brapi.dev - Acompanhe seus investimentos
- Calculadora de Dividendos - Projete sua renda passiva
Disclaimer: Este conteúdo é educacional e não substitui orientação de contador ou advogado tributário. As regras fiscais podem mudar. Consulte sempre a legislação atualizada e um profissional qualificado.
Atualizado para: Declaração IR 2026 (ano-base 2024)
