---
title: "Create a new store"
method: POST
path: "/stores"
tags: ["Store"]
---

# Create a new store

`POST /stores`

Creates a new store for the current user.
Requires the `stores.create` permission.

## Request body

- StoreForm — Form for updating or creating a store. This version is returned for authenticated API endpoints, any public endpoint will use a PublicStore or PublicStoreReference
  - `url` string, required — The subdomain part of the store URL, just one word and will qualify to x.komerza.com
  - `name` string, required — The name of the store as shown on the users store page
  - `description` string, required — The store description, shown on the store home page underneath the title
  - `prependProductNameToReceipt` boolean, required — Whether the name of the product should be prepended to the start of delivery receipts to customers
  - `currencyCode` string, required — The ISO-compliant fiat currency code that is preferred for the store, defaults to USD
  - `isAutomaticReviewsEnabled` boolean, required — Whether automatic review leaving is enabled

## Response `200`

The object was successfully created.

- PublicStoreReferenceResponse — Represents a default generic response for API endpoints.
  - `success` boolean, required — Indicates whether the operation or response was successful.
  - `message` string, nullable — A descriptive message providing additional context or information about the response.
  - `code` string, nullable — The error code (if there was an error) to use when referencing the error
  - `data` PublicStoreReference — A reference to a store which is owned by a merchant that can be used as a front for selling products to customers
    - `id` string, uuid, required — The unique identifier of the entity
    - `dateCreated` string, date-time, required — The date the entity was created
    - `name` string, required — The name of the store
    - `description` string, required — The description of the store, shown on their about page and on the home of their store page
    - `url` string, required — The subdomain for the store, ONLY the subdomain, not the fully qualified domain
    - `customDomain` string, nullable — The custom domain set for the store, will be null if not set
    - `currencyCode` string, required — The stores preferred currency
    - `prependProductNameToReceipt` boolean, required — Whether the name of the product should be prepended to the start of delivery receipts to customers
    - `isAutomaticReviewsEnabled` boolean, required — Whether automatic review leaving is enabled
    - `rating` number, double, required — The combined average rating for all their products
    - `scopes` string[], nullable — The permission scopes that the current user can use for the store, only returned on the /user endpoint for stores visible due to team permissions, will also be null on /user if the store is owned by the user and therefore has every (permissions)
    - `domain` string, required — The domain the store is associated with
    - `isCustomerBalanceEnabled` boolean, required — Whether the customer balance system is enabled on the stores
    - `maintenanceReason` string, nullable — The reason the store is in maintenance, if this is null then the store is not in maintenance mode
    - `termsOfServiceUrl` string, nullable — The URL to the store's terms of service page
    - `refundPolicyUrl` string, nullable — The URL to the store's refund policy page
    - `privacyPolicyUrl` string, nullable — The URL to the store's privacy policy page
    - `affiliateOptions` AffiliateOptionsDto — Represents the configuration options for affiliate settings in a store.
      - `isEnabled` boolean, required — Determines if the affiliate settings are active for the store.
      - `defaultReturnPercentage` integer, required — Specifies the default return percentage for affiliates within a store, ranging from 0 to 100.
      - `defaultPercentageOff` integer, nullable — Represents the default percentage off value used in affiliate settings, where the value must be between 0 and 100.
      - `canConvertAffiliateBalance` boolean, required — Whether the store allows affiliate balance to be converted into customer balance to be used on the store, when enabled any affiliate can convert their affiliate balance into customer balance automatically
      - `isPublicRegistrationEnabled` boolean, required — Determines whether public registration is enabled for affiliates within the store.
      - `isLinkEditingEnabled` boolean, required — Indicates whether link editing capabilities are enabled within the affiliate options for a store.
    - `branding` PublicStoreBrandOptions, required — Represents the configurable branding options for a store.
      - `bannerFileName` string, nullable — Represents the file name of the banner associated with the checkout options.
      - `iconFileName` string, nullable — The icon file name, used for favicon
      - `accentColor` string, nullable — Represents the accent color used in the checkout options.
      - `isAutomaticCurrencyConversionEnabled` boolean, required — Indicates whether automatic currency conversion is enabled, this is strictly for displaying on the checkout which improves conversion
    - `isTicketingEnabled` boolean, required — Whether the built-in support ticket system is enabled for customers
    - `externalSupportUrl` string, nullable — The URL to direct customers to for external support when ticketing is disabled
    - `externalSupportDescription` string, nullable — A description shown to customers explaining where to get support when ticketing is disabled
    - `isInactive` boolean, required — Whether the store is inactive
    - `lastOrderAt` string, date-time, nullable — The timestamp of the last order created for this store

## Other responses

- `400` — The provided form information is not valid, check that the provided data is valid. You can use the 'invalidFields' field to get the list of invalid fields or just use the 'message' field.
- `401` — You are not authorized, check your API key and try again.
- `403` — You are not authorized to access this endpoint, you may be missing an API key scope or be requesting a privileged endpoint.

---

[API](https://skmtc.net/komerza/apis/komerza-api.md) · [All operations](https://skmtc.net/komerza/apis/komerza-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/komerza/komerza-api/revisions/060e78bc7f80/schema)
