Connect your systems to the warehouse floor.
The InventoryHero REST API and signed webhooks connect your ERP, SAP middleware, e-commerce and reporting tools. Read items, stock and the movement ledger, post receipts and transfers, and hear about every move the moment it happens.
The OpenAPI document for code generators and API clients is at inventory.klovio.app/api/v4/openapi.json
GET /api/v4/items?externalRef=100042
Host: inventory.klovio.app
Authorization: Bearer ihk_…
200 OK
{
"data": {
"items": [{
"sku": "SKU-000214",
"name": "Nitrile gloves, box of 100",
"externalRef": "100042",
"uom": "box",
"status": "active"
}]
}
} What the API covers
39 endpoints in ten groups. Lists page with a cursor, and every call follows the same roles and rules as the app.
Items
Your catalog. Create and update items, look them up by ERP reference, export it all as CSV.
/itemsPOST/itemsGET/items/{id}PATCH/items/{id}GET/items/exportVendors
Suppliers, with ERP references. Deleting one keeps its history.
/vendorsPOST/vendorsGET/vendors/{id}PATCH/vendors/{id}DELETE/vendors/{id}Purchase orders
Create orders from your ERP as they are released, then receive against them.
/purchase-ordersPOST/purchase-ordersGET/purchase-orders/{id}PATCH/purchase-orders/{id}POST/purchase-orders/{id}/receiveStock
Balances, the movement ledger, and receiving, issuing, adjusting and transferring stock.
/stockGET/stock/ledgerPOST/stock/receivePOST/stock/issuePOST/stock/adjustPOST/stock/transferGET/adjustment-reasonsLots
Release, hold, quarantine or reject a lot.
/lotsPATCH/lots/{id}/statusSites and bins
Your warehouses and every bin in them.
/sitesGET/sites/{id}/locationsScan
Resolve any code: a GS1 label, an item barcode, a SKU, a serial or EPC, or a bin.
/scan/{code}Reports
Any report as JSON, or as Excel or PDF with ?format=.
/reports/{report}Webhooks
Create, update, test, rotate the secret and retry deliveries from code.
/org/webhooksPOST/org/webhooksPATCH/org/webhooks/{id}DELETE/org/webhooks/{id}POST/org/webhooks/{id}/rotate-secretPOST/org/webhooks/{id}/testGET/org/webhooks/{id}/deliveriesPOST/org/webhooks/{id}/deliveries/{deliveryId}/retryAPI tokens
List, create and revoke tokens.
/org/api-tokensPOST/org/api-tokensDELETE/org/api-tokens/{id}Safe by default
Scoped tokens
Give each integration its own token with the lowest role that does the job, then narrow it with scopes. Tokens can expire in 30, 90 or 365 days and revoke instantly.
Retries without double postings
Send an X-Request-Id with receipts and transfers. If a call times out and you retry, the first answer is replayed instead of receiving the stock twice.
ERP references
Store your ERP key on items, vendors and purchase orders, look records up with ?externalRef=, and get it back on every list, report, ledger row and webhook.
Only what changed
Pull changes since your last run with updatedSince and includeDeleted. Ledger rows never change once posted, so a window you have read is final.
Reports in any format
Every report comes back as JSON, or add ?format=xlsx or ?format=pdf to download it.
Audited like the app
Every change made through the API is written to the audit log under the token name, and the API can never do more than the token role could in the app.
Tokens and requests
Admins create tokens under Settings → API tokens. Pick a role (Admin, Manager or Viewer), untick the scopes the integration does not need, and copy the token: it is shown once and works for one workspace.
readEvery list, detail and report, the ledger, the truck schedulestock:writeReceive, issue, adjust, transfer, receive against a purchase order, gate check-insquality:writeLot status changescatalog:writeItems, vendors, categories, sites and bins, imports, label printingorders:writePurchase orders and pick ordersadminOrganization settings, users, API tokens, webhookshttps://inventory.klovio.app/api/v4Authorization: Bearer ihk_…{ "data": … } on success, { "error": { "code", "message", "field" } } on failurecursor back as ?cursor=. ?limit= is 50 by default, 200 at mostYYYY-MM-DDWebhooks
Set them up under Settings → Webhooks. Each webhook shows its health, the last 50 deliveries with the receiver reply and the exact payload sent. Send test, Retry, Rotate secret and Pause are one click.
POST https://your-system.example.com/inventoryhero
X-Klovio-Event: purchase_order.received
X-Klovio-Delivery: 01M4K4YHM335KQ1VNYH1ND8245
X-Klovio-Signature: t=1791600000,sig=5f1c…
{
"event": "purchase_order.received",
"attempt": 1,
"data": {
"poNumber": "PO-1042",
"externalRef": "4500012345",
"status": "partial",
"lines": [{ "sku": "SKU-000214", "qty": 24, "lotCode": "L2610-07" }]
}
} Answer with any 2xx within 10 seconds. Anything else is retried after 1 minute, 5 minutes, 15 minutes, 1 hour, 4 hours, 12 hours and 24 hours, always with the same id, so duplicates are easy to ignore. The signature in X-Klovio-Signature is the HMAC-SHA256 of t.body with your signing secret; reject anything older than five minutes.
Connecting SAP
Read the SAP integration guide →Every SAP installation is different, so Klovio delivers the SAP link as a scoped project with your SAP team. We work inside your integration platform (SAP Integration Suite, Boomi, MuleSoft) or provide the middleware.
File exchange
SAP exports purchase orders and InventoryHero imports them. InventoryHero exports receipts and stock and SAP imports them, daily or hourly.
Live link
SAP creates purchase orders through the API as they are released. Goods receipts, issues and stock corrections post to SAP through webhooks the moment they happen on the floor.
items.externalRefvendors.externalRefpurchaseOrders.externalReflotCodeuomVersioning
The current version is 4.12. Within a version we only add new fields, endpoints, events and optional parameters. Nothing is removed, renamed or given a different meaning. A change that could break a client ships as a new version, with the previous one kept running for at least twelve months and workspace admins told by email.
updatedSince, includeDeleted, since and until filters; signed webhooks with retries; token expiry and scopes; the OpenAPI document.Plan your integration with us.
Tell us which systems you need to connect. We scope it with your team and test against a staging workspace before anything touches production.
Talk to us