Overview
Reselling lets you list another Komerza store’s products in your own store. When one of your customers buys, Komerza draws a unit from the supplier’s stock, charges it to a balance you hold with them, and hands the delivery straight to your customer. You never hold their stock, and you never front the money for units you have not sold.If your own store is on Komerza, none of this page applies to you. Your draws
are served internally and there is nothing to configure — set it all up from
Reselling in your dashboard instead.
Two ways to get stock
Both start the same way: apply to the supplier’s reseller programme from their customer dashboard, get approved, and fund a balance with them. Stock is paid for out of that balance either way.Buy up front
Buy a quantity now and download it as a text file. Nothing to build — the
units are yours to sell wherever you like.
Draw per sale
Your storefront calls Komerza at the moment it makes a sale, and gets a unit
back. Needs a store that can call out mid-checkout.
Buying up front
From the supplier’s customer dashboard, under Reselling: pick a product, choose a quantity, and confirm. The cost comes out of your balance and the units come straight back, downloadable as a text file with one unit per line. Nothing about this needs an integration. If your own shop is a Discord bot, a spreadsheet, or a marketplace listing, this is the whole thing.Suppliers can turn this off, in which case every sale has to draw at the time
through a delivery URL. It is on by default.
- Text-delivered products only. A file-delivered product cannot be handed over as a downloadable unit, though it still sells fine drawn per sale.
- The supplier’s delivery has to answer per unit. If it returns one response for the whole order, one unit arrives and the rest is refunded to your balance. Suppliers wanting to sell in bulk should return an
itemsarray — see Dynamic Delivery.
Drawing per sale
The rest of this page covers the other route: your store calls a delivery URL when it makes a sale, and Komerza draws a unit from the supplier at that moment.- You generate a delivery URL and paste it into your own product’s delivery configuration.
- A customer buys from you. Your store calls the delivery URL, Komerza draws a unit from the supplier, and returns it.
Your delivery URL
Generate it from the supplier’s customer dashboard, under Reselling. It looks like this:Why there is no signature
Delivery calls are not signed. Your store signs its outbound requests with its own secret, or does not sign at all, and Komerza has no way to verify a signature it did not issue the key for. Requiring one would mean nobody could integrate. The unguessable token takes its place. That is a deliberate trade: it is simpler to integrate and weaker than a signature, which is why the token is 256 bits, is never returned twice, and can be replaced at any time.The request
Your store sends aPOST with the same body Komerza’s own dynamic delivery uses, so if your platform already supports dynamic delivery you can point it at this URL and change nothing else.
string
required
The variant on your store that was sold. Komerza maps it to the supplier’s
variant through the listing you configured.
integer
required
How many units were sold. The response contains one entry per unit.
The response
200 OK with one entry per unit:
string[]
The delivered units, one entry per unit sold. Hand these to your customer.
string
The order raised on the supplier’s store. Quote it if you need to chase them
about a delivery.
number
What was charged to your balance, in the supplier’s currency.
integer
Units the supplier gave you free as a sample. These cost nothing.
items shape is the same one Komerza’s dynamic delivery accepts, so a Komerza store consuming this needs no translation.
Retries
lineItemId is the idempotency key. Calling again with the same one returns the units already drawn for it rather than drawing more — so a retry after a timeout is safe and cannot double-charge your balance.
Use a stable id from your own order. A fresh id on each attempt reads as a separate sale and draws again.
Failures
error
The draw was refused. The body carries a short reason.
Your balance is too low
Your balance is too low
Top it up from the supplier’s customer dashboard. Draws are charged at the
moment of sale, so a balance that runs out mid-day stops deliveries.
The supplier is out of stock
The supplier is out of stock
Nothing you can fix. Consider buying stock up front if they allow it, which
also protects you from them running out.
Your access was revoked
Your access was revoked
The supplier withdrew it. Stock you already bought outright is still yours.
The product is no longer offered
The product is no longer offered
They removed it from their reseller catalogue, or paused it.
The price rose above your ceiling
The price rose above your ceiling
If you set a maximum cost per unit on the listing, a supplier price rise
past it stops draws rather than quietly eating your margin.