---
title: "Update a store"
method: PUT
path: "/stores/{storeId}"
tags: ["Store"]
---

# Update a store

`PUT /stores/{storeId}`

Replaces the specified store's data with the information in the form.
Requires the `stores.update` permission.

## Path parameters

- `storeId` string, uuid, required

## Request body

- UpdateStoreForm — Form for updating or creating a store. This version is returned for authenticated API endpoints, any public endpoint will use a PublicStore or PublicStoreReference
  - `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
  - `termsOfServiceUrl` string, uri, nullable — The URL to the store's terms of service page
  - `refundPolicyUrl` string, uri, nullable — The URL to the store's refund policy page
  - `privacyPolicyUrl` string, uri, nullable — The URL to the store's privacy policy page
  - `isTicketingEnabled` boolean, required — Whether the built-in support ticket system is enabled for customers. When disabled, customers are directed to the external support URL instead.
  - `externalSupportUrl` string, uri, nullable — The URL to direct customers to for external support when ticketing is disabled. Required when ticketing is disabled.
  - `externalSupportDescription` string, nullable — A description shown to customers explaining where to get support when ticketing is disabled.
  - `showPublicStats` boolean, required — Whether anonymized public statistics are shown to buyers on the storefront. Disabled by default for privacy.
  - `showRecentOrderToasts` boolean, required — Whether recent order toast notifications are shown to visitors on the storefront. Disabled by default for privacy.
  - `enableCartRecovery` boolean, required — Whether abandoned cart recovery emails are enabled for this store. Requires email marketing credits. Disabled by default.

## Response `200`

The object was successfully updated.

- StoreResponse — 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` Store — Represents a storefront that contains products that will be sold under it's name
    - `id` string, uuid, required — The unique identifier of the entity
    - `dateCreated` string, date-time, required — The date the entity was created in the database
    - `builderProjects` BuilderProject[], required — The builder projects that contains all the generation and runtime information about the store
      - `id` string, uuid, required — The unique identifier of the entity
      - `dateCreated` string, date-time, required — The date the entity was created in the database
      - `urlId` string, nullable — Represents an optional, URL-friendly identifier used for deep-linking and reference purposes.
      - `name` string, nullable — A name of the project
      - `currentWebsiteId` string, uuid, nullable — The ID of the current website that is active
      - `currentWebsite` BuilderWebsite — Represents a website entity in the builder module with associated repository, this contains the stored data, the source code to the store
        - `id` string, uuid, required — The unique identifier of the entity
        - `dateCreated` string, date-time, required — The date the entity was created in the database
        - `storageKey` string, nullable — The storage key for the file data in the external storage service
        - `fileDataHash` string, required — The hash of the file data, used to prevent duplicate websites from being added to the repository
        - `compressedSize` integer, required — The size of the website in bytes when compressed
        - `size` integer, required — The size of the website in bytes when not compressed
        - `projectId` string, uuid, required — The ID of the project the website belongs to
        - `userId` string, required — The unique identifier associated with the user who owns or is related to this repository.
        - `storeId` string, uuid, required — Unique identifier of the store associated with the builder repository.
        - `sourceTemplateId` string, uuid, nullable — The ID of the template this website was created from (if any).
        - `sourceCommitHash` string, nullable — The commit hash of the template source at the time of creation.
        - `sourceReleaseTag` string, nullable — The release tag of the template source at the time of creation (e.g. "v1.0.0").
      - `userId` string, required — The unique identifier associated with the user who owns or is related to this repository.
      - `storeId` string, uuid, required — Unique identifier of the store associated with the builder repository.
      - `backups` BuilderWebsiteBackup[], required — Represents a collection of backups associated with a builder project.
        - `id` string, uuid, required — The unique identifier of the entity
        - `dateCreated` string, date-time, required — The date the entity was created in the database
        - `storageKey` string, nullable — The storage key for the file data in the external storage service
        - `fileDataHash` string, required — The hash of the file data, used to prevent duplicate websites from being added to the repository
        - `compressedSize` integer, required — The size of the website in bytes when compressed
        - `size` integer, required — The size of the website in bytes when not compressed
        - `projectId` string, uuid, required — Represents the identifier of the project associated with the website backup.
        - `websiteId` string, uuid, required — Represents a backup of a website with its associated project and website identifiers.
        - `name` string, nullable — The name of the backup (e.g. "Manual Backup", "Deployment v12")
        - `userId` string, required — The unique identifier associated with the user who owns or is related to this repository.
        - `storeId` string, uuid, required — Unique identifier of the store associated with the builder repository.
      - `machines` BuilderPreviewMachine[], required — Represents a collection of preview machines associated with a builder project.
        - `id` string, uuid, required — The unique identifier of the entity
        - `dateCreated` string, date-time, required — The date the entity was created in the database
        - `isTerminated` boolean, required — Indicates whether the machine has been terminated.
        - `source` string, required — The source code or identifier for this preview machine.
        - `sourceId` string, required — The identifier of the source for this preview machine.
        - `name` string, required — Name of the builder preview machine.
        - `privateIpAddress` string, required — IP address of the builder preview machine.
        - `events` BuilderPreviewEvent[], required — Collection of events for this machine.
          - `id` string, uuid, required — The unique identifier of the entity
          - `dateCreated` string, date-time, required — The date the entity was created in the database
          - `source` string, required — User code of the source that triggered the builder preview event.
          - `type` string, required — Type of event generated by the builder preview.
          - `message` string, required — Message associated with the event.
          - `machineId` string, uuid, required — Unique identifier for the machine that generated this event.
        - `storeId` string, uuid, required — Identifier of the store that owns this preview machine.
        - `projectId` string, uuid, required — Project identifier for the preview machine.
        - `userId` string, required — The identifier of the user who owns or operates this machine.
      - `globalSeo` BuilderGlobalSeo — Represents the global SEO settings for a builder project. These settings act as a fallback for pages that do not have specific SEO overrides.
        - `id` string, uuid, required — The unique identifier of the entity
        - `dateCreated` string, date-time, required — The date the entity was created in the database
        - `title` string, nullable — The title tag for the page.
        - `description` string, nullable — The meta description for the page.
        - `ogImage` string, nullable — The Open Graph image URL for the page.
        - `projectId` string, uuid, required — The ID of the project these settings belong to.
        - `project` BuilderProject, required — recursive
      - `pages` BuilderPage[], required — The collection of pages with specific SEO settings for this project.
        - `id` string, uuid, required — The unique identifier of the entity
        - `dateCreated` string, date-time, required — The date the entity was created in the database
        - `title` string, nullable — The title tag for the page.
        - `description` string, nullable — The meta description for the page.
        - `ogImage` string, nullable — The Open Graph image URL for the page.
        - `projectId` string, uuid, required — The ID of the project this page belongs to.
        - `project` BuilderProject, required — recursive
        - `path` string, required — The path of the page (e.g., "/about", "/contact").
      - `environmentVariables` object, required — Build-time environment variables passed to the orchestration service during builds. Stored as key-value pairs. Not intended for sensitive secrets.
    - `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
    - `urlHistory` string[], required — The history of URLs this store has had
    - `domain` string, required — The domain this store is running on, defaults to mykomerza.com
    - `customDomain` string, nullable — The custom domain set for the store, will be null if not set. Use the Cloudflare API to fetch extended data on their custom domain integration
    - `lastCustomDomainUpdate` string, date-time, required — The last time the custom domain for this store was updated
    - `products` Product[], required — The list of products sold by the store
      - `id` string, uuid, required — The unique identifier of the entity
      - `dateCreated` string, date-time, required — The date the entity was created in the database
      - `variants` Variant[], required — Collection of product variants linked to the product, allowing multiple versions or options for the product.
        - `id` string, uuid, required — The unique identifier of the entity
        - `dateCreated` string, date-time, required — The date the entity was created in the database
        - `name` string, required — The name of the variant.
        - `productId` string, uuid, required — Represents the unique identifier of the product associated with the variant.
        - `storeId` string, uuid, required — The unique identifier for the store associated with the variant.
        - `cost` number, double, required — The cost of the variant.
        - `deliveryTypes` string[], required — A list of delivery methods associated with the variant.
        - `files` StoredFile[], required — A collection of stored files associated with this variant.
          - `id` string, uuid, required — The unique identifier of the entity
          - `dateCreated` string, date-time, required — The date the entity was created in the database
          - `friendlyName` string, required — The friendly name of the file
          - `ipAddress` string, required — The IP address which uploaded the file
          - `userId` string, required — The ID of the user who uploaded the file
        - `dynamicUrl` string, nullable — Represents a dynamically generated or configurable URL associated with a variant.
        - `deliveryMessage` string, nullable — An optional message associated with the delivery of this variant.
        - `minimumQuantity` integer, required — The minimum quantity of the product variant required for a single order.
        - `maximumQuantity` integer, required — The maximum quantity of the variant that can be purchased in a single order. A value of -1 indicates no limit.
        - `order` integer, required — Indicates the display order of the variant in a sequence.
        - `imageNames` string[], required — A list of image file names associated with the variant.
        - `stock` integer, required — Represents the quantity of items available for sale.
        - `stockMode` 0 | 1 | 2, required — The stock calculation modes that are used
        - `customFields` CustomField[], required — Represents the collection of custom fields associated with the variant. Each custom field provides additional configuration or metadata related to the variant, such as labels, identifiers, or placeholders.
          - `id` string, uuid, required — The unique identifier of the entity
          - `dateCreated` string, date-time, required — The date the entity was created in the database
          - `variantId` string, uuid, required — FK back to the parent Variant.
          - `label` string, required — The display label for this custom field.
          - `identifier` string, required — A machine-friendly identifier used in forms and storage.
          - `placeholder` string, nullable — Placeholder text shown when the field is empty (for text/textarea).
          - `type` string, required — The type of the field: "text", "textarea", "select", "checkbox", "radio", or "number".
          - `isRequired` boolean, required — Whether filling out this field is mandatory.
          - `hint` string, nullable — Help text displayed under the field.
          - `options` CustomFieldOption[], required — The list of allowed options (only for select or radio fields).
            - `id` string, uuid, required — The unique identifier of the entity
            - `dateCreated` string, date-time, required — The date the entity was created in the database
            - `customFieldId` string, uuid, required — FK back to the parent CustomField.
            - `label` string, required — The user-facing label for this option.
            - `value` string, required — The stored value for this option (often same as Label).
            - `order` integer, required — Sort order among siblings.
        - `volumeDiscounts` VolumeDiscount[], required — Represents the collection of volume discount tiers associated with the variant. Each tier defines a quantity threshold and the corresponding discount.
          - `id` string, uuid, required — The unique identifier of the entity
          - `dateCreated` string, date-time, required — The date the entity was created in the database
          - `variantId` string, uuid, required — The unique identifier of the variant this volume discount belongs to.
          - `quantity` integer, required — The minimum quantity required to activate this discount tier.
          - `discountType` 0 | 1 | 2, required — Specifies the type of discount to apply for volume pricing tiers.
          - `discountValue` number, double, required — The discount value. Interpretation depends on Komerza.Database.Entities.Products.VolumeDiscount.DiscountType: - Percentage: A percentage off (e.g., 10 = 10% off) - FixedAmount: Amount deducted per unit (e.g., 5 = $5 off per unit) - FixedPrice: The new unit price (e.g., 8 = $8 per unit)
        - `disableVolumeDiscountOnCoupon` boolean, required — When true, volume discounts are disabled if a coupon is applied to the order.
        - `metadata` string, nullable — Miscellaneous metadata associated with the variant, this is used in migration to tie reviews/products
        - `billingInterval` 0 | 1 | 2 | 3 | 4 — The billing interval for a subscription product
        - `customIntervalDays` integer, nullable — Custom interval in days when Komerza.Database.Entities.Products.Variant.BillingInterval is !:Products.BillingInterval.Custom.
      - `name` string, required — The name of the product. This field is required and must be between 3 and 128 characters in length.
      - `slug` string, nullable — A unique identifier for the product, used to generate user-friendly URLs.
      - `description` string, required — A detailed description of the product, used to provide additional information or context about the product.
      - `metaDescription` string, nullable — The meta description of the product, used for SEO purposes.
      - `visibility` 0 | 1 | 2 | 3, required — List of product visibility (or privacy) levels
      - `imageNames` string[], required — Represents a list of image file names associated with the product. This collection is used to manage the images linked to the product and can be manipulated to reorder or delete images.
      - `storeId` string, uuid, required — The identifier of the store to which the product belongs.
      - `userId` string, required — Represents the identifier of the user associated with the product.
      - `shouldBlockVpns` boolean, required — Determines whether VPN usage should be restricted for this product. If set to true, VPN-based access may be blocked to mitigate potential fraud or compliance issues.
      - `order` integer, required — Indicates the display order of the product within its associated store. By default, products are assigned an order value of 1. This property is primarily used to allow custom sorting of products, enabling businesses to prioritize or organize products as needed.
      - `isBestSeller` boolean, required — Indicates whether the product is marked as a bestseller.
      - `blacklistedPaymentGateways` string[], required — The list of payment gateways that are blacklisted and should not be used for processing payments for this product.
      - `additionalFees` object, required — A collection of additional fees associated with specific payment methods for the product. The key represents the payment method, and the value represents the fee percentage as a string.
      - `additionalFixedFees` object, required — A collection of fixed fees associated with specific payment methods for the product. The key represents the payment method, and the value represents the fixed fee amount as a string.
      - `metadata` string, nullable — Custom metadata set by either the user or the system to store additional information about the product
      - `affiliateDiscountMode` 0 | 1 | 2, required — Defines how affiliate discounts should be applied to a product.
      - `customAffiliateDiscountPercentage` integer, nullable — Custom affiliate discount percentage (0-100) when AffiliateDiscountMode is set to Custom. Null or when mode is not Custom, this value is ignored and the affiliate's PercentageOff is used.
      - `subscriptionAllowPause` boolean, nullable — Override: whether customers can pause subscriptions for this product. Null = use store default.
      - `subscriptionMaxPauseDurationDays` integer, nullable — Override: maximum pause duration in days for this product. Null = use store default.
      - `subscriptionMaxPauseCount` integer, nullable — Override: maximum number of pauses per subscription lifetime for this product. Null = use store default.
      - `subscriptionAllowCancel` boolean, nullable — Override: whether customers can cancel subscriptions for this product. Null = use store default.
      - `subscriptionCancelMode` 0 | 1 — Defines what happens when a subscription is canceled
      - `subscriptionAllowReactivate` boolean, nullable — Override: whether customers can reactivate subscriptions for this product. Null = use store default.
      - `subscriptionGracePeriodDays` integer, nullable — Override: grace period days after failed payment for this product. Null = use store default.
      - `subscriptionRevokeOnExpiry` boolean, nullable — Override: whether delivered items are revoked when a subscription for this product expires. Null = use store default.
    - `categories` Category[], required — The list of categories for organizing products in the store
      - `id` string, uuid, required — The unique identifier of the entity
      - `dateCreated` string, date-time, required — The date the entity was created in the database
      - `name` string, required — The name of this category
      - `visibility` 0 | 1 | 2 | 3, required — List of product visibility (or privacy) levels
      - `slug` string, nullable — The slug of this category
      - `metaDescription` string, nullable — The meta description of the category, used for SEO purposes.
      - `imageName` string, nullable — The image file name for the category
      - `order` integer, required — The ordering index of this category
      - `storeId` string, uuid, required — The store ID that this category belongs to
      - `products` CategoryProduct[], required — The list of products that belong to this category
        - `id` string, uuid, required — The unique identifier of the entity
        - `dateCreated` string, date-time, required — The date the entity was created in the database
        - `categoryId` string, uuid, required — The ID of the category that the product belongs to
        - `category` Category, required — recursive
        - `productId` string, uuid, required — The ID of the product that belongs to the category
        - `product` Product, required — Represents a product that belongs to a specific store and contains details such as name, description, visibility, and associated information.
          - `id` string, uuid, required — The unique identifier of the entity
          - `dateCreated` string, date-time, required — The date the entity was created in the database
          - `variants` Variant[], required — Collection of product variants linked to the product, allowing multiple versions or options for the product.
            - `id` string, uuid, required — The unique identifier of the entity
            - `dateCreated` string, date-time, required — The date the entity was created in the database
            - `name` string, required — The name of the variant.
            - `productId` string, uuid, required — Represents the unique identifier of the product associated with the variant.
            - `storeId` string, uuid, required — The unique identifier for the store associated with the variant.
            - `cost` number, double, required — The cost of the variant.
            - `deliveryTypes` string[], required — A list of delivery methods associated with the variant.
            - `files` StoredFile[], required — A collection of stored files associated with this variant.
              - …
            - `dynamicUrl` string, nullable — Represents a dynamically generated or configurable URL associated with a variant.
            - `deliveryMessage` string, nullable — An optional message associated with the delivery of this variant.
            - `minimumQuantity` integer, required — The minimum quantity of the product variant required for a single order.
            - `maximumQuantity` integer, required — The maximum quantity of the variant that can be purchased in a single order. A value of -1 indicates no limit.
            - `order` integer, required — Indicates the display order of the variant in a sequence.
            - `imageNames` string[], required — A list of image file names associated with the variant.
            - `stock` integer, required — Represents the quantity of items available for sale.
            - `stockMode` 0 | 1 | 2, required — The stock calculation modes that are used
            - `customFields` CustomField[], required — Represents the collection of custom fields associated with the variant. Each custom field provides additional configuration or metadata related to the variant, such as labels, identifiers, or placeholders.
              - …
            - `volumeDiscounts` VolumeDiscount[], required — Represents the collection of volume discount tiers associated with the variant. Each tier defines a quantity threshold and the corresponding discount.
              - …
            - `disableVolumeDiscountOnCoupon` boolean, required — When true, volume discounts are disabled if a coupon is applied to the order.
            - `metadata` string, nullable — Miscellaneous metadata associated with the variant, this is used in migration to tie reviews/products
            - `billingInterval` 0 | 1 | 2 | 3 | 4 — The billing interval for a subscription product
            - `customIntervalDays` integer, nullable — Custom interval in days when Komerza.Database.Entities.Products.Variant.BillingInterval is !:Products.BillingInterval.Custom.
          - `name` string, required — The name of the product. This field is required and must be between 3 and 128 characters in length.
          - `slug` string, nullable — A unique identifier for the product, used to generate user-friendly URLs.
          - `description` string, required — A detailed description of the product, used to provide additional information or context about the product.
          - `metaDescription` string, nullable — The meta description of the product, used for SEO purposes.
          - `visibility` 0 | 1 | 2 | 3, required — List of product visibility (or privacy) levels
          - `imageNames` string[], required — Represents a list of image file names associated with the product. This collection is used to manage the images linked to the product and can be manipulated to reorder or delete images.
          - `storeId` string, uuid, required — The identifier of the store to which the product belongs.
          - `userId` string, required — Represents the identifier of the user associated with the product.
          - `shouldBlockVpns` boolean, required — Determines whether VPN usage should be restricted for this product. If set to true, VPN-based access may be blocked to mitigate potential fraud or compliance issues.
          - `order` integer, required — Indicates the display order of the product within its associated store. By default, products are assigned an order value of 1. This property is primarily used to allow custom sorting of products, enabling businesses to prioritize or organize products as needed.
          - `isBestSeller` boolean, required — Indicates whether the product is marked as a bestseller.
          - `blacklistedPaymentGateways` string[], required — The list of payment gateways that are blacklisted and should not be used for processing payments for this product.
          - `additionalFees` object, required — A collection of additional fees associated with specific payment methods for the product. The key represents the payment method, and the value represents the fee percentage as a string.
          - `additionalFixedFees` object, required — A collection of fixed fees associated with specific payment methods for the product. The key represents the payment method, and the value represents the fixed fee amount as a string.
          - `metadata` string, nullable — Custom metadata set by either the user or the system to store additional information about the product
          - `affiliateDiscountMode` 0 | 1 | 2, required — Defines how affiliate discounts should be applied to a product.
          - `customAffiliateDiscountPercentage` integer, nullable — Custom affiliate discount percentage (0-100) when AffiliateDiscountMode is set to Custom. Null or when mode is not Custom, this value is ignored and the affiliate's PercentageOff is used.
          - `subscriptionAllowPause` boolean, nullable — Override: whether customers can pause subscriptions for this product. Null = use store default.
          - `subscriptionMaxPauseDurationDays` integer, nullable — Override: maximum pause duration in days for this product. Null = use store default.
          - `subscriptionMaxPauseCount` integer, nullable — Override: maximum number of pauses per subscription lifetime for this product. Null = use store default.
          - `subscriptionAllowCancel` boolean, nullable — Override: whether customers can cancel subscriptions for this product. Null = use store default.
          - `subscriptionCancelMode` 0 | 1 — Defines what happens when a subscription is canceled
          - `subscriptionAllowReactivate` boolean, nullable — Override: whether customers can reactivate subscriptions for this product. Null = use store default.
          - `subscriptionGracePeriodDays` integer, nullable — Override: grace period days after failed payment for this product. Null = use store default.
          - `subscriptionRevokeOnExpiry` boolean, nullable — Override: whether delivered items are revoked when a subscription for this product expires. Null = use store default.
        - `order` integer, required — The order index of the product within the category
    - `blogPosts` BlogPost[], required
      - `id` string, uuid, required — The unique identifier of the entity
      - `dateCreated` string, date-time, required — The date the entity was created in the database
      - `title` string, required
      - `slug` string, nullable
      - `excerpt` string, nullable
      - `content` string, required
      - `metaDescription` string, nullable
      - `coverImageName` string, nullable
      - `visibility` 0 | 1 | 2 | 3, required — List of product visibility (or privacy) levels
      - `isFeatured` boolean, required
      - `publishedAt` string, date-time, nullable
      - `tags` string[], required
      - `order` integer, required
      - `readTimeMinutes` integer, required
      - `storeId` string, uuid, required
      - `authorId` string, required
      - `categories` BlogPostCategory[], required
        - `id` string, uuid, required — The unique identifier of the entity
        - `dateCreated` string, date-time, required — The date the entity was created in the database
        - `blogPostId` string, uuid, required
        - `post` BlogPost, required — recursive
        - `blogCategoryId` string, uuid, required
        - `category` BlogCategory, required
          - `id` string, uuid, required — The unique identifier of the entity
          - `dateCreated` string, date-time, required — The date the entity was created in the database
          - `name` string, required
          - `slug` string, nullable
          - `description` string, nullable
          - `visibility` 0 | 1 | 2 | 3, required — List of product visibility (or privacy) levels
          - `order` integer, required
          - `storeId` string, uuid, required
          - `posts` BlogPostCategory[], required
        - `order` integer, required
    - `blogCategories` BlogCategory[], required
      - `id` string, uuid, required — The unique identifier of the entity
      - `dateCreated` string, date-time, required — The date the entity was created in the database
      - `name` string, required
      - `slug` string, nullable
      - `description` string, nullable
      - `visibility` 0 | 1 | 2 | 3, required — List of product visibility (or privacy) levels
      - `order` integer, required
      - `storeId` string, uuid, required
      - `posts` BlogPostCategory[], required
        - `id` string, uuid, required — The unique identifier of the entity
        - `dateCreated` string, date-time, required — The date the entity was created in the database
        - `blogPostId` string, uuid, required
        - `post` BlogPost, required
          - `id` string, uuid, required — The unique identifier of the entity
          - `dateCreated` string, date-time, required — The date the entity was created in the database
          - `title` string, required
          - `slug` string, nullable
          - `excerpt` string, nullable
          - `content` string, required
          - `metaDescription` string, nullable
          - `coverImageName` string, nullable
          - `visibility` 0 | 1 | 2 | 3, required — List of product visibility (or privacy) levels
          - `isFeatured` boolean, required
          - `publishedAt` string, date-time, nullable
          - `tags` string[], required
          - `order` integer, required
          - `readTimeMinutes` integer, required
          - `storeId` string, uuid, required
          - `authorId` string, required
          - `categories` BlogPostCategory[], required
        - `blogCategoryId` string, uuid, required
        - `category` BlogCategory, required — recursive
        - `order` integer, required
    - `userId` string, required — The ID of the user who owns the store
    - `affiliateOptions` AffiliateOptions — Represents the options available for affiliates on stores.
      - `id` string, uuid, required — The unique identifier of the entity
      - `dateCreated` string, date-time, required — The date the entity was created in the database
      - `isEnabled` boolean, required — Gets or sets a value indicating whether the affiliate options are enabled for a store.
      - `defaultReturnPercentage` integer, required — Gets or sets the default percentage of returns that an affiliate can receive. This percentage is used to calculate the return share for affiliates.
      - `defaultPercentageOff` integer, nullable — Gets or sets the default percentage off value for affiliates.
      - `isPublicRegistrationEnabled` boolean, required — Gets or sets a value indicating whether public registration for affiliates is enabled.
      - `isLinkEditingEnabled` boolean, required — Whether affiliates can edit their own affiliate link
      - `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
    - `storeBrandOptions` StoreBrandOptions — Represents the options for configuring the branding within a store.
      - `id` string, uuid, required — The unique identifier of the entity
      - `dateCreated` string, date-time, required — The date the entity was created in the database
      - `storeId` string, uuid, required — Unique identifier for the store associated with the checkout options.
      - `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
    - `notificationOptions` NotificationOptions — The notification options for a store
      - `id` string, uuid, required — The unique identifier of the entity
      - `dateCreated` string, date-time, required — The date the entity was created in the database
      - `discordWebhookUrl` string, nullable — The Discord webhook notification URL to send events to
      - `disabledEmailNotifications` string[], required — Notification type names that are disabled for the email channel. Everything is enabled by default; only explicitly listed types are suppressed. Values correspond to `NotificationType` enum names.
      - `disabledDiscordNotifications` string[], required — Notification type names that are disabled for the Discord channel. Everything is enabled by default; only explicitly listed types are suppressed. Values correspond to `NotificationType` enum names.
    - `businessInformation` StoreBusinessInformation — Represents the business information associated with a store, including legal entity type and billing details.
      - `legalEntityType` string, nullable — The legal entity type of the merchant.
      - `taxId` string, nullable — Tax Identification Number or VAT number.
      - `fullName` string, nullable — The full name of the individual or entity associated with merchant account.
      - `addressLine1` string, nullable — The primary address line. Typically, includes house number, street name, or building name.
      - `addressLine2` string, nullable — The secondary address line, if applicable. May include apartment, suite, unit, or floor details. Optional field.
      - `city` string, nullable — The city or locality associated with the address.
      - `region` string, nullable — The region associated with the address. Represents state, province, or other administrative division.
      - `postalCode` string, nullable — The postal or ZIP code for the address.
      - `countryCode` string, required — The ISO 3166-1 alpha-2 country code associated with the address. Examples: "US" for the United States, "CA" for Canada.
      - `id` string, uuid, required — The unique identifier of the entity
      - `dateCreated` string, date-time, required — The date the entity was created in the database
    - `taxOptions` TaxOptions — Store-level tax/VAT configuration. Owned by Store via navigation property.
      - `id` string, uuid, required — The unique identifier of the entity
      - `dateCreated` string, date-time, required — The date the entity was created in the database
      - `isEnabled` boolean, required — Whether tax collection is enabled for this store.
      - `taxBehavior` string, required — Tax behavior: "exclusive" (added on top of price) or "inclusive" (included in price).
      - `businessCountryCode` string, nullable — The ISO 3166-1 alpha-2 country code of the store's business location.
      - `vatId` string, nullable — The store's own VAT/tax identification number.
      - `defaultTaxRate` number, double, required — The default tax rate (percentage, e.g. 20 for 20%) applied when no specific rule matches.
      - `defaultTaxName` string, required — The default name for the tax line item (e.g. "VAT", "Sales Tax", "GST").
    - `subscriptionOptions` StoreSubscriptionOptions — Store-level configuration for customer subscription behavior. Individual settings can be overridden at the product level via nullable fields on Product.
      - `id` string, uuid, required — The unique identifier of the entity
      - `dateCreated` string, date-time, required — The date the entity was created in the database
      - `allowPause` boolean, required — Whether customers can pause their subscriptions from the dashboard
      - `maxPauseDurationDays` integer, nullable — Maximum number of days a subscription can be paused. Null means indefinite.
      - `maxPauseCount` integer, nullable — Maximum number of times a subscription can be paused over its lifetime. Null means unlimited.
      - `allowCancel` boolean, required — Whether customers can cancel their subscriptions from the dashboard
      - `cancelMode` 0 | 1, required — Defines what happens when a subscription is canceled
      - `allowReactivate` boolean, required — Whether customers can reactivate a canceled subscription that hasn't expired yet
      - `allowPaymentMethodUpdate` boolean, required — Whether customers can update their payment method from the dashboard
      - `gracePeriodDays` integer, required — Number of days after a failed payment before the subscription is marked as expired
      - `maxRetryAttempts` integer, required — Maximum number of automatic retry attempts for failed payments
      - `reminderSchedule` string, required — Comma-separated list of days before expiry to send reminder notifications to customers
      - `sendExpiryNotifications` boolean, required — Whether to send expiry and renewal notifications to customers
      - `revokeOnExpiry` boolean, required — Whether delivered items (downloads, license keys, Discord roles) are revoked when a subscription expires or is immediately canceled. If false, customers keep access to previously delivered items.
      - `forceManualRenewal` boolean, required — Whether to force manual renewal for all payment gateways, even those that support automatic recurring billing (e.g. Stripe, Mollie). When enabled, customers receive a checkout link to renew instead of being charged automatically.
      - `storeId` string, uuid, required — The ID of the store this configuration belongs to
    - `coupons` Coupon[], required — The list of coupon codes that can be used on the store
      - `id` string, uuid, required — The unique identifier of the entity
      - `dateCreated` string, date-time, required — The date the entity was created in the database
      - `code` string, required — The case-insensitive code the customer will enter to redeem the coupon (this should be lowercased)
      - `uses` integer, required — The amount of times the coupon code has been used
      - `maximumUses` integer, required — The maximum amount of usages the coupon code has, -1 = infinite
      - `percentageDecrease` number, double, nullable — The percentage that should be subtracted from the total order cost when used
      - `amountDecrease` number, double, nullable — The static amount to be subtracted from the total order cost when used
      - `isEnabled` boolean, required — Whether the coupon code is enabled and can be used in checkout
      - `variantIds` string[], nullable — The list of variant IDs that the coupon is enabled for, null if it is global
      - `expirationDate` string, date-time, nullable — The date and time when the coupon will expire and can no longer be used
      - `storeId` string, uuid, required — The ID of the store the coupon belongs to
    - `blacklists` Blacklist[], required — The list of blacklist rules for blocking specific customers, emails, IPs, etc.
      - `id` string, uuid, required — The unique identifier of the entity
      - `dateCreated` string, date-time, required — The date the entity was created in the database
      - `type` 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7, required — Defines the types of data that can be blacklisted.
      - `data` string, required — The data to match against. Interpretation depends on Komerza.Database.Entities.Blacklist.Type: email address, domain, IP, CIDR range, ASN, ISP name, country code, or city name.
      - `note` string, nullable — An optional note providing context for why this rule was created.
      - `isEnabled` boolean, required — Whether this blacklist rule is currently active.
      - `storeId` string, uuid, required — The ID of the store this blacklist rule belongs to.
    - `webhookSecret` string, required — The webhook signing secret used to verify webhook payloads
    - `currencyCode` string, required — The preferred fiat currency to display for the store, defaults to USD
    - `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
    - `maintenanceReason` string, nullable — The reason the store is in maintenance, if this is null then the store is not in maintenance mode
    - `isCustomerBalanceEnabled` boolean, required — Whether the customer balance system is enabled on the stores
    - `termsOfServiceUrl` string, uri, nullable — The URL to the store's terms of service page
    - `refundPolicyUrl` string, uri, nullable — The URL to the store's refund policy page
    - `privacyPolicyUrl` string, uri, nullable — The URL to the store's privacy policy page
    - `isTicketingEnabled` boolean, required — Whether the built-in support ticket system is enabled for customers. When disabled, customers are directed to an external support URL instead.
    - `externalSupportUrl` string, uri, nullable — The URL to direct customers to for support when ticketing is disabled. Required when Komerza.Database.Entities.Stores.Store.IsTicketingEnabled is false.
    - `externalSupportDescription` string, nullable — A short description shown to customers explaining where to get support when ticketing is disabled.
    - `autoBlockOnChargeback` boolean, required — Whether to automatically block customers and blacklist their email/IP when a chargeback is received.
    - `blockVpnProxy` boolean, required — Whether to globally block orders from VPN and proxy IP addresses at the store level. When enabled, the order screening pipeline will reject orders originating from detected VPNs/proxies.
    - `kickFromDiscordOnBlock` boolean, required — Whether to automatically kick customers from the store's Discord server when they are blocked. Applies to both manual blocking and auto-blocking on chargeback.
    - `isInactive` boolean, required — Whether the system has detected that the store is inactive
    - `showPublicStats` boolean, required — Whether anonymized public statistics are shown to buyers on the storefront. Disabled by default for privacy.
    - `showRecentOrderToasts` boolean, required — Whether recent order toast notifications are shown to visitors on the storefront. Disabled by default for privacy.
    - `enableCartRecovery` boolean, required — Whether abandoned cart recovery emails are enabled for this store. Requires email marketing credits. Disabled by default.

## 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.
- `404` — One of the objects referenced by the ID given in the URL or form was not found, check the ID and try again.

---

[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)
