👩‍💻 Developer Resources

OvoCRM API & Webhook dokümantasyonu

REST API, Webhook, SDK’lar (Node/Python/PHP/Go), OAuth2, rate limit, Idempotency-Key, If-Match versiyon kontrolü.
Açık standartlara uygun, geri uyumlu, türkçe örneklerle.

Hızlı Başlangıç →Endpoint Listesi

🚀 Hızlı Başlangıç

5 dakikada ilk API çağrını yapabilirsin.

1. API Key oluştur

OvoCRM panelinde Ayarlar → API & Webhook menüsüne git, yeni API key oluştur. (Master role gerekir.)

2. İlk isteği gönder

curl -X GET 'https://api.ovocrm.com/api/companies' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json'

3. Webhook kaydet

curl -X POST 'https://api.ovocrm.com/api/webhooks' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "event": "invoice.created",
    "url": "https://yourapp.com/webhooks/invoice",
    "secret": "your-hmac-secret"
  }'

📚 Endpoint Listesi

Authentication

API erişimi için JWT veya OAuth2. API key tek başına yetmez — kullanıcı bağlamı gerekli (multi-tenant).

POST/api/auth/loginEmail + parola ile JWT al
POST/api/auth/refreshRefresh token ile yenile
POST/api/auth/api-keyLong-lived API key oluştur (Master only)

Companies (Cari)

Müşteri/tedarikçi cari hesap CRUD. Multi-tenant scope otomatik.

GET/api/companiesCari listesi (pagination + filter)
POST/api/companiesYeni cari oluştur (Idempotency-Key zorunlu)
GET/api/companies/{id}Cari detay
PUT/api/companies/{id}Cari güncelle (If-Match versiyon kontrolü)
DELETE/api/companies/{id}Cari sil (soft delete)

Invoices (Fatura)

Satış faturası — e-Fatura/e-Arşiv otomatik ayrım, KDV hesap, UBL-TR üretimi.

GET/api/invoicesFatura listesi
POST/api/invoicesYeni fatura (otomatik e-Fatura/e-Arşiv)
POST/api/invoices/{id}/sendGİB’e gönder
GET/api/invoices/{id}/ublUBL-TR XML indir

Orders (Sipariş)

Sipariş yönetimi — fiyat onayı, stok rezervasyonu, sevkiyat planı.

GET/api/ordersSipariş listesi
POST/api/ordersSipariş oluştur
POST/api/orders/{id}/confirmOnayla → sevkiyata hazır
POST/api/orders/{id}/shipİrsaliye + e-İrsaliye oluştur

Products & Inventory (Ürün/Stok)

Ürün katalog + çoklu depo stok + lot/seri takip.

GET/api/productsÜrün listesi
POST/api/productsYeni ürün
GET/api/inventory/{productId}Depo bazlı stok
POST/api/inventory/adjustStok düzeltme (audit log)

Webhooks

20+ olay için webhook — invoice.created, order.shipped, payment.received vb. HMAC imza ile güvenli.

GET/api/webhooksKayıtlı webhook’ları listele
POST/api/webhooksYeni webhook kaydet
DELETE/api/webhooks/{id}Webhook iptal

📦 SDK’lar

Node.js / TypeScript

npm install @ovocrm/sdk

Python

pip install ovocrm

PHP

composer require ovocrm/sdk

Go

go get github.com/ovocrm/sdk-go

✅ Best Practices

Idempotency-Key kullan

POST isteğinde header olarak UUID v4 gönder. Aynı key 24 saat içinde tekrar gelirse aynı sonucu döner — duplicate fatura/sipariş riski yok.

If-Match versiyon kontrolü

PUT isteğinde If-Match: 'currentVersion' header gönder. Concurrent edit varsa 409 döner. Veri kaybı önlenir.

Rate limit'i takip et

Standart plan 60 istek/dakika · Profesyonel 200/dk · Enterprise 1000/dk. X-RateLimit-Remaining header'ı oku, 429 alırsan backoff yap.

Pagination

Listeleme endpoint'leri ?page=1&limit=50 kullanır. Max limit 200. cursor-based pagination da var (?cursor=eyJpZCI6...) büyük datasetler için.

Webhook HMAC doğrula

Webhook secret ile X-Ovo-Signature header'ı HMAC-SHA256 doğrula. Replay önlemek için X-Ovo-Timestamp + 5dk pencere kontrol et.

Multi-tenant scope

JWT token'da tenantId var. Cross-tenant istek 403 döner. API key tek tenant'a bağlı.

Sorularını cevaplayalım

Custom entegrasyon, on-prem deployment, white-label SDK — kurumsal kullanım için bizimle iletişime geç.

Developer Desteğine Yaz →API Modülünü İncele