Overview
A client-mode connector for a curated inventory and master-data slice of SAP Business One Service Layer OData v4 (/b1s/v2):
BASE_ADDRESS is the Service Layer root (https://{host}:50000/b1s/v2). Topics use erp/sap-b1/<object>/<verb>.
Service Layer requires a real company database and a session from
POST /Login. This template has not been verified against a live tenant. Prefer Hub secrets for CompanyDB / UserName / Password.Basic Syntax
Events
Auth
Session login (required before data calls):string
required
Company database name for Login. Prefer a Hub secret. Never commit the password or live DB name into git.
string
required
SAP Business One user for Login.
string
required
Password for Login. Prefer Hub
GET SECRET. Never commit.string
required
Session id from Login response (
SessionId / B1SESSION cookie). Required on all events after Login.string
required
Load-balancer cookie from Set-Cookie (often
.node1). Use the value your Service Layer returns.string
Item key for Getitemwarehousestock.
integer
OData
$top for list GETs (Items / BusinessPartners).- Point
BASE_ADDRESSathttps://{host}:50000/b1s/v2(TLS; trust the SL certificate in the lab). - Login with CompanyDB / UserName / Password (Hub secrets).
- Copy
SessionId→B1SESSIONandROUTEIDinto subsequent MQTT payloads. - Call GET Items / BusinessPartners; for receipt from production POST InventoryGenEntries with
BaseType: 202. - Logout.
{payload} — include Cookie fields in the same JSON envelope your broker expects, or set Cookie via header placeholders):
Try it
- Replace
YOUR_HOSTinBASE_ADDRESSand add the connector on a lab broker. - Publish login JSON to
erp/sap-b1/session/login. - Subscribe to
erp/sap-b1/session/login/response, then GET Items or BusinessPartners withB1SESSION/ROUTEID. - Optionally POST InventoryGenEntries for a known production order (
BaseType202). - Logout.
Recorded factory probes without a tenant: Help Portal / Service Layer API Reference HTTP 200, learning.sap login topic HTTP 200, placeholder host unreachable. Live CompanyDB session smoke is still required before status ready.

