> This page is for version v1 (default).
> For other versions, use one of these documentation indexes:
> - v1 (default): https://developers.truemed.com/v-1/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developers.truemed.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developers.truemed.com/_mcp/server.

# Products and SKUs

> How to upload, manage, and export your product catalog from the Products tab of the Truemed dashboard.

The **Products** tab in the [Truemed dashboard](https://app.truemed.com) lists every product Truemed knows about, with its SKU, name, eligibility status, and creation date. This page covers working with that tab.

Every product has to be reviewed by Truemed's compliance team before it can be sold with HSA/FSA funds. **Products we haven't seen default to ineligible**, which is the single most common reason a customer hits an eligibility problem at checkout.

> **Warning**
>
> Don't tag products as HSA/FSA eligible yourself. Eligibility is assigned by Truemed's compliance team, and platform tags alone do not enable HSA/FSA checkout.

![Truemed Dashboard Products page listing added products and their statuses](/_fern-img/a0ee7ed4ebda1aa511c3b93cd0c45777daeb328f59ed3dc1f9ee68817f00477c.webp)

On Shopify, Truemed also writes each variant's status back to your store, where you can use it as a collection condition. See [HSA/FSA eligible collections](/marketing/widgets/eligible-product-collections-and-badges).

## What you can do

* Search and filter your products by status
* Add products individually or upload a CSV
* Export every product currently in the system

> **Note**
>
> Both account **Owners** and **Staff** can upload, view, and download SKU data.

## Adding a single product

Click **Add Product** and provide:

* **SKU** — your internal identifier for the product
* **Product name**
* **GTIN / barcode** (optional) — a UPC, EAN, or other barcode number

The product is then queued for eligibility review by the Truemed compliance team.

![Truemed Dashboard Add Product form](/_fern-img/819b34c5101c70e02445aa4f013230eddbf35695957b16a4758c536b36ff1c79.webp)

## Uploading a CSV

For anything larger than a handful of products, use **Upload CSV**.

### Shopify

1. Go to **Shopify Admin > Products**
2. Filter the list to **Active** products
3. Click **Export** in the upper right
4. Select **"Products matching your current search or filter"** and **"Plain CSV File"**
5. Click **Export Products**

> **Note**
>
> Choosing "All products" in the export dialog ignores the Active filter and exports your drafts and archived items too. Pick the option that matches your filter.

Use the standard Shopify export rather than a custom format. Every variant needs a **Variant SKU** before you export, or those rows are skipped on upload.

### WooCommerce

1. Go to **WooCommerce > Products**
2. Use the built-in export tool or a plugin like WP All Export
3. Export as CSV with columns: **Name**, **SKU**, **Description**

### API and other platforms

Truemed reads the same column names Shopify exports, which is why a raw Shopify export works without editing. If you're building the file yourself, match these headers:

| Column              | Required    | What it does                                                             |
| ------------------- | ----------- | ------------------------------------------------------------------------ |
| **Variant SKU**     | Yes         | The identifier Truemed matches on. Rows without it are skipped.          |
| **Title**           | Recommended | Product name. If missing, Truemed falls back to Handle, then to the SKU. |
| **Handle**          | Recommended | URL-friendly identifier. Can match the title.                            |
| **Body (HTML)**     | Optional    | Product description, used during review.                                 |
| **Variant Barcode** | Optional    | GTIN, UPC, or EAN. Required for pre-approved merchants.                  |
| **Image Src**       | Optional    | Product image URL.                                                       |

Header matching is case- and punctuation-insensitive, so `Variant SKU`, `variant_sku`, and `variant sku` all work.

> **Note**
>
> If your platform can't produce a CSV in this shape, contact [merchants@truemed.com](mailto:merchants@truemed.com) and we'll work with you on a solution.

### Upload the file

1. Log in to [app.truemed.com](https://app.truemed.com)
2. Click the **Products** tab
3. Choose **Upload CSV** and select your file
4. Each product appears in the table with a status label

![Truemed Dashboard Products tab with SKU upload](/_fern-img/ea0bdd2fda44b401b8a06eb76eece30d0b23e92e03a115cc529d03e049ea8639.webp)

Large catalogs are fine. If a very large file gives you trouble, email [merchants@truemed.com](mailto:merchants@truemed.com).

## Eligibility statuses

Each product in the table carries one of five statuses.

| Status                      | What it means                                                               | Effect at checkout                           |
| --------------------------- | --------------------------------------------------------------------------- | -------------------------------------------- |
| **Awaiting review**         | Submitted, pending review by Truemed's compliance team                      | Behaves as ineligible until review completes |
| **Pre-approved**            | Eligible with no LMN required                                               | Purchasable with HSA/FSA, no health survey   |
| **Approved (requires LMN)** | Qualifies once the customer completes the health survey and receives an LMN | Purchasable with HSA/FSA after the survey    |
| **Ineligible**              | Reviewed and not approved for HSA/FSA spending                              | Not purchasable with HSA/FSA                 |
| **Inactive**                | No longer active in your catalog                                            | Not purchasable with HSA/FSA                 |

> **Note**
>
> **Awaiting review and Ineligible look the same to your customer** but mean different things to you. A product sitting in Awaiting review may still be approved. If a launch is coming up, upload those SKUs early rather than waiting for a customer to hit the problem.

Some approved products carry **partial eligibility**, meaning only part of the item's price qualifies, based on a comparable-item baseline. This is a property of the item rather than a status of its own, so a partially eligible product still shows as Pre-approved or Approved (requires LMN). The qualifying amount is reflected in the LMN.

For what pre-approved and eligible-with-LMN mean for the customer's checkout experience, see [Eligibility](/guides/get-started/eligibility-and-qualifying-businesses#eligibility-outcomes).

## Keeping your catalog current

If you add products after launch, there are two ways Truemed handles them:

1. **Upload SKUs in advance** through the Products tab. This is the recommended path — eligibility is settled before a customer ever sees the product.
2. **Automatic fallback.** If an unrecognized SKU appears in a customer's checkout, Truemed ingests and categorizes the new item behind the scenes.

Upload your full list:

* **Once per quarter**, as a routine refresh
* **Before launching new products**, so they're categorized by the time customers see them
* **Whenever a customer reports** a product showing as ineligible that should qualify

Reviews typically take 1–2 business days. Pre-approved merchants should note that variants missing GTINs (barcodes) can't be ingested and add another 1–2 days.

## Related

* [Eligibility](/guides/get-started/eligibility-and-qualifying-businesses) — how Truemed categorizes products and what each outcome means
* [SKU upload troubleshooting](/guides/troubleshooting/sku-upload) — failed uploads, products stuck in review