Create a store under a merchant
Operator equivalent of POST /stores, usable during provisioning. Creates the store (no
connector yet); its journey starts at the beginning. Pairing follows via POST /connectors.
/operator/merchants/{merchant_id}/storesAuthorizationBearer token (JWT) · headerrequiredJWT issued by the external IdP via the OAuth 2.0 authorization-code flow (Kinde in
production; a simulator in test). The client obtains it and sends it as a Bearer token on
every authenticated call. Sarvex's services verify it — issuer, audience, signature
(IdP JWKS), expiry — and read identity and tenant from its claims. Sarvex does not issue
or revoke these tokens. merchant_id/store_id are read from the verified claims (and the
merchant→store mapping), never from the URL. The operator scope is required for
/operator/*. Operators acting on a specific merchant pass the X-Operate-As header,
which is recorded in the audit log.
operatormerchant_idstringrequiredIdempotency-KeystringClient-generated key; replays return the original result.
application/jsonplatformplatformrequiredConnectable commerce backends: WooCommerce and Magento. The model and enum extend to further platform types without structural change.
woocommercemagentonamestringrequiredStore created.
store_idstringnamestringplatformplatformConnectable commerce backends: WooCommerce and Magento. The model and enum extend to further platform types without structural change.
woocommercemagentodomainstringThe store's brand domain where /.well-known/ucp is served.
connector_idstring | nulljourney_statejourney_stateconnectedsyncedreadyliveucp_stateobjectThe store's UCP activation state, projected onto the store record for
convenience. GET /stores/{store_id}/activation is the full view.
Distinct from journey_state, which remains the operator-facing concierge
funnel.
Show propertiesHide properties
objectdeclared_capabilitiesucp_capability[]UCP capabilities/extensions this store currently declares (negotiated subset of the catalogue).
open_task_countintegerOpen tasks owned by the merchant for this store (capped at 100). Drives the header store switcher's "N for you" badge.
blockedbooleanTrue if this store has an open task that blocks checkout. Takes priority over open_task_count in the store switcher badge.
Authenticated but not permitted (e.g. non-operator on an operator route).
errorobjectrequiredShow propertiesHide properties
codestringrequiredmessagestringrequireddetailsobject | null