verify
Translate:

Verify an RTI Wiki CPD Certificate

RTI Wiki certificates carry a unique 10-character serial (format: RTI-CPD-XXXXXXXXXX). Paste a serial below to verify the holder's name, course and completion date. Verification is public — no login required.

<html>

<label for="verify-serial" style="display:block;font-weight:700;font-size:13px;color:#0f172a;margin-bottom:6px">Certificate serial</label>
<input id="verify-serial" type="text" placeholder="RTI-CPD-ABCD1234EF" style="width:100%;padding:11px 14px;border:1px solid #cbd5e1;border-radius:7px;font-size:14px;font-family:monospace;letter-spacing:0.05em" autocomplete="off">
<button id="verify-go" type="button" style="margin-top:10px;padding:10px 20px;background:#0f172a;color:#fff;border:0;border-radius:7px;font-weight:700;font-size:13px;cursor:pointer">Verify</button>
<div id="verify-result" style="margin-top:16px"></div>

<script> (function(){

var esc = function(s){return String(s==null?'':s).replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');};
var result = document.getElementById('verify-result');
function run(){
  var v = (document.getElementById('verify-serial').value||'').trim().toUpperCase();
  if (!v){ result.innerHTML = ''; return; }
  if (!/^RTI-CPD-[A-F0-9]{10}$/.test(v)){
    result.innerHTML = '<div style="padding:12px 14px;background:#fef3c7;border:1px solid #fcd34d;color:#92400e;border-radius:7px;font-size:13px">Format invalid — a valid serial looks like <code>RTI-CPD-1234567ABC</code></div>';
    return;
  }
  result.innerHTML = '<div style="color:#64748b;font-size:13px">Looking up&hellip;</div>';
  fetch('/lib/exe/verify.php?serial='+encodeURIComponent(v),{credentials:'omit'})
    .then(function(r){ return r.json().then(function(j){return {status:r.status,body:j};}); })
    .then(function(res){
      if(res.status===404){
        result.innerHTML = '<div style="padding:12px 14px;background:#fee2e2;border:1px solid #fca5a5;color:#7f1d1d;border-radius:7px;font-size:13px"><strong>Not found.</strong> No certificate with that serial exists on RTI Wiki. Check the serial for typos.</div>';
        return;
      }
      if(!res.body||!res.body.ok){
        result.innerHTML = '<div style="padding:12px 14px;background:#fee2e2;border:1px solid #fca5a5;color:#7f1d1d;border-radius:7px;font-size:13px">'+esc(res.body&&res.body.error||'Unknown error')+'</div>';
        return;
      }
      var d = res.body;
      result.innerHTML =
        '<div style="padding:18px 20px;background:#d1fae5;border:2px solid #10b981;color:#065f46;border-radius:10px">'+
          '<div style="font-size:11px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase">&#10003; Verified</div>'+
          '<div style="font-family:Georgia,serif;font-size:22px;font-weight:700;color:#064e3b;margin:6px 0 3px">'+esc(d.name)+'</div>'+
          '<div style="font-size:13px">Completed the <strong>'+esc(d.courseName)+'</strong>'+
            (d.issuedAtFormatted?' on <strong>'+esc(d.issuedAtFormatted)+'</strong>':'')+'.</div>'+
          '<div style="font-size:12px;margin-top:10px;color:#047857">'+
            'Modules passed: <strong>'+d.passedModules+' / '+d.modulesTotal+'</strong>'+
            (d.finalBestPercent?' &middot; Final best: <strong>'+d.finalBestPercent+'%</strong>':'')+
            ' &middot; Provider: <strong>'+esc(d.provider)+'</strong>'+
          '</div>'+
          '<div style="font-size:11px;color:#065f46;font-family:monospace;margin-top:8px;letter-spacing:0.04em">Serial: '+esc(d.serial)+'</div>'+
        '</div>';
    })
    .catch(function(){ result.innerHTML = '<div style="color:#b91c1c;font-size:13px">Network error. Try again in a minute.</div>'; });
}
document.getElementById('verify-go').addEventListener('click', run);
document.getElementById('verify-serial').addEventListener('keydown', function(e){ if(e.key==='Enter') run(); });
var m = window.location.search.match(/[?&]s=([^&]+)/) || window.location.pathname.match(/\/verify\/(RTI-CPD-[A-F0-9]+)/i);
if (m){ document.getElementById('verify-serial').value = decodeURIComponent(m[1]); run(); }

})(); </script> </html>

How verification works

  • Every certificate issued by the RTI Wiki CPD LMS includes a unique 10-character serial in the format RTI-CPD-XXXXXXXXXX.
  • The serial is deterministic per user account — it does not change if you retake the course.
  • Verification resolves the serial to the holder's name, course code, date of issuance, and module-pass count via an unauthenticated public endpoint (/lib/exe/verify.php).
  • No login required — anyone can paste a serial to verify. The endpoint returns only the public-facing certificate metadata; it does not expose any other profile data.

Who uses this page

  • Employers and hiring managers verifying an RTI Wiki CPD credential on a candidate's LinkedIn or CV.
  • Training departments at public authorities accepting self-certified CPD hours.
  • The learner themselves — confirming that the certificate is indexed correctly.

Discussion

Enter your comment:
 
Share this article
Was this helpful? views
verify.txt · Last modified: by 127.0.0.1