Entwickler / API

    Nur-Lesen-REST-API-Referenz zur Integration von Orbit CashFlow.

    Einführung

    Die öffentliche Orbit-CashFlow-API ist eine Nur-Lesen-REST-API zum Abrufen der Finanzdaten Ihres Unternehmens für externe Systeme. Jede Anfrage gilt für das Unternehmen/den Mandanten, der dem API-Schlüssel zugeordnet ist.

    Base URLhttps://orbitcashflow.com/api/v1

    Authentifizierung

    Senden Sie Ihren API-Schlüssel bei jedem Request im Header x-api-key .

    x-api-key: orbit_live_xxx

    Unternehmensadmins können Schlüssel unter Einstellungen → Unternehmen → API-Schlüssel.

    • Der vollständige Schlüssel wird nur einmal bei der Erstellung angezeigt. Kopieren und bewahren Sie ihn sofort sicher auf.
    • Aktuelle Schlüssel sind nur lesend (read-Scope).

    Beispielschlüssel

    orbit_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

    Endpunkte

    Alle Endpunkte sind GET-Requests und geben JSON zurück. Hängen Sie die Pfade unten an die Basis-URL an.

    MethodePfadBeschreibungQuery-Parameter
    GET/public-api/accountsKonten auflisten
    • pageparams.accounts.page
    • limitparams.accounts.limit
    • sortByparams.accounts.sortBy
    • sortOrderparams.accounts.sortOrder
    • searchparams.accounts.search
    • typeNach Kontotyp filtern.
    • isActivetrue, um nur aktive Konten zurückzugeben.
    • currencyNach Währungscode filtern (z. B. TRY, USD, EUR).
    GET/public-api/categoriesKategorien auflisten
    • pageparams.categories.page
    • limitparams.categories.limit
    • sortByparams.categories.sortBy
    • sortOrderparams.categories.sortOrder
    • searchparams.categories.search
    • typeNach Kategorietyp filtern (income oder expense).
    • parentIdNach übergeordneter Kategorie-ID filtern.
    • rootOnlytrue, um nur Hauptkategorien zurückzugeben.
    • isActivetrue, um nur aktive Kategorien zurückzugeben.
    • includeSystemtrue, um Systemkategorien einzubeziehen.
    GET/public-api/contactsKontakte auflisten
    • pageparams.contacts.page
    • limitparams.contacts.limit
    • sortByparams.contacts.sortBy
    • sortOrderparams.contacts.sortOrder
    • searchparams.contacts.search
    • typeNach Kontakttyp filtern (customer oder supplier).
    • isActivetrue, um nur aktive Kontakte zurückzugeben.
    • cityNach Stadt filtern.
    GET/public-api/budgetsBudgets auflisten
    • pageparams.budgets.page
    • limitparams.budgets.limit
    • sortByparams.budgets.sortBy
    • sortOrderparams.budgets.sortOrder
    • searchNach Budgetname suchen.
    • periodTypeNach Budgetzeitraum filtern.
    • statusNach Budgetstatus filtern.
    • startDateFromNach Startdatum filtern (von), ISO 8601.
    • startDateToNach Startdatum filtern (bis), ISO 8601.
    GET/public-api/budget-plansUnternehmensbudgetpläne (V2) auflisten
    GET/public-api/budget-plans/:planId/linesZeilen eines Budgetplans nach Zeitraum und Abteilung exportieren
    • versionIdEine bestimmte Planversion; ohne Angabe wird die neueste Version verwendet.
    GET/public-api/invoicesKundenrechnungen auflisten
    • skipAnzahl der zu überspringenden Datensätze.
    • takeMaximale Anzahl zurückgegebener Datensätze.
    • statusNach Rechnungsstatus filtern.
    GET/public-api/transactionsTransaktionen auflisten
    • pageparams.transactions.page
    • limitparams.transactions.limit
    • sortByparams.transactions.sortBy
    • sortOrderparams.transactions.sortOrder
    • searchparams.transactions.search
    • accountIdNach Konto-ID filtern.
    • categoryIdNach Kategorie-ID filtern.
    • contactIdNach Kontakt-ID filtern.
    • typeNach Transaktionstyp filtern.
    • statusNach Transaktionsstatus filtern.
    • statusesNach mehreren Status filtern (kommagetrennt).
    • startDateNach Startdatum filtern, ISO 8601.
    • endDateNach Enddatum filtern, ISO 8601.
    • minAmountMindestbetrag.
    • maxAmountHöchstbetrag.
    • tagsNach Tags filtern (kommagetrennt oder wiederholt).
    • isRecurringtrue, um nur wiederkehrende Transaktionen zurückzugeben.
    • orgUnitIdsNach Abteilungs-IDs filtern (kommagetrennt).
    GET/public-api/transactions/:idEinzelne Transaktion abrufen

    Fehlerantworten

    Die API gibt standardmäßige HTTP-Statuscodes zurück.

    StatusMeaning
    401Fehlender, ungültiger oder widerrufener API-Schlüssel.
    403API-Schlüssel hat nicht den erforderlichen Scope.
    404Ressource im Unternehmen/Mandanten des Schlüssels nicht gefunden.

    Beispielanfragen

    Kopieren Sie die folgenden Befehle. Ersetzen Sie orbit_live_xxx durch Ihren eigenen API-Schlüssel.

    List accounts

    curl -H "x-api-key: orbit_live_xxx" https://orbitcashflow.com/api/v1/public-api/accounts

    List transactions (paginated)

    curl -H "x-api-key: orbit_live_xxx" "https://orbitcashflow.com/api/v1/public-api/transactions?page=1&limit=50"

    Get a single transaction

    curl -H "x-api-key: orbit_live_xxx" https://orbitcashflow.com/api/v1/public-api/transactions/00000000-0000-0000-0000-000000000000

    Webhooks

    Webhooks senden Echtzeit-Ereignisbenachrichtigungen an von Ihnen registrierte Endpunkte. Unternehmensadmins können Webhooks unter Einstellungen → Unternehmen → Webhooks erstellen und verwalten.

    Ereignistypen

    Wählen Sie beim Registrieren eines Webhooks einen oder mehrere der folgenden Ereignistypen:

    • transaction.created Wird gesendet, wenn eine Transaktion erstellt wird.
    • invoice.created Wird gesendet, wenn eine Rechnung erstellt wird.
    • budget.created Wird gesendet, wenn ein Budget erstellt wird.

    Payload

    Jede Zustellung ist ein JSON-POST mit dieser Struktur:

    {
      "id": "00000000-0000-0000-0000-000000000000",
      "event": "transaction.created",
      "createdAt": "2026-01-01T00:00:00.000Z",
      "data": {}
    }

    Header

    Jede Anfrage enthält die folgenden Header:

    X-Orbit-Event: transaction.createdX-Orbit-Signature: sha256=...

    Signaturprüfung

    Verifizieren Sie Zustellungen, indem Sie einen HMAC-SHA256 des Raw-Request-Bodys mit Ihrem Webhook-Secret berechnen.

    const crypto = require('crypto');
    
    const signature = crypto
      .createHmac('sha256', secret)
      .update(rawBody)
      .digest('hex');
    
    // Compare signature with the value after "sha256=" in X-Orbit-Signature

    Vergleichen Sie den berechneten Hex-Digest mit dem Wert nach sha256= im X-Orbit-Signature-Header.