Entegrasyon Dokümanı · v1

Firma Arşiv API

OSGB'nizin verdiği API anahtarıyla İSG evraklarınızı kendi ERP, DMS veya kalite sisteminizden listeleyin, indirin ve yönetin.

Anahtarınızı OSGB'nizden alın

Anahtar, OSGB yönetim panelindeki Arşiv → API Erişimi ekranından firmanız için üretilir ve yalnız bir kez gösterilir. Hangi işlemleri yapabileceğiniz (okuma, yükleme, silme) OSGB tarafından belirlenir. Anahtarı bir şifre gibi saklayın; sızdığından şüphelenirseniz OSGB'nizden yenilenmesini isteyin.

1

Kimlik doğrulama

Her istekte anahtarı Authorization başlığında gönderin. Temel adres:https://isgpratik.com/api/v1/firma

curl -s https://isgpratik.com/api/v1/firma/ben \
  -H "Authorization: Bearer isgp_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

Yanıt, anahtarın bağlı olduğu firmayı ve kapsamını döner. Anahtar hiçbir zaman URL'de taşınmaz; yalnız HTTPS üzerinden gönderin.

2

Uç noktalar

YöntemYolKapsamAçıklama
GET/benokuAnahtarın bağlı olduğu firma ve yetkiler. Bağlantı testi için.
GET/arsiv/klasorlerokuFirmanın görebildiği klasörler (kilitli klasörler hariç).
GET/arsivokuDosya listesi. Parametreler: klasor_id, sonra, limit, sayfa.
GET/arsiv/{id}okuDosya detayı + 10 dakikalık imzalı indirme bağlantısı.
GET/arsiv/{id}/indirokuDoğrudan indirme (302 yönlendirme; curl -L).
POST/arsivyazDosya yükleme (multipart/form-data: file, klasor_id).
DELETE/arsiv/{id}silYalnız firmanın kendi yüklediği dosyayı siler.

Kapsamlar: oku her anahtarda vardır; yaz ve sil OSGB tarafından açılır. Kilitli klasörler ve içindeki dosyalar hiçbir uçta görünmez.

3

Dosyaları listeleme ve artımlı senkron

sonra parametresi (ISO 8601) yalnız o andan sonra eklenen dosyaları döner; son senkron zamanınızı saklayıp periyodik çekmek için yeterlidir. klasor_id=root kök dosyaları, bir klasör id'si o klasörü, parametre yoksa tüm dosyaları listeler. Sayfalama: limit (1-500, varsayılan 100) ve sayfa.

# Son senkrondan sonra eklenen dosyalar (artımlı)
curl -s "https://isgpratik.com/api/v1/firma/arsiv?sonra=2026-10-01T00:00:00Z&limit=200" \
  -H "Authorization: Bearer isgp_..."
{
  "dosyalar": [
    {
      "id": "3f2c…",
      "klasor_id": "9a1b…",
      "dosya_adi": "Risk Degerlendirmesi 2026.pdf",
      "dosya_boyutu": 482113,
      "etiketler": [],
      "firma_id": "…",
      "firma_adi": "Örnek Metal Sanayi A.Ş.",
      "firma_yukledi": false,
      "created_at": "2026-10-03T08:12:44.000Z"
    }
  ],
  "toplam": 1, "sayfa": 1, "limit": 200, "toplam_sayfa": 1
}

firma_yukledi true ise dosyayı firmanız (portal veya API) yüklemiştir vesil kapsamıyla silinebilir; false ise OSGB yüklemiştir ve salt okunurdur.

4

İndirme

Dosya içeriği doğrudan depolama sunucusundan iner. Detay ucu 10 dakika geçerli imzalı bir bağlantı verir; /indir ucu aynı bağlantıya 302 ile yönlendirir. Bağlantıyı saklamayın, her indirmede yeniden isteyin.

# Seçenek A: JSON içinde imzalı bağlantı (10 dk geçerli)
curl -s https://isgpratik.com/api/v1/firma/arsiv/3f2c… -H "Authorization: Bearer isgp_..."

# Seçenek B: doğrudan dosyaya yönlendirme
curl -L -o evrak.pdf https://isgpratik.com/api/v1/firma/arsiv/3f2c…/indir \
  -H "Authorization: Bearer isgp_..."
5

Yükleme ve silme

Yükleme multipart/form-data ile yapılır. PDF, Word, Excel ve görsel dosyalar kabul edilir; içerik imzası doğrulanır. Tek istek gövdesi en fazla 4,5 MB olabilir (platform sınırı; aşılırsa 413 döner). Daha büyük evraklar OSGB panelinden yüklenir. Yükleme OSGB'nin ortak arşiv kotasından düşer ve kilitli klasörlere yapılamaz. Yanıt 201 ve { dosya } döner.

curl -s -X POST https://isgpratik.com/api/v1/firma/arsiv \
  -H "Authorization: Bearer isgp_..." \
  -F "[email protected]" \
  -F "klasor_id=9a1b…"        # isteğe bağlı; 'root' veya boş = kök

Silme yalnız firmanızın yüklediği dosyalarda çalışır (firma_yukledi: true). OSGB'nin yüklediği evraklar için 403 SALT_OKUNUR döner.

curl -s -X DELETE https://isgpratik.com/api/v1/firma/arsiv/3f2c… \
  -H "Authorization: Bearer isgp_..."
6

Hata kodları

Tüm hatalar aynı gövdeyle döner:

{ "error": "Bu anahtarın 'sil' yetkisi yok.", "error_code": "KAPSAM" }
error_codeHTTPAnlamı
AUTH401Anahtar yok, biçimi bozuk veya tanınmadı.
ANAHTAR_IPTAL401Anahtar OSGB tarafından iptal edilmiş veya yenilenmiş.
FIRMA_PASIF403Firma pasif ya da arşivlenmiş; erişim kapalı.
PAKET403OSGB paketi geçerli değil; erişim askıda.
KAPSAM403Anahtarda bu işlem için yetki yok (yaz / sil).
SALT_OKUNUR403Dosyayı OSGB yüklemiş; API ile silinemez.
NOT_FOUND404Dosya veya klasör yok ya da firmanın kapsamı dışında.
VALIDATION400Parametre veya dosya doğrulaması başarısız.
KILITLI403Hedef klasör kilitli; yükleme yapılamaz.
KOTA413OSGB arşiv kotası dolu.
RATE_LIMIT429Anahtar başına dakikalık istek sınırı aşıldı; Retry-After başlığına bakın.
STORAGE500Depolama bağlantısı üretilemedi veya dosya yazılamadı.
7

Limitler ve güvenlik

  • Anahtar başına dakikada 60 istek sınırı vardır; yanıt başlıklarında X-RateLimit-Remaining ile kalan hakkı izleyin. İndirme bağlantısı isteği de sayılır; yalnız dosya baytlarının aktarımı (depolama sunucusundan) sayılmaz. 429 alınca Retry-After kadar bekleyin.
  • Anahtar sunucuda yalnız özet (hash) olarak saklanır; kaybolursa yenisi üretilir, eskisi anında geçersiz olur. Firma pasifleştirildiğinde, arşivlendiğinde veya OSGB paketi sona erdiğinde erişim kendiliğinden kapanır.
  • Her istek (IP, zaman, işlem, dosya) OSGB'nin görebildiği bir erişim günlüğüne yazılır. Evraklar kişisel veri içerebilir; aktardığınız sistemde KVKK yükümlülükleriniz devam eder.
Sorularınız için OSGB'nizle veya İSG Pratik destek ile iletişime geçin.