Skip to main content
Update an existing store’s name, status, or configuration settings. Only fields included in the request body are updated; omitted fields remain unchanged.
POST /v1/actions/store/update-store
Authentication: API Key (owner or admin role required)

Request Body

FieldTypeRequiredDescription
idstringYesStore ID (Short ID format STO_xxx)
namestringNoUpdated store name (1-48 characters)
statusstringNoactive, inactive, or suspended
logostring | nullNoStore logo URL (set to null to remove)
supportEmailstring | nullNoSupport email (set to null to remove)
websitestring | nullNoWebsite URL (set to null to remove)
webhookSettingsobject | nullNoWebhook configuration (set to null to remove)
notificationSettingsobject | nullNoNotification preferences (set to null to remove)
checkoutSettingsobject | nullNoCheckout theme configuration (set to null to remove)

Webhook Settings

FieldTypeDescription
testWebhookUrlstring | nullWebhook URL for the test environment
prodWebhookUrlstring | nullWebhook URL for the production environment
testEventsstring[]Event types subscribed in test environment
prodEventsstring[]Event types subscribed in production environment

Notification Settings

FieldTypeDefaultDescription
emailOrderConfirmationbooleantrueSend email on order confirmation
emailSubscriptionConfirmationbooleantrueSend email on subscription creation
emailSubscriptionCycledbooleantrueSend email on subscription renewal
emailSubscriptionCanceledbooleantrueSend email on subscription cancellation
emailSubscriptionRevokedbooleantrueSend email on subscription revocation
emailSubscriptionPastDuebooleantrueSend email on subscription past due
notifyNewOrdersbooleantrueNotify merchant of new orders
notifyNewSubscriptionsbooleantrueNotify merchant of new subscriptions

Checkout Settings

FieldTypeDescription
defaultDarkModebooleanWhether to default to dark mode
lightobjectLight theme settings (see below)
darkobjectDark theme settings (see below)
Checkout Theme Settings (applies to both light and dark):
FieldTypeDescription
checkoutLogostring | nullLogo URL for checkout page
checkoutColorPrimarystringPrimary color (hex)
checkoutColorBackgroundstringBackground color (hex)
checkoutColorCardstringCard/panel color (hex)
checkoutColorTextstringText color (hex)
checkoutBorderRadiusstringBorder radius (CSS value)

Example Request

import { WaffoPancake, EntityStatus } from "@waffo/pancake-ts";

const client = new WaffoPancake({
  merchantId: process.env.WAFFO_MERCHANT_ID!,
  privateKey: process.env.WAFFO_PRIVATE_KEY!,
});

const { store } = await client.stores.update({
  id: "STO_2aUyqjCzEIiEcYMKj7TZtw",
  name: "Updated Store Name",
  supportEmail: "help@example.com",
  webhookSettings: {
    testWebhookUrl: "https://example.com/webhooks/test",
    prodWebhookUrl: null,
    testEvents: ["order.completed", "subscription.created"],
    prodEvents: [],
  },
  notificationSettings: {
    emailOrderConfirmation: true,
    emailSubscriptionConfirmation: true,
    emailSubscriptionCycled: true,
    emailSubscriptionCanceled: true,
    emailSubscriptionRevoked: false,
    emailSubscriptionPastDue: true,
    notifyNewOrders: true,
    notifyNewSubscriptions: true,
  },
});

Success Response (200)

{
  "data": {
    "store": {
      "id": "STO_2aUyqjCzEIiEcYMKj7TZtw",
      "name": "Updated Store Name",
      "status": "active",
      "logo": null,
      "supportEmail": "help@example.com",
      "website": null,
      "slug": "my-digital-store-a1b2c3",
      "prodEnabled": false,
      "webhookSettings": {
        "testWebhookUrl": "https://example.com/webhooks/test",
        "prodWebhookUrl": null,
        "testEvents": ["order.completed", "subscription.created"],
        "prodEvents": []
      },
      "notificationSettings": {
        "emailOrderConfirmation": true,
        "emailSubscriptionConfirmation": true,
        "emailSubscriptionCycled": true,
        "emailSubscriptionCanceled": true,
        "emailSubscriptionRevoked": false,
        "emailSubscriptionPastDue": true,
        "notifyNewOrders": true,
        "notifyNewSubscriptions": true
      },
      "checkoutSettings": {
        "defaultDarkMode": false,
        "light": {
          "checkoutLogo": null,
          "checkoutColorPrimary": "#000000",
          "checkoutColorBackground": "#FFFFFF",
          "checkoutColorCard": "#F5F5F5",
          "checkoutColorText": "#1A1A1A",
          "checkoutBorderRadius": "8px"
        },
        "dark": {
          "checkoutLogo": null,
          "checkoutColorPrimary": "#FFFFFF",
          "checkoutColorBackground": "#1A1A1A",
          "checkoutColorCard": "#2A2A2A",
          "checkoutColorText": "#F5F5F5",
          "checkoutBorderRadius": "8px"
        }
      },
      "deletedAt": null,
      "createdAt": "2026-01-15T10:30:00.000Z",
      "updatedAt": "2026-01-15T11:00:00.000Z"
    }
  }
}

Response Fields

Same as Create Store response fields.

Error Responses

StatusErrorDescription
400Missing required field: idid not provided in request body
403Access denied: insufficient roleMerchant role is member (update requires owner or admin)
404Store not foundStore ID does not exist or merchant is not a member