Get started · 3 of 15
Choose your path
Decide whether your platform syncs inventory on Path A or fulfills orders on Path B, and which subscription moves your stock.
Which path you build depends on whether your system fulfills orders or only keeps stock counts, and it decides which events your platform receives. On both paths, your platform pushes each seller’s listings to Snapcaster, which handles buyer browse, checkout, and payment.
| What differs | Path A, inventory sync | Path B, order fulfillment |
|---|---|---|
| Who fulfills | The seller in the Snapcaster dashboard | Your platform in its own system |
| What your platform receives | inventory.adjusted deltas | order.created and lifecycle events |
| What you learn about buyers | Nothing | Name, email, and shipping address |
| Your subscription | inventory | orders, or both |
| Typical fit | A POS or inventory system | An order-fulfillment system |
Choose Path A when your system owns on-hand counts but does not model or fulfill orders. Choose Path B when your system receives and fulfills orders. A company whose sellers need both paths registers one platform for each, because each platform has one subscription.
Events each subscription receives
Section titled “Events each subscription receives”Snapcaster sends a platform only the events its subscription includes.
Every subscription can also request webhook.test.
| Event | What it reports | Path A | Path B | |
|---|---|---|---|---|
inventory | orders | both | ||
order.created | Order created | No | Yes | Yes |
inventory.adjusted | Inventory adjusted | Yes | No | Yes |
order.cancelled | Order cancelled | No | Yes | Yes |
order.refunded | Order refunded | No | Yes | Yes |
order.updated | Order updated | No | Yes | Yes |
order.cancellation_request.created | Cancellation request created | No | Yes | Yes |
order.cancellation_request.withdrawn | Cancellation request withdrawn | No | Yes | Yes |
order.cancellation_request.resolved | Cancellation request resolved | No | Yes | Yes |
order.dispatch_overdue | Order dispatch overdue | No | Yes | Yes |
order.change_request.created | Change request created | No | Yes | Yes |
order.change_request.resolved | Change request resolved | No | Yes | Yes |
webhook.test | Webhook test | Yes | Yes | Yes |
order.addition_request.created | Add-on request created (not yet available) | No | Yes | Yes |
order.addition_request.resolved | Add-on request resolved (not yet available) | No | Yes | Yes |
order.addition_offer.updated | Add-on offer updated (not yet available) | No | Yes | Yes |
Choose between orders and both
Section titled “Choose between orders and both”Both Path B subscriptions send every order event, and both also sends inventory.adjusted for each stock change.
Exactly one event must move your stock, so choose by which part of your system deducts stock today.
If your order desk deducts stock for every channel’s orders, take orders, because the desk deducts a Snapcaster order the same way when order.created arrives.
| Your subscription | Choose it when |
|---|---|
orders | Your order desk deducts stock when it records an order, as it does for other channels |
both | A separate stock service applies signed quantity changes, and your order desk only picks, packs and ships |
Stock change for each event
Section titled “Stock change for each event”This table is the stock rule for every subscription.
Apply each change before you return 2xx for its event, because that 2xx acknowledges the stock a sale moved.
For an event that moves no stock, store it, then return 2xx.
| Event | inventory | orders | both |
|---|---|---|---|
inventory.adjusted | Add delta | Not sent | Add delta |
order.created | Not sent | Subtract each line’s quantity | No change |
order.updated with line_substituted | Not sent | Add back each original_sku_id and subtract each substitute_sku_id, once per substitution id | No change |
order.cancelled | Not sent | Add back each line’s quantity | No change |
order.refunded with restock: true | Not sent | Add back each line’s quantity | No change |
order.refunded with restock: false | Not sent | No change | No change |
| Any other event | No change | No change | No change |
delta is negative for a sale and positive for a cancellation or a restocking refund.
On order.refunded, restock is the seller’s statement that the refunded cards came back and can be sold again.
With both, the same cancellation or restocking refund also sends a positive inventory.adjusted, so add the units back from that event only.
Every order.updated lists all of the order’s substitutions so far, so apply each substitution once, keyed by its id.
For each of its lines, add back quantity units of original_sku_id.
For a line with action: "substitute", also subtract quantity units of substitute_sku_id.
A line with action: "remove" means the same report removed that line.
No order.cancelled follows for it, so this event is the only one that returns its units.
Deducting on both events counts each sale twice, and deducting on neither leaves sold cards in your stock. After an event moves your stock, push a newer snapshot to release the hold on sold units.
What you build on each path
Section titled “What you build on each path”Every platform first builds three shared blocks: Sync a full catalog, Build a webhook receiver, and Webhook signing. Each path page then opens with its build checklist.
- Path A, inventory sync, for the
inventorysubscription. - Path B, order fulfillment, for the
ordersandbothsubscriptions.
One subscription for each platform
Section titled “One subscription for each platform”Snapcaster sets your subscription when it onboards your platform, and GET /me returns it as subscription.
To change it, email info@snapcaster.gg.
One subscription covers every seller on your platform, and each seller connects to one platform.
To serve sellers on different subscriptions, register a second platform through Onboard your platform.
Each platform has its own webhook endpoint and signing secret, and in the sandbox its own seller and marketplace API key.
In production, name the platform when you ask Snapcaster to admit a seller, so the seller connects to the platform with the subscription it needs.
Need help?
The email includes this page and selects sandbox as the environment. Update it if you need help with production.
Never include an API key or signing secret in the message.