> ## Documentation Index
> Fetch the complete documentation index at: https://docs.numeral.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SKU.io

> Send every SKU.io sale and credit to Numeral for filing, with optional live tax calculation on SKU.io orders.

SKU.io's built-in Numeral integration sends every sale and credit from every channel to Numeral, including the wholesale and B2B orders created in SKU.io that a channel-connected tool never sees. Numeral then handles registrations, filings, and payments. Optionally, Numeral can calculate tax in real time on SKU.io's own orders (B2B portal and manual orders), committing each order once when it is invoiced.

The integration is built and maintained by SKU.io. Setup happens in two places: a short step in the Numeral dashboard to create the connection and get your API keys, then the connect flow in SKU.io.

### Prerequisites

Before you begin, make sure you have:

1. A **Numeral account** at [dashboard.numeralhq.com](https://dashboard.numeralhq.com)
2. **Permission to manage integrations** in your SKU.io account
3. **No sales channel connected to Numeral directly** — if a channel like Shopify or Amazon is also connected inside Numeral, those sales will be counted twice. Disconnect it in Numeral first, or leave SKU.io's channel setting as **Don't send** for that channel.

> [!NOTE]
>
> Only one Numeral account can be connected to a SKU.io account.

***

## Part 1: Create the connection in Numeral

1. In the Numeral dashboard, go to **Connections**.
2. Click **Add Connection** and select **SKU.io**.
3. Enter your SKU.io account subdomain — the part before `.sku.io` in the URL you sign in at (for example, `acme` for `https://acme.sku.io`).
4. The connection provides your pair of secret API keys:

| Key | Mode |
| - | - |
| `sk_test_...` | Test mode — sales are recorded in test mode and never filed. Use this to walk through the setup first. |
| `sk_prod_...` | Live mode, for production. |

5. Optionally, paste a SKU.io **Personal Access Token** so Numeral can look up your customers, orders, invoices, and credits in SKU.io when reviewing your filings (see Part 3 below). You can also add this later.
6. Click **Complete Connection**.

***

## Part 2: Connect Numeral in SKU.io

### Step 1: Connect your account

1. In SKU.io, go to **Apps & Integrations → All Integrations**, find **Numeral** under **Tax**, and click **Connect Numeral**.
2. Paste one of the secret API keys from Part 1, tick **Avoid double-counting**, and click **Test & connect**.
3. The header shows **Connected** with a **TEST** or **PRODUCTION** chip, depending on which key you used. Only the last four characters of the key are shown afterwards.

> [!NOTE]
>
> Which mode the integration runs in is determined entirely by which key you paste. Start with the `sk_test_` key, and replace it with the `sk_prod_` key from the **Settings** tab when you are ready to go live.

### Step 2: Say who collects tax on each channel

SKU.io sends each channel to Numeral with its tax responsibility:

* Marketplaces such as Amazon, eBay, and Walmart are detected automatically as **Marketplace collects**.
* Your own stores are detected as **You collect**.
* Channels marked **Needs your answer** are held until you choose **Marketplace collects**, **Me (seller)**, or **Don't send**. A bulk bar lets you apply one answer to all remaining channels.

These settings are shared with **Reports › Sales Tax › Channel Tax Settings** in SKU.io.

### Step 3: Choose what to send

* **Send sales dated on or after** sets the history start date. SKU.io recommends the start of last year, since most states look back over the previous calendar year.
* Choose a **default Numeral tax category** for taxable lines and a **Shipping & handling category**. Individual products can be assigned their own categories later, individually or in bulk. See the [Product Categories](https://docs.numeral.com/essentials/product-categories.md) reference for the available codes.
* Sales to tax-exempt customers are always sent as not taxable.

### Step 4: Review and turn on sending

1. Review the summary, using each row's **Edit** link if needed.
2. Choose **Send history and new sales** (history goes out in the background, with new sales first) or **New sales only** (history can be sent later from Settings).
3. Click **Turn on sending**.

Once sending is on, new and changed sales reach Numeral within about a minute. Sales that can't be sent appear under **Needs action**, grouped by cause.

***

## Part 3: Let Numeral read from SKU.io (optional)

The Numeral connection can hold a SKU.io Personal Access Token. Numeral uses it to look up your customers, orders, invoices, and credits in SKU.io when reviewing your filings. The integration works without it — SKU.io pushes sales to Numeral either way.

1. In SKU.io, go to **Settings → Developer → Personal Access Tokens** and click **Create Token**.
2. Name it (for example, `Numeral`), choose an expiration, and grant **Read** on **Sales Orders**, **Customers**, and **Accounting**.
3. Click **Create Token** and copy the value — SKU.io shows it only once.
4. In the Numeral dashboard, open the SKU.io connection (from **Connections**, choose **SKU.io access token** in the row's menu), paste the token, and click **Verify & save token**. Numeral checks the token against your SKU.io account before storing it.

> [!NOTE]
>
> A token acts as the SKU.io user who created it and never exceeds that user's role. If you set an expiration, create a new token before it lapses and paste it into the Numeral connection to replace the old one.

***

## What SKU.io sends

* **Every sale and credit from every channel**, including wholesale and B2B orders created in SKU.io.
* **Edited or cancelled sales** are re-sent. Editing a sale from an already-filed period triggers a warning in SKU.io that the change will appear on the next filing.
* **Credits** go to Numeral as refunds, dated on the credit date. If that period is already filed, the refund is applied to the next filing.
* **Held sales** are never sent. SKU.io lists each one with its reason — for example a channel that still needs a tax-responsibility answer, a sale before the start date, or an invalid ship-to state — and sends it automatically once the reason clears. See SKU.io's [Why sales are held](https://www.sku.io/docs/guides/integrations/numeral/why-sales-are-held/) guide.

### Live tax calculation (optional)

With **Live tax calculation** enabled in SKU.io's Numeral settings, Numeral calculates tax on B2B portal and manual orders from the warehouse and ship-to address instead of a flat rate. Each order is committed to Numeral once, when it is invoiced. Until it is enabled, those orders keep their flat rate and appear under **Needs action**.

### Reconciliation

The **Reconciliation** tab on the SKU.io connection compares what SKU.io sent with what Numeral recorded, by month and ship-to state, and flags rows where the counts or amounts differ. See SKU.io's [Reconcile with Numeral](https://www.sku.io/docs/guides/integrations/numeral/reconcile-with-numeral/) guide.

***

## Changing settings later

From the **Settings** tab of the Numeral integration in SKU.io you can:

* **API key** — view the masked key, test the connection, or replace the test key with the production key.
* **Sending** — pause or resume sending.
* **Live tax calculation** — turn real-time calculation on or off for B2B portal and manual orders.
* **Channels** and **What to send** — adjust tax-responsibility answers, the start date, and default categories.
* **Disconnect Numeral** — stops sending and keeps history in SKU.io. Nothing is deleted in Numeral.

> [!TIP]
>
> SKU.io's own guides cover the SKU.io side in more detail, each with a short walkthrough video: [Connect Numeral](https://www.sku.io/docs/guides/integrations/numeral/connect-numeral/), [Why sales are held](https://www.sku.io/docs/guides/integrations/numeral/why-sales-are-held/), and [Reconcile with Numeral](https://www.sku.io/docs/guides/integrations/numeral/reconcile-with-numeral/).

***

## Troubleshooting

> **The connection test fails in SKU.io**
>
> Confirm you pasted the full key from the Numeral connection (`sk_test_...` or `sk_prod_...`) with no surrounding spaces. If you regenerated keys in Numeral, paste the new one from the **Settings** tab in SKU.io.

> **Sales are missing from Numeral**
>
> Open the Numeral integration in SKU.io and check **Needs action** and the **Records** tab. Held sales show the reason they were not sent; a sale rejected by Numeral shows Numeral's response. Fix the cause (usually the ship-to address) and click **Retry**.

> **Numeral shows more sales than SKU.io sent**
>
> A sales channel is probably connected to Numeral directly as well as through SKU.io. Disconnect it in Numeral, or set that channel to **Don't send** in SKU.io, so it is not counted twice.

> **Numeral rejected the SKU.io access token**
>
> Numeral verifies the token against the SKU.io account whose subdomain you entered. Check that the token was copied in full, has not expired or been revoked in SKU.io, and was created in the same SKU.io account.

***

## Need help?

Reach out to your Numeral implementation contact or email [support@numeralhq.com](mailto:support@numeralhq.com).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.