# Location

> merchant.location is an object or null, never absent. Its two fields, the possible shapes, and why the location never repeats the country from your request.

`merchant.location` says where the recognised point of sale is, when Noryo knows it. **The key is always present** as soon as `merchant` is an object: either an object or `null`.

## The possible shapes

```json
"location": { "city": "PARIS", "postal_code": "75018" }
"location": { "city": "MULHOUSE" }
"location": null
```

| Field | Type | Presence |
|---|---|---|
| `city` | string | omitted when unknown |
| `postal_code` | string | omitted when unknown |

An object carries at least one of the two fields: Noryo never returns an empty object, which would suggest an address that is known but unreadable. With neither city nor postal code, `location` is `null`.

## Why `null` rather than absent

Absent and unknown look too alike for you to have to tell them apart. With a key that is always present, one test is enough:

```ts
const loc = body.merchant?.location ?? null;
if (loc === null) {
  // location unknown
} else {
  const city = loc.city ?? null;          // may be missing
  const postalCode = loc.postal_code ?? null;
}
```

## What `location` is not

- **It is not your `country`.** The request's `country` enters the economic identity, but it is never copied into `location`: presenting a client input as data resolved by Noryo would be misleading. Nor does it filter resolution. See [Reading the response](https://developer.noryo.app/en-GB/merchant/reading-the-response).
- **It is not a full address.** Only `city` and `postal_code` are public; no other field (coordinates, street, establishment identifier) leaves the API.
- **It is not a condition of `resolved`.** The resolution policy in force does not require a location: a `resolved` result can have `location: null`. A policy requiring one would return `partial` with the reason `location_required`.

## The values

Values are returned as Noryo's catalogue knows them, for example a city in upper case (`PARIS`). Apply your own formatting for display.

---

Canonical page: https://developer.noryo.app/en-GB/merchant/models/location
