{
  "info": {
    "name": "Harmon Storefront API",
    "_postman_id": "harmon-storefront-api",
    "description": "The **Harmon Storefront API** is a public, machine-authenticated read + commerce\nAPI for building your own ecommerce site on Harmon.\n\n* **Authentication** — every call carries a tenant-scoped API key as\n  `Authorization: Bearer hk_…`. A **publishable** key (browser-safe) authorizes\n  anonymous catalog reads + initiating shopper auth; a **secret** key\n  (server-side only) additionally authorizes customer-scoped reads, checkout, and\n  webhook management. Customer-scoped routes also require a **shopper token** in\n  the `X-Storefront-Shopper-Token` header.\n* **Modes** — a key prefixed `hk_test_` runs in **sandbox** mode; every other key\n  is **live**. The mode is echoed in the `X-Harmon-Mode` response header.\n* **Caching** — catalog reads return a strong `ETag` + `Cache-Control`; send\n  `If-None-Match` to revalidate (`304`) and `updated_since` to page deltas.\n* **Webhooks** — outbound events are signed `X-Harmon-Signature: sha256=<hmac>`;\n  verify against your subscription's signing secret.\n* **Rate limits** — each key is limited per minute; over the limit returns `429`\n  with `Retry-After`.\n\nSee the [merchant integration guide](https://github.com/harmon/docs) for the full\ncontract, error model, and signature-verification snippets.\n",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.harmon.example",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "health",
      "item": [
        {
          "name": "Health",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/health",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "health"
              ]
            },
            "description": "Health"
          }
        }
      ]
    },
    {
      "name": "diagnostics",
      "item": [
        {
          "name": "Ping",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/ping",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "ping"
              ]
            },
            "description": "Ping"
          }
        }
      ]
    },
    {
      "name": "catalog",
      "item": [
        {
          "name": "List Products",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/products",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "products"
              ]
            },
            "description": "List Products"
          }
        },
        {
          "name": "Get Product",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/products/:sku",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "products",
                ":sku"
              ],
              "variable": [
                {
                  "key": "sku",
                  "value": "",
                  "description": "Path parameter: sku"
                }
              ]
            },
            "description": "Get Product"
          }
        },
        {
          "name": "List Categories",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/categories",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "categories"
              ]
            },
            "description": "List Categories"
          }
        },
        {
          "name": "List Tags",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/tags",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "tags"
              ]
            },
            "description": "List Tags"
          }
        }
      ]
    },
    {
      "name": "availability",
      "item": [
        {
          "name": "Product Availability",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/products/:sku/availability",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "products",
                ":sku",
                "availability"
              ],
              "variable": [
                {
                  "key": "sku",
                  "value": "",
                  "description": "Path parameter: sku"
                }
              ]
            },
            "description": "Product Availability"
          }
        },
        {
          "name": "Availability Batch",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/availability/batch",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "availability",
                "batch"
              ]
            },
            "description": "Availability Batch"
          }
        }
      ]
    },
    {
      "name": "fitment",
      "item": [
        {
          "name": "Vehicle Years",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/vehicles/years",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "vehicles",
                "years"
              ]
            },
            "description": "Vehicle Years"
          }
        },
        {
          "name": "Vehicle Makes",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/vehicles/makes",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "vehicles",
                "makes"
              ]
            },
            "description": "Vehicle Makes"
          }
        },
        {
          "name": "Vehicle Models",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/vehicles/models",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "vehicles",
                "models"
              ]
            },
            "description": "Vehicle Models"
          }
        },
        {
          "name": "Vehicle Products",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/vehicles/:vehicle_id/products",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "vehicles",
                ":vehicle_id",
                "products"
              ],
              "variable": [
                {
                  "key": "vehicle_id",
                  "value": "",
                  "description": "Path parameter: vehicle_id"
                }
              ]
            },
            "description": "Vehicle Products"
          }
        },
        {
          "name": "Product Fitments",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/products/:sku/fitments",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "products",
                ":sku",
                "fitments"
              ],
              "variable": [
                {
                  "key": "sku",
                  "value": "",
                  "description": "Path parameter: sku"
                }
              ]
            },
            "description": "Product Fitments"
          }
        }
      ]
    },
    {
      "name": "customer",
      "item": [
        {
          "name": "Get Me",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/me",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "me"
              ]
            },
            "description": "Get Me"
          }
        },
        {
          "name": "Get Credit Status",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/me/credit-status",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "me",
                "credit-status"
              ]
            },
            "description": "Get Credit Status"
          }
        }
      ]
    },
    {
      "name": "cart",
      "item": [
        {
          "name": "Create Cart",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/carts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "carts"
              ]
            },
            "description": "Create Cart"
          }
        },
        {
          "name": "Get Cart",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/carts/:cart_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "carts",
                ":cart_id"
              ],
              "variable": [
                {
                  "key": "cart_id",
                  "value": "",
                  "description": "Path parameter: cart_id"
                }
              ]
            },
            "description": "Get Cart"
          }
        },
        {
          "name": "Add Line",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/carts/:cart_id/lines",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "carts",
                ":cart_id",
                "lines"
              ],
              "variable": [
                {
                  "key": "cart_id",
                  "value": "",
                  "description": "Path parameter: cart_id"
                }
              ]
            },
            "description": "Add Line"
          }
        },
        {
          "name": "Update Line",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/carts/:cart_id/lines/:line_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "carts",
                ":cart_id",
                "lines",
                ":line_id"
              ],
              "variable": [
                {
                  "key": "cart_id",
                  "value": "",
                  "description": "Path parameter: cart_id"
                },
                {
                  "key": "line_id",
                  "value": "",
                  "description": "Path parameter: line_id"
                }
              ]
            },
            "description": "Update Line"
          }
        },
        {
          "name": "Remove Line",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/carts/:cart_id/lines/:line_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "carts",
                ":cart_id",
                "lines",
                ":line_id"
              ],
              "variable": [
                {
                  "key": "cart_id",
                  "value": "",
                  "description": "Path parameter: cart_id"
                },
                {
                  "key": "line_id",
                  "value": "",
                  "description": "Path parameter: line_id"
                }
              ]
            },
            "description": "Remove Line"
          }
        },
        {
          "name": "Price Cart",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/carts/:cart_id/price",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "carts",
                ":cart_id",
                "price"
              ],
              "variable": [
                {
                  "key": "cart_id",
                  "value": "",
                  "description": "Path parameter: cart_id"
                }
              ]
            },
            "description": "Price Cart"
          }
        },
        {
          "name": "Apply Promotion",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/carts/:cart_id/promotions",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "carts",
                ":cart_id",
                "promotions"
              ],
              "variable": [
                {
                  "key": "cart_id",
                  "value": "",
                  "description": "Path parameter: cart_id"
                }
              ]
            },
            "description": "Apply Promotion"
          }
        }
      ]
    },
    {
      "name": "checkout",
      "item": [
        {
          "name": "Checkout",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/checkout",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "checkout"
              ]
            },
            "description": "Checkout"
          }
        },
        {
          "name": "Payment Status",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/checkout/:order_id/payment-status",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "checkout",
                ":order_id",
                "payment-status"
              ],
              "variable": [
                {
                  "key": "order_id",
                  "value": "",
                  "description": "Path parameter: order_id"
                }
              ]
            },
            "description": "Poll the payment session opened for a prepaid order (plan Phase 5.2).\n\nA thin proxy of the payments-service session status the shopper SPA polls\nafter the gateway return. The order → session link is looked up scoped to the\ntoken's tenant + customer, so an unknown order — or one belonging to another\ncustomer — 404s with no existence leak (Invariant 8). The webhook remains the\nsource of truth; this read never mutates ledger state (Invariant 3)."
          }
        }
      ]
    },
    {
      "name": "orders",
      "item": [
        {
          "name": "List Orders",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/orders",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "orders"
              ]
            },
            "description": "List Orders"
          }
        },
        {
          "name": "Get Order",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/orders/:order_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "orders",
                ":order_id"
              ],
              "variable": [
                {
                  "key": "order_id",
                  "value": "",
                  "description": "Path parameter: order_id"
                }
              ]
            },
            "description": "Get Order"
          }
        },
        {
          "name": "Cancel",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/orders/:order_id/cancel",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "orders",
                ":order_id",
                "cancel"
              ],
              "variable": [
                {
                  "key": "order_id",
                  "value": "",
                  "description": "Path parameter: order_id"
                }
              ]
            },
            "description": "Cancel"
          }
        }
      ]
    },
    {
      "name": "invoices",
      "item": [
        {
          "name": "List Invoices",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/invoices",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "invoices"
              ]
            },
            "description": "List Invoices"
          }
        },
        {
          "name": "Get Invoice",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/invoices/:invoice_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "invoices",
                ":invoice_id"
              ],
              "variable": [
                {
                  "key": "invoice_id",
                  "value": "",
                  "description": "Path parameter: invoice_id"
                }
              ]
            },
            "description": "Get Invoice"
          }
        }
      ]
    },
    {
      "name": "webhooks",
      "item": [
        {
          "name": "List Subscriptions",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/webhooks",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "webhooks"
              ]
            },
            "description": "List Subscriptions"
          }
        },
        {
          "name": "Create Subscription",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/webhooks",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "webhooks"
              ]
            },
            "description": "Create Subscription"
          }
        },
        {
          "name": "Get Subscription",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/webhooks/:subscription_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "webhooks",
                ":subscription_id"
              ],
              "variable": [
                {
                  "key": "subscription_id",
                  "value": "",
                  "description": "Path parameter: subscription_id"
                }
              ]
            },
            "description": "Get Subscription"
          }
        },
        {
          "name": "Update Subscription",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/webhooks/:subscription_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "webhooks",
                ":subscription_id"
              ],
              "variable": [
                {
                  "key": "subscription_id",
                  "value": "",
                  "description": "Path parameter: subscription_id"
                }
              ]
            },
            "description": "Update Subscription"
          }
        },
        {
          "name": "Disable Subscription",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/webhooks/:subscription_id/disable",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "webhooks",
                ":subscription_id",
                "disable"
              ],
              "variable": [
                {
                  "key": "subscription_id",
                  "value": "",
                  "description": "Path parameter: subscription_id"
                }
              ]
            },
            "description": "Disable Subscription"
          }
        },
        {
          "name": "Ping Subscription",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/webhooks/:subscription_id/ping",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "webhooks",
                ":subscription_id",
                "ping"
              ],
              "variable": [
                {
                  "key": "subscription_id",
                  "value": "",
                  "description": "Path parameter: subscription_id"
                }
              ]
            },
            "description": "Ping Subscription"
          }
        }
      ]
    },
    {
      "name": "admin",
      "item": [
        {
          "name": "List Webhook Health",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/internal/admin/webhooks",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "internal",
                "admin",
                "webhooks"
              ]
            },
            "description": "Every webhook subscription in the staff's tenant + its delivery health\n(dead-letter backlog + the latest deliveries). Scoped to\n``principal.tenant_id`` (the BFF-set header)."
          }
        },
        {
          "name": "Replay Webhook Dead Letters",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/internal/admin/webhooks/:subscription_id/replay",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "internal",
                "admin",
                "webhooks",
                ":subscription_id",
                "replay"
              ],
              "variable": [
                {
                  "key": "subscription_id",
                  "value": "",
                  "description": "Path parameter: subscription_id"
                }
              ]
            },
            "description": "Replay one subscription's dead-letter backlog. 404 when the subscription\nisn't in the staff's tenant (no existence leak)."
          }
        }
      ]
    }
  ]
}
