DEV Community

ImmigrationGPT
ImmigrationGPT

Posted on

How to Check if a UK Employer Holds a Sponsor Licence: A Technical Reference for HR Systems and Compliance Developers

If you're building HR platforms, compliance tools, or pre-hire screening workflows, the ability to verify whether a UK employer holds a valid sponsor licence is a hard requirement — not a nice-to-have. A candidate accepting an offer from a company that can't legally sponsor them faces visa refusal, lost income, and significant disruption. An employer that hires without checking exposes itself to civil penalties of up to £60,000 per illegal worker under the 2024 enforcement uplift.

This article breaks down how the UK sponsor licence register works, how to query it programmatically, and what your system should do with the results.


What is the Sponsor Licence Register?

The UK Home Office maintains a public register of all organisations licensed to sponsor overseas workers under the points-based immigration system. The register covers two main licence categories:

  • Worker licences — for skilled workers, intra-company transfers, and other employment routes
  • Temporary Worker licences — for seasonal workers, religious workers, charity workers, and similar roles

Each entry in the register includes:

  • Organisation name
  • Town/city
  • County
  • Type of licence (Worker, Temporary Worker, or both)
  • Current rating (A-rated or B-rated)

The register is publicly available and is updated, in theory, on a weekly basis — though updates can lag by a few days, particularly around public holidays.


Where to Find the Register

The canonical source is the UK Visas and Immigration (UKVI) section of GOV.UK:

https://www.gov.uk/government/publications/register-of-licensed-sponsors-workers

The register is published as a downloadable CSV file. As of 2026, the file contains approximately 125,000+ active sponsor entries. You should treat any third-party mirror as potentially stale — always pull from GOV.UK directly.


Downloading and Parsing the Register

The GOV.UK page links to a CSV that can be downloaded programmatically. Here's a minimal Python pattern:

import requests
import csv
import io

REGISTER_URL = "https://assets.publishing.service.gov.uk/..."  # actual URL from GOV.UK page
# Note: the URL changes with each weekly update — scrape the GOV.UK page to get the current link

response = requests.get(REGISTER_URL)
content = response.content.decode("utf-8")
reader = csv.DictReader(io.StringIO(content))

sponsors = [row for row in reader]
Enter fullscreen mode Exit fullscreen mode

The CSV columns are typically:

  • Organisation Name
  • Town/City
  • County
  • Type & Rating
  • Route

The Type & Rating field encodes both the licence type and current rating. A-rated sponsors are in good standing; B-rated sponsors are on an action plan and must be monitored more closely — they can still sponsor but their ability to assign new Certificates of Sponsorship (CoS) may be restricted.


Querying the Register: What to Watch For

Name matching is non-trivial. Company names in the register are often not identical to the trading name on a job advert. "ACME Ltd" might appear as "ACME Limited" or "Acme Limited" or just "ACME". A fuzzy match (e.g., using rapidfuzz or a token sort ratio) is usually more reliable than an exact string match.

from rapidfuzz import process, fuzz

def find_sponsor(company_name: str, sponsor_list: list[str], threshold: int = 85):
    match, score, _ = process.extractOne(
        company_name,
        sponsor_list,
        scorer=fuzz.token_sort_ratio
    )
    if score >= threshold:
        return match
    return None
Enter fullscreen mode Exit fullscreen mode

Location matters for disambiguation. If your system is matching by name alone, you'll get false positives for common employer names. Include town or county to reduce ambiguity. "Greenfield Care Ltd" in Leeds is a different entity from one in Bristol.

The register reflects current status, not historical. If a company loses its licence mid-sponsorship, their existing sponsored workers remain on valid visas until expiry — but they cannot be assigned new CoS. A point-in-time snapshot won't tell you about revocations that happened between downloads.

Revoked licences are a separate file. UKVI also publishes a register of organisations whose licences have been revoked or surrendered. Checking both is important for pre-hire due diligence.


Real-Time vs. Batch Checking

For high-volume HR platforms, two patterns make sense:

1. Scheduled batch sync:
Download the register nightly, ingest into MongoDB or PostgreSQL, and expose a fast internal search endpoint. ImmigrationGPT's sponsor search (https://immigrationgpt.co.uk) uses MongoDB full-text search against this dataset to power instant employer lookups.

2. On-demand GOV.UK fetch:
For low-volume or ad-hoc checks, hit the GOV.UK register download link at query time. Slower, but always fresh. Add a TTL cache of 24 hours to avoid hammering the endpoint.


What to Build Into Your Compliance Workflow

If you're building a pre-hire screening tool or compliance dashboard, a sponsor licence check should trigger:

  1. At offer stage — before extending a formal offer to a candidate who requires sponsorship
  2. At onboarding — confirm status hasn't changed between offer and start date
  3. Periodic re-check — for existing sponsored employees, set a reminder to re-verify every 90 days or on any material change to the company (merger, acquisition, restructure)

Your system should surface:

  • Whether the company is currently A-rated, B-rated, or absent from the register
  • The route(s) they're licensed for (Worker, Temporary Worker)
  • A timestamp of when the check was performed (for audit trail purposes)
  • A flag if the company appears on the revoked/surrendered list

A Note on Coverage Gaps

The register only includes organisations that have applied for and been granted a licence. Many large employers are legitimate sponsors but operate under different legal entity names across subsidiaries. A parent company holding the licence may sponsor workers across multiple trading entities — this is permitted but invisible in the register.

Always supplement a register check with a direct inquiry to the employer's HR team for roles where the hire is time-sensitive. The register is a necessary first step, not a complete verification.


Summary

Step Method
Download register GOV.UK CSV (weekly update)
Parse Python csv.DictReader, UTF-8
Match companies Fuzzy string matching (token sort ratio)
Storage MongoDB or PostgreSQL with indexed fields
Revocation check Separate UKVI revoked register file
Refresh cadence Nightly batch or 24-hour TTL cache

For HR teams and developers building immigration compliance into their platforms, automating this check eliminates a manual step that is easy to forget and expensive to get wrong.

For a live, searchable version of the UK sponsor register with 125,000+ active sponsors, see https://immigrationgpt.co.uk.


This article is for informational purposes only and does not constitute legal advice. Immigration rules change frequently. Always consult a qualified immigration adviser or solicitor for advice specific to your circumstances.

Top comments (0)