API Dokümanı

Taban adres: https://api.ekstreo.com · Son güncelleme: 07.11.2026

API her pakette açıktır; ek ücreti yoktur. Tüm uçlar JSON döner ve HTTPS gerektirir.

Kimlik doğrulama

Her firmanın bir API anahtarı vardır (firma eklenirken bir kez gösterilir). Anahtarı X-Api-Key başlığında gönderin. Anahtar yalnız kendi firmanızın verisini görür.

curl https://api.ekstreo.com/v1/accounts \
  -H "X-Api-Key: ekst_..."

Anahtarı tarayıcıya veya mobil uygulamaya koymayın: sunucu tarafında, arka plan işinde kullanın.

Uçlar

MetotUçNe yapar
GET /v1/banks Desteklenen bankalar ve her birinin istediği kimlik alanları.
GET /v1/connections Firmanın banka bağlantıları, durumları ve son çekim zamanları.
POST /v1/connections Yeni bağlantı ekler ve ilk çekimi hemen yapar.
PATCH /v1/connections/{id} Ad, istemci kimliği (externalRef) ve otomatik çekim ayarları.
PUT /v1/connections/{id}/credentials Banka bilgilerini günceller ve hemen dener.
POST /v1/connections/{id}/sync Şimdi çek (bankayı yormamak için kısa bekleme uygulanır).
POST /v1/connections/{id}/resume Durmuş bağlantıyı yeniden başlatır.
DELETE /v1/connections/{id} Bağlantıyı siler.
GET /v1/accounts Hesaplar, bakiyeler ve döviz cinsleri.
GET /v1/transactions/feed Yeni ve değişen hareketler (since, accountId, externalRef, limit).
GET /v1/audit Denetim kaydı: bağlantı eklendi, bilgiler güncellendi, banka reddetti.

Hareketleri artımlı okuma

Asıl uç /v1/transactions/feed: yalnızca yeni ve değişen hareketleri verir. Her yanıtta bir sonraki çağrıda kullanacağınız nextSince döner; onu saklayıp bir sonraki isteğe koyarsınız. Böylece aynı hareketi iki kez işlemezsiniz.

curl "https://api.ekstreo.com/v1/transactions/feed?since=2026-11-07T08:00:00Z&limit=200" \
  -H "X-Api-Key: ekst_..."

Neden "değişen" de var?

Banka bir hareketi sonradan iptal edebilir. Bu durumda kayıt silinmez; isCancelled alanı true olur ve hareket feed'e yeniden düşer. ERP tarafında güncelleme yapabilmeniz için kayıtların tekil anahtarı (externalId) değişmez.

Hareket alanları

AlanAçıklama
externalIdBankanın değişmeyen tekil anahtarı; tekrar çekimde çift kayıt olmaz.
bookingDate / bookingTimeİşlem tarihi ve (banka veriyorsa) saati.
valueDateValör tarihi.
amountİşaretli tutar: giriş +, çıkış −.
currencyISO para birimi (TRY, USD, EUR…).
balanceAfterİşlem sonrası yürüyen bakiye.
descriptionBanka açıklaması.
referenceNo / transactionCodeDekont/referans numarası ve işlem kodu.
counterpartyName / counterpartyIban / counterpartyTaxIdKarşı taraf bilgileri (cari eşleştirme için).
isCancelledBanka hareketi iptal ettiyse true; kayıt feed'e yeniden düşer.
importedAt / updatedAtKaydın ilk geldiği ve son değiştiği an; feed bu alana göre ilerler.
rawDataBankanın döndürdüğü ham kayıt (JSON).

Tasarım kararları

  • Tutar işaretlidir: giriş +, çıkış -. Banka hangi biçimde verirse versin ortak modele çevrilir; ayrı "borç/alacak" alanı yoktur.
  • Tekil anahtar garantilidir: externalId hesap içinde tekildir, tekrar çekimlerde çift kayıt oluşmaz.
  • Ham veri saklanır: bankanın döndürdüğü kayıt rawData içinde durur; sonradan yeni alan çıkarmak için bankayı tekrar sorgulamak gerekmez.
  • Okuma gecikmesi: feed, yazımı tamamlanmamış kayıtları vermemek için çok kısa bir gecikmeyle okur; bu sayede "since" ile ilerlerken hareket atlamazsınız.

Hatalar

Hatalar RFC 7807 (application/problem+json) biçiminde döner. 401 geçersiz anahtar, 404 başka firmaya ait kayıt, 409 kimlik bilgileri geçersiz (bağlantı durdurulmuş), 429 çok sık manuel senkronizasyon.

Ayrıntılı şema ve deneme için OpenAPI tanımı: https://api.ekstreo.com/openapi/v1.json