> ## Documentation Index
> Fetch the complete documentation index at: https://docs.depict.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Centra

> Connect a Centra store to Depict: the API token, the required permissions, and how sync works.

Depict reads your catalog directly from the Centra GraphQL API. You provide
your Centra API base URL and a GraphQL access token; Depict imports the full
catalog and then keeps it updated from Centra's event stream.

## Limits and behavior

* Every permission in the table below is mandatory. The integration cannot run
  with a subset.
* The token must have an integration name set. Without one the catalog imports
  once, but updates never arrive.
* Changes propagate through Centra's event queue, which Depict polls roughly
  every 5 seconds. A daily reconciliation run compares Depict's copy against
  Centra to catch drift.
* The initial full import is triggered by Depict, not by you. There is no
  self-service backfill or re-import; to re-run one, contact Depict.
* There is no alert if the token expires or is revoked. The only symptom is a
  catalog that stops updating.
* Depict reads catalog data only. No customer, order, or checkout data leaves
  Centra through this integration.

## Setup steps

1. Create a GraphQL access token for Depict in your Centra admin, following
   the [Centra documentation](https://docs.centra.com/api-references/graphql-integration-api/authorization#graphql-access-token).
2. Grant the token every permission in the table below.
3. Set an integration name on the token.
4. Send your Centra API base URL and the access token to your Depict contact.
5. Depict triggers the initial import.

<Warning>
  **A token without an integration name silently stops syncing.** Centra only
  delivers events to tokens that have an integration name set. With every
  permission granted but no integration name, the initial import succeeds and
  the catalog then goes stale without any error. Set the integration name when
  you create the token.
</Warning>

## Required permissions

All of the following are mandatory:

| Permission |
| - |
| `AllocationRule:read` |
| `Attribute:read` |
| `Brand:read` |
| `Bundle:read` |
| `Campaign:read` |
| `Category.attributes:read` |
| `Category:read` |
| `Collection:read` |
| `Country:read` |
| `Display.attributes:read` |
| `Display:read` |
| `Event:read` |
| `Event:write` |
| `Language:read` |
| `Market:read` |
| `Price:read` |
| `Pricelist:read` |
| `Product.attributes:read` |
| `Product:read` |
| `ProductMedia.attributes:read` |
| `ProductMedia:read` |
| `ProductSize.stock:read` |
| `ProductSize:read` |
| `ProductVariant.attributes:read` |
| `ProductVariant.stock:read` |
| `ProductVariant:read` |
| `Store:read` |
| `Translation:read` |
| `Warehouse:read` |

`Event:write` is required because Depict acknowledges consumed events back to
Centra.

## How sync works

* **Initial import.** Depict downloads the full catalog when your
  configuration is in place. Depict staff trigger this at onboarding and can
  re-run it on demand; merchants cannot trigger it themselves.
* **Ongoing updates.** Depict polls Centra's event queue roughly every
  5 seconds, so a price, stock, or content change typically reaches Depict
  within seconds and is live in search within minutes. Incremental updates
  cover these Centra object types:

| Centra object type |
| - |
| `Market` |
| `Pricelist` |
| `MappedAttribute` |
| `Category` |
| `Product` |
| `ProductVariant` |
| `Language` |
| `Display` |
| `ProductSize` |

* **Reconciliation.** Once a day Depict compares its copy of the catalog
  against Centra to detect drift. If you suspect your catalog is out of date,
  contact Depict, who can run the comparison on demand and re-trigger a full
  import.

## What Depict reads

The import fetches your markets (with their warehouses), pricelists, mapped
attributes, categories, languages, and the active products' displays with
media, prices, and per-warehouse stock. Attributes come through Centra's
mapped attributes; translations come per language.

Centra's product hierarchy maps onto Depict's three-level model like this:

| Centra entity | Depict entity |
| - | - |
| Product | Product (level 1) |
| ProductVariant | Product group (level 2) |
| ProductSize | Variant (level 3) — the sellable unit that carries stock |

Note the offset: a "variant" in Depict is your Centra size, and your Centra
variant is Depict's product group.

## Markets and languages

Markets, pricelists, and languages are imported in full, and each language
gets its own search index.

<Warning>
  **Removing a language in Centra deletes that locale's search index** and
  everything in it. The index is rebuilt automatically if the language is
  re-added, but treat language removal as a destructive action.
</Warning>

## If the token stops working

A revoked or expired token does not trigger any merchant-facing alert; the
catalog simply stops updating. To protect yourself:

* Track the token's expiry date on your side.
* After creating or changing the token, tell your Depict contact. Depict can
  audit the token's permissions and integration name against the requirements
  on this page.

## Data scope

The permission list above contains no customer, order, or checkout scope:
Depict does not read customer or order data from Centra. Behavioural data
(purchases, clicks, search queries) is collected by Depict's on-site tracking
on your storefront — a separate processing activity, not data read from
Centra.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.