Thank you for reaching out. Your message has been safely received, and our team will get back to you shortly.
Fill out the form below and your message will land directly in our priority inbox.
Prefer sending an email directly from your client? Feel free to copy our email address. We review all messages within 24–48 hours on business days.
The form automatically routes advertising to Partnerships, corrections and product suggestions to Editorial, reader assistance and scam reports to Support, privacy requests to Privacy, and website vulnerabilities to Security.
Never share your BVN, PINs, OTPs, full card numbers, or passwords. KudiCompass will never ask you for sensitive authentication credentials. If you are reporting a loan app harassment case, please redact any sensitive personal info from your screenshots.
(function(){ “use strict”; var copyBtn = document.getElementById(“kc-contact-copy-btn”); var emailLink = document.getElementById(“kc-contact-email-link”); if (copyBtn && emailLink) { copyBtn.addEventListener(“click”, function() { var email = emailLink.textContent.trim(); navigator.clipboard.writeText(email).then(function() { copyBtn.classList.add(“copied”); var icon = copyBtn.querySelector(“.material-symbols-outlined”); var text = copyBtn.querySelector(“.kc-contact-card__copy-text”); if (icon) icon.textContent = “check”; if (text) text.textContent = “Copied”; setTimeout(function() { copyBtn.classList.remove(“copied”); if (icon) icon.textContent = “content_copy”; if (text) text.textContent = “Copy”; }, 2000); }).catch(function(err) { console.error(“Could not copy text: “, err); }); }); } var form = document.getElementById(“kc-cform”); var submitBtn = document.getElementById(“kc-cform-submit-btn”); if (!form || !submitBtn) return; var fields = { name: { el: document.getElementById(“kc-cform-name”), err: document.getElementById(“kc-cform-name-error”) }, email: { el: document.getElementById(“kc-cform-email”), err: document.getElementById(“kc-cform-email-error”) }, subject: { el: document.getElementById(“kc-cform-subject”), err: document.getElementById(“kc-cform-subject-error”) }, message: { el: document.getElementById(“kc-cform-message”), err: document.getElementById(“kc-cform-message-error”) } }; form.addEventListener(“submit”, function(e) { e.preventDefault(); if (submitBtn.disabled) return; var hasError = false; Object.keys(fields).forEach(function(k) { fields[k].el.classList.remove(“has-error”); fields[k].err.textContent = “”; }); var nameVal = fields.name.el.value.trim(); if (!nameVal) { fields.name.el.classList.add(“has-error”); fields.name.err.textContent = “Name is required.”; hasError = true; } var emailVal = fields.email.el.value.trim(); if (!emailVal) { fields.email.el.classList.add(“has-error”); fields.email.err.textContent = “Email address is required.”; hasError = true; } else if (!/^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/.test(emailVal)) { fields.email.el.classList.add(“has-error”); fields.email.err.textContent = “Please enter a valid email address.”; hasError = true; } var subjectVal = fields.subject.el.value; if (!subjectVal) { fields.subject.el.classList.add(“has-error”); fields.subject.err.textContent = “Please select a reason for inquiry.”; hasError = true; } var messageVal = fields.message.el.value.trim(); if (!messageVal) { fields.message.el.classList.add(“has-error”); fields.message.err.textContent = “Message is required.”; hasError = true; } else if (messageVal.length < 10) { fields.message.el.classList.add("has-error"); fields.message.err.textContent = "Message must be at least 10 characters long."; hasError = true; } if (hasError) { var firstErr = Object.keys(fields).find(function(k) { return fields[k].el.classList.contains("has-error"); }); if (firstErr) fields[firstErr].el.focus(); return; } submitBtn.disabled = true; submitBtn.querySelector(".kc-cform__submit-spinner").classList.remove("kc-cform__submit-spinner–hidden"); submitBtn.querySelector(".kc-cform__submit-text").textContent = "Sending…"; submitBtn.querySelector(".kc-cform__submit-arrow").style.display = "none"; fetch("/wp-json/kudicompass/v1/token").then(function(res) { return res.json(); }).then(function(tokenData) { var nonce = tokenData.nonce; if (!nonce) throw new Error("Token acquisition failed"); return fetch("/wp-json/kudicompass/v1/contact", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ nonce: nonce, name: nameVal, email: emailVal, subject: subjectVal, message: messageVal }) }); }).then(function(res) { return res.json(); }).then(function(data) { if (data.success) { document.getElementById("kc-cform-form-panel").style.display = "none"; document.getElementById("kc-cform-success-panel").classList.remove("kc-contact-success–hidden"); document.getElementById("kc-cform-success-panel").scrollIntoView({ behavior: "smooth", block: "center" }); } else { throw new Error(data.message || "An error occurred."); } }).catch(function(err) { alert(err.message || "Could not send message. Please try again."); submitBtn.disabled = false; submitBtn.querySelector(".kc-cform__submit-spinner").classList.add("kc-cform__submit-spinner–hidden"); submitBtn.querySelector(".kc-cform__submit-text").textContent = "Send Message"; submitBtn.querySelector(".kc-cform__submit-arrow").style.display = ""; }); }); })();