devices

WARRANTY CHECKER

Check laptop warranty status for any brand. You'll be redirected to the official manufacturer page.

Heads up: This tool does not check warranty directly. It redirects you to the manufacturer's official warranty page where you enter or verify your serial number. toolpad.cc does not store, transmit, or log your serial number.
Select a brand to see the expected format.
All supported brands
Where to find your serial number
Developer Reference

Core Algorithm & Standalone Script

Standalone, zero-dependency JavaScript implementation powering this tool. Free to inspect, copy, and build upon.

const BRANDS = [
      {
        id: 'dell',
        name: 'Dell',
        format: '7-char service tag (e.g. ABC1234)',
        pattern: /^[A-Z0-9]{5,8}$/i,
        url: (s) => `https://www.dell.com/support/home/?servicetag=${encodeURIComponent(s)}`,
        prefill: true,
        note: 'Serial pre-filled',
      },
      {
        id: 'hp',
        name: 'HP',
        format: '10-char serial (e.g. CND1234567)',
        pattern: /^[A-Z0-9]{8,14}$/i,
        url: (s) => `https://support.hp.com/us-en/check-warranty?serialnum=${encodeURIComponent(s)}`,
        prefill: true,
        note: 'Serial pre-filled',
      },
      {
        id: 'lenovo',
        name: 'Lenovo',
        format: '8–12 char serial (e.g. PF1ABCDE)',
        pattern: /^[A-Z0-9]{6,12}$/i,
        url: (s) => `https://support.lenovo.com/us/en/warranty-lookup#${encodeURIComponent(s)}`,
        prefill: true,
        note: 'Serial pre-filled',
      },
      {
        id: 'apple',
        name: 'Apple',
        format: '10–12 char serial (e.g. C02X1AB2ABCD)',
        pattern: /^[A-Z0-9]{10,12}$/i,
        url: (s) => `https://checkcoverage.apple.com/us/en?sn=${encodeURIComponent(s)}`,
        prefill: true,
        note: 'Serial pre-filled',
      },
      {
        id: 'asus',
        name: 'Asus',
        format: 'Serial from sticker or BIOS',
        pattern: /^[A-Z0-9]{6,20}$/i,
        url: () => 'https://am-rma.asus.com/us/info/warranty',
        prefill: false,
        note: 'Serial copied',
      },
      {
        id: 'acer',
        name: 'Acer',
        format: 'SNID or S/N from bottom sticker',
        pattern: /^[A-Z0-9]{8,15}$/i,
        url: () => 'https://service.acer.com/warranty/en/US',
        prefill: false,
        note: 'Serial copied',
      },
      {
        id: 'msi',
        name: 'MSI',
        format: 'Serial from sticker or BIOS',
        pattern: /^[A-Z0-9]{8,20}$/i,
        url: () => 'https://account.msi.com/en/services/warranty-book',
        prefill: false,
        note: 'Serial copied',
      },
      {
        id: 'samsung',
        name: 'Samsung',
        format: '11–15 char serial number',
        pattern: /^[A-Z0-9]{10,16}$/i,
        url: () => 'https://www.samsung.com/us/support/warranty/',
        prefill: false,
        note: 'Serial copied',
      },
      {
        id: 'microsoft',
        name: 'Microsoft Surface',
        format: 'Serial from Settings → About or box',
        pattern: /^[A-Z0-9]{10,20}$/i,
        url: () => 'https://mybusinessservice.surface.com/en-US/CheckWarranty/CheckWarranty',
        prefill: false,
        note: 'Serial copied',
      },
      {
        id: 'razer',
        name: 'Razer',
        format: 'Serial from bottom sticker',
        pattern: /^[A-Z0-9]{6,20}$/i,
        url: () => 'https://www.razer.com/razercare/warranty',
        prefill: false,
        note: 'Serial copied',
      },
      {
        id: 'toshiba',
        name: 'Toshiba / Dynabook',
        format: 'Serial from sticker or BIOS',
        pattern: /^[A-Z0-9]{6,20}$/i,
        url: () => 'https://support.dynabook.com/warranty',
        prefill: false,
        note: 'Serial copied',
      },
      {
        id: 'lg',
        name: 'LG',
        format: 'Serial from sticker or BIOS',
        pattern: /^[A-Z0-9]{6,20}$/i,
        url: () => 'https://www.lg.com/us/support/warranty-information',
        prefill: false,
        note: 'Serial copied',
      },
      {
        id: 'huawei',
        name: 'Huawei',
        format: 'Serial from sticker or device info',
        pattern: /^[A-Z0-9]{8,20}$/i,
        url: () => 'https://consumer.huawei.com/en/support/warranty-query/',
        prefill: false,
        note: 'Serial copied',
      },
      {
        id: 'honor',
        name: 'Honor',
        format: 'Serial from sticker or device info',
        pattern: /^[A-Z0-9]{8,20}$/i,
        url: () => 'https://www.honor.com/mea/support/warranty-query/',
        prefill: false,
        note: 'Serial copied',
      },
      {
        id: 'gigabyte',
        name: 'Gigabyte / Aorus',
        format: 'Serial from sticker or BIOS',
        pattern: /^[A-Z0-9]{6,20}$/i,
        url: () => 'https://www.gigabyte.com/Support/Consumer/Warranty/Check',
        prefill: false,
        note: 'Serial copied',
      },
    ];

    // Auto-detect brand from serial pattern heuristics
    const AUTODETECT = [
      { id: 'dell',   test: (s) => /^[A-Z0-9]{7}$/i.test(s) && !/^[0-9]+$/.test(s) },
      { id: 'apple',  test: (s) => /^[A-Z]{1}[A-Z0-9]{1}[A-Z0-9]{8,10}$/i.test(s) && s.length >= 10 && s.length <= 12 },
      { id: 'hp',     test: (s) => /^(CN|MX|SG|TW)[A-Z0-9]{8}/i.test(s) },
      { id: 'lenovo', test: (s) => /^(PF|MP|R9|LR|PC|YM)[A-Z0-9]{6}/i.test(s) },
    ];

    let selectedBrand = null;

    // Populate select and brand grid
    const sel = document.getElementById('brand');
    const grid = document.getElementById('brandGrid');

    BRANDS.forEach(b => {
      const opt = document.createElement('option');
      opt.value = b.id;
      opt.textContent = b.name;
      sel.appendChild(opt);

      const a = document.createElement('div');
      a.className = 'brand-link';
      a.setAttribute('role', 'button');
      a.setAttribute('tabindex', '0');
      a.innerHTML = `<span class="bl-name">${b.name}</span><span class="bl-note">${b.prefill ? '✓ serial pre-filled' : 'opens warranty page'}</span>`;
      a.addEventListener('click', () => {
        sel.value = b.id;
        onBrandChange();
        document.getElementById('serial').focus();
        window.scrollTo({ top: 0, behavior: 'smooth' });
      });
      a.addEventListener('keydown', e => { if (e.key === 'Enter' || e.key === ' ') a.click(); });
      grid.appendChild(a);
    });

    function getBrand(id) {
      return BRANDS.find(b => b.id === id);
    }

    function onBrandChange() {
      const id = sel.value;
      selectedBrand = getBrand(id);
      updateHint();
      updateBtn();
    }

    function onSerialInput() {
      const s = document.getElementById('serial').value.trim();
      // Try auto-detect if no brand selected
      if (!sel.value && s.length >= 6) {
        for (const rule of AUTODETECT) {
          if (rule.test(s)) {
            sel.value = rule.id;
            selectedBrand = getBrand(rule.id);
            showToast(`Brand auto-detected: ${selectedBrand.name}`);
            break;
          }
        }
      }
      updateHint();
      updateBtn();
    }

    function updateHint() {
      const hint = document.getElementById('serialHint');
      const input = document.getElementById('serial');
      const s = input.value.trim();

      if (!selectedBrand) {
        hint.textContent = 'Select a brand to see the expected format.';
        hint.className = 'serial-hint';
        input.classList.remove('detected');
        return;
      }

      const badge = selectedBrand.prefill
        ? `<span class="prefill-badge">pre-fills serial</span>`
        : `<span class="copy-badge">copies to clipboard</span>`;

      if (!s) {
        hint.innerHTML = `Format: ${selectedBrand.format} ${badge}`;
        hint.className = 'serial-hint';
        input.classList.remove('detected');
        return;
      }

      if (selectedBrand.pattern && selectedBrand.pattern.test(s)) {
        hint.innerHTML = `Looks good! ${badge}`;
        hint.className = 'serial-hint ok';
        input.classList.add('detected');
      } else {
        hint.innerHTML = `Format: ${selectedBrand.format} ${badge}`;
        hint.className = 'serial-hint';
        input.classList.remove('detected');
      }
    }

    function updateBtn() {
      const btn = document.getElementById('goBtn');
      const s = document.getElementById('serial').value.trim();
      btn.disabled = !(selectedBrand && s.length >= 4);
      if (selectedBrand && s.length >= 4) {
        btn.textContent = selectedBrand.prefill
          ? `Check ${selectedBrand.name} Warranty →`
          : `Open ${selectedBrand.name} Warranty Page →`;
      } else {
        btn.textContent = 'Go to Warranty Page →';
      }
    }

    function goToWarranty() {
      if (!selectedBrand) return;
      const s = document.getElementById('serial').value.trim();
      if (!s) return;

      const url = selectedBrand.url(s);

      if (!selectedBrand.prefill) {
        // Copy serial to clipboard for paste on the manufacturer page
        if (navigator.clipboard) {
          navigator.clipboard.writeText(s).then(() => {
            showToast('Serial copied to clipboard — paste it on the page that opens');
          }).catch(() => {
            showToast('Opening warranty page…');
          });
        } else {
          showToast('Opening warranty page — enter your serial there');
        }
      } else {
        showToast('Opening Dell support with serial pre-filled…');
      }

      window.open(url, '_blank', 'noopener,noreferrer');
    }

    let toastTimer = null;
    function showToast(msg) {
      const t = document.getElementById('toast');
      t.textContent = msg;
      t.classList.add('show');
      if (toastTimer) clearTimeout(toastTimer);
      toastTimer = setTimeout(() => t.classList.remove('show'), 3000);
    }

    // Allow Enter key to submit
    document.getElementById('serial').addEventListener('keydown', e => {
      if (e.key === 'Enter' && !document.getElementById('goBtn').disabled) {
        goToWarranty();
      }
    });