> This page is for API Reference.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://fiftytwo-demo.ferndocs.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://fiftytwo-demo.ferndocs.com/_mcp/server.

# About the Master Data API

Master Data is how an external system writes 52ViKING's configuration:
what can be sold, how it is classified, what it costs, and which promotions
apply to it.

## Entities

#### [Articles](/help/store-management/articles)

Sellable products.

#### [Article groups](/help/store-management/articles-groups)

Classification hierarchy.

#### [Article lists](/help/store-management/articles-lists)

Arbitrary named sets.

#### [Article families](/help/store-management/discount-families)

Promotion groupings.

#### [Campaigns](/help/store-management/campaigns)

Time-boxed promotions.

#### [Discount groups](/help/store-management/discount-groups)

Discount rules.

#### [Coupons](/help/concepts/discount-types)

Redeemable tokens.

#### [Customers](/help/store-management/customers)

Customer records.

#### [Departments](/help/store-management/departments)

Store divisions.

#### [Operators](/help/store-management/operators)

Till sign-ins.

#### [Salespersons](/help/store-management/salespersons)

Sale attribution.

#### [View groups](/help/store-management/viewgroups)

PLU button layouts.

Plus currencies, sales groups, store groups, user categories, user profiles, and
images.

## Three things to know before you write

#### All writes are asynchronous

Every `POST` returns `202 Accepted` with a reference in the `Location`
header. Schema validation is synchronous, so bad payloads fail immediately with
`400`. Distribution to stores is not. Poll the location for the result.

#### Chain scope and store scope are different operations

`POST /…/chain/{chain}` hands the data to the enterprise controller, which
distributes identical master data to every store (article data excepted).
`POST /…/chain/{chain}/store/{store}` writes store-specific data handled by
that store directly. If you are unsure which you need, ask your FiftyTwo
consultant before loading production data.

#### Batch to 2 MB, and mind the rate limit

Bodies over 2 MB return `413`. The rate limit is roughly 3 requests per
second over a 10-second window, returning `429` when exceeded. FiftyTwo's
guidance is to fill the 2 MB allowance rather than send many small updates.

> **Note**
>
> Schema field descriptions sometimes reference `Bpar.fieldname`. **Bpar** is the
> store configuration utility FiftyTwo consultants manage together with your
> organisation, so those fields are configured outside this API.

> **Warning**
>
> Duplicate `object_id` values within a single POST body are resolved by the
> API's own rules. Deduplicate before sending, so you control which record wins.

## Next

#### [Sync a product catalog](/docs/guides/sync-catalog)

The full walkthrough, including load order.

#### [Asynchronous writes](/api/master-data/async)

The 202-and-poll pattern in detail.