🇨🇷
🇨🇷   Guida Completa 2025

Vivere in Costa Rica.
Pura vida, zero tasse estere.

Il Costa Rica è l'unica vera democrazia stabile dell'America Centrale: nessun esercito dal 1949, sanità pubblica eccellente, natura straordinaria, fuso orario USA-friendly. La tassazione territoriale azzera le imposte su tutti i redditi esteri dei residenti. Una qualità della vita che sorprende chi arriva dall'Europa.

💰 0% su redditi esteri
🌿 5% del territorio mondiale nella biodiversità
🏛️ Stabile democrazia dal 1949
✈️ UTC-6 fuso USA-friendly
Parla con un esperto → 📅 Prenota una call
0%Redditi di fonte estera
$3.000Reddito minimo Rentista Visa
+75Anni di democrazia ininterrotta
99%Elettricità da fonti rinnovabili
Sistema Fiscale

Tassazione territoriale.
Semplice come in pochi posti al mondo.

Il Costa Rica applica la tassazione territoriale in modo netto: i redditi prodotti al di fuori del paese non vengono tassati. Non esistono complicazioni come il concetto di "rimessa" o distinzioni tra redditi attivi e passivi esteri.

Principio semplice: se guadagni con clienti in Italia, Europa, USA o in qualunque altro paese, quel reddito non è tassabile in Costa Rica. Solo ciò che viene prodotto sul territorio costaricano rientra nella base imponibile locale.

Aliquote sui redditi locali: per chi svolge anche attività in Costa Rica, le aliquote sono progressive: 0% fino a circa $12.000/anno, 10% tra $12.000–$24.000, 15% tra $24.000–$50.000, 20% tra $50.000–$80.000, 25% oltre $80.000. Molto favorevoli rispetto all'Italia.

Corporate tax: le società costaricane pagano il 30% sugli utili di fonte locale. Ma se la tua società opera solo con clienti esteri, il reddito è fuori dalla base imponibile e la tassazione è virtualmente zero.

Dividendi e capital gain: i dividendi distribuiti da società costaricane sono soggetti a una ritenuta del 15%. I capital gain su asset esteri per i residenti non-domiciliati sono esenti. Struttura ottima per investitori con portfolio internazionale.

0%
su tutti i redditi esteri per i residenti
A differenza di Panama, il Costa Rica non è nella lista nera OCSE dei paesi a fiscalità privilegiata secondo le ultime revisioni. Questo semplifica notevolmente la pianificazione dell'exit fiscale per gli italiani che si trasferiscono nel paese.
Costa Rica vs Panama — confronto rapido
  • Lista nera OCSE (Italia): Panama sì, Costa Rica no → exit più semplice
  • Stabilità politica: Costa Rica superiore (unica democrazia solida CA)
  • Qualità natura/vita: Costa Rica superiore
  • Hub business internazionale: Panama superiore (canale, banche)
  • Costo della vita: simile, Costa Rica leggermente inferiore fuori San José
Visti e Residenza

Come ottenere
la residenza in Costa Rica.

Il Costa Rica offre diversi percorsi per la residenza. Come italiano (paese non a rischio migratorio), il processo è relativamente semplice e ben strutturato.

Per nomadi digitali

Digital Nomad Visa

$3.000/mese

Lanciata nel 2022, richiede la dimostrazione di un reddito estero di almeno $3.000/mese ($4.000 se si porta la famiglia). Valida 1 anno, rinnovabile per 1 anno. Esenzione totale da tasse locali sui redditi esteri. Non porta alla residenza permanente.

Per rendite e pensionati

Rentista / Pensionado

$2.500/mese

Residenza permanente per chi dimostra una rendita mensile costante di almeno $2.500 (Rentista) o $1.000 di pensione (Pensionado). Validità 2 anni rinnovabile. Dopo 3 anni di residenza permanente: eleggibilità alla cittadinanza costaricana.

Per investitori

Investor Visa

$150.000+

Investimento minimo di $150.000 in real estate o attività commerciale in Costa Rica. Residenza permanente immediata per tutta la famiglia. Ottimo per chi vuole acquistare una proprietà nel paese come primo passo per il trasferimento.

Vivere in Costa Rica

Pura Vida.
Il paese che ha abolito l'esercito.

Il Costa Rica è unico in America Latina: nel 1949 ha abolito il proprio esercito e rediretto il budget alla sanità e all'istruzione. Il risultato è un paese con IDH altissimo per la regione, sanità pubblica eccellente e uno dei paesi più felici del mondo secondo molti ranking internazionali.

San José e oltre: la capitale San José è vivace e moderna, ma molti expat preferiscono zone come Santa Ana, Escazú (quartiere "americano" con centri commerciali e ristoranti internazionali), o il Central Valley in generale per il clima ideale (22°C tutto l'anno). Le coste del Pacifico (Tamarindo, Manuel Antonio) e dei Caraibi (Puerto Viejo) sono opzioni per chi cerca mare e natura.

Connettività e lavoro: internet buono nelle città (fibra disponibile), meno affidabile nelle zone rurali e costiere. Fuso orario UTC-6 (EST) — perfetto per lavorare con clienti americani senza jet lag e con ottima sovrapposizione con l'Europa al mattino.

Sanità: il sistema CCSS (Caja Costarricense de Seguro Social) è universale e di buona qualità. I residenti possono accedervi versando contributi mensili proporzionali al reddito. Cliniche private di alto livello disponibili a San José a prezzi nettamente inferiori all'Italia.

Scuole internazionali: presenti numerose scuole internazionali bilingue (spagnolo/inglese) di ottimo livello nella Valle Centrale. Ideale per famiglie con figli che vogliono mantenere un'istruzione di qualità europea/americana.

Costa Rica in numeri — 2025
IndicatoreDato
Tassazione redditi esteri0% (territoriale)
IRPEF su redditi locali0–25% progressiva
Dividendi locali15% ritenuta
ValutaColón costaricano (CRC)
Affitto Escazú (2BR)$800–1.500/mese
Digital Nomad Visa1+1 anno, reddito estero $3k/mese
Cittadinanza dopo7 anni (3 anni per sposati con CR)

Costa Rica: qualità della vita
e zero tasse estere.

Il Costa Rica è una delle destinazioni più complete per chi cerca stabilità, natura, qualità della vita e ottimizzazione fiscale. Francesco analizza la tua situazione e ti guida verso il percorso di residenza più adatto.

Prima call gratuita · Risposta entro 24h · Solo strutture legali

*/ (function() { 'use strict'; const ENDPOINT = '/.netlify/functions/chat'; const GOLD = '#C9A84C'; const DARK = '#07070E'; const DARK2 = '#0E0E1A'; const DARK3 = '#14141F'; const TEXT = '#F0EEE8'; const TEXT_MUTED = '#8A8899'; const BORDER = 'rgba(201,168,76,0.2)'; let history = []; let isOpen = false; let isLoading = false; const WELCOME = 'Ciao! 👋 Sono l\'assistente legale di FreeLex. Posso aiutarti con domande su tassazione internazionale, visti nomadi digitali, residenza fiscale, cittadinanza italiana e molto altro.\n\nCome posso aiutarti oggi?'; const SUGGESTIONS = [ 'Come funziona la tassazione in Georgia?', 'Voglio ridurre le tasse legalmente', 'Cos\'è la E-Residency estone?', 'Come ottengo la cittadinanza italiana?' ]; function injectStyles() { const style = document.createElement('style'); style.textContent = ` #fl-chat-btn { position: fixed; bottom: 28px; right: 28px; z-index: 9998; width: 60px; height: 60px; border-radius: 50%; background: ${GOLD}; border: none; cursor: pointer; box-shadow: 0 4px 24px rgba(201,168,76,0.45); display: flex; align-items: center; justify-content: center; font-size: 1.5rem; transition: transform .2s, box-shadow .2s; outline: none; } #fl-chat-btn:hover { transform: scale(1.08); box-shadow: 0 6px 32px rgba(201,168,76,.6); } #fl-chat-btn .fl-badge { position: absolute; top: -4px; right: -4px; width: 18px; height: 18px; border-radius: 50%; background: #dc3545; border: 2px solid ${DARK}; font-size: .58rem; color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 700; line-height: 1; } #fl-chat-panel { position: fixed; bottom: 100px; right: 28px; z-index: 9999; width: 380px; max-height: 560px; background: ${DARK2}; border: 1px solid ${BORDER}; border-radius: 12px; overflow: hidden; box-shadow: 0 20px 60px rgba(0,0,0,.8); display: flex; flex-direction: column; font-family: 'Inter', -apple-system, sans-serif; transform: scale(.92) translateY(12px); opacity: 0; pointer-events: none; transition: transform .22s cubic-bezier(.34,1.56,.64,1), opacity .18s ease; } #fl-chat-panel.fl-open { transform: scale(1) translateY(0); opacity: 1; pointer-events: all; } #fl-chat-header { background: ${DARK3}; border-bottom: 1px solid ${BORDER}; padding: 16px 20px; display: flex; align-items: center; gap: 12px; flex-shrink: 0; } .fl-avatar { width: 38px; height: 38px; border-radius: 50%; background: rgba(201,168,76,.15); border: 1px solid ${BORDER}; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; flex-shrink: 0; } .fl-header-info { flex: 1; } .fl-header-name { font-size: .88rem; font-weight: 600; color: ${TEXT}; line-height: 1.2; } .fl-header-status { font-size: .72rem; color: #4caf78; display: flex; align-items: center; gap: 5px; margin-top: 2px; } .fl-status-dot { width: 6px; height: 6px; border-radius: 50%; background: #4caf78; animation: fl-pulse 2s infinite; } @keyframes fl-pulse { 0%,100%{opacity:1}50%{opacity:.4} } #fl-close-btn { background: none; border: none; color: ${TEXT_MUTED}; cursor: pointer; font-size: 1.2rem; padding: 4px; line-height: 1; transition: color .15s; } #fl-close-btn:hover { color: ${TEXT}; } #fl-messages { flex: 1; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 12px; scrollbar-width: thin; scrollbar-color: ${BORDER} transparent; min-height: 200px; max-height: 360px; } #fl-messages::-webkit-scrollbar { width: 4px; } #fl-messages::-webkit-scrollbar-track { background: transparent; } #fl-messages::-webkit-scrollbar-thumb { background: ${BORDER}; border-radius: 2px; } .fl-msg { display: flex; gap: 8px; animation: fl-fadeup .2s ease; } @keyframes fl-fadeup { from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none} } .fl-msg.fl-user { flex-direction: row-reverse; } .fl-msg-avatar { width: 28px; height: 28px; border-radius: 50%; flex-shrink: 0; background: rgba(201,168,76,.12); border: 1px solid ${BORDER}; display: flex; align-items: center; justify-content: center; font-size: .8rem; align-self: flex-end; } .fl-msg.fl-user .fl-msg-avatar { background: rgba(201,168,76,.25); } .fl-bubble { max-width: 78%; padding: 10px 14px; border-radius: 12px; font-size: .82rem; line-height: 1.6; color: ${TEXT}; } .fl-msg.fl-bot .fl-bubble { background: ${DARK3}; border: 1px solid ${BORDER}; border-bottom-left-radius: 4px; } .fl-msg.fl-user .fl-bubble { background: ${GOLD}; color: ${DARK}; font-weight: 500; border-bottom-right-radius: 4px; } .fl-suggestions { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 16px 12px; } .fl-sug-btn { background: rgba(201,168,76,.08); border: 1px solid ${BORDER}; color: ${GOLD}; font-size: .72rem; padding: 5px 11px; border-radius: 20px; cursor: pointer; font-family: inherit; transition: background .15s, transform .1s; line-height: 1.3; text-align: left; } .fl-sug-btn:hover { background: rgba(201,168,76,.18); transform: translateY(-1px); } #fl-typing { display: none; padding: 0 16px 4px; } #fl-typing span { font-size: .72rem; color: ${TEXT_MUTED}; font-style: italic; display: flex; align-items: center; gap: 6px; } .fl-dot-loader { display: flex; gap: 3px; } .fl-dot-loader span { width: 4px; height: 4px; border-radius: 50%; background: ${TEXT_MUTED}; animation: fl-dot .9s infinite; font-style: normal; padding: 0; } .fl-dot-loader span:nth-child(2){animation-delay:.15s} .fl-dot-loader span:nth-child(3){animation-delay:.3s} @keyframes fl-dot{0%,80%,100%{opacity:.2}40%{opacity:1}} #fl-input-row { border-top: 1px solid ${BORDER}; padding: 12px 16px; display: flex; gap: 8px; align-items: flex-end; flex-shrink: 0; background: ${DARK3}; } #fl-input { flex: 1; background: ${DARK2}; border: 1px solid ${BORDER}; border-radius: 8px; padding: 9px 13px; color: ${TEXT}; font-family: inherit; font-size: .83rem; resize: none; outline: none; max-height: 100px; overflow-y: auto; line-height: 1.45; transition: border-color .15s; } #fl-input::placeholder { color: ${TEXT_MUTED}; } #fl-input:focus { border-color: ${GOLD}; } #fl-send-btn { background: ${GOLD}; border: none; border-radius: 8px; width: 38px; height: 38px; cursor: pointer; display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: background .15s, transform .1s; font-size: 1rem; } #fl-send-btn:hover:not(:disabled) { background: #E8C96A; transform: scale(1.05); } #fl-send-btn:disabled { opacity: .5; cursor: not-allowed; } .fl-link-row { padding: 8px 16px 12px; display: flex; gap: 8px; justify-content: center; } .fl-link-btn { font-size: .68rem; color: ${TEXT_MUTED}; text-decoration: none; border: 1px solid ${BORDER}; padding: 4px 10px; border-radius: 20px; transition: color .15s, border-color .15s; } .fl-link-btn:hover { color: ${GOLD}; border-color: ${GOLD}; } @media(max-width: 440px) { #fl-chat-panel { width: calc(100vw - 24px); right: 12px; bottom: 90px; } #fl-chat-btn { bottom: 20px; right: 16px; } } `; document.head.appendChild(style); } function createWidget() { // Button const btn = document.createElement('button'); btn.id = 'fl-chat-btn'; btn.setAttribute('aria-label', 'Apri chat FreeLex'); btn.innerHTML = '⚖️1'; btn.addEventListener('click', toggleChat); document.body.appendChild(btn); // Panel const panel = document.createElement('div'); panel.id = 'fl-chat-panel'; panel.setAttribute('role', 'dialog'); panel.setAttribute('aria-label', 'FreeLex AI Chat'); panel.innerHTML = `
⚖️
FreeLex AI Assistant
Online ora
L'assistente sta scrivendo
`; document.body.appendChild(panel); document.getElementById('fl-close-btn').addEventListener('click', toggleChat); const input = document.getElementById('fl-input'); input.addEventListener('keydown', function(e) { if (e.key === 'Enter' && !e.shiftKey) { e.preventDefault(); sendMessage(); } }); input.addEventListener('input', function() { this.style.height = 'auto'; this.style.height = Math.min(this.scrollHeight, 100) + 'px'; }); document.getElementById('fl-send-btn').addEventListener('click', sendMessage); // Show welcome + suggestions addBotMessage(WELCOME); showSuggestions(); } function toggleChat() { isOpen = !isOpen; const panel = document.getElementById('fl-chat-panel'); const badge = document.querySelector('#fl-chat-btn .fl-badge'); if (isOpen) { panel.classList.add('fl-open'); if (badge) badge.style.display = 'none'; setTimeout(() => document.getElementById('fl-input').focus(), 250); } else { panel.classList.remove('fl-open'); } } function showSuggestions() { const container = document.getElementById('fl-suggestions'); if (!container) return; container.innerHTML = ''; SUGGESTIONS.forEach(s => { const btn = document.createElement('button'); btn.className = 'fl-sug-btn'; btn.textContent = s; btn.addEventListener('click', function() { container.innerHTML = ''; sendUserMessage(s); }); container.appendChild(btn); }); } function addBotMessage(text) { const msgs = document.getElementById('fl-messages'); const div = document.createElement('div'); div.className = 'fl-msg fl-bot'; // Convert newlines to
and basic markdown **bold** const formatted = text .replace(/&/g, '&') .replace(//g, '>') .replace(/\*\*(.*?)\*\*/g, '$1') .replace(/\n/g, '
'); div.innerHTML = `
⚖️
${formatted}
`; msgs.appendChild(div); msgs.scrollTop = msgs.scrollHeight; } function addUserMessage(text) { const msgs = document.getElementById('fl-messages'); const div = document.createElement('div'); div.className = 'fl-msg fl-user'; const escaped = text.replace(/&/g, '&').replace(//g, '>'); div.innerHTML = `
${escaped}
👤
`; msgs.appendChild(div); msgs.scrollTop = msgs.scrollHeight; } function setLoading(val) { isLoading = val; const typing = document.getElementById('fl-typing'); const btn = document.getElementById('fl-send-btn'); const input = document.getElementById('fl-input'); if (typing) typing.style.display = val ? 'block' : 'none'; if (btn) btn.disabled = val; if (input) input.disabled = val; } function sendMessage() { const input = document.getElementById('fl-input'); const text = input ? input.value.trim() : ''; if (!text || isLoading) return; input.value = ''; input.style.height = 'auto'; sendUserMessage(text); } function sendUserMessage(text) { // Clear suggestions when user sends first real message const suggestions = document.getElementById('fl-suggestions'); if (suggestions) suggestions.innerHTML = ''; addUserMessage(text); const userMsg = { role: 'user', content: text }; history.push(userMsg); setLoading(true); fetch(ENDPOINT, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ message: text, history: history.slice(0, -1) // Send history excluding the current message }) }) .then(r => r.json()) .then(data => { setLoading(false); const reply = data.reply || data.error || 'Errore di comunicazione. Riprova!'; addBotMessage(reply); history.push({ role: 'assistant', content: reply }); }) .catch(err => { setLoading(false); addBotMessage('⚠️ Errore di connessione. Puoi contattarci direttamente su WhatsApp: wa.me/393917516651'); history.push({ role: 'assistant', content: 'Errore di connessione.' }); }); } // Init on DOM ready function init() { injectStyles(); createWidget(); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } })();