🏠 Subastas de inmuebles en Brasil
HastaSubastasRio Grande do SulPorto Alegre › APARTAMENTO EM PORTO ALEGRE/RS
APARTAMENTO EM PORTO ALEGRE/RS
Departamento #1108930

APARTAMENTO EM PORTO ALEGRE/RS

📍 Porto Alegre, RS
La descripción, el edicto y los documentos de este lote están en portugués, tal como los publicó el subastador. Las pujas se hacen en el sitio del subastador oficial, en portugués.

Datos de la subasta

1ª subasta06/04/2026
2ª subasta16/09/2026
Tipo de subastaSubasta judicial
SubastadorSÉRGIO AUGUSTO DOS SANTOS

Descripción

Texto del subastador, en portugués.

(51) 99381-2827 | (51) 30331-400 | $(document).ready(function(){ // Toggle password functionality $('[data-toggle-password-topo]').off('click.topoToggle').on('click.topoToggle', function() { var container = $(this).closest('.password-toggle-topo-container'); var passwordInput = container.find('input[type="password"], input[type="text"]'); var showIcon = $(this).find('.show-password'); var hideIcon = $(this).find('.hide-password'); if (passwordInput.length) { if (passwordInput.attr('type') === 'password') { passwordInput.attr('type', 'text'); showIcon.hide(); hideIcon.show(); } else { passwordInput.attr('type', 'password'); showIcon.show(); hideIcon.hide(); } } }); // Prevenir que o dropdown feche ao clicar no formulário $('.dropdown-menu.dropdown-login').on('click', function(e) { e.stopPropagation(); }); }); account_circle LOGIN account_circle lock Permanecer conectado Esqueceu a senha? ENTRAR ou Entrar com Chave de Segurança (function () { var passkeyBtn = document.getElementById('btnPasskeyLoginTopo'); var status = document.getElementById('passkey-status-topo'); if (!passkeyBtn) return; if (!window.PublicKeyCredential) { passkeyBtn.disabled = true; status.textContent = 'Passkey não suportada neste navegador.'; return; } passkeyBtn.addEventListener('click', async function () { passkeyBtn.disabled = true; status.className = 'text-center text-muted mt-2 mb-0'; status.textContent = 'Aguardando autenticador…'; try { var optRes = await fetch('/arrematante/passkey/login/options', { method: 'POST', headers: { 'X-Requested-With': 'XMLHttpRequest' } }); if (!optRes.ok) throw new Error('Falha ao obter opções.'); var args = await optRes.json(); var pubKey = args.publicKey; pubKey.challenge = _b64ToBuffer(pubKey.challenge); if (pubKey.allowCredentials) { pubKey.allowCredentials = pubKey.allowCredentials.map(function (c) { return Object.assign({}, c, { id: _b64ToBuffer(c.id) }); }); } var assertion = await navigator.credentials.get({ publicKey: pubKey }); var body = { id: assertion.id, rawId: _bufToB64(assertion.rawId), type: assertion.type, response: { clientDataJSON: _bufToB64(assertion.response.clientDataJSON), authenticatorData: _bufToB64(assertion.response.authenticatorData), signature: _bufToB64(assertion.response.signature), userHandle: assertion.response.userHandle ? _bufToB64(assertion.response.userHandle) : null } }; var verRes = await fetch('/arrematante/passkey/login/verify', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-Requested-With': 'XMLHttpRequest' }, body: JSON.stringify(body), redirect: 'follow' }); if (verRes.redirected) { window.location.href = verRes.url; return; } if (verRes.ok) { window.location.href = '/arrematante/painel-controle'; return; } var err = await verRes.json().catch(function () { return {}; }); throw new Error(err.error || 'Falha na autenticação.'); } catch (e) { status.className = 'text-center text-danger mt-2 mb-0'; status.textContent = e.name === 'NotAllowedError' ? 'Operação cancelada.' : (e.message || 'Erro.'); passkeyBtn.disabled = false; } }); function _b64ToBuffer(b64url) { var b64 = b64url.replace(/-/g, '+').replace(/_/g, '/'); while (b64.length % 4) b64 += '='; var bin = atob(b64); var buf = new Uint8Array(bin.length); for (var i = 0; i < bin.length; i++) buf[i] = bin.charCodeAt(i); return buf.buffer; } function _bufToB64(buf) { var bytes = new Uint8Array(buf); var bin = ''; bytes.forEach(function (b) { bin += String.fromCharCode(b); }); return btoa(bin).replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=/g, ''); } })(); CADASTRE-SE NS Leilões - Presenciais e Online Toggle navigation HOME LEILÕES VENDA DIRETA QUEM SOMOS QUERO VENDER CONTATO search IMÓVEIS 37 itens VEÍCULOS 29 itens EQUIPAMENTOS 3 itens DIVERSOS 1 item ANIMAIS 0 itens ELETRÔNICOS 0 itens MÁQUINAS 0 itens SUCATAS 0 itens /* Garantir que os botões do carrossel sejam sempre visíveis */ .carousel-btn { display: flex !important; position: absolute; z-index: 1000; background: rgba(255, 255, 255, 0.95) !important; border: none !important; border-radius: 50% !important; width: 50px; height: 50px; align-items: center; justify-content: center; font-size: 20px; color: #007bff !important; cursor: pointer; transition: all 0.3s ease; box-shadow: 0 4px 15px rgba(0,0,0,0.15) !important; } .carousel-btn:hover { background: white !important; transform: scale(1.1); box-shadow: 0 6px 20px rgba(0,0,0,0.2) !important; } .carousel-btn-prev { left: 10px !important; top: 50%; transform: translateY(-50%); } .carousel-btn-next { right: 10px !important; top: 50%; transform: translateY(-50%); } /* Garantir o posicionamento correto do wrapper */ .categoria-carousel-wrapper { position: relative !important; min-height: 120px; } let currentPosition = 0; let cardWidth = 0; let visibleCards = 0; let totalCards = 0; function initCarousel() { const container = document.getElementById('categoria-carousel'); const track = document.getElementById('carousel-track'); const cards = track ? track.querySelectorAll('.categoria-card') : []; const prevBtn = document.querySelector('.carousel-btn-prev'); const nextBtn = document.querySelector('.carousel-btn-next'); if (!container || !track || cards.length === 0) { console.log('Carrossel de categorias: Elementos não encontrados ou sem cards'); return; } // Resetar posição para o início currentPosition = 0; track.style.transform = 'translateX(0)'; totalCards = cards.length; // Calcular dimensões considerando larguras variáveis dos cards const containerWidth = container.offsetWidth; // Calcular largura total necessária para todos os cards let totalCardsWidth = 0; let maxCardWidth = 0; cards.forEach((card, index) => { const cardStyle = getComputedStyle(card); const cardWidth = card.offsetWidth + parseFloat(cardStyle.marginLeft) + parseFloat(cardStyle.marginRight); totalCardsWidth += cardWidth; maxCardWidth = Math.max(maxCardWidth, cardWidth); // Para o gap entre os cards (15px conforme CSS) if (index < cards.length - 1) { totalCardsWidth += 15; } }); // Usar a maior largura de card como referência para navegação cardWidth = maxCardWidth || 150; // fallback // Calcular quantos cards cabem visualmente (mais conservador) visibleCards = Math.floor(containerWidth / cardWidth); // Verificar se o conteúdo transborda o container const needsCarousel = totalCardsWidth > containerWidth; // Sempre mostrar os botões inicialmente if (prevBtn && nextBtn) { prevBtn.style.display = 'flex'; nextBtn.style.display = 'flex'; // Verificar se realmente precisa dos botões baseado no overflow if (!needsCarousel) { // Se não transbordar, centralizar cards e desabilitar botões track.style.justifyContent = 'center'; prevBtn.style.opacity = '0.3'; nextBtn.style.opacity = '0.3'; prevBtn.style.cursor = 'not-allowed'; nextBtn.style.cursor = 'not-allowed'; prevBtn.disabled = true; nextBtn.disabled = true; } else { // Habilitar navegação track.style.justifyContent = 'flex-start'; prevBtn.disabled = false; nextBtn.disabled = false; // Ajustar visibleCards baseado na necessidade real visibleCards = Math.max(1, Math.floor(totalCards * containerWidth / totalCardsWidth)); } } updateButtonsState(); } function scrollCarousel(direction) { const track = document.getElementById('carousel-track'); const prevBtn = document.querySelector('.carousel-btn-prev'); const nextBtn = document.querySelector('.carousel-btn-next'); // Não fazer nada se os botões estão desabilitados if ((direction === 'prev' && prevBtn && prevBtn.disabled) || (direction === 'next' && nextBtn && nextBtn.disabled)) { return; } const maxPosition = Math.max(0, totalCards - visibleCards); if (direction === 'next' && currentPosition < maxPosition) { currentPosition++; } else if (direction === 'prev' && currentPosition > 0) { currentPosition--; } const translateX = -(currentPosition * cardWidth); track.style.transform = `translateX(${translateX}px)`; updateButtonsState(); } function updateButtonsState() { const prevBtn = document.querySelector('.carousel-btn-prev'); const nextBtn = document.querySelector('.carousel-btn-next'); const maxPosition = Math.max(0, totalCards - visibleCards); if (prevBtn && nextBtn) { // Se os botões estão desabilitados (sem necessidade de carrossel), não alterar estado if (prevBtn.disabled) { return; } // Atualizar estado dos botões baseado na posição atual if (currentPosition === 0) { prevBtn.style.opacity = '0.5'; prevBtn.style.cursor = 'not-allowed'; } else { prevBtn.style.opacity = '1'; prevBtn.style.cursor = 'pointer'; } if (currentPosition >= maxPosition) { nextBtn.style.opacity = '0.5'; nextBtn.style.cursor = 'not-allowed'; } else { nextBtn.style.opacity = '1'; nextBtn.style.cursor = 'pointer'; } } } // Inicializar quando a página carregar document.addEventListener('DOMContentLoaded', function() { // Delay pequeno para garantir que os estilos CSS foram aplicados setTimeout(initCarousel, 100); }); // Garantir inicialização após carregamento completo window.addEventListener('load', function() { setTimeout(initCarousel, 200); }); // Reinicializar no resize window.addEventListener('resize', function() { // Resetar para o início currentPosition = 0; const track = document.getElementById('carousel-track'); if (track) { track.style.transform = 'translateX(0)'; track.style.justifyContent = 'flex-start'; } // Resetar estado dos botões const prevBtn = document.querySelector('.carousel-btn-prev'); const nextBtn = document.querySelector('.carousel-btn-next'); if (prevBtn && nextBtn) { prevBtn.disabled = false; nextBtn.disabled = false; prevBtn.style.opacity = '1'; nextBtn.style.opacity = '1'; prevBtn.style.cursor = 'pointer'; nextBtn.style.cursor = 'pointer'; } // Delay para garantir que as dimensões sejam recalculadas setTimeout(initCarousel, 150); }); // Suporte para

Documentos (2)

Documentos oficiales, en portugués.

📄 documentoDocumento📄 documentoDocumento

Cómo comprar este inmueble desde fuera de Brasil

Necesitas un número fiscal brasileño (CPF, obtenido en un consulado), un representante en Brasil, y la puja se hace en el sitio del subastador. Las guías de abajo explican cada etapa, los costos y los riesgos.

Inmuebles similares en Porto Alegre

Inmuebles en otras ciudades de Rio Grande do Sul