Skip to content

Lagerbewegungen abrufen ​

Gibt eine paginierte Liste aller Lagerbewegungen des Unternehmens zurück.

Benötigte Lizenz

Dieser Endpoint erfordert die Lizenz Lagerverwaltung.

Request ​

GET /api/oauth/v2/resource/wares/movements

HeaderWert
AuthorizationBearer {access_token}

Query-Parameter ​

ParameterTypPflichtBeschreibung
offsetintegerNeinStartposition (Standard: 0)
limitintegerNeinAnzahl Ergebnisse (Standard: 50, Max: 200)
wareIdstring (UUID)NeinNur Bewegungen einer bestimmten Ware zurückgeben
typestringNeinKommaseparierte Liste von Bewegungstypen
directionstringNeinin oder out
fromstring (ISO 8601)NeinNur Bewegungen ab diesem Bewegungsdatum
untilstring (ISO 8601)NeinNur Bewegungen bis zu diesem Bewegungsdatum. Ein reines Datum (z.B. 2026-06-30) gilt bis Tagesende (23:59:59)
createdSincestring (ISO 8601)NeinInkrementelles Abgleich-Fenster, Startgrenze
createdUntilstring (ISO 8601)NeinInkrementelles Abgleich-Fenster, Endgrenze

Hinweis: from/until grenzen den fachlichen Zeitraum einer Bewegung ein, createdSince/createdUntil das Fenster eines inkrementellen Abgleichs. Beide Namenspaare filtern technisch auf dasselbe Bewegungsdatum, bleiben aber unabhängig nutzbar und lassen sich kombinieren: Sie werden UND-verknüpft, es gilt also immer die engste Grenze. from nach until liefert 400 validation_error. updatedSince, updatedUntil und deletedSince werden auf diesem Endpoint nicht unterstützt und ohne Fehler ignoriert.

Response ​

Erfolg (200 OK) ​

Beispiel: Abgang durch Rechnung

json
{
  "data": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "date": "2026-06-01T09:15:00+01:00",
      "type": "out_invoice",
      "customTypeName": null,
      "direction": "out",
      "amount": -3,
      "stockOld": 25,
      "stockNew": 22,
      "notice": null,
      "ware": "c3d4e5f6-a7b8-9012-cdef-012345678901",
      "consumer": null,
      "createdBy": "d4e5f6a7-b8c9-0123-defa-123456789012"
    }
  ],
  "meta": {
    "total": 340,
    "offset": 0,
    "limit": 50
  }
}

Beispiel: Abgang mit Verbraucher

json
{
  "data": [
    {
      "id": "e5f6a7b8-c9d0-1234-efab-234567890123",
      "date": "2026-06-02T11:00:00+01:00",
      "type": "out_customer",
      "customTypeName": null,
      "direction": "out",
      "amount": -1,
      "stockOld": 5,
      "stockNew": 4,
      "notice": null,
      "ware": "c3d4e5f6-a7b8-9012-cdef-012345678901",
      "consumer": "f0e1d2c3-b4a5-6789-fedc-ba9876543210",
      "createdBy": null
    }
  ],
  "meta": {
    "total": 340,
    "offset": 0,
    "limit": 50
  }
}

Response-Felder ​

FeldTypBeschreibung
dataArrayListe der Lagerbewegungen
data[].idstring (UUID)Eindeutige ID der Bewegung
data[].datestring (ISO 8601)Zeitpunkt der Bewegung
data[].typestringBewegungstyp, siehe Tabelle unten
data[].customTypeNamestring | nullAnzeigename, nur befüllt bei in_custom/out_custom
data[].directionstringin oder out
data[].amountnumberBestandsänderung, vorzeichenbehaftet (stockNew - stockOld). Abgänge sind negativ
data[].stockOldnumberBestand vor der Bewegung
data[].stockNewnumberBestand nach der Bewegung
data[].noticestring | nullNotiz zur Bewegung
data[].warestring (UUID) | nullID der betroffenen Ware, nachladbar über Ware anzeigen
data[].consumerstring (UUID) | nullID des Verbrauchers (z.B. bei Materialverbrauch), sofern vorhanden
data[].createdBystring (UUID) | nullID des Mitarbeiters, der die Bewegung ausgelöst hat
meta.totalintegerGesamtanzahl der Lagerbewegungen
meta.offsetintegerAktuelle Startposition
meta.limitintegerAnzahl der zurückgegebenen Einträge

Hinweis: amount ist vorzeichenbehaftet. Wer Zu- und Abgänge über mehrere Bewegungen aufsummiert, ohne das zu berücksichtigen, rechnet den Bestand falsch.

Bewegungstypen ​

WertBedeutung
inZugang
in_invoice_stornoZugang durch Rechnungsstorno
in_customFirmeneigener Zugangstyp, Anzeigename in customTypeName
in_purchaseZugang durch Wareneingang einer Bestellung
inventoryInventurkorrektur
out_invoiceAbgang durch Verrechnung auf einer Rechnung
out_customerAbgang, einem Kunden zugeordnet
out_lossAbgang durch Schwund
out_otherSonstiger Abgang
out_customFirmeneigener Abgangstyp, Anzeigename in customTypeName

Hinweis zu inventory: Die Richtung ergibt sich aus dem Vergleich von stockNew gegen stockOld, nicht aus dem Typnamen. Eine Inventurkorrektur kann sowohl einen Zugang als auch einen Abgang darstellen.

Beispiele
bash
curl -X GET "https://my.offisy.at/api/oauth/v2/resource/wares/movements?offset=0&limit=50&wareId=b2c3d4e5-f6a7-8901-bcde-f01234567890&type=beispiel&direction=beispiel&from=beispiel&until=beispiel&createdSince=beispiel&createdUntil=beispiel" \
  -H "Authorization: Bearer {access_token}"
Parameter
Zuerst Token anfordern

Mögliche Fehler ​

StatusCodeBeschreibung
400validation_errorUngültiger type/direction/wareId
400validation_errorfrom, until, createdSince oder createdUntil ist kein gültiges ISO-8601-Datum bzw. keine gültige Datum/Zeit-Angabe
400validation_errorfrom liegt nach until
401invalid_clientUngültiger oder fehlender Access Token
403insufficient_scopeScope wares nicht vorhanden
403insufficient_scopeLizenz Lagerverwaltung nicht vorhanden
404not_foundWare zu wareId nicht gefunden oder keine Berechtigung

Offisy GmbH