Skip to content

Rechnungen abrufen ​

Gibt eine paginierte Liste aller Rechnungen des Unternehmens zurück. Die Liste enthält Rechnungsköpfe ohne Positionen – für die vollständigen Positionen verwendest du den Details-Endpoint.

Request ​

GET /api/oauth/v2/resource/invoices

HeaderWert
AuthorizationBearer {access_token}

Query-Parameter ​

ParameterTypPflichtBeschreibung
offsetintegerNeinStartposition (Standard: 0, Min: 0)
limitintegerNeinAnzahl Ergebnisse (Standard: 50, Min: 1, Max: 200)
createdSincestring (ISO 8601)NeinNur Rechnungen, die ab diesem Zeitpunkt angelegt wurden (createdAt >=)
createdUntilstring (ISO 8601)NeinNur Rechnungen, die bis zu diesem Zeitpunkt angelegt wurden (createdAt <=)
updatedSincestring (ISO 8601)NeinNur Rechnungen, die ab diesem Zeitpunkt geändert wurden (updatedAt >=). Neu angelegte Rechnungen kommen mit, weil der Änderungszeitpunkt beim Anlegen gesetzt wird.
updatedUntilstring (ISO 8601)NeinNur Rechnungen, die bis zu diesem Zeitpunkt geändert wurden (updatedAt <=)
statusstringNeinKommaseparierte Liste (Standard: all). Erlaubte Werte: active, deleted. Ungültiger Wert → 400 validation_error. Details siehe Konventionen.
viewstringNeindefault (Standard) oder slim. slim liefert pro Rechnung nur die wichtigsten Felder – Details siehe Konventionen. Ungültiger Wert → 400 validation_error.

Hinweis: Für einen Abgleich genügt updatedSince – der Wert deckt neue und geänderte Rechnungen ab.

Hinweis: Formate, Zeitzonen-Verhalten, Sortierung im Filter-Modus, Cursor-Strategie und die meta.total-Falle gelten für alle Zeitstempel-Filter gleich – siehe Inkrementeller Abgleich.

Hinweis zu Löschungen: Rechnungen führen keinen eigenen Löschzeitpunkt, aber das Löschen setzt updatedAt. Eine gelöschte Rechnung bleibt über status=deleted sichtbar (Feld data[].deleted = true) und ist damit über updatedSince inkrementell erkennbar, statt aus der Liste zu verschwinden.

Response ​

Erfolg (200 OK) ​

json
{
  "data": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "sequence": 42,
      "formattedSequence": "RE-2026-0042",
      "name": "Rechnung an Anna Muster",
      "status": "open",
      "net": 100.00,
      "subTotal": 110.00,
      "gross": 110.00,
      "discount": 0.00,
      "outstandingBalance": 110.00,
      "invoicingDate": "2026-06-01",
      "paidAt": null,
      "timeForPayment": "2026-06-15",
      "isFullyPaid": false,
      "visible": true,
      "comment": null,
      "customer": {
        "id": "f0e1d2c3-b4a5-6789-fedc-ba9876543210",
        "firstName": "Anna",
        "lastName": "Muster"
      },
      "deleted": false,
      "createdAt": "2026-06-01T09:30:00+02:00",
      "updatedAt": "2026-06-05T14:10:00+02:00"
    }
  ],
  "meta": {
    "total": 128,
    "offset": 0,
    "limit": 50
  }
}

Response-Felder ​

FeldTypBeschreibung
dataArrayListe der Rechnungen
data[].idstring (UUID)Eindeutige ID der Rechnung
data[].sequenceinteger | nullLaufende Nummer der Rechnung
data[].formattedSequencestring | nullFormatierte Rechnungsnummer
data[].namestring | nullBezeichnung der Rechnung
data[].statusstring | nullStatus der Rechnung
data[].netnumber | nullNettobetrag
data[].subTotalnumber | nullZwischensumme
data[].grossnumber | nullBruttobetrag
data[].discountnumber | nullRabattbetrag
data[].outstandingBalancenumber | nullOffener Betrag
data[].invoicingDatestring | nullRechnungsdatum (YYYY-MM-DD)
data[].paidAtstring | nullZahlungsdatum (YYYY-MM-DD)
data[].timeForPaymentstring | nullZahlungsfrist (YYYY-MM-DD)
data[].isFullyPaidbooleanVollständig bezahlt
data[].visiblebooleanRechnung sichtbar
data[].commentstring | nullKommentar zur Rechnung
data[].customerobject | nullZugeordnete:r Kunde/Kundin
data[].customer.idstring (UUID)Kunden-ID
data[].customer.firstNamestringVorname
data[].customer.lastNamestringNachname
data[].deletedbooleantrue wenn die Rechnung gelöscht ist
data[].createdAtstring (ISO 8601) | nullErstellungszeitpunkt
data[].updatedAtstring (ISO 8601) | nullLetzter Änderungszeitpunkt
meta.totalintegerGesamtanzahl der Rechnungen
meta.offsetintegerAktuelle Startposition
meta.limitintegerAnzahl der zurückgegebenen Einträge

Hinweis zu Mandanten: Arbeitet dein Unternehmen mit dem Add-on Mandanten, liefert die Liste nur Rechnungen aus Mandanten, auf die der Besitzer-Benutzer deines API-Zugangs Zugriff hat und in denen er das Recht Rechnungen: Anzeigen hat. meta.total zählt nur diese Datensätze. Details: Konventionen.

Beispiele
bash
curl -X GET "https://my.offisy.at/api/oauth/v2/resource/invoices?offset=0&limit=50&createdSince=beispiel&createdUntil=beispiel&updatedSince=2026-04-15T10%3A00%3A00&updatedUntil=2026-04-15T10%3A00%3A00&status=all&view=default" \
  -H "Authorization: Bearer {access_token}"
Parameter
Zuerst Token anfordern

Mögliche Fehler ​

StatusCodeBeschreibung
400validation_errorEin Zeitstempel-Filter enthält einen ungültigen Wert
400validation_errorstatus enthält einen ungültigen Wert
400validation_errorview ist weder default noch slim
401invalid_clientUngültiger oder fehlender Access Token
403insufficient_scopeScope invoices nicht vorhanden

Offisy GmbH