{"id":17982,"date":"2025-09-17T16:30:29","date_gmt":"2025-09-17T20:30:29","guid":{"rendered":"https:\/\/www.bscu.org\/?page_id=17982"},"modified":"2025-09-18T14:58:36","modified_gmt":"2025-09-18T18:58:36","slug":"consumer-schedule-of-fees","status":"publish","type":"page","link":"https:\/\/www.bscu.org\/es\/disclosures\/consumer-schedule-of-fees\/","title":{"rendered":"Tarifas para el consumidor"},"content":{"rendered":"<div class=\"wpb-content-wrapper\"><div data-parent=\"true\" class=\"vc_row vc_custom_1758221827784 row-container\" style=\"padding-top: 20px ;\" id=\"row-unique-0\"><div class=\"row limit-width row-parent\"><div class=\"wpb_row row-inner\"><div class=\"wpb_column pos-top pos-center align_left column_parent col-lg-12 single-internal-gutter\"><div class=\"uncol style-light\"  ><div class=\"uncoltable\"><div class=\"uncell no-block-padding\" ><div class=\"uncont\" >\n\t<div class=\"wpb_raw_code wpb_raw_html\" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<!-- WordPress HTML Container -->\n<div id=\"brightstar-fees\" class=\"wp-container\">\n    <!-- Required CSS -->\n    <style>\n        \/* BrightStar CU Brand Styles - Unique CSS namespace to avoid WordPress conflicts *\/\n        #brightstar-fees {\n            background-color: #ffffff;\n            font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif;\n        }\n\n        #brightstar-fees .wp-container {\n            width: 100%;\n            max-width: 1200px;\n            margin: 0 auto;\n            padding: 20px;\n        }\n\n        \/* Category header styling to match rates table *\/\n        .category-header {\n            background-color: rgba(0, 71, 95, 0.1);\n            font-weight: bold;\n            text-transform: uppercase;\n            letter-spacing: 0.05em;\n        }\n\n        \/* Explicit rounded corners styles *\/\n        #brightstar-fees .rounded-lg {\n            border-radius: 0.5rem !important;\n        }\n\n        #brightstar-fees .rounded {\n            border-radius: 0.25rem !important;\n        }\n\n        \/* Ensure shadow is visible *\/\n        #brightstar-fees .shadow-lg {\n            box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05) !important;\n        }\n\n        \/* Override any WordPress table styles *\/\n        #brightstar-fees table {\n            border-collapse: separate !important;\n            border-spacing: 0 !important;\n            border-radius: 0.5rem !important;\n            overflow: hidden !important;\n        }\n\n        \/* Header Styles *\/\n        #brightstar-fees .bscu-header {\n            margin-bottom: 2rem;\n        }\n\n        #brightstar-fees .bscu-title {\n            font-size: 3rem;\n            font-weight: bold;\n            color: #00475f;\n            margin-bottom: 1rem;\n        }\n\n        #brightstar-fees .bscu-subtitle {\n            color: #6b7280;\n        }\n\n        \/* Controls Section *\/\n        #brightstar-fees .bscu-controls {\n            margin-bottom: 1.5rem;\n            display: flex;\n            flex-direction: column;\n            gap: 1rem;\n        }\n\n        @media (min-width: 768px) {\n            #brightstar-fees .bscu-controls {\n                flex-direction: row;\n                justify-content: space-between;\n                align-items: center;\n            }\n        }\n\n        #brightstar-fees .bscu-search-filter {\n            display: flex;\n            flex-direction: column;\n            gap: 1rem;\n            width: 100%;\n        }\n\n        @media (min-width: 768px) {\n            #brightstar-fees .bscu-search-filter {\n                flex-direction: row;\n                width: auto;\n            }\n        }\n\n        #brightstar-fees .bscu-search-input {\n            position: relative;\n            width: 100%;\n        }\n\n        @media (min-width: 768px) {\n            #brightstar-fees .bscu-search-input {\n                width: auto;\n            }\n        }\n\n        #brightstar-fees .bscu-search-icon {\n            position: absolute;\n            left: 12px;\n            top: 50%;\n            transform: translateY(-50%);\n            color: #9ca3af;\n        }\n\n        #brightstar-fees .bscu-input,\n        #brightstar-fees .bscu-select {\n            width: 100%;\n            padding: 8px 12px;\n            border: 1px solid #d1d5db;\n            border-radius: 8px;\n            outline: none;\n            transition: all 0.2s;\n        }\n\n        @media (min-width: 768px) {\n            #brightstar-fees .bscu-input,\n            #brightstar-fees .bscu-select {\n                width: auto;\n            }\n        }\n\n        #brightstar-fees .bscu-input {\n            padding-left: 40px;\n        }\n\n        #brightstar-fees .bscu-input:focus,\n        #brightstar-fees .bscu-select:focus {\n            border-color: #00475f;\n            box-shadow: 0 0 0 2px rgba(0, 71, 95, 0.1);\n        }\n\n        #brightstar-fees .bscu-button-group {\n            display: flex;\n            flex-direction: column;\n            gap: 8px;\n            width: 100%;\n        }\n\n        @media (min-width: 768px) {\n            #brightstar-fees .bscu-button-group {\n                flex-direction: row;\n                width: auto;\n            }\n        }\n\n        #brightstar-fees .bscu-btn {\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            gap: 8px;\n            padding: 8px 16px;\n            background-color: #00475f;\n            color: white;\n            border: none;\n            border-radius: 8px;\n            cursor: pointer;\n            transition: background-color 0.2s;\n            text-decoration: none;\n            font-size: 14px;\n            white-space: nowrap;\n        }\n\n        #brightstar-fees .bscu-btn:hover {\n            background-color: #003344;\n        }\n\n        \/* Table Styles matching the rates table *\/\n        #brightstar-fees .bscu-table-container {\n            overflow-x: auto;\n            margin-bottom: 2rem;\n        }\n\n        #brightstar-fees .shadow-lg.rounded-lg.bg-white.overflow-hidden {\n            border-radius: 0.5rem !important;\n            overflow: hidden !important;\n            box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05) !important;\n            background: white !important;\n        }\n\n        #brightstar-fees .bscu-table {\n            width: 100%;\n            border-collapse: separate;\n            border-spacing: 0;\n        }\n\n        #brightstar-fees .bscu-table th {\n            background-color: #00475f;\n            color: white;\n            padding: 12px 24px;\n            text-align: left;\n            font-weight: 600;\n            font-size: 16px;\n        }\n\n        #brightstar-fees .bscu-table td {\n            padding: 12px 24px;\n            border-bottom: 1px solid #e5e7eb;\n        }\n\n        #brightstar-fees .bscu-table tbody tr:hover {\n            background-color: #f9fafb;\n        }\n\n        #brightstar-fees .bscu-category-header {\n            background-color: rgba(0, 71, 95, 0.1) !important;\n            font-weight: bold !important;\n            text-transform: uppercase;\n            letter-spacing: 0.05em;\n            color: #00475f !important;\n        }\n\n        #brightstar-fees .bscu-fee-name {\n            font-weight: 500;\n            color: #1f2937;\n        }\n\n        #brightstar-fees .bscu-fee-amount {\n            font-weight: 600;\n            color: #dc2626;\n            text-align: right;\n            white-space: nowrap;\n        }\n\n        #brightstar-fees .bscu-fee-description {\n            color: #6b7280;\n            font-size: 12px;\n            font-style: italic;\n            margin-top: 4px;\n        }\n\n        \/* Loading Styles *\/\n        #brightstar-fees .bscu-loading {\n            display: flex;\n            justify-content: center;\n            align-items: center;\n            padding: 3rem;\n            text-align: center;\n        }\n\n        #brightstar-fees .bscu-spinner {\n            display: inline-block;\n            width: 2rem;\n            height: 2rem;\n            border: 2px solid #e5e7eb;\n            border-top: 2px solid #00475f;\n            border-radius: 50%;\n            animation: spin 1s linear infinite;\n            margin-bottom: 1rem;\n        }\n\n        @keyframes spin {\n            0% { transform: rotate(0deg); }\n            100% { transform: rotate(360deg); }\n        }\n\n        \/* Mobile Responsive Styles *\/\n        @media screen and (max-width: 767px) {\n            #brightstar-fees .bscu-table,\n            #brightstar-fees .bscu-table thead,\n            #brightstar-fees .bscu-table tbody,\n            #brightstar-fees .bscu-table th,\n            #brightstar-fees .bscu-table td,\n            #brightstar-fees .bscu-table tr {\n                display: block;\n            }\n\n            #brightstar-fees .bscu-table thead tr {\n                position: absolute;\n                top: -9999px;\n                left: -9999px;\n            }\n\n            #brightstar-fees .bscu-table tr {\n                border: 1px solid #e5e7eb;\n                margin-bottom: 10px;\n                border-radius: 8px;\n                background: white;\n                box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n            }\n\n            #brightstar-fees .bscu-table td {\n                border: none;\n                border-bottom: 1px solid #e5e7eb;\n                position: relative;\n                padding-left: 50% !important;\n                text-align: right;\n            }\n\n            #brightstar-fees .bscu-table td:before {\n                content: attr(data-label);\n                position: absolute;\n                left: 6px;\n                width: 45%;\n                padding-right: 10px;\n                white-space: nowrap;\n                text-align: left;\n                font-weight: bold;\n                color: #00475f;\n            }\n\n            #brightstar-fees .bscu-category-header {\n                text-align: center !important;\n                padding-left: 15px !important;\n                font-size: 16px;\n            }\n\n            #brightstar-fees .bscu-category-header:before {\n                content: none !important;\n            }\n        }\n    <\/style>\n\n    <!-- Load Required External Resources -->\n    <script src=\"https:\/\/www.bscu.org\/api\/rates\/react.development.js\"><\/script>\n    <script src=\"https:\/\/www.bscu.org\/api\/rates\/react-dom.development.js\"><\/script>\n    <script src=\"https:\/\/www.bscu.org\/api\/rates\/babel.min.js\"><\/script>\n    <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jspdf\/2.5.1\/jspdf.umd.min.js\"><\/script>\n    \n    <!-- Header -->\n    <div class=\"p-4 max-w-7xl mx-auto\">\n        <div class=\"mb-8\">\n            <h2 class=\"text-3xl font-bold text-[#00475f] mb-4\">Tarifas para el consumidor<\/h2>\n            <p class=\"text-gray-600\">Eficaz <span id=\"bscuEffectiveDate\"><\/span><\/p>\n        <\/div>\n\n        <!-- Controls -->\n        <div class=\"mb-6 flex flex-col md:flex-row gap-4 items-start md:items-center justify-between\">\n            <!-- Left side - Search and Filter -->\n            <div class=\"flex flex-col md:flex-row gap-4 w-full md:w-auto\">\n                <div class=\"relative w-full md:w-auto\">\n                    <i class=\"fas fa-search absolute left-3 top-1\/2 transform -translate-y-1\/2 text-gray-400\"><\/i>\n                    <input\n                        type=\"text\"\n                        id=\"bscuSearchInput\"\n                        placeholder=\"Tarifas de b\u00fasqueda...\"\n                        class=\"w-full md:w-auto pl-10 pr-4 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-[#00475f]\"\n                    \/>\n                <\/div>\n                <select\n                    id=\"bscuCategoryFilter\"\n                    class=\"w-full md:w-auto px-4 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-[#00475f]\"\n                >\n                    <option value=\"all\">Todas las categor\u00edas<\/option>\n                    <option value=\"SAVINGS ACCOUNT\">Cuenta de ahorros<\/option>\n                    <option value=\"CHECKING ACCOUNTS\">Cuentas corrientes<\/option>\n                    <option value=\"MONEY MARKET ACCOUNT\">Cuenta del mercado monetario<\/option>\n                    <option value=\"CREDIT CARD\">Tarjeta de cr\u00e9dito<\/option>\n                    <option value=\"VISA DEBIT CARD\">Tarjeta de d\u00e9bito Visa<\/option>\n                    <option value=\"WIRE TRANSFERS\">Transferencias bancarias<\/option>\n                    <option value=\"SAFE DEPOSIT BOXES\">Cajas de seguridad<\/option>\n                    <option value=\"SPECIALTY CHECKS\">Cheques especiales<\/option>\n                    <option value=\"MISCELLANEOUS\">Miscel\u00e1neas<\/option>\n                <\/select>\n            <\/div>\n            \n            <!-- Right side - PDF Download Button -->\n            <div class=\"flex flex-col md:flex-row gap-2 w-full md:w-auto\">\n                <button\n                    onclick=\"bscuGeneratePDF()\"\n                    class=\"w-full md:w-auto flex items-center justify-center gap-2 px-4 py-2 bg-[#00475f] text-white rounded-lg hover:bg-[#003344] transition-colors\"\n                >\n                    <i class=\"fas fa-file-pdf\"><\/i>\n                    Descargar PDF\n                <\/button>\n            <\/div>\n        <\/div>\n        \n        <!-- Fee Schedule Table Container -->\n        <div id=\"bscuFeesContainer\"><\/div>\n    <\/div>\n\n    <!-- Fee Schedule Component -->\n    <script type=\"text\/babel\">\n        const BrightStarFeeSchedule = () => {\n            const [isMobile, setIsMobile] = React.useState(false);\n            const [searchTerm, setSearchTerm] = React.useState('');\n            const [selectedCategory, setSelectedCategory] = React.useState('all');\n            const [dataLoaded, setDataLoaded] = React.useState(false);\n\n            \/\/ Check for mobile size\n            React.useEffect(() => {\n                const checkIfMobile = () => setIsMobile(window.innerWidth < 768);\n                checkIfMobile();\n                window.addEventListener('resize', checkIfMobile);\n                return () => window.removeEventListener('resize', checkIfMobile);\n            }, []);\n\n            \/\/ Load fee data\n            React.useEffect(() => {\n                \/\/ Function to check if feeData exists\n                const checkFeeData = () => {\n                    if (window.feeData) {\n                        setDataLoaded(true);\n                        return true;\n                    }\n                    return false;\n                };\n                \n                \/\/ If data is already loaded, we're done\n                if (checkFeeData()) return;\n                \n                \/\/ Otherwise dynamically load the script with cache-busting timestamp\n                const feeScript = document.createElement('script');\n                feeScript.src = '\/api\/fees\/consumerfees.js?v=' + Date.now();\n                \n                \/\/ Set up event listener for script load\n                feeScript.onload = () => {\n                    checkFeeData();\n                };\n                \n                \/\/ Also set up an interval as a fallback\n                const checkInterval = setInterval(() => {\n                    if (checkFeeData()) {\n                        clearInterval(checkInterval);\n                    }\n                }, 100);\n                \n                \/\/ Append the script to load it\n                document.head.appendChild(feeScript);\n                \n                \/\/ Clean up\n                return () => {\n                    clearInterval(checkInterval);\n                };\n            }, []);\n\n            \/\/ Sync with external controls\n            React.useEffect(() => {\n                const searchInput = document.getElementById('bscuSearchInput');\n                const categoryFilter = document.getElementById('bscuCategoryFilter');\n                \n                if (searchInput && categoryFilter) {\n                    searchInput.addEventListener('input', (e) => setSearchTerm(e.target.value));\n                    categoryFilter.addEventListener('change', (e) => setSelectedCategory(e.target.value));\n                    \n                    return () => {\n                        searchInput.removeEventListener('input', (e) => setSearchTerm(e.target.value));\n                        categoryFilter.removeEventListener('change', (e) => setSelectedCategory(e.target.value));\n                    };\n                }\n            }, [dataLoaded]);\n\n            \/\/ Show loading state until data is ready\n            if (!dataLoaded) {\n                return (\n                    <div className=\"flex justify-center items-center p-12\">\n                        <div className=\"text-center\">\n                            <div className=\"inline-block animate-spin rounded-full h-8 w-8 border-t-2 border-b-2 border-[#00475f] mb-4\"><\/div>\n                            <p className=\"text-gray-600\">Loading fee schedule...<\/p>\n                        <\/div>\n                    <\/div>\n                );\n            }\n\n            const filterFees = () => {\n                if (!window.feeData) return [];\n\n                return window.feeData.filter(categoryData => {\n                    \/\/ Filter by category\n                    if (selectedCategory !== 'all' && categoryData.category !== selectedCategory) {\n                        return false;\n                    }\n\n                    \/\/ Filter by search term\n                    if (searchTerm) {\n                        const categoryMatches = categoryData.category.toLowerCase().includes(searchTerm.toLowerCase());\n                        const itemMatches = categoryData.items.some(item => \n                            item.name.toLowerCase().includes(searchTerm.toLowerCase()) ||\n                            item.fee.toLowerCase().includes(searchTerm.toLowerCase()) ||\n                            (item.description && item.description.toLowerCase().includes(searchTerm.toLowerCase()))\n                        );\n                        return categoryMatches || itemMatches;\n                    }\n\n                    return true;\n                }).map(categoryData => {\n                    \/\/ If searching, also filter items within categories\n                    if (searchTerm) {\n                        return {\n                            ...categoryData,\n                            items: categoryData.items.filter(item =>\n                                item.name.toLowerCase().includes(searchTerm.toLowerCase()) ||\n                                item.fee.toLowerCase().includes(searchTerm.toLowerCase()) ||\n                                (item.description && item.description.toLowerCase().includes(searchTerm.toLowerCase()))\n                            )\n                        };\n                    }\n                    return categoryData;\n                }).filter(categoryData => categoryData.items.length > 0);\n            };\n\n            const renderMobileView = (filteredData) => (\n                <div className=\"space-y-6\">\n                    {filteredData.map((categoryData) => (\n                        <div key={categoryData.category} className=\"space-y-4\">\n                            <div className=\"category-header px-4 py-2 font-bold text-gray-800\">\n                                {categoryData.category}\n                            <\/div>\n                            {categoryData.items.map((item, idx) => (\n                                <div key={idx} className=\"bg-white rounded-lg shadow p-4 space-y-3\">\n                                    <h5 className=\"font-semibold text-lg text-gray-900\">{item.name}<\/h5>\n                                    <div className=\"grid grid-cols-1 gap-4\">\n                                        <div>\n                                            <p className=\"text-sm text-gray-600\">Fee<\/p>\n                                            <p className=\"font-medium text-red-600\">{item.fee}<\/p>\n                                        <\/div>\n                                        {item.description && (\n                                            <div>\n                                                <p className=\"text-sm text-gray-600\">Description<\/p>\n                                                <p className=\"text-sm text-gray-500 italic\">{item.description}<\/p>\n                                            <\/div>\n                                        )}\n                                    <\/div>\n                                <\/div>\n                            ))}\n                        <\/div>\n                    ))}\n                <\/div>\n            );\n\n            const renderDesktopView = (filteredData) => (\n                <div className=\"shadow-lg rounded-lg bg-white overflow-hidden\">\n                    <table className=\"w-full\">\n                        <thead className=\"bg-[#00475f] text-white\">\n                            <tr>\n                                <th className=\"px-6 py-3 text-left text-white\">Service\/Product<\/th>\n                                <th className=\"px-6 py-3 text-left text-white\">Fee<\/th>\n                            <\/tr>\n                        <\/thead>\n                        <tbody className=\"divide-y divide-gray-200\">\n                            {filteredData.map((categoryData) => (\n                                <React.Fragment key={categoryData.category}>\n                                    <tr className=\"category-header\">\n                                        <td colSpan=\"2\" className=\"px-6 py-3 font-bold\">\n                                            {categoryData.category}\n                                        <\/td>\n                                    <\/tr>\n                                    {categoryData.items.map((item, idx) => (\n                                        <tr key={idx} className=\"hover:bg-gray-50\">\n                                            <td className=\"px-6 py-4\">\n                                                <div className=\"font-medium text-gray-900\">{item.name}<\/div>\n                                                {item.description && (\n                                                    <div className=\"text-sm text-gray-500 italic mt-1\">{item.description}<\/div>\n                                                )}\n                                            <\/td>\n                                            <td className=\"px-6 py-4 font-semibold text-red-600 text-right\">{item.fee}<\/td>\n                                        <\/tr>\n                                    ))}\n                                <\/React.Fragment>\n                            ))}\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n            );\n\n            const filteredData = filterFees();\n\n            return isMobile ? renderMobileView(filteredData) : renderDesktopView(filteredData);\n        };\n\n        \/\/ Wait for React to load, then mount component\n        \/\/ Mount React component\n        ReactDOM.render(\n            <BrightStarFeeSchedule \/>,\n            document.getElementById('bscuFeesContainer')\n        );\n    <\/script>\n\n    <!-- PDF Generation Script -->\n    <script>\n        \/\/ PDF Generation Function\n        function bscuGeneratePDF() {\n            if (!window.jspdf) {\n                alert('PDF library is loading. Please try again in a moment.');\n                return;\n            }\n\n            if (!window.feeData) {\n                alert('Fee data is still loading. Please try again in a moment.');\n                return;\n            }\n\n            const { jsPDF } = window.jspdf;\n            const doc = new jsPDF('p', 'pt', 'a4');\n            const pageWidth = doc.internal.pageSize.getWidth();\n            const pageHeight = doc.internal.pageSize.getHeight();\n            const margin = 40;\n            let currentY = margin;\n\n            \/\/ Add header with logo\n            doc.addImage('https:\/\/www.bscu.org\/wp-content\/uploads\/2016\/07\/logo.png', 'PNG', margin, margin, 120, 40);\n            doc.setFontSize(16);\n            doc.setTextColor(0, 71, 95);\n            doc.text('Consumer Schedule\\nof Fees', pageWidth - 200, margin + 20);\n            doc.setFontSize(10);\n            doc.setTextColor(100);\n            const currentDate = new Date().toLocaleDateString();\n            doc.text(`Effective ${currentDate}`, pageWidth - 200, margin + 55);\n\n            \/\/ Table settings\n            const startY = margin + 80;\n            const cellPadding = 10;\n            currentY = startY;\n\n            \/\/ Function to add new page\n            function addNewPage() {\n                doc.addPage();\n                currentY = margin;\n            }\n\n            \/\/ Function to add footer\n            function addFooter() {\n                const footerY = pageHeight - margin;\n                doc.setFontSize(8);\n                doc.setTextColor(100);\n                doc.text('Federally insured by NCUA', pageWidth \/ 2, footerY, { align: 'center' });\n            }\n\n            \/\/ Draw fee schedule\n            window.feeData.forEach((categoryData, categoryIndex) => {\n                \/\/ Check if we need a new page\n                if (currentY + 100 > pageHeight - margin && categoryIndex !== 0) {\n                    addNewPage();\n                }\n\n                \/\/ Draw category header\n                doc.setFillColor(240, 240, 240);\n                doc.rect(margin, currentY, pageWidth - 2 * margin, 25, 'F');\n                doc.setTextColor(0, 71, 95);\n                doc.setFontSize(12);\n                doc.setFont('helvetica', 'bold');\n                doc.text(categoryData.category, margin + cellPadding, currentY + 17);\n                currentY += 25;\n\n                \/\/ Draw column headers\n                doc.setFillColor(0, 71, 95);\n                doc.rect(margin, currentY, pageWidth - 2 * margin, 30, 'F');\n                doc.setTextColor(255);\n                doc.setFontSize(11);\n                doc.setFont('helvetica', 'bold');\n                \n                const columnWidth = (pageWidth - 2 * margin) \/ 2;\n                doc.text('Service\/Product', margin + cellPadding, currentY + 20);\n                doc.text('Fee', margin + columnWidth + cellPadding, currentY + 20);\n                currentY += 30;\n\n                \/\/ Draw items\n                categoryData.items.forEach((item, index) => {\n                    if (currentY + 40 > pageHeight - margin) {\n                        addNewPage();\n                        \n                        \/\/ Redraw headers on new page\n                        doc.setFillColor(0, 71, 95);\n                        doc.rect(margin, currentY, pageWidth - 2 * margin, 30, 'F');\n                        doc.setTextColor(255);\n                        doc.setFontSize(11);\n                        doc.setFont('helvetica', 'bold');\n                        doc.text('Service\/Product', margin + cellPadding, currentY + 20);\n                        doc.text('Fee', margin + columnWidth + cellPadding, currentY + 20);\n                        currentY += 30;\n                    }\n\n                    \/\/ Draw item row\n                    doc.setDrawColor(200);\n                    doc.setLineWidth(0.5);\n                    doc.setTextColor(0);\n                    doc.setFontSize(9);\n                    doc.setFont('helvetica', 'normal');\n\n                    \/\/ Service\/Product name\n                    doc.rect(margin, currentY, columnWidth, 30);\n                    const serviceName = doc.splitTextToSize(item.name, columnWidth - 2 * cellPadding);\n                    doc.text(serviceName, margin + cellPadding, currentY + 15);\n\n                    \/\/ Fee\n                    doc.rect(margin + columnWidth, currentY, columnWidth, 30);\n                    doc.text(item.fee, margin + columnWidth + cellPadding, currentY + 15);\n                    \n                    currentY += 30;\n                });\n                \n                currentY += 10; \/\/ Add spacing between categories\n            });\n\n            \/\/ Add footer on every page\n            const pageCount = doc.internal.getNumberOfPages();\n            for (let i = 1; i <= pageCount; i++) {\n                doc.setPage(i);\n                addFooter();\n                \n                \/\/ Add logos on the last page\n                if (i === pageCount) {\n                    const footerY = pageHeight - margin;\n                    doc.addImage('https:\/\/www.bscu.org\/wp-content\/uploads\/2018\/02\/EHOLogo.png', 'PNG', margin, footerY - 40, 40, 40);\n                    doc.addImage('https:\/\/www.bscu.org\/wp-content\/uploads\/2018\/02\/NCUALogo.png', 'PNG', pageWidth - margin - 40, footerY - 40, 40, 40);\n                }\n            }\n\n            \/\/ Save the PDF\n            doc.save('BrightStar-Consumer-Fee-Schedule.pdf');\n        }\n    <\/script>\n\n    <script>\n        document.addEventListener('DOMContentLoaded', function() {\n            \/\/ Format today's date\n            const today = new Date();\n            const options = { year: 'numeric', month: 'long', day: 'numeric' };\n            const formattedDate = today.toLocaleDateString('en-US', options);\n            \n            \/\/ Set the formatted date to the span\n            document.getElementById('bscuEffectiveDate').textContent = formattedDate;\n        });\n    <\/script>\n<\/div>\n\t\t<\/div>\n\t<\/div>\n<\/div><\/div><\/div><\/div><\/div><script id=\"script-row-unique-0\" data-row=\"script-row-unique-0\" type=\"text\/javascript\" class=\"vc_controls\">UNCODE.initRow(document.getElementById(\"row-unique-0\"));<\/script><\/div><\/div><\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"Tabla de tarifas para el consumidor. Vigente para todas las categor\u00edas: Cuenta de ahorros, Cuenta corriente, Cuenta del mercado monetario, Tarjeta de cr\u00e9dito, Tarjeta de d\u00e9bito Visa, Transferencia bancaria [...]","protected":false},"author":8,"featured_media":0,"parent":389,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-17982","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.4 (Yoast SEO v26.4) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Consumer Schedule of Fees - BrightStar Credit Union<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.bscu.org\/es\/disclosures\/consumer-schedule-of-fees\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Consumer Schedule of Fees\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.bscu.org\/es\/disclosures\/consumer-schedule-of-fees\/\" \/>\n<meta property=\"og:site_name\" content=\"BrightStar Credit Union\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/BrightStarCU\/\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-18T18:58:36+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minuto\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.bscu.org\/disclosures\/consumer-schedule-of-fees\/\",\"url\":\"https:\/\/www.bscu.org\/disclosures\/consumer-schedule-of-fees\/\",\"name\":\"Consumer Schedule of Fees - BrightStar Credit Union\",\"isPartOf\":{\"@id\":\"https:\/\/www.bscu.org\/#website\"},\"datePublished\":\"2025-09-17T20:30:29+00:00\",\"dateModified\":\"2025-09-18T18:58:36+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.bscu.org\/disclosures\/consumer-schedule-of-fees\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.bscu.org\/disclosures\/consumer-schedule-of-fees\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.bscu.org\/disclosures\/consumer-schedule-of-fees\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.bscu.org\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Account Disclosures\",\"item\":\"https:\/\/www.bscu.org\/disclosures\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Consumer Schedule of Fees\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.bscu.org\/#website\",\"url\":\"https:\/\/www.bscu.org\/\",\"name\":\"BrightStar Credit Union\",\"description\":\"Serving  Broward, Collier, Lee, Martin, Miami-Dade, Palm Beach or St. Lucie Counties, Florida.\",\"publisher\":{\"@id\":\"https:\/\/www.bscu.org\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.bscu.org\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.bscu.org\/#organization\",\"name\":\"BrightStar Credit Union\",\"url\":\"https:\/\/www.bscu.org\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.bscu.org\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.bscu.org\/wp-content\/uploads\/2016\/07\/logo-1.png\",\"contentUrl\":\"https:\/\/www.bscu.org\/wp-content\/uploads\/2016\/07\/logo-1.png\",\"width\":500,\"height\":214,\"caption\":\"BrightStar Credit Union\"},\"image\":{\"@id\":\"https:\/\/www.bscu.org\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/BrightStarCU\/\",\"https:\/\/www.instagram.com\/brightstar.creditunion\/\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Tabla de tarifas para el consumidor - BrightStar Credit Union","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.bscu.org\/es\/disclosures\/consumer-schedule-of-fees\/","og_locale":"es_ES","og_type":"article","og_title":"Consumer Schedule of Fees","og_url":"https:\/\/www.bscu.org\/es\/disclosures\/consumer-schedule-of-fees\/","og_site_name":"BrightStar Credit Union","article_publisher":"https:\/\/www.facebook.com\/BrightStarCU\/","article_modified_time":"2025-09-18T18:58:36+00:00","twitter_card":"summary_large_image","twitter_misc":{"Tiempo de lectura":"1 minuto"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.bscu.org\/disclosures\/consumer-schedule-of-fees\/","url":"https:\/\/www.bscu.org\/disclosures\/consumer-schedule-of-fees\/","name":"Tabla de tarifas para el consumidor - BrightStar Credit Union","isPartOf":{"@id":"https:\/\/www.bscu.org\/#website"},"datePublished":"2025-09-17T20:30:29+00:00","dateModified":"2025-09-18T18:58:36+00:00","breadcrumb":{"@id":"https:\/\/www.bscu.org\/disclosures\/consumer-schedule-of-fees\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.bscu.org\/disclosures\/consumer-schedule-of-fees\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.bscu.org\/disclosures\/consumer-schedule-of-fees\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.bscu.org\/"},{"@type":"ListItem","position":2,"name":"Account Disclosures","item":"https:\/\/www.bscu.org\/disclosures\/"},{"@type":"ListItem","position":3,"name":"Consumer Schedule of Fees"}]},{"@type":"WebSite","@id":"https:\/\/www.bscu.org\/#website","url":"https:\/\/www.bscu.org\/","name":"Cooperativa de cr\u00e9dito BrightStar","description":"Sirviendo a los condados de Broward, Collier, Lee, Martin, Miami-Dade, Palm Beach o St. Lucie, Florida.","publisher":{"@id":"https:\/\/www.bscu.org\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.bscu.org\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.bscu.org\/#organization","name":"Cooperativa de cr\u00e9dito BrightStar","url":"https:\/\/www.bscu.org\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.bscu.org\/#\/schema\/logo\/image\/","url":"https:\/\/www.bscu.org\/wp-content\/uploads\/2016\/07\/logo-1.png","contentUrl":"https:\/\/www.bscu.org\/wp-content\/uploads\/2016\/07\/logo-1.png","width":500,"height":214,"caption":"BrightStar Credit Union"},"image":{"@id":"https:\/\/www.bscu.org\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/BrightStarCU\/","https:\/\/www.instagram.com\/brightstar.creditunion\/"]}]}},"_links":{"self":[{"href":"https:\/\/www.bscu.org\/es\/wp-json\/wp\/v2\/pages\/17982","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bscu.org\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.bscu.org\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.bscu.org\/es\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bscu.org\/es\/wp-json\/wp\/v2\/comments?post=17982"}],"version-history":[{"count":3,"href":"https:\/\/www.bscu.org\/es\/wp-json\/wp\/v2\/pages\/17982\/revisions"}],"predecessor-version":[{"id":17995,"href":"https:\/\/www.bscu.org\/es\/wp-json\/wp\/v2\/pages\/17982\/revisions\/17995"}],"up":[{"embeddable":true,"href":"https:\/\/www.bscu.org\/es\/wp-json\/wp\/v2\/pages\/389"}],"wp:attachment":[{"href":"https:\/\/www.bscu.org\/es\/wp-json\/wp\/v2\/media?parent=17982"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}