Skip to main content

SASOM Partners API

The SASOM Partners API lets partner sellers list products, price them, fulfil orders and ship into the SASOM warehouse programmatically.

Overview​

  • Listings — create and reprice ask (instant sell) and pre-order listings, and cancel them
  • Pricing — read the lowest live price per SKU, one SKU at a time or 100 per request, plus a catalog snapshot + delta feed for keeping a local price mirror
  • Orders — list your processing and settled orders, confirm them, set tracking, confirm shipping, and download shipping labels
  • Warehouse — send ready-to-ship (R2S) batches into the SASOM warehouse

Base URL​

https://partners.sasomapi.com

Production is the only environment exposed to partners. There is no partner-facing sandbox — if you need one for integration testing, ask your SASOM account manager.

Getting started​

  1. Get credentials — ask your SASOM account manager for an api_key and secret. See Authentication.
  2. Verify them — call a read-only endpoint and confirm you get a 200.
  3. Build — start with the Quick Start Guide.
curl -sS https://partners.sasomapi.com/partner/processing/orders \
-u "$SASOM_API_KEY:$SASOM_API_SECRET"

Before you write any code​

Five things about this API surprise most integrators. Each is covered in detail later, but reading them now will save you a debugging session:

  1. There is no response envelope. No success field, no data wrapper. The body is the object each endpoint documents, at the top level. Branch on the HTTP status code. See Error Handling.
  2. Auth failures return 401, 403 or 500 — and never 429. A missing header is 401; an unrecognised api_key is a 500 (our authorizer fails instead of denying — a known defect); a wrong secret and a rate-limit denial are both 403, with no Retry-After. So a 500 on the auth path usually means a bad credential, not a SASOM outage. See Authentication.
  3. The rate limit is 200 requests per 60 seconds per credential, across all endpoints. It is low on purpose — use the bulk and catalog endpoints rather than crawling.
  4. Writes are not idempotent. No endpoint takes an idempotency key. Retrying PUT /partner/confirm/order can deduct a fee twice; retrying a create makes a second listing. See Order Management.
  5. Prices below the floor are clamped, not rejected. Post an ask at 10 and you get a 201 and a live listing at 50. Validate prices before sending.

Endpoint map​

AreaEndpoints
ListingsPOST /partner/list/ask · POST /partner/list/preorder · PUT /partner/edit/listing · PUT /partner/edit/preorder · PUT /partner/cancel/listing
PricingGET /partner/lowest/{sku} · POST /partner/lowest/bulk · GET /partner/catalog/manifest · GET /partner/catalog/delta
OrdersGET /partner/processing/orders · GET /partner/settled/orders · GET /partner/{order_id} · GET /partner/payout/{order_id} · GET /partner/live/listings/{type}
OperationsPUT /partner/confirm/order · PUT /partner/confirm/preorder · PUT /partner/update/shipping · PUT /partner/update/tracking · GET /partner/label/{orderId}
WarehousePOST /partner/batch/r2s

There is no partner endpoint for cancelling or refunding an order once it is in fulfilment, and no webhook or callback mechanism. Order state is discovered by polling GET /partner/processing/orders. Cancellations and refunds are handled by SASOM operations — contact your account manager.

Amounts and units​

Every price, payout and fee is a Thai baht amount, not satang. 5500 means ฿5,500.

Need help?​