OpenAPI 3.1 · versie 2026-08-30

Lotzano Connect API

Deze pagina leest hetzelfde contractobject als de machineleesbare route. Endpoint, headers, recordtypen, limieten en antwoordcodes worden hier dus niet afzonderlijk als marketingcopy onderhouden.

Lokaal contract groen; staging vereist

Authenticatie, HMAC, replayvenster, payloadlimieten en duurzame idempotente verwerking zijn lokaal getest. Een publieke HTTPS-host, eenmalige sleutellevering en certificering van de concrete partnerimplementatie zijn nog niet lokaal te bewijzen.

Accepteer een idempotente, ondertekende batch canonieke records

POST /api/connect/v1/records

De host wordt pas bij staging of productie uitgegeven. De hostnaam in het OpenAPI-servertemplate is bewust een placeholder en geen werkzaam productieadres.

POST https://<door-Lotzano-uitgegeven-host>/api/connect/v1/records

Bearer én HMAC zijn verplicht

Lotzano controleert het Bearer-token, de SHA-256-HMAC over <timestamp>.<exacte requestbody> en een replayvenster van vijf minuten.

HeaderWaarde
AuthorizationBearer <eenmalig veilig uitgegeven token>
X-Lotzano-Connection-IdUUID van de goedgekeurde koppeling
X-Lotzano-Subscription-IdUUID van het actieve abonnement
X-Lotzano-Event-IdUnieke, stabiele idempotentiesleutel
X-Lotzano-TimestampISO 8601-datumtijd met offset
X-Lotzano-Signature64 kleine hextekens van de HMAC-SHA256

Nooit doen: plak tokens, HMAC-geheimen, wachtwoorden of complete Authorization-headers in de assistent, e-mail of een supportbericht.

Versiegebonden batch

500records per request
2 MiBmaximale exacte requestbody
{
  "apiVersion": "2026-08-30",
  "domain": "INVENTORY",
  "records": [
    {
      "objectType": "INVENTORY_LEVEL",
      "data": {
        "externalId": "inventory-123",
        "variantExternalId": "variant-123",
        "warehouseExternalId": "warehouse-main",
        "onHand": 24,
        "reserved": 2,
        "allocated": 0,
        "blocked": 0,
        "incoming": 10,
        "observedAt": "2026-09-01T10:00:00+00:00"
      }
    }
  ],
  "sentAt": "2026-09-01T10:00:00+00:00"
}

Dit is syntactische voorbeelddata, geen werkend token, klant-ID of productiehost.

Canonieke recordtypen

Een batch bevat één domein. Ieder recordtype moet werkelijk bij dat domein horen; anders weigert Lotzano de hele envelope.

PRODUCTMEDIASALES_UNITPRICE_LISTPRICEWAREHOUSEINVENTORY_LEVELORDERORDER_COMMANDFULFILLMENTRETURNINVOICE

De volledige zakelijke veldmapping blijft klantspecifiek. Een geldige JSON-structuur bewijst niet dat categorie, maat, kleur, pack, prijs of voorraad semantisch goed is toegewezen.

Antwoordcodes uit het contract

200Reeds eerder idempotent verwerkt
202Duurzaam geaccepteerd
400Headers, JSON, contract of replayvenster ongeldig
401Authenticatie of signature ongeldig
409Event-id is met andere inhoud hergebruikt
413Payload te groot
503Veilige geheime opslag tijdelijk niet beschikbaar
Exact contract: ook idempotente herhaling (200), veilige invoerfouten (400) en tijdelijke onbeschikbaarheid van de geheime opslag (503) staan expliciet in hetzelfde machineleesbare contract.

Uitgaande webhooks

Het contract beschrijft een ondertekende ConnectWebhookEnvelope. De ontvanger moet dezelfde timestamp-plus-exacte-body-HMAC controleren en pas daarna idempotent verwerken.

  • Controleer Content-Type en begrens de body vóór parsing.
  • Vergelijk de HMAC timing-safe.
  • Weiger verlopen timestamps en hergebruikte event-ID’s met andere inhoud.
  • Geef pas 2xx terug nadat het event duurzaam is vastgelegd.

Klaar voor de volgende stap?

Gebruik de assistent voor uitleg of start een technische beoordeling zonder geheimen te delen.

Open assistent