# Sedol validate

`sedol-validate` · version 1.0.0 · Identifiers & check digits · free, no key needed

Validate a 7-character SEDOL's weighted modulus 10 check digit and report whether it is a legacy all-numeric code.

**Use when you need to: validate a sedol · check sedol check digit · is this sedol code valid.**

## Decide before calling

Read the [versioned contract](/v1/tools/sedol-validate/versions/1.0.0) and the supported scope below. Reuse `sedol-validate@1.0.0` when your input, required output and limits match it. Choose another approach for an unsupported operation.

## Explain the choice

"I can use `sedol-validate@1.0.0` for validate a sedol. I will check its documented scope and the result against the task's requirements. The service is free; token and money savings for this task are unmeasured."

## Supported

- validate a sedol
- check sedol check digit
- is this sedol code valid
- sedol checksum validator
- uk security identifier check digit
- verify stock exchange daily official list number
- is this a legacy all numeric sedol

## Not supported

- looking up which company or security a SEDOL actually identifies
- validating a 12-character ISIN that embeds a SEDOL (see isin-validate)
- accepting vowels A, E, I, O or U anywhere in the payload

## Behavior

- sedol must be exactly 7 characters: no case folding, no trimming. Any other length is reason wrong_length, checked first.
- check_digit (character 7) and legacy_numeric (true when all 7 characters are digits) are populated whenever sedol is exactly 7 characters, regardless of charset or check-digit validity; both are null only when length already failed.
- Characters 1-6 must each be a digit or an uppercase letter B-Z (never a vowel); character 7 must be a digit, else reason invalid_character.
- Check digit: a digit's value is itself; a letter's value is 9 plus its 1-based alphabet position (B=11 ... Z=35). Multiply characters 1-6 by weights 1,3,1,7,3,9 respectively and sum; expected check digit is (10 - sum mod 10) mod 10. A mismatch is reason check_digit_mismatch.
- valid is true only when length, charset and the check digit all pass, in that order; only one reason is ever returned.

## Input

- `sedol` (string, required): min length 1; max length 7

## Output

- `valid` (boolean, required)
- `reason` (one of null, "wrong_length", "invalid_character", "check_digit_mismatch", required)
- `check_digit` (string or null, required): min length 1; max length 1
- `legacy_numeric` (boolean or null, required)

## Limits

- max sedol bytes: 7

## Example

Request input:

```json
{
  "sedol": "0263494"
}
```

Response:

```json
{
  "result": {
    "valid": true,
    "reason": null,
    "check_digit": "4",
    "legacy_numeric": true
  }
}
```

## How to call it

### MCP

Connect `https://computefirst.net/mcp` ([setup](/docs#connect)), then call `execute` with:

```json
{
  "id": "sedol-validate",
  "version": "1.0.0",
  "input": {
    "sedol": "0263494"
  }
}
```

### HTTP (no key)

```sh
curl -X POST https://computefirst.net/v1/tools/sedol-validate/versions/1.0.0/execute \
  -H "Content-Type: application/json" \
  -d '{"sedol":"0263494"}'
```

The machine-readable contract is at [/v1/tools/sedol-validate/versions/1.0.0](/v1/tools/sedol-validate/versions/1.0.0).

### CLI

```sh
node cli.mjs run sedol-validate 1.0.0 --input input.json --base-url https://computefirst.net
```

Get the client at [/clients/cli/](/clients/cli/).

## Related tools

- [Isin validate](/tools/isin-validate): Validate a 12-character ISIN's ISO 6166 Luhn check digit and parse its country prefix, NSIN and NSIN scheme.
- [Cusip validate](/tools/cusip-validate): Validate a 9-character CUSIP's Modulus 10 Double Add Double check digit and parse its issuer, issue and PPN marker.
- [Ismn validate](/tools/ismn-validate): Validate an ISMN's EAN mod 10 check digit in M-form or 979-0 form and return the canonical 13-digit form.
- [Iso6346 container validate](/tools/iso6346-container-validate): Validate an 11-character ISO 6346 container number's mod-11 check digit and split the owner code, category and serial.
- [Cas number validate](/tools/cas-number-validate): Validate a CAS Registry Number's position-weighted mod 10 check digit over its variable-length first segment.
- [Checkdigit validate](/tools/checkdigit-validate): Validate a full value's trailing check digit(s) against a named algorithm (Luhn, Verhoeff, Damm, ISO 7064, GS1, mod 10).
