Sales channels
Store › Channels lists your products wherever your customers look, from the catalogue and the stock count you already have. Each channel is the channel’s own account, in your name: you connect it in the channel’s own screens and accept its terms there. Tuppence then keeps your listings, prices and stock in step with it.
Channels list your live store only. In test mode you can connect a channel’s own test account where it has one (Google’s test account, TikTok’s sandbox shop); the others say Connects in live mode.
The channels
Section titled “The channels”| Channel | How shoppers buy | What it costs |
|---|---|---|
| Google (free listings and local listings) | On your store’s checkout | Free. Tuppence charges nothing extra |
| Instagram and Facebook | On your store’s checkout, from a tagged post or the shop | Free. Tuppence charges nothing extra |
| TikTok Shop | On TikTok, which takes the money and pays you out | TikTok’s referral fee on each sale (9 % in the UK, 6 % in the US). Tuppence charges nothing extra |
| Pinterest and Snapchat | On your store’s checkout | Free. Tuppence charges nothing extra |
| YouTube | Your Google listing covers YouTube Shopping ads | Free |
A channel’s fees are always the channel’s own. They show on the order and in your books as that channel’s, never as Tuppence’s fees.
A channel that is still waiting for its approval shows Coming soon on its card.
What Tuppence keeps in step
Section titled “What Tuppence keeps in step”| What | How fast |
|---|---|
| Price and stock | Sent within a minute or two of the change. A sale at the till counts too |
| A new or changed product, its photos and words | At the next sync, within a few minutes |
| Everything, checked against the channel | Every night: anything the channel lost is sent again |
| A channel’s own order (TikTok Shop) | Into your orders as it is paid, taking stock from the shop it is sent from |
| Tracking | Sent to the channel once, when you mark the parcel shipped |
Only published products go, with the words that passed your store’s claims check. A channel that
takes payment itself is sent 0 once you are down to your last unit (the reserve, which you can
change on the channel’s page), so it can’t sell what you no longer have.
If a channel turns a product down, the channel’s page groups its problems in plain words, each with one link to the field that fixes it.
The API
Section titled “The API”curl -sS "https://api.tuppence.ai/v1/reports/channels?from=2026-10-01&to=2026-10-31" \ -H "Authorization: Bearer $TUPPENCE_SECRET_KEY"import { Tuppence } from "@tuppence/node";
const tuppence = new Tuppence(process.env.TUPPENCE_SECRET_KEY);const report = await tuppence.channelReports.retrieve({ from: "2026-10-01", to: "2026-10-31" });console.log(report.totals.net);import osfrom tuppence import Tuppence
tuppence = Tuppence(os.environ["TUPPENCE_SECRET_KEY"])report = tuppence.channel_reports.retrieve(**{"from": "2026-10-01", "to": "2026-10-31"})print(report.totals.net)GET /v1/sales_channels: your connections, withPOST …/{id}/pauseand…/resume.GET /v1/listings: each variant on each channel, its state and problems, withPOST …/{id}/excludeand…/includeto keep one off a channel or put it back.GET /v1/reports/channels: per channel, orders, units, gross, discounts, refunds,channel_fees(estimatedandfinalapart) and net, with impressions and clicks where the channel reports them. The same figures as Store › Channels › Performance.
Connecting and disconnecting a channel is a person’s, in the dashboard. No key, agent or the assistant can do it.
Agents and the assistant
Section titled “Agents and the assistant”| Tool | Does |
|---|---|
list_sales_channels, list_listings, get_listing_issues, channel_report | Read the channels, their listings, their problems and what each sold |
resync_listing | Send a listing to its channel again, as it is now |
set_product_channels | Put a product on a channel, or keep it off. It stays on your store |
fix_listing_issue | Fix a problem that is a product field: a barcode, or the details a category needs. What a product is made of is a claim, and a person approves it |
pause_channel | Stop sending to a channel until you resume it |
cancel_channel_order | The assistant only: cancel a TikTok Shop order, with the channel’s reason. The channel refunds its buyer. A person approves it with a fresh second factor |
Buyer messages, reviews and channel emails are only ever read as information: nothing in them is taken as an instruction.
Events
Section titled “Events”| Event | When |
|---|---|
store.channel_connected | A channel was connected |
store.channel_updated | Its settings or status changed (paused, resumed, needs reconnecting) |
store.channel_disconnected | It was disconnected. Its listings’ history is kept |
store.channel_error | It keeps refusing what Tuppence sends |
listing.live, listing.rejected, listing.removed | A listing changed state on its channel |
order.created | A channel’s own order came in (source: online, its channel in metadata.channel) |
No event carries a channel’s credentials.