{"id":3411,"date":"2026-06-11T15:57:30","date_gmt":"2026-06-11T15:57:30","guid":{"rendered":"https:\/\/creditfina.ca\/application\/"},"modified":"2026-06-15T14:03:06","modified_gmt":"2026-06-15T14:03:06","slug":"application","status":"publish","type":"page","link":"https:\/\/creditfina.ca\/en\/application\/","title":{"rendered":"Application"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3411\" class=\"elementor elementor-3411 elementor-3399\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f6dcb61 e-flex e-con-boxed e-con e-parent\" data-id=\"f6dcb61\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c08f181 elementor-widget elementor-widget-shortcode\" data-id=\"c08f181\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">    <div id=\"cf-wrap\" data-lang=\"en\">\r\n\r\n      <div class=\"cf-hero\">\r\n        <h1>Fill out the form!<\/h1>\r\n        <p>Complete your application in less than 2 minutes.<\/p>\r\n      <\/div>\r\n\r\n      <div class=\"cf-step-indicator\" id=\"cf-step-indicator\">\r\n        Step 1 of 2      <\/div>\r\n\r\n      <div class=\"cf-progress-bar-wrap\">\r\n        <div class=\"cf-progress-bar-fill\" id=\"cf-progress-fill\"><\/div>\r\n      <\/div>\r\n\r\n      <div class=\"cf-container\">\r\n        <form id=\"cf-form\" autocomplete=\"on\">\r\n          <input type=\"hidden\" id=\"cf_lang\"              value=\"en\">\r\n          <input type=\"hidden\" id=\"cf_nonce\"             value=\"810781f42a\">\r\n          <input type=\"hidden\" id=\"cf_source_id\"         value=\"web-6aa09c74-6172-4cd3-a82f-8e98adb4d155\">\r\n          <input type=\"hidden\" id=\"cf_kiipr_terms_token\" value=\"\">\r\n\r\n          <div id=\"cf-step-1\">\r\n\r\n            <div class=\"cf-card\">\r\n              <p class=\"cf-card-title\">Personal Information<\/p>\r\n              <div class=\"cf-grid\">\r\n                <div class=\"cf-field\">\r\n                  <label>First name*<\/label>\r\n                  <input type=\"text\" id=\"cf_first_name\" placeholder=\"John\">\r\n                  <span class=\"cf-err\" id=\"e-first_name\"><\/span>\r\n                <\/div>\r\n                <div class=\"cf-field\">\r\n                  <label>Last name*<\/label>\r\n                  <input type=\"text\" id=\"cf_last_name\" placeholder=\"Doe\">\r\n                  <span class=\"cf-err\" id=\"e-last_name\"><\/span>\r\n                <\/div>\r\n              <\/div>\r\n              <div class=\"cf-field\">\r\n                <label>Email*<\/label>\r\n                <input type=\"email\" id=\"cf_email\" placeholder=\"john@example.com\">\r\n                <span class=\"cf-err\" id=\"e-email\"><\/span>\r\n              <\/div>\r\n              <div class=\"cf-field\">\r\n                <label>Phone*<\/label>\r\n                <input type=\"tel\" id=\"cf_phone\" placeholder=\"(514) 555-1234\">\r\n                <span class=\"cf-err\" id=\"e-phone\"><\/span>\r\n              <\/div>\r\n              <div class=\"cf-field\">\r\n                <label>Gender*<\/label>\r\n                <div class=\"cf-radio-group\">\r\n                  <label class=\"cf-radio-btn\" id=\"btn-gender-0\">\r\n                    <input type=\"radio\" name=\"cf_gender\" value=\"0\">\r\n                    Male                  <\/label>\r\n                  <label class=\"cf-radio-btn\" id=\"btn-gender-1\">\r\n                    <input type=\"radio\" name=\"cf_gender\" value=\"1\">\r\n                    Female                  <\/label>\r\n                <\/div>\r\n                <span class=\"cf-err\" id=\"e-gender\"><\/span>\r\n              <\/div>\r\n             <div class=\"cf-field\">\r\n             <label>Birth date*<\/label>\r\n             <input type=\"text\" id=\"cf_birth_date\" inputmode=\"numeric\" placeholder=\"AAAA-MM-JJ\" maxlength=\"10\">\r\n             <span class=\"cf-err\" id=\"e-birth_date\"><\/span>\r\n            <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"cf-card\">\r\n              <p class=\"cf-card-title\">Postal Address<\/p>\r\n              <div class=\"cf-field\">\r\n                <label>Address*<\/label>\r\n                <input type=\"text\" id=\"cf_street\" placeholder=\"123 Main Street\">\r\n                <span class=\"cf-err\" id=\"e-street\"><\/span>\r\n              <\/div>\r\n              <div class=\"cf-field\">\r\n                <label>Apt \/ Suite<\/label>\r\n                <input type=\"text\" id=\"cf_apt\" placeholder=\"Apt 4B\">\r\n              <\/div>\r\n              <div class=\"cf-grid\">\r\n                <div class=\"cf-field\">\r\n                  <label>City*<\/label>\r\n                  <input type=\"text\" id=\"cf_city\" placeholder=\"Montreal\">\r\n                  <span class=\"cf-err\" id=\"e-city\"><\/span>\r\n                <\/div>\r\n                <div class=\"cf-field\">\r\n                  <label>Province*<\/label>\r\n                  <div class=\"cf-select-wrap\">\r\n                    <select id=\"cf_province\">\r\n                      <option value=\"\">Select<\/option>\r\n                      <option value=\"QC\" selected>Qu\u00e9bec<\/option>\r\n                      <option value=\"ON\">Ontario<\/option>\r\n                      <option value=\"AB\">Alberta<\/option>\r\n                      <option value=\"BC\">Colombie-Britannique<\/option>\r\n                      <option value=\"MB\">Manitoba<\/option>\r\n                      <option value=\"NB\">Nouveau-Brunswick<\/option>\r\n                      <option value=\"NL\">Terre-Neuve-et-Labrador<\/option>\r\n                      <option value=\"NS\">Nouvelle-\u00c9cosse<\/option>\r\n                      <option value=\"PE\">\u00cele-du-Prince-\u00c9douard<\/option>\r\n                      <option value=\"SK\">Saskatchewan<\/option>\r\n                      <option value=\"NT\">Territoires du Nord-Ouest<\/option>\r\n                      <option value=\"NU\">Nunavut<\/option>\r\n                      <option value=\"YT\">Yukon<\/option>\r\n                    <\/select>\r\n                  <\/div>\r\n                  <span class=\"cf-err\" id=\"e-province\"><\/span>\r\n                <\/div>\r\n              <\/div>\r\n              <div class=\"cf-field\">\r\n                <label>Postal code*<\/label>\r\n                <input type=\"text\" id=\"cf_postal_code\" placeholder=\"H1A 1A1\" maxlength=\"7\" style=\"max-width:160px\">\r\n                <span class=\"cf-err\" id=\"e-postal_code\"><\/span>\r\n              <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"cf-card\">\r\n              <p class=\"cf-card-title\">Employment<\/p>\r\n              <div class=\"cf-grid\">\r\n                <div class=\"cf-field\">\r\n                  <label>Employer name*<\/label>\r\n                  <input type=\"text\" id=\"cf_employer_name\">\r\n                  <span class=\"cf-err\" id=\"e-employer_name\"><\/span>\r\n                <\/div>\r\n                <div class=\"cf-field\">\r\n                  <label>Job title*<\/label>\r\n                  <input type=\"text\" id=\"cf_job_title\">\r\n                  <span class=\"cf-err\" id=\"e-job_title\"><\/span>\r\n                <\/div>\r\n              <\/div>\r\n              <div class=\"cf-grid\">\r\n                <div class=\"cf-field\">\r\n                  <label>Income source*<\/label>\r\n                  <div class=\"cf-select-wrap\">\r\n                    <select id=\"cf_income_source\">\r\n                      <option value=\"\">Select<\/option>\r\n                      <option value=\"employed\">Employed<\/option>\r\n                      <option value=\"saaq\">SAAQ<\/option>\r\n                      <option value=\"CSST\">CSST<\/option>\r\n                      <option value=\"pension\">Pension<\/option>\r\n                      <option value=\"invalidity\">Invalidity<\/option>\r\n                      <option value=\"insurance\">Insurance<\/option>\r\n                      <option value=\"rqap\">RQAP<\/option>\r\n                    <\/select>\r\n                  <\/div>\r\n                  <span class=\"cf-err\" id=\"e-income_source\"><\/span>\r\n                <\/div>\r\n                <div class=\"cf-field\">\r\n                  <label>Work phone<\/label>\r\n                  <input type=\"tel\" id=\"cf_work_phone\" placeholder=\"(514) 555-1234\">\r\n                <\/div>\r\n              <\/div>\r\n              <div class=\"cf-field\">\r\n              <label>First pay date*<\/label>\r\n              <input type=\"text\" id=\"cf_first_pay_date\" inputmode=\"numeric\" placeholder=\"AAAA-MM-JJ\" maxlength=\"10\">\r\n              <span class=\"cf-err\" id=\"e-first_pay_date\"><\/span>\r\n              <\/div>\r\n              <div class=\"cf-field\">\r\n                <label>Pay frequency*<\/label>\r\n                <div class=\"cf-select-wrap\">\r\n                  <select id=\"cf_pay_frequency\">\r\n                    <option value=\"\">Select<\/option>\r\n                    <option value=\"1week\">Every week<\/option>\r\n                    <option value=\"2weeks\">Every 2 weeks<\/option>\r\n                    <option value=\"1month\">Once a month<\/option>\r\n                  <\/select>\r\n                <\/div>\r\n                <span class=\"cf-err\" id=\"e-pay_frequency\"><\/span>\r\n              <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"cf-card\">\r\n              <p class=\"cf-card-title\">Reference<\/p>\r\n              <div class=\"cf-grid\">\r\n                <div class=\"cf-field\">\r\n                  <label>Reference full name*<\/label>\r\n                  <input type=\"text\" id=\"cf_ref_name\">\r\n                  <span class=\"cf-err\" id=\"e-ref_name\"><\/span>\r\n                <\/div>\r\n                <div class=\"cf-field\">\r\n                  <label>Reference phone*<\/label>\r\n                  <input type=\"tel\" id=\"cf_ref_phone\" placeholder=\"(514) 555-1234\">\r\n                  <span class=\"cf-err\" id=\"e-ref_phone\"><\/span>\r\n                <\/div>\r\n              <\/div>\r\n              <div class=\"cf-field\">\r\n                <label>Relationship*<\/label>\r\n                <div class=\"cf-select-wrap\">\r\n                  <select id=\"cf_ref_relationship\">\r\n                    <option value=\"\">Select<\/option>\r\n                    <option value=\"family\">Family<\/option>\r\n                    <option value=\"friend\">Friend<\/option>\r\n                    <option value=\"colleague\">Colleague<\/option>\r\n                    <option value=\"other\">Other<\/option>\r\n                  <\/select>\r\n                <\/div>\r\n                <span class=\"cf-err\" id=\"e-ref_relationship\"><\/span>\r\n              <\/div>\r\n\r\n              <div class=\"cf-submit-wrap\">\r\n                <button type=\"button\" class=\"cf-btn-primary\" id=\"cf-next\">Continue<\/button>\r\n              <\/div>\r\n            <\/div>\r\n\r\n          <\/div><!-- \/step-1 -->\r\n\r\n          <div id=\"cf-step-2\" style=\"display:none\">\r\n\r\n            <div class=\"cf-card\">\r\n              <p class=\"cf-card-title\">Select your loan amount*<\/p>\r\n              <div class=\"cf-loan-grid\">\r\n                <div class=\"cf-loan-card\" data-amount=\"250\"  data-term=\"2 \u00bd Months\"><input type=\"radio\" name=\"cf_loan\" value=\"250\"><strong>$250.00<\/strong><span>2 \u00bd Months<\/span><\/div>\r\n                <div class=\"cf-loan-card\" data-amount=\"300\"  data-term=\"3 Months\"><input type=\"radio\" name=\"cf_loan\" value=\"300\"><strong>$300.00<\/strong><span>3 Months<\/span><\/div>\r\n                <div class=\"cf-loan-card\" data-amount=\"400\"  data-term=\"3 Months\"><input type=\"radio\" name=\"cf_loan\" value=\"400\"><strong>$400.00<\/strong><span>3 Months<\/span><\/div>\r\n                <div class=\"cf-loan-card\" data-amount=\"500\"  data-term=\"3 Months\"><input type=\"radio\" name=\"cf_loan\" value=\"500\"><strong>$500.00<\/strong><span>3 Months<\/span><\/div>\r\n                <div class=\"cf-loan-card\" data-amount=\"750\"  data-term=\"4 Months\"><input type=\"radio\" name=\"cf_loan\" value=\"750\"><strong>$750.00<\/strong><span>4 Months<\/span><\/div>\r\n                <div class=\"cf-loan-card\" data-amount=\"800\"  data-term=\"4 Months\"><input type=\"radio\" name=\"cf_loan\" value=\"800\"><strong>$800.00<\/strong><span>4 Months<\/span><\/div>\r\n                <div class=\"cf-loan-card\" data-amount=\"1000\" data-term=\"4 Months\"><input type=\"radio\" name=\"cf_loan\" value=\"1000\"><strong>$1,000.00<\/strong><span>4 Months<\/span><\/div>\r\n                <div class=\"cf-loan-card\" data-amount=\"1250\" data-term=\"4 \u00bd Months\"><input type=\"radio\" name=\"cf_loan\" value=\"1250\"><strong>$1,250.00<\/strong><span>4 \u00bd Months<\/span><\/div>\r\n                <div class=\"cf-loan-card\" data-amount=\"1500\" data-term=\"5 Months\"><input type=\"radio\" name=\"cf_loan\" value=\"1500\"><strong>$1,500.00<\/strong><span>5 Months<\/span><\/div>\r\n              <\/div>\r\n              <span class=\"cf-err\" id=\"e-loan\"><\/span>\r\n            <\/div>\r\n\r\n            <div class=\"cf-card\">\r\n              <p class=\"cf-card-title\">Deposit Method*<\/p>\r\n              <div class=\"cf-option-row\">\r\n                <div class=\"cf-option-card\" data-value=\"standard\" id=\"dep-standard\">\r\n                  <input type=\"radio\" name=\"cf_deposit\" value=\"standard\">\r\n                  <strong>Standard<\/strong>\r\n                  <span>5\u20137 business days \u2014 Standard Bank Deposit<\/span>\r\n                  <em>No fee<\/em>\r\n                <\/div>\r\n                <div class=\"cf-option-card selected\" data-value=\"express\" id=\"dep-express\">\r\n                  <input type=\"radio\" name=\"cf_deposit\" value=\"express\" checked>\r\n                  <strong>Express \u2713<\/strong>\r\n                  <span>Instant \u2014 Interac Transfer<\/span>\r\n                  <em>$15.00<\/em>\r\n                <\/div>\r\n              <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"cf-card\">\r\n              <p class=\"cf-card-title\">Treatment Level*<\/p>\r\n              <div class=\"cf-option-row\">\r\n                <div class=\"cf-option-card\" data-value=\"standard\" id=\"treat-standard\">\r\n                  <input type=\"radio\" name=\"cf_treatment\" value=\"standard\">\r\n                  <strong>Standard<\/strong>\r\n                  <span>3\u20135 business days<\/span>\r\n                <\/div>\r\n                <div class=\"cf-option-card selected\" data-value=\"priority\" id=\"treat-priority\">\r\n                  <input type=\"radio\" name=\"cf_treatment\" value=\"priority\" checked>\r\n                  <strong>Priority \u2713<\/strong>\r\n                  <span>12\u201324 hours<\/span>\r\n                <\/div>\r\n              <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"cf-card\">\r\n              <p class=\"cf-card-title\">FinX Consent<\/p>\r\n              <iframe id=\"id_kiipr-iframe\" src=\"https:\/\/clients.creditfina.ca\/kiipr\/embed\/terms-and-conditions\/?lang=en\" width=\"100%\" frameborder=\"0\" style=\"min-height:180px;border:0;border-radius:12px;background:#fff;\"><\/iframe>\r\n              <div class=\"cf-consent-status\" id=\"cf-kiipr-status\" style=\"margin-top:10px;font-size:14px;\">\r\n                Waiting for consent token\u2026              <\/div>\r\n              <div style=\"margin-top:12px;font-size:14px;line-height:1.45;\">\r\n                <p style=\"margin:0 0 8px 0;\">I confirm that the information provided is accurate and current and that I have read and accepted the terms and conditions.<\/p>\r\n                <p style=\"margin:0 0 8px 0;\">I confirm that I have read the FinX consent form, accept its terms, and understand the collection, use, and retention of my personal information.<\/p>\r\n                <p style=\"margin:0;\">Terms page:                  <a href=\"https:\/\/creditfina.ca\/en\/privacy-policy\/\" target=\"_blank\" rel=\"noopener\">https:\/\/creditfina.ca\/en\/privacy-policy\/<\/a>\r\n                <\/p>\r\n              <\/div>\r\n              <label class=\"cf-check\" style=\"margin-top:14px;\">\r\n                <input type=\"checkbox\" id=\"cf_consent_terms\">\r\n                <span>I accept the terms and conditions.<\/span>\r\n              <\/label>\r\n              <label class=\"cf-check\">\r\n                <input type=\"checkbox\" id=\"cf_consent_finx\">\r\n                <span>I accept the FinX consent terms.<\/span>\r\n              <\/label>\r\n              <label class=\"cf-check\">\r\n                <input type=\"checkbox\" id=\"cf_consent_marketing\">\r\n                <span>I also agree to receive marketing communications.<\/span>\r\n              <\/label>\r\n              <span class=\"cf-err\" id=\"e-consent\"><\/span>\r\n\r\n              <div class=\"cf-submit-wrap\">\r\n                <button type=\"button\" class=\"cf-btn-secondary\" id=\"cf-back\">\u2190 Previous step<\/button>\r\n                <button type=\"button\" class=\"cf-btn-primary\"   id=\"cf-submit\" disabled>Finalize<\/button>\r\n              <\/div>\r\n            <\/div>\r\n\r\n          <\/div><!-- \/step-2 -->\r\n\r\n          <div id=\"cf-success\" style=\"display:none\" class=\"cf-card\">\r\n            <h2>Thank you!<\/h2>\r\n            <p>Your application has been received.<\/p>\r\n          <\/div>\r\n\r\n          <div id=\"cf-api-error\" style=\"display:none\" class=\"cf-card\">\r\n            <p id=\"cf-api-error-message\">Oops! An error occurred.<\/p>\r\n            <button type=\"button\" id=\"cf-retry\">Try again<\/button>\r\n          <\/div>\r\n\r\n        <input\n                    class=\"apbct_special_field apbct_email_id__elementor_form\"\n                    name=\"apbct__email_id__elementor_form\"\n                    aria-label=\"apbct__label_id__elementor_form\"\n                    type=\"text\" size=\"30\" maxlength=\"200\" autocomplete=\"off\"\n                    value=\"\"\n                \/><\/form>\r\n      <\/div>\r\n    <\/div>\r\n\r\n<script src=\"https:\/\/maps.googleapis.com\/maps\/api\/js?key=AIzaSyBbHgb3xNEpL7h0QNj_Qca63AbgdgS4fBI&libraries=places&language=en&callback=initGoogleAutocomplete\" defer><\/script>\r\n<script>\r\n(function(){\r\n    function g(id){ return document.getElementById(id); }\r\n\r\n    var LANG               = g('cf_lang')  ? g('cf_lang').value  : 'fr';\r\n    var REST_URL           = 'https:\/\/creditfina.ca\/en\/wp-json\/creditfina\/v1\/lead';\r\n    var nonce              = g('cf_nonce') ? g('cf_nonce').value : '';\r\n    var selectedLoan       = null;\r\n    var depositMethod      = 'express';\r\n    var treatmentLevel     = 'priority';\r\n    var formStarted        = false;\r\n    var submissionInProgress = false;\r\n\r\n    function setStep(n){\r\n        var indicator = g('cf-step-indicator');\r\n        if(indicator) indicator.textContent = (LANG === 'fr') ? ('\u00c9tape ' + n + ' de 2') : ('Step ' + n + ' of 2');\r\n        var fill = g('cf-progress-fill');\r\n        if(fill) fill.setAttribute('style', 'width:' + (n === 1 ? '50%' : '100%') + ' !important; height:6px !important; background:#181F2C !important; background-color:#181F2C !important; display:block !important; border-radius:4px !important;');\r\n    }\r\n\r\nfunction applyPhoneMask(el){\r\n    el.addEventListener('input', function(){\r\n        var v = this.value.replace(\/\\D\/g,'').slice(0,10);\r\n        if(v.length >= 7)      v = '('+v.slice(0,3)+') '+v.slice(3,6)+'-'+v.slice(6);\r\n        else if(v.length >= 4) v = '('+v.slice(0,3)+') '+v.slice(3);\r\n        else if(v.length > 0)  v = '('+v;\r\n        this.value = v;\r\n    });\r\n}\r\nfunction applyDateMask(el){\r\n    el.addEventListener('input', function(){\r\n        var v = this.value.replace(\/\\D\/g,'').slice(0,8);\r\n        if(v.length >= 5) v = v.slice(0,4)+'-'+v.slice(4,6)+(v.length>6?('-'+v.slice(6)):'');\r\n        else if(v.length >= 4) v = v.slice(0,4);\r\n        this.value = v;\r\n    });\r\n}\r\n['cf_phone','cf_work_phone','cf_ref_phone'].forEach(function(id){\r\n    var el = g(id); if(el) applyPhoneMask(el);\r\n});\r\nvar birthEl = g('cf_birth_date');\r\nif(birthEl) applyDateMask(birthEl);\r\n\r\nvar firstPayEl = g('cf_first_pay_date');\r\nif(firstPayEl) applyDateMask(firstPayEl);\r\n\r\n    var postalEl = g('cf_postal_code');\r\n    if(postalEl) postalEl.addEventListener('input', function(){\r\n        this.value = this.value.toUpperCase().replace(\/[^A-Z0-9 ]\/g,'');\r\n    });\r\n\r\n    document.querySelectorAll('.cf-radio-btn').forEach(function(btn){\r\n        btn.addEventListener('click', function(){\r\n            document.querySelectorAll('.cf-radio-btn').forEach(function(b){ b.classList.remove('selected'); });\r\n            this.classList.add('selected');\r\n            var input = this.querySelector('input[type=\"radio\"]');\r\n            if(input) input.checked = true;\r\n            var err = g('e-gender'); if(err) err.textContent = '';\r\n        });\r\n    });\r\n\r\n    document.querySelectorAll('.cf-loan-card').forEach(function(card){\r\n        card.addEventListener('click', function(){\r\n            document.querySelectorAll('.cf-loan-card').forEach(function(c){ c.classList.remove('selected'); });\r\n            this.classList.add('selected');\r\n            var input = this.querySelector('input[type=\"radio\"]');\r\n            if(input) input.checked = true;\r\n            selectedLoan = { amount: parseFloat(this.dataset.amount), term: this.dataset.term };\r\n            var err = g('e-loan'); if(err) err.textContent = '';\r\n            checkConsentState();\r\n        });\r\n    });\r\n\r\n    document.querySelectorAll('#dep-standard, #dep-express').forEach(function(card){\r\n        card.addEventListener('click', function(){\r\n            document.querySelectorAll('#dep-standard, #dep-express').forEach(function(c){ c.classList.remove('selected'); });\r\n            this.classList.add('selected');\r\n            var input = this.querySelector('input[type=\"radio\"]');\r\n            if(input) input.checked = true;\r\n            depositMethod = this.dataset.value;\r\n        });\r\n    });\r\n\r\n    document.querySelectorAll('#treat-standard, #treat-priority').forEach(function(card){\r\n        card.addEventListener('click', function(){\r\n            document.querySelectorAll('#treat-standard, #treat-priority').forEach(function(c){ c.classList.remove('selected'); });\r\n            this.classList.add('selected');\r\n            var input = this.querySelector('input[type=\"radio\"]');\r\n            if(input) input.checked = true;\r\n            treatmentLevel = this.dataset.value;\r\n        });\r\n    });\r\n\r\nfunction pickErrorMsg(rule, val){\r\n    if(!val) return rule.msg;\r\n    if(rule.id === 'cf_birth_date' || rule.id === 'cf_first_pay_date'){\r\n        var formatOk = \/^\\d{4}-\\d{2}-\\d{2}$\/.test(val);\r\n        var dateOk = false;\r\n        if(formatOk){\r\n            var parts = val.split('-');\r\n            var year = parseInt(parts[0], 10);\r\n            var month = parseInt(parts[1], 10);\r\n            var day = parseInt(parts[2], 10);\r\n            if(month >= 1 && month <= 12){\r\n                var d = new Date(year, month - 1, day);\r\n                dateOk = (d.getFullYear() === year && d.getMonth() === month - 1 && d.getDate() === day);\r\n            }\r\n        }\r\n        if(!dateOk) return rule.invalidMsg || rule.msg;\r\n        if(rule.id === 'cf_birth_date') return rule.underageMsg || rule.invalidMsg || rule.msg;\r\n        return rule.invalidMsg || rule.msg;\r\n    }\r\n    if(rule.id === 'cf_postal_code'){\r\n        var clean = val.replace(\/\\s\/g,'');\r\n        if(clean.length > 0 && clean.length < 6) return rule.incompleteMsg || rule.invalidMsg || rule.msg;\r\n        return rule.invalidMsg || rule.msg;\r\n    }\r\n    return rule.invalidMsg || rule.msg;\r\n}\r\n\r\n    var blurRules = [\r\n        {id:'cf_first_name',      err:'e-first_name',      msg:'Required field'},\r\n        {id:'cf_last_name',       err:'e-last_name',       msg:'Required field'},\r\n        {id:'cf_email',           err:'e-email',           msg:'Invalid email',  fn: function(v){ return \/\\S+@\\S+\\.\\S+\/.test(v); }},\r\n        {id:'cf_phone',           err:'e-phone',           msg:'Format: (XXX) XXX-XXXX',   fn: function(v){ return v.replace(\/\\D\/g,'').length === 10; }},\r\n        {id:'cf_birth_date', err:'e-birth_date', msg:'Required field', invalidMsg:'Invalid date', underageMsg:'You must be at least 18 years old', fn: function(v){\r\n    if(!\/^\\d{4}-\\d{2}-\\d{2}$\/.test(v)) return false;\r\n    var parts = v.split('-');\r\n    var year = parseInt(parts[0], 10);\r\n    var month = parseInt(parts[1], 10);\r\n    var day = parseInt(parts[2], 10);\r\n    if(year < 1900 || year > new Date().getFullYear()) return false;\r\n    if(month < 1 || month > 12) return false;\r\n    var d = new Date(year, month - 1, day);\r\n    if(d.getFullYear() !== year || d.getMonth() !== month - 1 || d.getDate() !== day) return false;\r\n    var today = new Date();\r\n    var age = today.getFullYear() - year;\r\n    var hasHadBirthdayThisYear = (today.getMonth() > month - 1) || (today.getMonth() === month - 1 && today.getDate() >= day);\r\n    if(!hasHadBirthdayThisYear) age--;\r\n    if(age < 18) return false;\r\n    return true;\r\n}},\r\n        {id:'cf_street',          err:'e-street',          msg:'Required field'},\r\n        {id:'cf_city',            err:'e-city',            msg:'Required field'},\r\n        {id:'cf_province',        err:'e-province',        msg:'Required field'},\r\n        {id:'cf_postal_code', err:'e-postal_code', msg:'Format: A1A 1A1', invalidMsg:'Format: A1A 1A1', incompleteMsg:'Postal code seems incomplete \u2014 please add the remaining 3 characters.', fn: function(v){ return \/^[A-Z]\\d[A-Z] \\d[A-Z]\\d$\/.test(v); }},\r\n        {id:'cf_employer_name',   err:'e-employer_name',   msg:'Required field'},\r\n        {id:'cf_job_title',       err:'e-job_title',       msg:'Required field'},\r\n        {id:'cf_income_source',   err:'e-income_source',   msg:'Required field'},\r\n        {id:'cf_first_pay_date', err:'e-first_pay_date', msg:'Required field', invalidMsg:'Invalid date', fn: function(v){\r\n    if(!\/^\\d{4}-\\d{2}-\\d{2}$\/.test(v)) return false;\r\n    var parts = v.split('-');\r\n    var year = parseInt(parts[0], 10);\r\n    var month = parseInt(parts[1], 10);\r\n    var day = parseInt(parts[2], 10);\r\n    if(month < 1 || month > 12) return false;\r\n    var d = new Date(year, month - 1, day);\r\n    if(d.getFullYear() !== year || d.getMonth() !== month - 1 || d.getDate() !== day) return false;\r\n    return true;\r\n}},\r\n        {id:'cf_pay_frequency',   err:'e-pay_frequency',   msg:'Required field'},\r\n        {id:'cf_ref_name',        err:'e-ref_name',        msg:'Required field'},\r\n        {id:'cf_ref_phone',       err:'e-ref_phone',       msg:'Format: (XXX) XXX-XXXX',   fn: function(v){ return v.replace(\/\\D\/g,'').length === 10; }},\r\n        {id:'cf_ref_relationship',err:'e-ref_relationship',msg:'Required field'},\r\n    ];\r\n\r\nblurRules.forEach(function(rule){\r\n    var el = g(rule.id); if(!el) return;\r\n    el.addEventListener('blur', function(){\r\n        var val = this.value.trim();\r\n        var valid = val && (rule.fn ? rule.fn(val) : true);\r\n        this.classList.toggle('cf-invalid', !valid);\r\n        var err = g(rule.err); if(err) err.textContent = valid ? '' : pickErrorMsg(rule, val);\r\n    });\r\n});\r\n\r\nfunction validateStep1(){\r\n    var ok = true;\r\n    var firstInvalidEl = null;\r\n    blurRules.forEach(function(rule){\r\n        var el = g(rule.id); if(!el) return;\r\n        var val = el.value.trim();\r\n        var valid = val && (rule.fn ? rule.fn(val) : true);\r\n        el.classList.toggle('cf-invalid', !valid);\r\n        var err = g(rule.err); if(err) err.textContent = valid ? '' : pickErrorMsg(rule, val);\r\n        if(!valid){\r\n            ok = false;\r\n            if(!firstInvalidEl) firstInvalidEl = el;\r\n        }\r\n    });\r\n    var gender = document.querySelector('input[name=\"cf_gender\"]:checked');\r\n    var genderErr = g('e-gender');\r\n    if(genderErr) genderErr.textContent = gender ? '' : 'Please select a gender';\r\n    if(!gender){\r\n        ok = false;\r\n        if(!firstInvalidEl) firstInvalidEl = g('btn-gender-0');\r\n    }\r\n    if(!ok && firstInvalidEl){\r\n        firstInvalidEl.scrollIntoView({ behavior: 'smooth', block: 'center' });\r\n        if(typeof firstInvalidEl.focus === 'function') firstInvalidEl.focus({ preventScroll: true });\r\n    }\r\n    return ok;\r\n}\r\n    function saveToStorage(){\r\n        var data = {};\r\n        ['cf_first_name','cf_last_name','cf_email','cf_phone','cf_birth_date',\r\n         'cf_street','cf_apt','cf_city','cf_province','cf_postal_code',\r\n         'cf_employer_name','cf_job_title','cf_income_source','cf_work_phone',\r\n         'cf_first_pay_date','cf_pay_frequency',\r\n         'cf_ref_name','cf_ref_phone','cf_ref_relationship'].forEach(function(id){\r\n            var el = g(id); if(el) data[id] = el.value;\r\n        });\r\n        var gender = document.querySelector('input[name=\"cf_gender\"]:checked');\r\n        data.cf_gender = gender ? gender.value : '';\r\n        sessionStorage.setItem('cf_form_data', JSON.stringify(data));\r\n    }\r\n\r\n    function restoreFromStorage(){\r\n        var raw = sessionStorage.getItem('cf_form_data');\r\n        if(!raw) return;\r\n        try {\r\n            var data = JSON.parse(raw);\r\n            Object.keys(data).forEach(function(id){ var el = g(id); if(el) el.value = data[id]; });\r\n            if(data.cf_gender){\r\n                var radio = document.querySelector('input[name=\"cf_gender\"][value=\"'+data.cf_gender+'\"]');\r\n                if(radio){ radio.checked = true; var lbl = radio.closest('.cf-radio-btn'); if(lbl) lbl.classList.add('selected'); }\r\n            }\r\n        } catch(e){}\r\n    }\r\n    restoreFromStorage();\r\n\r\n    document.querySelectorAll('#cf-wrap input, #cf-wrap select').forEach(function(el){\r\n        el.addEventListener('change', function(){ saveToStorage(); });\r\n    });\r\n\r\n    function checkConsentState(){\r\n        var terms    = g('cf_consent_terms') ? g('cf_consent_terms').checked : false;\r\n        var finx     = g('cf_consent_finx')  ? g('cf_consent_finx').checked  : false;\r\n        var hasToken = !!(g('cf_kiipr_terms_token') && g('cf_kiipr_terms_token').value);\r\n        var btn = g('cf-submit');\r\n        if(btn) btn.disabled = !(terms && finx && hasToken) || submissionInProgress;\r\n    }\r\n\r\n    function setToken(token){\r\n        var hidden = g('cf_kiipr_terms_token'); if(hidden) hidden.value = token || '';\r\n        var status = g('cf-kiipr-status');\r\n        if(status) status.textContent = token\r\n            ? (LANG === 'fr' ? 'Jeton de consentement re\u00e7u.' : 'Consent token received.')\r\n            : (LANG === 'fr' ? 'En attente du jeton de consentement\u2026' : 'Waiting for consent token\u2026');\r\n        checkConsentState();\r\n    }\r\n\r\n    window.addEventListener('message', function(message){\r\n        if(!message || !message.data) return;\r\n        if(message.data.type === 'KiiprTermsAccepted'){\r\n            setToken(message.data.token || '');\r\n        } else if(message.data.type === 'KiiprTermsError'){\r\n            var status = g('cf-kiipr-status');\r\n            if(status) status.textContent = LANG === 'fr' ? 'Erreur de consentement FinX.' : 'FinX consent error.';\r\n            setToken('');\r\n        } else if(message.data.type === 'KiiprTermsResize'){\r\n            var iframe = document.querySelector('#id_kiipr-iframe');\r\n            if(iframe && message.data.height) iframe.setAttribute('height', message.data.height);\r\n        }\r\n    });\r\n\r\n    g('cf_consent_terms').addEventListener('change', checkConsentState);\r\n    g('cf_consent_finx').addEventListener('change', checkConsentState);\r\n\r\n    function payloadFromForm(){\r\n        return {\r\n            nonce: nonce, lang: LANG,\r\n            source_id: g('cf_source_id').value,\r\n            requested_loan_amount: selectedLoan ? selectedLoan.amount : null,\r\n            kiipr_terms_token: g('cf_kiipr_terms_token').value || '',\r\n            fields: {\r\n                first_name:     g('cf_first_name').value.trim(),\r\n                last_name:      g('cf_last_name').value.trim(),\r\n                email:          g('cf_email').value.trim(),\r\n                address_line1:  g('cf_street').value.trim(),\r\n                address_line2:  g('cf_apt').value.trim(),\r\n                city:           g('cf_city').value.trim(),\r\n                state:          g('cf_province').value.trim(),\r\n                zip_code:       g('cf_postal_code').value.trim(),\r\n                gender:         (function(){ var gdr = document.querySelector('input[name=\"cf_gender\"]:checked'); return gdr ? parseInt(gdr.value,10) : 2; })(),\r\n                birth_date:     g('cf_birth_date').value,\r\n                phone_1:        g('cf_phone').value.replace(\/\\D\/g,''),\r\n                income_source:  g('cf_income_source').value,\r\n                first_pay_date: g('cf_first_pay_date').value,\r\n                pay_frequency:  g('cf_pay_frequency').value,\r\n                language:       LANG,\r\n                company_name:   g('cf_employer_name').value.trim(),\r\n                job_title:      g('cf_job_title').value.trim(),\r\n                phone:          g('cf_work_phone').value.replace(\/\\D\/g,''),\r\n                ref1_fullname:  g('cf_ref_name').value.trim(),\r\n                ref1_phone:     g('cf_ref_phone').value.replace(\/\\D\/g,''),\r\n                ref1_link:      g('cf_ref_relationship').value\r\n            }\r\n        };\r\n    }\r\n\r\n    \/\/ Aplana cualquier formato de error que devuelva FinX a un texto legible.\r\n    function extractErrorMessage(json){\r\n        if(!json) return '';\r\n        if(typeof json === 'string') return json;\r\n        if(Array.isArray(json)) return json.map(extractErrorMessage).filter(Boolean).join(', ');\r\n        var direct = json.message || json.detail || json.error || json.error_description;\r\n        if(typeof direct === 'string' && direct) return direct;\r\n        if(direct && typeof direct === 'object') {\r\n            var nested = extractErrorMessage(direct);\r\n            if(nested) return nested;\r\n        }\r\n        var parts = [];\r\n        Object.keys(json).forEach(function(key){\r\n            if(key === 'message' || key === 'detail' || key === 'error') return;\r\n            var val = json[key];\r\n            var txt = Array.isArray(val) ? val.join(', ')\r\n                    : (typeof val === 'object' ? extractErrorMessage(val) : String(val));\r\n            if(txt) parts.push(key + ': ' + txt);\r\n        });\r\n        return parts.join(' | ');\r\n    }\r\n\r\n    async function submitLead(){\r\n        if(submissionInProgress) return;\r\n        if(!validateStep1()) return;\r\n        if(!selectedLoan){ var le = g('e-loan'); if(le) le.textContent = (LANG === 'fr' ? 'Veuillez s\u00e9lectionner un montant' : 'Please select a loan amount'); return; }\r\n        var hasConsent = g('cf_consent_terms').checked && g('cf_consent_finx').checked;\r\n        var hasToken   = !!g('cf_kiipr_terms_token').value;\r\n        if(!hasConsent || !hasToken){ var ce = g('e-consent'); if(ce) ce.textContent = (LANG === 'fr' ? 'Le consentement FinX est requis.' : 'FinX consent is required.'); return; }\r\n\r\n        submissionInProgress = true; checkConsentState();\r\n\r\n        try {\r\n            var res  = await fetch(REST_URL, { method:'POST', headers:{'Content-Type':'application\/json'}, body: JSON.stringify(payloadFromForm()) });\r\n            var json = {}; try { json = await res.json(); } catch(e){}\r\n\r\n            if(res.ok && json && json.redirect_url){\r\n                sessionStorage.removeItem('cf_form_data');\r\n                if(window.dataLayer) dataLayer.push({ event:'form_submit_success' });\r\n                window.location.href = json.redirect_url;\r\n                return;\r\n            }\r\n\r\n            \/\/ Log completo de la respuesta para diagn\u00f3stico.\r\n            console.warn('[CreditFina] Lead rechazado. HTTP', res.status, json);\r\n\r\n            var msg = extractErrorMessage(json) || (LANG === 'fr' ? 'Soumission refus\u00e9e.' : 'Submission failed.');\r\n\r\n            if(\/token|expir|consent|consentement\/i.test(msg)){\r\n                setToken('');\r\n                var ce2 = g('e-consent');\r\n                if(ce2) ce2.textContent = (LANG === 'fr' ? 'Le consentement a expir\u00e9, veuillez r\u00e9accepter.' : 'Consent expired, please accept again.');\r\n                return;\r\n            }\r\n\r\n            var msgBox = g('cf-api-error-message'); if(msgBox) msgBox.textContent = msg;\r\n            var errCard = g('cf-api-error'); if(errCard) errCard.style.display = 'block';\r\n            window.scrollTo({ top: g('cf-wrap').offsetTop - 20, behavior:'smooth' });\r\n            if(window.dataLayer) dataLayer.push({ event:'form_submit_error' });\r\n        } catch(err){\r\n            var msgBox2 = g('cf-api-error-message'); if(msgBox2) msgBox2.textContent = err && err.message ? err.message : (LANG === 'fr' ? 'Erreur r\u00e9seau.' : 'Network error.');\r\n            var errCard2 = g('cf-api-error'); if(errCard2) errCard2.style.display = 'block';\r\n            if(window.dataLayer) dataLayer.push({ event:'form_submit_error' });\r\n        } finally {\r\n            submissionInProgress = false; checkConsentState();\r\n        }\r\n    }\r\n\r\n    g('cf-next').addEventListener('click', function(){\r\n        if(!validateStep1()) return;\r\n        saveToStorage();\r\n        g('cf-step-1').style.display = 'none';\r\n        g('cf-step-2').style.display = 'block';\r\n        setStep(2);\r\n        window.scrollTo({ top: g('cf-wrap').offsetTop - 20, behavior:'smooth' });\r\n        if(window.dataLayer) dataLayer.push({ event:'step_1_complete' });\r\n        checkConsentState();\r\n    });\r\n\r\n    g('cf-back').addEventListener('click', function(){\r\n        g('cf-step-2').style.display = 'none';\r\n        g('cf-step-1').style.display = 'block';\r\n        setStep(1);\r\n        window.scrollTo({ top: g('cf-wrap').offsetTop - 20, behavior:'smooth' });\r\n    });\r\n\r\n    g('cf-submit').addEventListener('click', submitLead);\r\n    g('cf-retry').addEventListener('click', function(){ var e = g('cf-api-error'); if(e) e.style.display = 'none'; });\r\n\r\n    document.querySelectorAll('#cf-wrap input, #cf-wrap select').forEach(function(el){\r\n        el.addEventListener('focus', function(){\r\n            if(!formStarted){ formStarted = true; if(window.dataLayer) dataLayer.push({ event:'form_start' }); }\r\n        }, { once:true });\r\n    });\r\n\r\n    restoreFromStorage();\r\n    setToken(g('cf_kiipr_terms_token').value || '');\r\n    checkConsentState();\r\n\r\n    function initGoogleAutocomplete(){\r\n        var input = document.getElementById('cf_street');\r\n        if(!input) return;\r\n        var autocomplete = new google.maps.places.Autocomplete(input, {\r\n            types: ['address'],\r\n            componentRestrictions: { country: 'ca' }\r\n        });\r\nautocomplete.addListener('place_changed', function(){\r\n    var place = autocomplete.getPlace();\r\n    if(!place.address_components) return;\r\n    var street_number = '', route = '';\r\n    place.address_components.forEach(function(component){\r\n        var type = component.types[0];\r\n        if(type === 'street_number')               street_number = component.long_name;\r\n        if(type === 'route')                       route = component.long_name;\r\n        if(type === 'locality')                    document.getElementById('cf_city').value = component.long_name;\r\n        if(type === 'administrative_area_level_1') document.getElementById('cf_province').value = component.short_name;\r\n        if(type === 'postal_code')                 document.getElementById('cf_postal_code').value = component.long_name;\r\n    });\r\n    document.getElementById('cf_street').value = (street_number + ' ' + route).trim();\r\n\r\n    \/\/ Si Google solo trajo el FSA (3 caracteres), avisamos de inmediato\r\n    var postalField = document.getElementById('cf_postal_code');\r\n    var postalVal = postalField.value.trim();\r\n    var postalErr = g('e-postal_code');\r\n    var cleanVal = postalVal.replace(\/\\s\/g,'');\r\n    if(cleanVal.length > 0 && cleanVal.length < 6){\r\n        if(postalErr) postalErr.textContent = 'Postal code seems incomplete \u2014 please add the remaining 3 characters.';\r\n        postalField.classList.add('cf-invalid');\r\n    } else if(postalErr){\r\n        postalErr.textContent = '';\r\n        postalField.classList.remove('cf-invalid');\r\n    }\r\n\r\n    saveToStorage();\r\n});\r\n    }\r\n    window.initGoogleAutocomplete = initGoogleAutocomplete;\r\n\r\n})();\r\n<\/script>\r\n\r\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-3411","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/creditfina.ca\/en\/wp-json\/wp\/v2\/pages\/3411","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/creditfina.ca\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/creditfina.ca\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/creditfina.ca\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/creditfina.ca\/en\/wp-json\/wp\/v2\/comments?post=3411"}],"version-history":[{"count":1,"href":"https:\/\/creditfina.ca\/en\/wp-json\/wp\/v2\/pages\/3411\/revisions"}],"predecessor-version":[{"id":3412,"href":"https:\/\/creditfina.ca\/en\/wp-json\/wp\/v2\/pages\/3411\/revisions\/3412"}],"wp:attachment":[{"href":"https:\/\/creditfina.ca\/en\/wp-json\/wp\/v2\/media?parent=3411"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}