# Dimensions

`GET` `POST` _(Table: Dimension)_

```
eOne/core/v1.0/dimensions
```

The dimension *definitions* in this company (DEPARTMENT, AREA, CUSTOMERGROUP, …). Their codes are what appear as `dimensionCode` on the writable [Dimension Values](https://eonesolutions.github.io/eone-bc-integration/core-dimensionValues.md) feed, drive the `shortcutDimension1Code`–`8Code` columns on documents, and name the extra dimensions on [Dimension Set Lines](https://eonesolutions.github.io/eone-bc-integration/core-dimensionSetLines.md). Creatable: POST a `code` (and optionally a `displayName`), then create its values.

> **Note:** Use this to discover which dimensions exist before reading or writing their values, or before mapping shortcut-dimension columns. See [Dimensions](https://eonesolutions.github.io/eone-bc-integration/dimensions.md) for how those columns round-trip. No `integrationId`: a dimension is addressed by its `code` (or by `id`).

## Creating a dimension

A fresh Business Central has no REGION, TARIFF or FUND dimension — so a source system that buckets by them can create the buckets it reports into, instead of waiting for an administrator:

```http
POST /dimensions
{ "code": "TARIFF", "displayName": "Tariff" }
```

`displayName` defaults to the code when left out. Create the dimension's values next, on [Dimension Values](https://eonesolutions.github.io/eone-bc-integration/core-dimensionValues.md), and it is ready to use — on the shortcut columns if an administrator assigns it a slot in General Ledger Setup, or on any line's [dimensionSetLines](https://eonesolutions.github.io/eone-bc-integration/core-dimensionSetLines.md) without one.

Updates and deletes are **not** allowed here: renaming a dimension rewrites history across every ledger, so that stays an administrator's decision in the client.

## Dimensions fields

_API column → BC field._

**Legend**

- _(req)_ required on create
- _(res)_ resolver
- _(cur)_ currency-translated
- _(ro)_ read-only
- _(ext)_ added to this endpoint by another extension (BC field name shown; its API column name is not known here)

| API | BC field | Notes |
| --- | --- | --- |
| `id` | SystemId | _(ro)_ |
| `bcCompanyId` | bcCompanyId | The company this row belongs to - the same GUID that appears in the request URL. Present on every endpoint so a store pooling several companies can keep them apart without relying on which URL it called. _(ro)_ |
| `bcCompanyName` | bcCompanyName | The name of the company this row belongs to. _(ro)_ |
| `code` | Code | Dimension code; appears as dimensionCode on Dimension Values and dimensionSetLines. Required on POST. _(req)_ |
| `displayName` | Name | Dimension name; defaults to the code when left blank on POST. |
| `codeCaption` | Code Caption | UI caption for the dimension code column. |
| `filterCaption` | Filter Caption | UI caption for the dimension filter. |
| `description` | Description |  |
| `blocked` | Blocked | A blocked dimension cannot be posted. |
| `consolidationCode` | Consolidation Code |  |
| `lastModifiedDateTime` | SystemModifiedAt | _(ro)_ |
