# `postcode_not_found`: the postcode is well formed but is not in the directory

The postcode matches the country's pattern, and the whole postcode directory for that country is installed, and this code is not in it.

- Appears in: `reason`
- Billing: Free. An address that cannot stand as written never costs a credit.

Only a country whose complete directory Spaw carries can say a postcode does not exist; everywhere else an unknown code is simply not checked, and `postcode_status` answers null. The directory is named in `sources` with the version that answered.

A code that was withdrawn is a different answer: a terminated postcode still exists in the directory, so the address stays valid and carries `postcode_status: "terminated"` with the `terminated_postcode` risk signal. `postcode_not_found` means the code was never issued, which is almost always a typo — a transposed pair, a letter O for a zero.

**What to do.** Treat it as a typo and ask for the postcode again. If you believe the code is current, the directory version in `sources` says which copy answered; a code issued since that copy was published is not in it yet.

```json
{
    "valid": false,
    "reason": "postcode_not_found",
    "country": "GB",
    "postal_code": "NW1 6XF",
    "postal_code_valid": true,
    "postcode_status": null,
    "risk_score": null
}
```

Reference: https://spaw.co/docs/reasons/postcode_not_found
