Geliştiriciler / API

    Orbit CashFlow'u harici sistemlerinize entegre etmek için salt okunur REST API referansı.

    Giriş

    Orbit CashFlow public API'si, şirketinizin finansal verilerini harici sistemlere çekmek için tasarlanmış salt okunur bir REST API'dir. Her istek, API anahtarının bağlı olduğu şirket/kiracı kapsamında değerlendirilir.

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

    Kimlik Doğrulama

    API anahtarınızı her istekte x-api-key header'ı ile gönderin.

    x-api-key: orbit_live_xxx

    Şirket yöneticileri API anahtarlarını şuradan oluşturup iptal edebilir: Ayarlar → Şirket → API Anahtarları.

    • Tam anahtar yalnızca oluşturulduğu anda bir kez gösterilir. Hemen kopyalayıp güvenli bir yerde saklayın.
    • Mevcut anahtarlar salt okunurdur (read yetkisi).

    Örnek anahtar

    orbit_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

    Uç Noktalar

    Tüm uç noktalar GET isteğidir ve JSON döndürür. Aşağıdaki yolları temel URL'nin sonuna ekleyin.

    MetodYolAçıklamaSorgu parametreleri
    GET/public-api/accountsHesapları listele
    • pageparams.accounts.page
    • limitparams.accounts.limit
    • sortByparams.accounts.sortBy
    • sortOrderparams.accounts.sortOrder
    • searchparams.accounts.search
    • typeHesap tipine göre filtrele.
    • isActiveYalnızca aktif hesapları getirmek için true.
    • currencyPara birimi koduna göre filtrele (ör. TRY, USD, EUR).
    GET/public-api/categoriesKategorileri listele
    • pageparams.categories.page
    • limitparams.categories.limit
    • sortByparams.categories.sortBy
    • sortOrderparams.categories.sortOrder
    • searchparams.categories.search
    • typeKategori tipine göre filtrele (income/gelir veya expense/gider).
    • parentIdÜst kategori ID'sine göre filtrele.
    • rootOnlyYalnızca üst seviye kategorileri getirmek için true.
    • isActiveYalnızca aktif kategorileri getirmek için true.
    • includeSystemSistem kategorilerini dahil etmek için true.
    GET/public-api/contactsKişileri listele
    • pageparams.contacts.page
    • limitparams.contacts.limit
    • sortByparams.contacts.sortBy
    • sortOrderparams.contacts.sortOrder
    • searchparams.contacts.search
    • typeKişi tipine göre filtrele (müşteri veya tedarikçi).
    • isActiveYalnızca aktif kişileri getirmek için true.
    • cityŞehir adına göre filtrele.
    GET/public-api/budgetsBütçeleri listele
    • pageparams.budgets.page
    • limitparams.budgets.limit
    • sortByparams.budgets.sortBy
    • sortOrderparams.budgets.sortOrder
    • searchBütçe adına göre ara.
    • periodTypeBütçe dönem tipine göre filtrele.
    • statusBütçe durumuna göre filtrele.
    • startDateFromBaşlangıç tarihine göre filtrele (başlangıç), ISO 8601.
    • startDateToBaşlangıç tarihine göre filtrele (bitiş), ISO 8601.
    GET/public-api/budget-plansKurumsal bütçe planlarını (V2) listele
    GET/public-api/budget-plans/:planId/linesBir bütçe planının satırlarını, dönem ve departman kırılımıyla dışa aktar
    • versionIdBelirli bir plan versiyonu; verilmezse en son versiyon kullanılır.
    GET/public-api/invoicesMüşteri faturalarını listele
    • skipAtlanacak kayıt sayısı.
    • takeDöndürülecek maksimum kayıt sayısı.
    • statusFatura durumuna göre filtrele.
    GET/public-api/transactionsİşlemleri listele
    • pageparams.transactions.page
    • limitparams.transactions.limit
    • sortByparams.transactions.sortBy
    • sortOrderparams.transactions.sortOrder
    • searchparams.transactions.search
    • accountIdHesap ID'sine göre filtrele.
    • categoryIdKategori ID'sine göre filtrele.
    • contactIdKişi ID'sine göre filtrele.
    • typeİşlem tipine göre filtrele.
    • statusİşlem durumuna göre filtrele.
    • statusesBirden fazla duruma göre filtrele (virgülle ayrılmış).
    • startDateBaşlangıç tarihine göre filtrele, ISO 8601.
    • endDateBitiş tarihine göre filtrele, ISO 8601.
    • minAmountMinimum tutar.
    • maxAmountMaksimum tutar.
    • tagsEtiketlere göre filtrele (virgülle ayrılmış veya tekrarlanan).
    • isRecurringYalnızca tekrarlayan işlemleri getirmek için true.
    • orgUnitIdsDepartman ID'lerine göre filtrele (virgülle ayrılmış).
    GET/public-api/transactions/:idTekil işlem detayı getir

    Hata Yanıtları

    API standart HTTP durum kodlarını döndürür.

    StatusMeaning
    401Eksik, geçersiz veya iptal edilmiş API anahtarı.
    403API anahtarı gerekli yetkiye sahip değil.
    404Kaynak, anahtarın bağlı olduğu şirkette/kiracıda bulunamadı.

    Örnek İstekler

    Aşağıdaki komutları kopyalayıp yapıştırabilirsiniz. orbit_live_xxx kısmını kendi API anahtarınızla değiştirin.

    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

    Webhooklar

    Webhooklar, kaydettiğiniz uç noktalara gerçek zamanlı olay bildirimleri gönderir. Şirket yöneticileri webhook'ları şuradan oluşturup yönetebilir: Ayarlar → Şirket → Webhooklar.

    Olay tipleri

    Bir webhook kaydederken aşağıdaki olay tiplerinden bir veya daha fazlasını seçin:

    • transaction.created Bir işlem oluşturulduğunda gönderilir.
    • invoice.created Bir fatura oluşturulduğunda gönderilir.
    • budget.created Bir bütçe oluşturulduğunda gönderilir.

    Payload

    Her teslimat şu şekle sahip bir JSON POST'tur:

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

    Header'lar

    Her istekte aşağıdaki header'lar bulunur:

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

    İmza doğrulama

    Raw istek gövdesini webhook secret'ınızla HMAC-SHA256 ile hashleyerek teslimatları doğrulayın.

    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

    Hesaplanan hex digest değerini X-Orbit-Signature header'ındaki sha256= sonrasındaki değerle karşılaştırın.