ERP API ve Entegrasyon Mimarisi: Geliştirici Rehberi
ERP API entegrasyonu; REST kaynak modeli, OAuth 2.0 kimlik doğrulama, webhook ile olay bildirimi ve idempotency + hız limiti disiplini üzerine kurulur — bu dört katman doğru tasarlandığında entegrasyon güvenli ve ölçeklenebilir olur.
ERP API nedir ve neden gerekir?
ERP API, dış uygulamaların ERP verisine ve iş mantığına programatik olarak erişmesini sağlayan sözleşmedir. E-ticaret sitesi, mobil saha uygulaması, muhasebe yazılımı, pazaryeri veya BI aracı; siparişi, stoğu, cari hesabı ve faturayı manuel giriş olmadan ERP ile senkron tutar. Doğru tasarlanmış bir API, kopyala-yapıştır hatalarını ve gecikmeli veriyi ortadan kaldırarak tek doğru kaynağı (single source of truth) korur.
Modern ERP ürünlerinin çoğu (Odoo, ERPNext, Logo, Netsis, SAP, Microsoft Dynamics) bir web servisi katmanı sunar. Fark, bu katmanın ne kadar açık, belgeli ve olay tabanlı olduğudur. Bir ERP seçerken API dokümantasyonunun kalitesi, en az fiyat kadar belirleyicidir.
Entegrasyon yöntemleri karşılaştırması
| Yöntem | Model | Gecikme | Ne zaman? |
|---|---|---|---|
| REST / JSON | Kaynak (resource) tabanlı, istek-yanıt | Düşük | Genel amaçlı, yeni entegrasyonlar |
| Webhook | Olay tabanlı (push) | Gerçek zamanlı | Sipariş, ödeme, stok bildirimleri |
| GraphQL | Tek uç, istemci sorgusu | Düşük | Fazla/eksik veri (over/under-fetch) sorunu |
| SOAP / XML | Sözleşmeli (WSDL), istek-yanıt | Orta | Eski kurumsal servislerle uyum |
| Dosya / EDI | Toplu (batch) transfer | Yüksek | Büyük hacimli mutabakat, B2B EDI |
Pratikte hibrit kullanım yaygındır: temel işlemler REST ile senkron çalışır, kritik olaylar webhook ile bildirilir ve gece toplu dosya aktarımı mutabakat için yedek görevi görür.
RESTful API tasarım ilkeleri
- Kaynak adlandırma: Fiil değil isim ve çoğul kullanın:
/api/v1/customers,/api/v1/orders/123. - Versiyonlama: Kırıcı değişiklikler için URL veya başlıkta sürüm tutun (
/v1,/v2); eski sürümü bir süre yaşatın. - HTTP durum kodları: 200/201 başarı, 400 geçersiz istek, 401/403 yetki, 404 bulunamadı, 409 çakışma, 429 hız limiti, 5xx sunucu.
- Sayfalama: Büyük listelerde
limit/offsetveya cursor tabanlı sayfalama zorunludur. - Alan filtreleme:
?fields=ve?updated_since=ile trafik ve gecikme düşürülür.
POST /api/v1/customers
Content-Type: application/json
Authorization: Bearer <access_token>
Idempotency-Key: 6f1c-...-a2
{ "name": "Örnek A.Ş.", "tax_no": "1234567890", "email": "[email protected]" }
201 Created
{ "id": "cust_123456", "created_at": "2026-08-02T09:00:00Z" }Kimlik doğrulama ve yetkilendirme
| Yöntem | Durum | Güçlü yön | Dikkat |
|---|---|---|---|
| API Key | Stateless | Basit, sunucudan sunucuya | Sızarsa tam erişim; düzenli döndürün |
| OAuth 2.0 | Token tabanlı | Scope, kısa ömür, yenileme (refresh) | Kurulum karmaşıklığı |
| JWT | Stateless, imzalı | Ölçeklenebilir, taşınabilir iddia (claim) | İptal (revocation) zor; kısa ömür verin |
| mTLS | Sertifika tabanlı | Yüksek güven, B2B | Sertifika yönetimi yükü |
Yetkilendirmede en az yetki ilkesi uygulanır: her istemciye yalnızca ihtiyacı olan kaynak ve işlem (okuma/yazma) scope olarak verilir. Muhasebe entegrasyonu stok siparişi oluşturamaz.
Webhook ve olay tabanlı entegrasyon
Sık kullanılan ERP olayları:
order.created— yeni sipariş oluştuinvoice.paid— fatura tahsil edildistock.low— stok kritik eşiğin altına düştüproduction.completed— üretim emri tamamlandı
Webhook güvenliği için ERP, gövdeyi (payload) gizli anahtarla imzalar; alıcı HMAC-SHA256imzasını doğrulamadan veriyi işlemez. Ağ kesintilerine karşı ERP başarısız çağrıları yeniden dener; bu yüzden alıcı uç idempotent olmalı ve üstel geri çekilme (exponential backoff) beklenmelidir:
bekleme = min(taban × 2^(deneme−1), üst_sınır) + jitter
Örnek (taban 1 sn, üst sınır 60 sn): 1. deneme 1 sn, 2. deneme 2 sn, 3. deneme 4 sn... rastgele jitter ile eş zamanlı yığılma (thundering herd) önlenir.
Hız limiti, hata yönetimi ve idempotency
- Rate limit: Örn. 100 istek/dakika. Aşımda
429 Too Many RequestsveRetry-Afterbaşlığı döner. - Idempotency-Key: Yazma isteklerinde mükerrer kaydı önler (çift fatura/çift stok hareketi engellenir).
- Yapılandırılmış hata: Hata gövdesinde makine-okur kod ve insan-okur mesaj birlikte döner.
- Loglama ve izleme: Her isteğe correlation-id verilir; hata ayıklama uçtan uca izlenebilir.
Entegrasyon mimarisi desenleri
| Desen | Açıklama | Uygun ölçek |
|---|---|---|
| Noktadan noktaya (point-to-point) | Her sistem doğrudan diğerine bağlanır | 2-3 entegrasyon |
| iPaaS / entegrasyon platformu | Merkezî hub, hazır konnektörler | Orta-yüksek, çok sistem |
| Olay tabanlı (event bus) | Yayınla-abone ol (pub/sub), gevşek bağlı | Yüksek hacim, gerçek zamanlı |
Bağlantı sayısı arttıkça noktadan noktaya mimari "spagetti"ye döner; sistem sayısı N için olası bağlantı N×(N−1)/2 formülüyle patlar. Bu noktada merkezî bir entegrasyon katmanı (iPaaS veya event bus) bakım maliyetini düşürür.
2026 API eğilimleri
- API-first ERP: Arayüz ile API aynı servisi tüketir; her özellik baştan API üzerinden sunulur.
- Event-driven mimari: Webhook yerini kalıcı olay akışlarına (streaming) bırakıyor.
- AI ajanları için araç (tool) uçları: ERP işlemleri, dil modeli ajanlarının çağırabileceği yapılandırılmış araçlar olarak açılıyor.
- OpenAPI/AsyncAPI standardı: Makine-okur şema, otomatik istemci üretimini yaygınlaştırıyor.
Öneriler ve şartname maddeleri
- ERP seçiminde açık ve versiyonlanmış REST API ile güncel OpenAPI dokümanı şart koşun.
- Kritik olaylar için webhook + HMAC imza ve yeniden deneme politikası talep edin.
- Idempotency-Key desteği ve hız limiti başlıkları sözleşmede yer alsın.
- Kimlik doğrulamada OAuth 2.0 / kısa ömürlü token ve scope bazlı yetki isteyin.
- Vendor lock-in riskine karşı toplu dışa aktarım (export) ve mutabakat uçları zorunlu tutun.
Entegrasyon mimarinizi planlarken güvenlik ve yetkilendirme tarafını ERP güvenliği ve KVKK yazımızla, veri akışını ise ERP-CRM entegrasyonu içeriğiyle birlikte değerlendirin.
Merak edilenler
ERP API için REST mi SOAP mı tercih edilmeli?
Yeni entegrasyonlarda REST/JSON standarttır; hafif, okunabilir ve tarayıcıdan mobil uygulamaya kadar her yerde tüketilebilir. SOAP/XML yalnızca eski kurumsal sistemlerle (ör. bazı SAP servisleri) uyum gerektiğinde kullanılır. Gerçek zamanlı bildirim gerekiyorsa REST yerine webhook veya event tabanlı akış eklenir.
Webhook ile polling arasındaki fark nedir?
Polling, istemcinin belirli aralıklarla API sorgulayıp değişiklik olup olmadığına bakmasıdır; gereksiz istek üretir ve gecikme yaratır. Webhook ise olay gerçekleştiğinde ERP'nin sizin uç noktanıza HTTP çağrısı yapmasıdır — düşük gecikme, düşük yük. Kritik akışlarda webhook, yedek olarak periyodik mutabakat (reconciliation) sorgusuyla birlikte kullanılır.
API entegrasyonunda idempotency neden önemlidir?
Ağ hataları ve retry mekanizmaları aynı isteğin birden çok kez ulaşmasına yol açabilir. İstemci her isteğe benzersiz bir Idempotency-Key gönderir; ERP aynı anahtarı görürse işlemi tekrar işlemez, ilk sonucu döner. Bu, çift fatura veya çift stok hareketi gibi mükerrer kayıtları önler.
ERP API güvenliği nasıl sağlanır?
Katmanlı yaklaşım gerekir: taşımada TLS 1.3, kimlik doğrulamada OAuth 2.0 veya kısa ömürlü JWT, webhook doğrulamasında HMAC-SHA256 imza, ayrıca hız limiti (rate limit) ve IP kısıtı. Yetkilendirme en az yetki (least privilege) ilkesiyle scope bazlı verilir; API anahtarları düzenli döndürülür (key rotation).
Süreçleriniz kutuya sığmıyorsa, size özel ERP geliştirelim.
İhtiyacınızı yazın; süreçlerinizi analiz eder, size özel ERP mi yoksa mevcut ERP’nizin özelleştirmesi mi gerektiğini birlikte belirler, 1 iş günü içinde döneriz. Hazır paket değil — kaynak kodu sizin.
Talep Oluştur