- Home
- Financiamento
- Conta
- Empréstimos - escondida
- LoginSemSAML
- Ofertas Públicas
- Abrir Aplicativo BV
- Promoções
- Para Empresas
- Política de Cookies
- Ouvidoria
- Termos de Uso
- Política de privacidade
- Saiba mais
- Portabilidade de Empréstimo
- Links Oficiais
- Asset
- Empréstimos BV
- Carta de Contestação
- Inovação
- Institucional
- Fenauto
- Veículos
- DTVM
- BV private
- Open Finance
- Revisauto
- App BV
- Cartões
- Seguros
- Seguro Proteção Financeira
- Seguros nao Comercializados
- Seguro Auto
- Seguro Garantia Mecanica
- Seguro Auto Responsabilidade Civil Facultativa - RCF
- Seguro Auto Darwin
- Seguro Auto Casco
- Seguro Auto Completo
- Seguro Auto Total Cadastro
- Seguro Parcial para Automóveis
- Assistencias
- Plano Odontológico
- Renda Protegida Premiada
- Seguro Cartão Protegido
- Seguro Acidentes Pessoais Premiado
- Seguro Residencial
- Documentos e Informações
- Seguro Placa Solar
- Proximo Passo
- Boleto
- Atendimento
- Para Você
- Produtos não comercializados
- Cobrança
- Open Finance
- Gestão Open Finance
- Minha BV
- Resultados de Pesquisa
- Home Recolher
- Home
- Financiamento
- Conta
- Empréstimos - escondida
- LoginSemSAML
- Ofertas Públicas
- Abrir Aplicativo BV
- Promoções
- Para Empresas
- Política de Cookies
- Ouvidoria
- Termos de Uso
- Política de privacidade
- Saiba mais
- Portabilidade de Empréstimo
- Links Oficiais
- Asset
- Empréstimos BV
- Carta de Contestação
- Inovação
- Institucional
- Fenauto
- Veículos
- DTVM
- BV private
- Open Finance
- Revisauto
- App BV
- Cartões
- Seguros
- Seguro Proteção Financeira
- Seguros nao Comercializados
- Seguro Auto
- Seguro Garantia Mecanica
- Seguro Auto Responsabilidade Civil Facultativa - RCF
- Seguro Auto Darwin
- Seguro Auto Casco
- Seguro Auto Completo
- Seguro Auto Total Cadastro
- Seguro Parcial para Automóveis
- Assistencias
- Plano Odontológico
- Renda Protegida Premiada
- Seguro Cartão Protegido
- Seguro Acidentes Pessoais Premiado
- Seguro Residencial
- Documentos e Informações
- Seguro Placa Solar
- Proximo Passo
- Boleto
- Atendimento
- Para Você
- Produtos não comercializados
- Cobrança
- Open Finance
- Gestão Open Finance
- Minha BV
- Resultados de Pesquisa
- Home Recolher
The following has evaluated to null or missing: ==> bulletPointLayoutSelect [in template "20097#20123#2977133" at line 23, column 16] ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: layoutType = bulletPointLayoutSelect... [in template "20097#20123#2977133" at line 23, column 3] ----
1<#function formatText text>
2 <#assign cleanedText=text?lower_case cleanedText=cleanedText?replace("à|á|ã|â", "a" , 'r' )
3 cleanedText=cleanedText?replace("é|è|ê", "e" , 'r' ) cleanedText=cleanedText?replace("í|ì|î", "i" , 'r' )
4 cleanedText=cleanedText?replace("ó|ò|õ|ô", "o" , 'r' ) cleanedText=cleanedText?replace("ú|ù|û", "u" , 'r' )
5 cleanedText=cleanedText?replace("ç", "c" , 'r' ) cleanedText=cleanedText?replace("!", "" , 'r' )
6 cleanedText=cleanedText?replace("(?<=[0-9] )(?:ª|º)", "" , 'r' ) cleanedText=cleanedText?replace("\\s+", "-" , 'r'
7 )>
8 <#return cleanedText>
9</#function>
10
11<#assign instanceId="bullet-point-" + .vars["reserved-article-id"].data>
12<#assign title=bulletPointTitle.getData()
13 buttonText=bulletPointButtonText.getData()
14 buttonURL=bulletPointButtonURL.getData()
15 hasButtonText=buttonText?has_content
16 svgIcon=bulletPointSVGIcon.getData()
17 imageAlt = bulletPointImage.getAttribute("alt")!""
18 imageSrc = bulletPointImage.getData()!""
19 imageFileId = bulletPointImage.getAttribute("fileEntryId")!""
20 mobileImageAlt = bulletPointImageMobile.getAttribute("alt")!""
21 mobileImageSrc = bulletPointImageMobile.getData()!""
22 mobileImageFileId = bulletPointImageMobile.getAttribute("fileEntryId")!""
23 layoutType = bulletPointLayoutSelect.getData()
24 disclaimer = bulletPointDisclaimer.getData()!""
25/>
26
27<div class="js-card-bullet-component">
28<#if layoutType=="bulletPointSM">
29 <!--Layout desktop SM-->
30 <div class="d-none d-lg-block bullet-point-container" data-component-id="${instanceId}">
31 <h2 class="title title-size-1 col-6">
32 ${title}
33 </h2>
34 <div class="row mt-7 align-items-end">
35 <div class="col-4 bullet-point-main-img">
36 <img loading="lazy" alt="${imageAlt}" data-fileentryid="${imageFileId}" src="${imageSrc}" />
37 </div>
38 <div class="col-8 pl-8">
39 <#if bulletPointFieldSet.getSiblings()?has_content>
40 <div class="row">
41 <#list bulletPointFieldSet.getSiblings() as cur_bulletPointFieldSet>
42 <#if cur_bulletPointFieldSet_index % 2 == 0 && cur_bulletPointFieldSet_index != 0>
43 </div>
44 <div class="row">
45 </#if>
46 <div class="col-md-6 mb-6 pr-7">
47 <div>
48 ${cur_bulletPointFieldSet.bulletPointItemIcon.getData()}
49 </div>
50 <h3 class="mt-5 mb-2 text-surface-size-3 bullet-item-title d-flex align-items-center">
51 ${cur_bulletPointFieldSet.bulletPointItemTitle.getData()}
52 </h3>
53 <div>
54 ${cur_bulletPointFieldSet.bulletPointItemText.getData()}
55 <#if (cur_bulletPointFieldSet.bulletPointItemLinkText.getData())??>
56 <a class="text-nowrap link link-primary link-primary_normal" href="${cur_bulletPointFieldSet.bulletPointItemURL.getData()}" target="_blank">
57 ${cur_bulletPointFieldSet.bulletPointItemLinkText.getData()}
58 </a>
59 </#if>
60 </div>
61 </div>
62 </#list>
63 </div>
64 <#if hasButtonText>
65 <a
66 class="js-bullet-point-button mt-5 js-bullet-point-button-sideBar"
67 data-component="bullet-point"
68 data-title="${title}"
69 data-text="${buttonText}"
70 target="_blank"
71 href="${buttonURL}"
72 >
73 <button aria-label="${buttonText}" class="text-size-base bv-btn-2 bv-btn-2__primary">
74 ${buttonText}
75 </button>
76 </a>
77 </#if>
78 </#if>
79 </div>
80 </div>
81 <#if disclaimer?has_content>
82 <div class="pl-4 pl-lg-0">
83 <p class="text text-size-small margin-top_24">${disclaimer}</p>
84 </div>
85 </#if>
86 </div>
87
88<#elseif layoutType=="bulletPointLG">
89 <!--Layout desktop LG-->
90 <div class="bullet-item-altnernative-layout d-none d-lg-block bullet-point-container"
91 data-component-id="${instanceId}">
92 <div class="row mt-7">
93 <div class="col-4 d-flex flex-column justify-content-between">
94 <div class="bullet-point-sticky-header">
95 <h2 class="title title-size-1 mb-7">
96 ${title}
97 </h2>
98 <#if svgIcon?has_content>
99 ${svgIcon}
100 </#if>
101 </div>
102 <div class="bullet-point-alternative-img">
103 <img loading="lazy" alt="${imageAlt}" data-fileentryid="${imageFileId}" src="${imageSrc}" />
104 </div>
105 </div>
106 <div class="col-8">
107 <#if bulletPointFieldSet.getSiblings()?has_content>
108 <#list bulletPointFieldSet.getSiblings() as cur_bulletPointFieldSet>
109 <div class="row mb-3 bullet-item align-items-center">
110 <div class="col-1">
111 ${cur_bulletPointFieldSet.bulletPointItemIcon.getData()}
112 </div>
113 <h3 class="col-4 bullet-item-title text text-size-base pr-10">
114 ${cur_bulletPointFieldSet.bulletPointItemTitle.getData()}
115 </h3>
116 <div class="col-7">
117 <p class="text text-size-base">
118 ${cur_bulletPointFieldSet.bulletPointItemText.getData()}
119 <#if (cur_bulletPointFieldSet.bulletPointItemLinkText.getData())??>
120 <a class="text-nowrap link link-primary link-primary_normal" href="${cur_bulletPointFieldSet.bulletPointItemURL.getData()}" target="_blank">
121 ${cur_bulletPointFieldSet.bulletPointItemLinkText.getData()}
122 </a>
123 </#if>
124 </p>
125 </div>
126 </div>
127 </#list>
128 </#if>
129 </div>
130 </div>
131 <#if disclaimer?has_content>
132 <div class="pl-4 pl-lg-0">
133 <p class="text text-size-small margin-top_24">${disclaimer}</p>
134 </div>
135 </#if>
136 </div>
137
138 <#elseif layoutType=="bulletPointMD">
139 <!-- Layout MD-->
140 <div class="d-none d-lg-block bullet-point-md-layout bullet-point-container" data-component-id="${instanceId}">
141 <h2 class="title title-size-1 p-4">
142 ${title}
143 </h2>
144 <div class="col-12 mb-4">
145 <p class="text text-size-base">
146 <#if (bulletPointSectionText.getData())??>
147 ${bulletPointSectionText.getData()}
148 </#if>
149 </p>
150 </div>
151 <div class="bullet-point-component__md">
152 <#if bulletPointFieldSet.getSiblings()?has_content>
153 <div class="row">
154 <div class="col-12">
155 <div class="card-bullet-component__multiple">
156 <div class="card-bullet-component__wrapper js-card-bullet-component-desk-caroussel d-flex">
157 <#list bulletPointFieldSet.getSiblings() as cur_bulletPointFieldSet>
158 <div class="card-bullet-component__card card-bullet-component-md__card">
159 <div class="p-4 d-flex flex-column justify-content-start h-100">
160 <div class="mb-6">
161 ${cur_bulletPointFieldSet.bulletPointItemIcon.getData()}
162 </div>
163 <h3 class="title title-size-3 mb-2">
164 ${cur_bulletPointFieldSet.bulletPointItemTitle.getData()}
165 </h3>
166 <p class="text">
167 ${cur_bulletPointFieldSet.bulletPointItemText.getData()}
168 <#if (cur_bulletPointFieldSet.bulletPointItemLinkText.getData())??>
169 <a class="text-nowrap link link-primary link-primary_normal" href="${cur_bulletPointFieldSet.bulletPointItemURL.getData()}" target="_blank">
170 ${cur_bulletPointFieldSet.bulletPointItemLinkText.getData()}
171 </a>
172 </#if>
173 </p>
174 </div>
175 </div>
176 </#list>
177 </div>
178 </div>
179 </div>
180 </div>
181 </#if>
182 </div>
183 <!-- Carrossel buttons -->
184 <div class="d-flex justify-content-center align-items-center mt-10">
185 <button
186 aria-label="Slide anterior"
187 class="carousel-prev card-bullet-component__control-prev d-none d-lg-block"
188 type="button" disabled>
189 <span aria-hidden="true">
190 <svg
191 width="33"
192 height="33"
193 viewBox="0 0 33 33"
194 fill="none"
195 xmlns="http://www.w3.org/2000/svg">
196 <path
197 d="M4.93864 16.0306C4.95564 9.40321 10.342 4.04442 16.9694 4.06142C23.5968 4.07842 28.9556 9.46477 28.9386 16.0922C28.9216 22.7196 23.5352 28.0783 16.9078 28.0613C10.2804 28.0443 4.92164 22.658 4.93864 16.0306Z"
198 fill="#223AD2" />
199 <path
200 fill-rule="evenodd"
201 clip-rule="evenodd"
202 d="M20.3074 11.0444L19.3355 10.0675L13.8085 15.5662C13.5384 15.8349 13.5373 16.2704 13.806 16.5405L19.3047 22.0675L20.2816 21.0956L15.2689 16.0571L20.3074 11.0444Z"
203 fill="#EDEFFC" />
204 </svg>
205 </span>
206 <span class="sr-only">Anterior</span>
207 </button>
208 <ol class="card-bullet-component__navigation d-flex list-unstyled my-0 mx-8 card-bullet-component__size-${bulletPointFieldSet.getSiblings()?size}">
209 <#assign visibleCount=3>
210 <#assign bulletCount=((bulletPointFieldSet.getSiblings()?size + visibleCount - 1) / visibleCount)?ceiling>
211 <#list 0..(bulletCount - 1) as i>
212 <li class="slider-bullet <#if i == 0>active</#if>">
213 <button data-slide-index="${i}" aria-label="botão para trocar para o slide ${i}"></button>
214 </li>
215 </#list>
216 </ol>
217 <button
218 aria-label="Próximo Slide"
219 class="carousel-next card-bullet-component__control-next d-none d-lg-block"
220 type="button">
221 <span aria-hidden="true">
222 <svg
223 width="34"
224 height="34"
225 viewBox="0 0 34 34"
226 fill="none"
227 xmlns="http://www.w3.org/2000/svg">
228 <rect
229 x="4.96936"
230 y="5.12311"
231 width="24"
232 height="24"
233 rx="12"
234 transform="rotate(-0.293956 4.96936 5.12311)"
235 fill="#223AD2" />
236 <path
237 fill-rule="evenodd"
238 clip-rule="evenodd"
239 d="M13.7007 22.1041L14.68 23.0735L20.1645 17.5325C20.4325 17.2617 20.4303 16.8262 20.1595 16.5581L14.6185 11.0737L13.6491 12.053L18.7004 17.0528L13.7007 22.1041Z"
240 fill="#EDEFFC" />
241 </svg>
242 </span>
243 <span class="sr-only">Próximo</span>
244 </button>
245 </div>
246 <#if hasButtonText>
247 <div class="w-100 mt-4 p-3">
248 <a class="js-bullet-point-button mt-5 w-100" data-component="bullet-point" data-title="${title}"
249 data-text="${buttonText}" target="_blank" href="${buttonURL}">
250 <button aria-label="${buttonText}" class="text-size-base bv-btn-2 bv-btn-2__primary w-100">
251 ${buttonText}
252 </button>
253 </a>
254 </div>
255 </#if>
256 </div>
257 </#if>
258
259 <!--Layout mobile-->
260 <div class="d-block d-lg-none bullet-point-container" data-component-id="${instanceId}">
261 <h2 class="title title-size-1 p-4">
262 ${title}
263 </h2>
264 <#if (bulletPointSectionText.getData())??>
265 <div class="col-12 mb-4">
266 <p class="text text-size-base">
267 ${bulletPointSectionText.getData()}
268 </p>
269 </div>
270 </#if>
271 <div class="bullet-point-component__mobile">
272 <#if bulletPointFieldSet.getSiblings()?has_content>
273 <div class="row">
274 <div class="col-12">
275 <div class="overflow-hidden card-bullet-component__preview-mobile">
276 <div class="d-flex card-bullet-component__wrapper-mobile js-card-bullet-component-mobile-caroussel">
277 <#list bulletPointFieldSet.getSiblings() as cur_bulletPointFieldSet>
278 <div class="card-bullet-component__card-mobile">
279 <div class="p-4 d-flex flex-column justify-content-start h-100">
280 <div class="mb-6">
281 ${cur_bulletPointFieldSet.bulletPointItemIcon.getData()}
282 </div>
283 <h3 class="title title-size-4 mb-2">
284 ${cur_bulletPointFieldSet.bulletPointItemTitle.getData()}
285 </h3>
286 <p class="text">
287 ${cur_bulletPointFieldSet.bulletPointItemText.getData()}
288 </p>
289 </div>
290 </div>
291 </#list>
292 </div>
293 </div>
294 </div>
295 </div>
296 </#if>
297 </div>
298 <#if imageSrc?has_content>
299 <div class="mobile-bullet-point-image w-100">
300 <img loading="lazy" alt="${mobileImageAlt}" data-fileentryid="${mobileImageFileId}" src="${mobileImageSrc}" />
301 </div>
302 </#if>
303 <#if hasButtonText>
304 <div class="w-100 mt-4 p-3">
305 <a class="js-bullet-point-button mt-5 w-100" data-component="bullet-point" data-title="${title}"
306 data-text="${buttonText}" target="_blank" href="${buttonURL}">
307 <button aria-label="${buttonText}" class="text-size-base bv-btn-2 bv-btn-2__primary w-100">
308 ${buttonText}
309 </button>
310 </a>
311 </div>
312 </#if>
313 </div>
314</div>
315
316<style>
317 .bullet-point-main-img img,
318 .mobile-bullet-point-image img {
319 object-fit: cover;
320 object-position: center;
321 display: block;
322 width: 100%;
323 }
324
325 .bullet-point-main-img img {
326 border-radius: var(--spacer-4);
327 height: 400px;
328 width: 310px;
329 }
330
331 .mobile-bullet-point-image img {
332 border-bottom-left-radius: var(--spacer-6);
333 border-bottom-right-radius: var(--spacer-6);
334 height: 160px;
335 }
336
337 .bullet-point-alternative-img img {
338 width: 280px;
339 height: 280px;
340 }
341
342 .bullet-item-title {
343 font-weight: 500;
344 }
345
346 .bullet-item {
347 border-bottom: 1px solid var(--color-surface-high);
348 height: 105px;
349 }
350
351 .bullet-point-component__mobile .card-bullet-component__card-mobile {
352 scroll-snap-align: start;
353 flex: 0 0 80%;
354 max-width: 80%;
355 margin-right: 10px;
356 }
357
358 .bullet-point-md-layout {
359 background-color: var(--color-primary-low);
360 border-radius: var(--spacer-4);
361 padding: var(--spacer-7);
362 }
363
364 .card-bullet-component-md__card {
365 flex: 0 0 33% !important;
366 max-width: calc(33% - 16px);
367 margin-bottom: 0;
368 }
369</style>
370<script>
371 document.addEventListener("DOMContentLoaded", () => {
372 const btn = document.querySelector(".js-bullet-point-button");
373 const container = document.querySelector(".bullet-point-container");
374
375 btn.addEventListener("click", () => {
376 const title = formatText(btn.dataset.title);
377 const text = formatText(btn.dataset.text);
378 const componentId = container.dataset.componentId;
379 window.gaDatalayer.sendCtaClickEvent({
380 event: "button_click",
381 component: "button",
382 title,
383 text,
384 component_id: componentId,
385 });
386 });
387
388 const formatText = (text) => {
389 return text
390 .toLowerCase()
391 .replace(/[\u2028\u2029\u00A0]/g, " ")
392 .replace(new RegExp("[ÁÀÂÃ]", "gi"), "a")
393 .replace(new RegExp("[ÉÈÊ]", "gi"), "e")
394 .replace(new RegExp("[ÍÌÎ]", "gi"), "i")
395 .replace(new RegExp("[ÓÒÔÕ]", "gi"), "o")
396 .replace(new RegExp("[ÚÙÛ]", "gi"), "u")
397 .replace(new RegExp("[Ç]", "gi"), "c")
398 .replace(new RegExp("/<brs*[/]?>/", "gi"), "-")
399 .replace(new RegExp("[.,;!?]", "g"), "")
400 .replace(/[:?!@*+#$%^&]/g, "")
401 .trim()
402 .replace(/\s+/g, "-");
403 };
404 });
405
406 (() => {
407 const addEventOnButtonBanner = () => {
408 const buttonBannerList = document.querySelectorAll(
409 ".js-bullet-point-button-sideBar"
410 );
411 const appComponent = document.querySelector(
412 ".appBV-link-wrapper.appBV-sidebar-desktop"
413 );
414 buttonBannerList.forEach((buttonBanner) => {
415 buttonBanner.addEventListener("click", (e) => {
416 event.preventDefault();
417 appComponent.click();
418 });
419
420 });
421 };
422 document.addEventListener("DOMContentLoaded", addEventOnButtonBanner);
423 })();
424</script>
Investimentos e Envelopes
Com o banco BV, você tem uma conta para todas as suas versões.
Quer guardar dinheiro? Use Envelopes por meta. Prefere investir? Vem render a partir de 100% do CDI.


Investimentos e Envelopes
Com o banco BV, você tem uma conta para todas as suas versões.
Quer guardar dinheiro? Use Envelopes por meta. Prefere investir? Vem render a partir de 100% do CDI.


Escolha o Cartão de crédito BV que mais combina com você!
De pontos a descontos, conheça todas as vantagens.
De pontos a descontos, conheça todas as vantagens.

Cashback em toda compra ou zero anuidade
Seu cartão está te esperando!
Acesso gratuito a salas VIP
Assistências Veicular e Residencial 24h


Cashback em toda compra ou zero anuidade
Acesso gratuito a salas VIP
Assistências Veicular e Residencial 24h

Seu cartão está te esperando!
Sujeito a análise. Consulte condições. Cartão de débito emitido na abertura da conta. Confira os benefícios de cada cartão
The following has evaluated to null or missing: ==> bulletPointLayoutSelect [in template "20097#20123#2977133" at line 23, column 16] ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: layoutType = bulletPointLayoutSelect... [in template "20097#20123#2977133" at line 23, column 3] ----
1<#function formatText text>
2 <#assign cleanedText=text?lower_case cleanedText=cleanedText?replace("à|á|ã|â", "a" , 'r' )
3 cleanedText=cleanedText?replace("é|è|ê", "e" , 'r' ) cleanedText=cleanedText?replace("í|ì|î", "i" , 'r' )
4 cleanedText=cleanedText?replace("ó|ò|õ|ô", "o" , 'r' ) cleanedText=cleanedText?replace("ú|ù|û", "u" , 'r' )
5 cleanedText=cleanedText?replace("ç", "c" , 'r' ) cleanedText=cleanedText?replace("!", "" , 'r' )
6 cleanedText=cleanedText?replace("(?<=[0-9] )(?:ª|º)", "" , 'r' ) cleanedText=cleanedText?replace("\\s+", "-" , 'r'
7 )>
8 <#return cleanedText>
9</#function>
10
11<#assign instanceId="bullet-point-" + .vars["reserved-article-id"].data>
12<#assign title=bulletPointTitle.getData()
13 buttonText=bulletPointButtonText.getData()
14 buttonURL=bulletPointButtonURL.getData()
15 hasButtonText=buttonText?has_content
16 svgIcon=bulletPointSVGIcon.getData()
17 imageAlt = bulletPointImage.getAttribute("alt")!""
18 imageSrc = bulletPointImage.getData()!""
19 imageFileId = bulletPointImage.getAttribute("fileEntryId")!""
20 mobileImageAlt = bulletPointImageMobile.getAttribute("alt")!""
21 mobileImageSrc = bulletPointImageMobile.getData()!""
22 mobileImageFileId = bulletPointImageMobile.getAttribute("fileEntryId")!""
23 layoutType = bulletPointLayoutSelect.getData()
24 disclaimer = bulletPointDisclaimer.getData()!""
25/>
26
27<div class="js-card-bullet-component">
28<#if layoutType=="bulletPointSM">
29 <!--Layout desktop SM-->
30 <div class="d-none d-lg-block bullet-point-container" data-component-id="${instanceId}">
31 <h2 class="title title-size-1 col-6">
32 ${title}
33 </h2>
34 <div class="row mt-7 align-items-end">
35 <div class="col-4 bullet-point-main-img">
36 <img loading="lazy" alt="${imageAlt}" data-fileentryid="${imageFileId}" src="${imageSrc}" />
37 </div>
38 <div class="col-8 pl-8">
39 <#if bulletPointFieldSet.getSiblings()?has_content>
40 <div class="row">
41 <#list bulletPointFieldSet.getSiblings() as cur_bulletPointFieldSet>
42 <#if cur_bulletPointFieldSet_index % 2 == 0 && cur_bulletPointFieldSet_index != 0>
43 </div>
44 <div class="row">
45 </#if>
46 <div class="col-md-6 mb-6 pr-7">
47 <div>
48 ${cur_bulletPointFieldSet.bulletPointItemIcon.getData()}
49 </div>
50 <h3 class="mt-5 mb-2 text-surface-size-3 bullet-item-title d-flex align-items-center">
51 ${cur_bulletPointFieldSet.bulletPointItemTitle.getData()}
52 </h3>
53 <div>
54 ${cur_bulletPointFieldSet.bulletPointItemText.getData()}
55 <#if (cur_bulletPointFieldSet.bulletPointItemLinkText.getData())??>
56 <a class="text-nowrap link link-primary link-primary_normal" href="${cur_bulletPointFieldSet.bulletPointItemURL.getData()}" target="_blank">
57 ${cur_bulletPointFieldSet.bulletPointItemLinkText.getData()}
58 </a>
59 </#if>
60 </div>
61 </div>
62 </#list>
63 </div>
64 <#if hasButtonText>
65 <a
66 class="js-bullet-point-button mt-5 js-bullet-point-button-sideBar"
67 data-component="bullet-point"
68 data-title="${title}"
69 data-text="${buttonText}"
70 target="_blank"
71 href="${buttonURL}"
72 >
73 <button aria-label="${buttonText}" class="text-size-base bv-btn-2 bv-btn-2__primary">
74 ${buttonText}
75 </button>
76 </a>
77 </#if>
78 </#if>
79 </div>
80 </div>
81 <#if disclaimer?has_content>
82 <div class="pl-4 pl-lg-0">
83 <p class="text text-size-small margin-top_24">${disclaimer}</p>
84 </div>
85 </#if>
86 </div>
87
88<#elseif layoutType=="bulletPointLG">
89 <!--Layout desktop LG-->
90 <div class="bullet-item-altnernative-layout d-none d-lg-block bullet-point-container"
91 data-component-id="${instanceId}">
92 <div class="row mt-7">
93 <div class="col-4 d-flex flex-column justify-content-between">
94 <div class="bullet-point-sticky-header">
95 <h2 class="title title-size-1 mb-7">
96 ${title}
97 </h2>
98 <#if svgIcon?has_content>
99 ${svgIcon}
100 </#if>
101 </div>
102 <div class="bullet-point-alternative-img">
103 <img loading="lazy" alt="${imageAlt}" data-fileentryid="${imageFileId}" src="${imageSrc}" />
104 </div>
105 </div>
106 <div class="col-8">
107 <#if bulletPointFieldSet.getSiblings()?has_content>
108 <#list bulletPointFieldSet.getSiblings() as cur_bulletPointFieldSet>
109 <div class="row mb-3 bullet-item align-items-center">
110 <div class="col-1">
111 ${cur_bulletPointFieldSet.bulletPointItemIcon.getData()}
112 </div>
113 <h3 class="col-4 bullet-item-title text text-size-base pr-10">
114 ${cur_bulletPointFieldSet.bulletPointItemTitle.getData()}
115 </h3>
116 <div class="col-7">
117 <p class="text text-size-base">
118 ${cur_bulletPointFieldSet.bulletPointItemText.getData()}
119 <#if (cur_bulletPointFieldSet.bulletPointItemLinkText.getData())??>
120 <a class="text-nowrap link link-primary link-primary_normal" href="${cur_bulletPointFieldSet.bulletPointItemURL.getData()}" target="_blank">
121 ${cur_bulletPointFieldSet.bulletPointItemLinkText.getData()}
122 </a>
123 </#if>
124 </p>
125 </div>
126 </div>
127 </#list>
128 </#if>
129 </div>
130 </div>
131 <#if disclaimer?has_content>
132 <div class="pl-4 pl-lg-0">
133 <p class="text text-size-small margin-top_24">${disclaimer}</p>
134 </div>
135 </#if>
136 </div>
137
138 <#elseif layoutType=="bulletPointMD">
139 <!-- Layout MD-->
140 <div class="d-none d-lg-block bullet-point-md-layout bullet-point-container" data-component-id="${instanceId}">
141 <h2 class="title title-size-1 p-4">
142 ${title}
143 </h2>
144 <div class="col-12 mb-4">
145 <p class="text text-size-base">
146 <#if (bulletPointSectionText.getData())??>
147 ${bulletPointSectionText.getData()}
148 </#if>
149 </p>
150 </div>
151 <div class="bullet-point-component__md">
152 <#if bulletPointFieldSet.getSiblings()?has_content>
153 <div class="row">
154 <div class="col-12">
155 <div class="card-bullet-component__multiple">
156 <div class="card-bullet-component__wrapper js-card-bullet-component-desk-caroussel d-flex">
157 <#list bulletPointFieldSet.getSiblings() as cur_bulletPointFieldSet>
158 <div class="card-bullet-component__card card-bullet-component-md__card">
159 <div class="p-4 d-flex flex-column justify-content-start h-100">
160 <div class="mb-6">
161 ${cur_bulletPointFieldSet.bulletPointItemIcon.getData()}
162 </div>
163 <h3 class="title title-size-3 mb-2">
164 ${cur_bulletPointFieldSet.bulletPointItemTitle.getData()}
165 </h3>
166 <p class="text">
167 ${cur_bulletPointFieldSet.bulletPointItemText.getData()}
168 <#if (cur_bulletPointFieldSet.bulletPointItemLinkText.getData())??>
169 <a class="text-nowrap link link-primary link-primary_normal" href="${cur_bulletPointFieldSet.bulletPointItemURL.getData()}" target="_blank">
170 ${cur_bulletPointFieldSet.bulletPointItemLinkText.getData()}
171 </a>
172 </#if>
173 </p>
174 </div>
175 </div>
176 </#list>
177 </div>
178 </div>
179 </div>
180 </div>
181 </#if>
182 </div>
183 <!-- Carrossel buttons -->
184 <div class="d-flex justify-content-center align-items-center mt-10">
185 <button
186 aria-label="Slide anterior"
187 class="carousel-prev card-bullet-component__control-prev d-none d-lg-block"
188 type="button" disabled>
189 <span aria-hidden="true">
190 <svg
191 width="33"
192 height="33"
193 viewBox="0 0 33 33"
194 fill="none"
195 xmlns="http://www.w3.org/2000/svg">
196 <path
197 d="M4.93864 16.0306C4.95564 9.40321 10.342 4.04442 16.9694 4.06142C23.5968 4.07842 28.9556 9.46477 28.9386 16.0922C28.9216 22.7196 23.5352 28.0783 16.9078 28.0613C10.2804 28.0443 4.92164 22.658 4.93864 16.0306Z"
198 fill="#223AD2" />
199 <path
200 fill-rule="evenodd"
201 clip-rule="evenodd"
202 d="M20.3074 11.0444L19.3355 10.0675L13.8085 15.5662C13.5384 15.8349 13.5373 16.2704 13.806 16.5405L19.3047 22.0675L20.2816 21.0956L15.2689 16.0571L20.3074 11.0444Z"
203 fill="#EDEFFC" />
204 </svg>
205 </span>
206 <span class="sr-only">Anterior</span>
207 </button>
208 <ol class="card-bullet-component__navigation d-flex list-unstyled my-0 mx-8 card-bullet-component__size-${bulletPointFieldSet.getSiblings()?size}">
209 <#assign visibleCount=3>
210 <#assign bulletCount=((bulletPointFieldSet.getSiblings()?size + visibleCount - 1) / visibleCount)?ceiling>
211 <#list 0..(bulletCount - 1) as i>
212 <li class="slider-bullet <#if i == 0>active</#if>">
213 <button data-slide-index="${i}" aria-label="botão para trocar para o slide ${i}"></button>
214 </li>
215 </#list>
216 </ol>
217 <button
218 aria-label="Próximo Slide"
219 class="carousel-next card-bullet-component__control-next d-none d-lg-block"
220 type="button">
221 <span aria-hidden="true">
222 <svg
223 width="34"
224 height="34"
225 viewBox="0 0 34 34"
226 fill="none"
227 xmlns="http://www.w3.org/2000/svg">
228 <rect
229 x="4.96936"
230 y="5.12311"
231 width="24"
232 height="24"
233 rx="12"
234 transform="rotate(-0.293956 4.96936 5.12311)"
235 fill="#223AD2" />
236 <path
237 fill-rule="evenodd"
238 clip-rule="evenodd"
239 d="M13.7007 22.1041L14.68 23.0735L20.1645 17.5325C20.4325 17.2617 20.4303 16.8262 20.1595 16.5581L14.6185 11.0737L13.6491 12.053L18.7004 17.0528L13.7007 22.1041Z"
240 fill="#EDEFFC" />
241 </svg>
242 </span>
243 <span class="sr-only">Próximo</span>
244 </button>
245 </div>
246 <#if hasButtonText>
247 <div class="w-100 mt-4 p-3">
248 <a class="js-bullet-point-button mt-5 w-100" data-component="bullet-point" data-title="${title}"
249 data-text="${buttonText}" target="_blank" href="${buttonURL}">
250 <button aria-label="${buttonText}" class="text-size-base bv-btn-2 bv-btn-2__primary w-100">
251 ${buttonText}
252 </button>
253 </a>
254 </div>
255 </#if>
256 </div>
257 </#if>
258
259 <!--Layout mobile-->
260 <div class="d-block d-lg-none bullet-point-container" data-component-id="${instanceId}">
261 <h2 class="title title-size-1 p-4">
262 ${title}
263 </h2>
264 <#if (bulletPointSectionText.getData())??>
265 <div class="col-12 mb-4">
266 <p class="text text-size-base">
267 ${bulletPointSectionText.getData()}
268 </p>
269 </div>
270 </#if>
271 <div class="bullet-point-component__mobile">
272 <#if bulletPointFieldSet.getSiblings()?has_content>
273 <div class="row">
274 <div class="col-12">
275 <div class="overflow-hidden card-bullet-component__preview-mobile">
276 <div class="d-flex card-bullet-component__wrapper-mobile js-card-bullet-component-mobile-caroussel">
277 <#list bulletPointFieldSet.getSiblings() as cur_bulletPointFieldSet>
278 <div class="card-bullet-component__card-mobile">
279 <div class="p-4 d-flex flex-column justify-content-start h-100">
280 <div class="mb-6">
281 ${cur_bulletPointFieldSet.bulletPointItemIcon.getData()}
282 </div>
283 <h3 class="title title-size-4 mb-2">
284 ${cur_bulletPointFieldSet.bulletPointItemTitle.getData()}
285 </h3>
286 <p class="text">
287 ${cur_bulletPointFieldSet.bulletPointItemText.getData()}
288 </p>
289 </div>
290 </div>
291 </#list>
292 </div>
293 </div>
294 </div>
295 </div>
296 </#if>
297 </div>
298 <#if imageSrc?has_content>
299 <div class="mobile-bullet-point-image w-100">
300 <img loading="lazy" alt="${mobileImageAlt}" data-fileentryid="${mobileImageFileId}" src="${mobileImageSrc}" />
301 </div>
302 </#if>
303 <#if hasButtonText>
304 <div class="w-100 mt-4 p-3">
305 <a class="js-bullet-point-button mt-5 w-100" data-component="bullet-point" data-title="${title}"
306 data-text="${buttonText}" target="_blank" href="${buttonURL}">
307 <button aria-label="${buttonText}" class="text-size-base bv-btn-2 bv-btn-2__primary w-100">
308 ${buttonText}
309 </button>
310 </a>
311 </div>
312 </#if>
313 </div>
314</div>
315
316<style>
317 .bullet-point-main-img img,
318 .mobile-bullet-point-image img {
319 object-fit: cover;
320 object-position: center;
321 display: block;
322 width: 100%;
323 }
324
325 .bullet-point-main-img img {
326 border-radius: var(--spacer-4);
327 height: 400px;
328 width: 310px;
329 }
330
331 .mobile-bullet-point-image img {
332 border-bottom-left-radius: var(--spacer-6);
333 border-bottom-right-radius: var(--spacer-6);
334 height: 160px;
335 }
336
337 .bullet-point-alternative-img img {
338 width: 280px;
339 height: 280px;
340 }
341
342 .bullet-item-title {
343 font-weight: 500;
344 }
345
346 .bullet-item {
347 border-bottom: 1px solid var(--color-surface-high);
348 height: 105px;
349 }
350
351 .bullet-point-component__mobile .card-bullet-component__card-mobile {
352 scroll-snap-align: start;
353 flex: 0 0 80%;
354 max-width: 80%;
355 margin-right: 10px;
356 }
357
358 .bullet-point-md-layout {
359 background-color: var(--color-primary-low);
360 border-radius: var(--spacer-4);
361 padding: var(--spacer-7);
362 }
363
364 .card-bullet-component-md__card {
365 flex: 0 0 33% !important;
366 max-width: calc(33% - 16px);
367 margin-bottom: 0;
368 }
369</style>
370<script>
371 document.addEventListener("DOMContentLoaded", () => {
372 const btn = document.querySelector(".js-bullet-point-button");
373 const container = document.querySelector(".bullet-point-container");
374
375 btn.addEventListener("click", () => {
376 const title = formatText(btn.dataset.title);
377 const text = formatText(btn.dataset.text);
378 const componentId = container.dataset.componentId;
379 window.gaDatalayer.sendCtaClickEvent({
380 event: "button_click",
381 component: "button",
382 title,
383 text,
384 component_id: componentId,
385 });
386 });
387
388 const formatText = (text) => {
389 return text
390 .toLowerCase()
391 .replace(/[\u2028\u2029\u00A0]/g, " ")
392 .replace(new RegExp("[ÁÀÂÃ]", "gi"), "a")
393 .replace(new RegExp("[ÉÈÊ]", "gi"), "e")
394 .replace(new RegExp("[ÍÌÎ]", "gi"), "i")
395 .replace(new RegExp("[ÓÒÔÕ]", "gi"), "o")
396 .replace(new RegExp("[ÚÙÛ]", "gi"), "u")
397 .replace(new RegExp("[Ç]", "gi"), "c")
398 .replace(new RegExp("/<brs*[/]?>/", "gi"), "-")
399 .replace(new RegExp("[.,;!?]", "g"), "")
400 .replace(/[:?!@*+#$%^&]/g, "")
401 .trim()
402 .replace(/\s+/g, "-");
403 };
404 });
405
406 (() => {
407 const addEventOnButtonBanner = () => {
408 const buttonBannerList = document.querySelectorAll(
409 ".js-bullet-point-button-sideBar"
410 );
411 const appComponent = document.querySelector(
412 ".appBV-link-wrapper.appBV-sidebar-desktop"
413 );
414 buttonBannerList.forEach((buttonBanner) => {
415 buttonBanner.addEventListener("click", (e) => {
416 event.preventDefault();
417 appComponent.click();
418 });
419
420 });
421 };
422 document.addEventListener("DOMContentLoaded", addEventOnButtonBanner);
423 })();
424</script>
Shopping BV com cashback em todas as compras
Aproveite descontos em mais de 1.200 lojas parceiras e receba dinheiro direto na conta!
Abra sua conta



Tag BV Veloe, a única tag veicular 100% gratuita
Sem mensalidade. Sem taxa de adesão. Sem pegadinhas.
Peça sua TagSujeito a análise. Baseado em estudo de mercado realizado com informações públicas até 01/09/2025.
Shopping BV com cashback em todas as compras
Aproveite descontos em mais de 1.200 lojas parceiras e receba dinheiro direto na conta!
Abra sua conta



Tag BV Veloe, a única tag veicular 100% gratuita
Sem mensalidade. Sem taxa de adesão. Sem pegadinhas.
Peça sua TagSujeito a análise. Baseado em estudo de mercado realizado com informações públicas até 01/09/2025.
Abra sua Conta BV, é simples e rápido!
Baixe o app BV
Disponível na sua loja de aplicativos, seja Android ou IOS.
Complete suas informações
Preencha seus dados ou insira o código de indicação caso ainda não seja Cliente BV.
Aguarde a aprovação
Vamos analisar sua solicitação e, quanto antes, enviar a resposta sobre a confirmação da conta.
E pronto!
Depois disso, é só acessar sua Conta BV e aproveitar todos os benefícios que vão deixar sua vida mais leve.
Baixe o app BV
Disponível na sua loja de aplicativos, seja Android ou IOS.
Complete suas informações
Preencha seus dados ou insira o código de indicação caso ainda não seja Cliente BV.
Aguarde a aprovação
Vamos analisar sua solicitação e, quanto antes, enviar a resposta sobre a confirmação da conta.
E pronto!
Depois disso, é só acessar sua Conta BV e aproveitar todos os benefícios que vão deixar sua vida mais leve.
Vem abrir sua Conta BV grátis!
Completa para todas as suas versões.


Com nossa conta digital, você tem controle total!
Com nossa conta digital, você tem controle total!
Mais segurança para o seu dinheiro!
As transações são feitas apenas por celulares autorizados por você. E em caso de perda ou roubo, você faz o bloqueio direto no app. Além disso, você pode reduzir os limites para fazer Pix ou compras no cartão a qualquer momento.
Assistente virtual para tirar suas dúvidas.
Nossos especialistas estão disponíveis no chat 24 horas por dia, para tirar dúvidas e fazer algumas operações em um atendimento automatizado.
Caí no golpe, e agora?
Acesse a página de telefones e entre em contato com a gente. Nós vamos te ajudar e orientar para os próximos passos.
Conteúdos em alta
Conteúdos em alta
Tire suas dúvidas sobre a conta BV
Baixe o app BV, preencha seus dados e insira o código CONTABV durante a abertura. A aprovação é rápida e sujeita à análise
O BV oferece conta digital grátis com abertura rápida no app, segura e com chat 24h. Além disso, frequentemente o BV realiza campanhas exclusivas para correntistas com benefícios como bônus ao ativar pagamentos por débito automático e ofertas de CDB de até 130% do CDI.
Você pode fazer uma simulação pelo nosso site, informando o valor que deseja investir e o período de aplicação.
Compartilhe seus dados com o BV para uma análise mais completa. Quanto mais a gente te conhece, maiores as chances de ofertas de crédito.
Baixe o app BV, preencha seus dados e insira o código CONTABV durante a abertura. A aprovação é rápida e sujeita à análise
O BV oferece conta digital grátis com abertura rápida no app, segura e com chat 24h. Além disso, frequentemente o BV realiza campanhas exclusivas para correntistas com benefícios como bônus ao ativar pagamentos por débito automático e ofertas de CDB de até 130% do CDI.
Você pode fazer uma simulação pelo nosso site, informando o valor que deseja investir e o período de aplicação.
Compartilhe seus dados com o BV para uma análise mais completa. Quanto mais a gente te conhece, maiores as chances de ofertas de crédito.