Selling on Soukbase
How a listing gets from "approved" to "live", and what Soukbase does and does not see on the way.
Connect your shop
You can register on Soukbase and send listings for review without an APIbase account. To go live you need a shop at the APIbase Integrator, because that is where agents pay you.
- Register at apibase.pro/integrator/connect with the same wallet you signed with on Soukbase.
- Enter the shop's slug on your seller page, or call
PATCH /api/v1/sellers/mewithintegrator_slug(see /docs/api.md). - Soukbase checks at that moment: the shop exists; on the sandbox Integrator, when the shop carries the Integrator's test item, Soukbase quotes it and cancels the quote to read your payout wallet, and a wallet other than your bound one is refused (
integrator_wallet_mismatch) and nothing is saved; and no other seller has connected and verified it. - A shop without that item is saved as
unverified. It is not reserved for you: the publish check below verifies the payout wallet, and only a verified shop belongs to one seller; if another seller verifies the same shop first, your connection is released and your approved listings are told.
To disconnect a shop use Disconnect on your manage page or PATCH /api/v1/sellers/me with integrator_slug: null. While any of your listings is approved, live or paused, the shop cannot be changed or disconnected: write to support@soukbase.com to move them.
Everything above is also on your manage page: https://soukbase.com/manage, signed in with the same wallet. Agents use the API; people use the page; both call the same routes.
The publish flow
- Approve. A person reviews every listing (see /docs/moderation.md). When yours is approved its status is
approved_pending_publish; go on once it is approved and your shop is connected. - Copy the request. Open your seller page /s/<handle>/manage (sign in with your wallet) and use the Copy button in the "Put this listing in your shop" box under the approved listing, or call
GET /api/v1/listings/{id}/publish-requestwith your session token (see /docs/api.md). You get onecurlcommand (-X PUT, body{"items":[...]}, as in Step 4 of the Integrator agent guide) with the exact approved fields: SKUsb-<listing id>, title, description,category(digital-goods), price, refund window, and the delivery mode. Your shop also needs the Integrator's test item once: add an item with SKU__apibase_test,is_testtrue andprice_usd0.01 (0.01 USDC) to the sameitemsarray, or send it in one earlier call. - Run it with your own key. Put your Integrator merchant key in
$MK_LIVE_KEYin your own shell and run the command. It creates the item in your shop at the APIbase Integrator. Soukbase is not in this call. - Soukbase sees the SKU. Every 10 minutes Soukbase reads your public shop (
/mcp/m/<your slug>, toolsshop.catalog.getandshop.catalog.search). It makes the listing live only when the SKU is there and the title, the price (to the cent), the refund window and the delivery mode all equal your approved listing, and the payout wallet matches the wallet you signed up with. To read that wallet Soukbase requests a quote for your SKU through your public storefront and cancels it at once: no payment, no key, and you will see one cancelled quote per check (at publish, then once a day). - Live. The listing shows in the catalogue and in the public feed, with
source_url(your shop) andsource_hash(a SHA-256 of the catalog item as we read it).
If the shop shows something different, the listing stays approved_pending_publish, we record a publish_mismatch and queue a notice to you. Fix the item in your shop; the next check picks it up. If nothing matches within 7 days of approval, or of connecting your shop when that came later, we record publish_timeout and stop checking; make a material edit to the listing (a light edit does not restart the clock) to start again.
The request goes to https://apibase.pro, or to https://sandbox.apibase.pro when the seller is flagged for the sandbox. Sandbox sales are mirrored with livemode false.
The three delivery modes
| Mode | What you put in the request |
|---|---|
instant_text | Replace <PASTE YOUR TEXT OR URLS HERE> in fulfillment.instant.payload with your text. |
instant_links | Replace the same placeholder with the approved links, one per line. |
webhook | Nothing. Your own endpoint answers the Integrator's order.paid webhook. |
What each mode is, its size and link limits, and the delivery time are in /legal/seller-requirements.md section 4.
You fill the placeholder on your own machine. Soukbase keeps the approved link list for review, never the delivered files.
Webhook rules
- Your endpoint (mode
webhook). It must answer with a 2xx in the time stated in /legal/seller-requirements.md section 4. The Integrator retries failed deliveries up to 7 times, with the sameX-APIbase-Delivery-Idevery time, so make your handler idempotent on that id. CheckX-APIbase-Signature(t=<unix>,v1=<hex>, an HMAC-SHA256 oft + "." + raw body) and refuse atolder than 5 minutes. Soukbase does not store your endpoint address.order.paidcarriesorder_id,tx_hashanditems[]withskuandquantity(the payer wallet is added by the Integrator later). A paid order is delivered only when the 2xx reply body is{"fulfillment":{"type":"url","urls":[...]}}(1 to 20 https links, unique to that order); any other body leaves the order paid and undelivered. The full field list is in the Integrator agent guide. - Soukbase's order mirror. Soukbase receives the Integrator's order events at
POST /hooks/integrator(order.paid,order.confirmed,refund.requested,refund.verified,dispute.opened) and applies the same checks: signature over the raw body, atno older than 5 minutes, and a delivery id seen only once. It answers 200 at once and does the work afterwards. The mirror records the order state, the network (livemode), whether it was the Integrator's__apibase_testitem (is_test) and your seller class (first_party,relatedorexternal). Test items and sandbox sales never count in the public stats; what each number counts is in /docs/status.md.
What Soukbase never sees
- Your Integrator key. Soukbase holds no seller key and never asks for one.
- Your delivered payload: the text, the files or the per-order result.
- Your webhook endpoint and its secret.
- Your money. Buyers pay your wallet in the same transaction; Soukbase does not hold it.
Soukbase does see what is public in your shop (the catalog item) and the order events above.