Out: catalogue and stock
Pull with GET requests. Poll with updated_since, or react to stock.updated webhooks.
A developer connects your site once. After that, stock flows out and orders flow into your books.
| Item | Detail |
|---|---|
| Who it is for | Businesses with a custom-built site or app, and the developer who builds it |
| Plan | Professional and Enterprise plans |
| Permission | Manage integrations |
| Direction | Catalogue and stock out to the site. Orders in. Product pictures can come in from the site. |
| Not for you if | You run WooCommerce. Use the WooCommerce connection instead. |
The site never writes stock. Simplebks stays the source of truth.
Optional. In Settings, Integrations, Developer API, choose the Online stock location your site sells from. Leave it unset to expose total stock.
The Catalogue integration readiness card counts missing and duplicate SKUs. Fix them first: the API identifies products by SKU.
Create an API key. Start with a Test key while you build.
Your site calls GET /products and GET /stock, and can use updated_since for incremental sync.
Your site calls POST /orders with a stable reference and an Idempotency-Key, then PATCH /orders/:orderNumber for payment, fulfilment or cancellation.
Add an endpoint for order.updated and stock.updated so your site stays current without polling.
Create a Live key, swap it into your server settings and revoke the Test key.
Use this if your site is where product names, descriptions and pictures are first written. Find it under Settings, Integrations, Developer API, Import product details from your website.
products (or data). For more pages, return nextCursor; Simplebks asks for the next page with ?cursor=.externalId (or id), sku, name and sellingPrice (zero or more).description, categoryName, brandName, tags, imageUrl (or image, or images[0].url) and status of active or inactive. Stock in the feed is ignored.{
"schemaVersion": "1",
"products": [
{ "externalId": "p-100", "sku": "TEE-BLUE-M", "name": "Blue tee", "sellingPrice": 5000,
"description": "Cotton tee", "categoryName": "Tops", "status": "active" }
],
"nextCursor": null
}
Pull with GET requests. Poll with updated_since, or react to stock.updated webhooks.
POST /orders books a sale at once. Strict SKU matching: an unknown SKU is refused with 422.
Webhooks tell your site when an order changes, including when staff change it in Simplebks.
| You see | Do this |
|---|---|
| 402 PLAN_UPGRADE_REQUIRED | The business is not on the Professional or Enterprise plan. |
| 403 INSUFFICIENT_SCOPE | Edit the key scopes: revoke and create a key with the scope you need. |
| 422 on POST /orders | Read the errors array. It names each item with a missing or unknown SKU or a bad quantity. |
| Orders appear but not in the books you expect | Check you used a Live key. Test key orders are flagged TEST. |
| Catalogue test fails | The feed address must be HTTPS and return JSON with a products array within 12 seconds. |
What Simplebks stores and how you take it back.
Your site takes payment with its own gateway, then reports it with a payment.confirmed event so Simplebks settles the order.
No. Stock moves only through orders you send and activity inside Simplebks.
No. It is optional and only for bringing product details from your site into Simplebks, on request.
Use a Test key. Orders are flagged TEST in Web Orders and stay out of your real figures.
A non-technical owner can create the key and hand it to the developer, who does the rest.
Start free and hand your developer an API key.