Developer API · Beta

Panelin yaptığı her şeyi, aynı kurallarla, kendi yazılımınızdan yapın.

Kumpara Developer API, e-ticaret sitelerini, ERP'leri, muhasebe yazılımlarını ve pazaryeri entegratörlerini Kumpara'ya bağlar. /v1 yüzeyi iç panelle aynı çekirdeği çağırır: aynı guard'lar, aynı defter satırları, aynı vergi ve tevkifat hesabı. API hiçbir kuralı gevşetmez.

  • Defter-güvenli: her para hareketi tek transaction, düzeltme her zaman ters kayıt
  • e-Belge dahil: kesme, iptal, gelen kutusu, mükellef sorgusu ve kontör aynı API'de
  • Türkiye'ye özel: satır bazlı tevkifat, KDV istisna kodu, çok para birimi ve kur snapshot'ı

Developer API şu anda kapalı beta aşamasındadır; genel erişim henüz açık değildir ve tarih verilmemektedir. Beta katılımcıları kendi taban adreslerini ve anahtarlarını bizden alır.

74
canlı uç Cariden e-belgeye, hepsi yetki korumalı.
28
ayrı yetki (scope) Anahtara yalnız işine yarayanı verirsiniz.
3
append-only defter Cari, nakit ve stok: UPDATE/DELETE yok.
1
anahtar = 1 şirket Şirketler arası sızıntı mimari olarak mümkün değil.

Ne yapabilirsiniz?

Aşağıdakilerin tamamı bugün çalışan uçlarla yapılır — yol haritası değil.

Sipariş zincirini uçtan uca kurun

Siparişi açın, irsaliyeyi sevk edin, faturayı kesip onaylayın, tahsilatı aynı çağrıda faturaya kapatın. Kısmi sevkiyat ve kısmi faturalama desteklenir; kalan miktar iptal edilmemiş faturalardan türetilir.

Muhasebe ve ERP senkronu

GET /v1/changes akışı değişen kaydın tipini ve kimliğini verir; ayrıntıyı kendi ucundan okursunuz. Akış panel, mobil uygulama ve API ayrımı yapmaz — kullanıcı arayüzden bir faturayı onayladığında da akışa düşer.

Stok seviyesini mutlak değerle yazın

POST /v1/stock-levels/actions/set sayım sonucunu doğrudan yazar; fark düzeltme hareketine dönüşür. Hareketleri salt-okunur defterden izler, varyantlı ürünleri barkodla eşlersiniz.

e-Fatura ve e-Arşiv gönderin

Onaylı faturadan tek çağrıyla e-belge kesilir; senaryo mükellef durumuna göre sunucuda seçilir. Gelen kutusunu senkronlar, XML/PDF indirir, ticari faturaya kabul/ret yanıtı verirsiniz. Entegratör adı hiçbir yanıtta geçmez.

Cari durumunu tek kaynaktan okuyun

Bakiye tek sayı yetmez: defter satırları (bu bakiye neden bu), açık kalemler (hangi fatura açık) ve yaşlandırma (ne kadar gecikmiş) ayrı uçlardır. Tahsilatı açık faturalara kapatır, çapraz kurda gerçekleşen kur farkını okursunuz.

Açılış devirlerini taşıyın

Cari açılış bakiyesi ve ürün açılış stoğu ayrı uçlarla girilir; yanlış girildiyse ters kayıt ucu vardır. Defterler append-only olduğu için hatalı açılışın tek düzeltme yolu budur.

Beş adımda ilk faturanız

Her yazma isteği üç başlık taşır: Authorization, Idempotency-Key, Content-Type.

  1. 1

    Anahtar üretin

    Uygulamada Ayarlar → API Anahtarları: ad, şirket ve yetkileri seçin. Düz anahtar yalnız bir kez görünür.

  2. 2

    Kim olduğunuzu doğrulayın

    GET /v1/me anahtarın bağlı olduğu işletmeyi, şirketi, ortamı ve yetkileri döndürür.

  3. 3

    Cariyi upsert edin

    VKN ya da cari kodu ile eşleştirin; kayıt varsa güncellenir, yoksa açılır.

  4. 4

    Faturayı kesip onaylayın

    approve: true ile oluşturma ve onay tek transaction'da olur; numara, cari borcu ve stok çıkışı birlikte doğar.

  5. 5

    Tahsilatı kapatın

    Ödemeyi oluştururken faturayı da verirsiniz: kasa defteri, cari defteri ve kapama aynı transaction'da yazılır.

Hızlı başlangıç

1. Anahtarınızı doğrulayın

Her istek Authorization: Bearer başlığıyla gelir. İlk çağrınız, anahtarın hangi işletmeye ve hangi şirkete bağlı olduğunu, hangi yetkileri taşıdığını söyler:

curl -s "https://api.kumpara.net/v1/me" \
  -H "Authorization: Bearer kp_live_a1b2c3d4_…"
{
  "data": {
    "tenant":    { "id": "…", "name": "Örnek Ticaret A.Ş.", "plan": "Pro" },
    "company":   { "id": "…", "legalName": "Örnek Ticaret A.Ş.", "baseCurrency": "TRY" },
    "apiClient": { "prefix": "kp_live_a1b2c3d4", "environment": "live",
                   "scopes": ["me:read", "contacts:write", "sales:write", "sales:approve"] }
  },
  "meta": { "requestId": "0HN…" }
}

GET /v1/capabilities ise bu şirkette e-belge bağlantısı var mı, kontör bakiyesi kaç, baz para birimi ne — akışınızı buna göre kurarsınız.

2. Cariyi dış kimliğinizle eşleyin

Kendi veritabanınızdaki müşteriyi her seferinde yeniden aramanız gerekmez: VKN ya da cari kodu ile upsert edin. Kayıt varsa güncellenir, yoksa açılır.

curl -s -X POST "https://api.kumpara.net/v1/contacts/actions/upsert?matchBy=taxNumber" \
  -H "Authorization: Bearer kp_live_…" \
  -H "Idempotency-Key: contact-4711-2026-09-23" \
  -H "Content-Type: application/json" \
  -d '{
        "name": "Örnek Gıda Ltd. Şti.",
        "type": "customer",
        "taxNumber": "1234567890",
        "preferredCurrency": "TRY",
        "paymentTermDays": 30
      }'

Yanıt { "data": { "id": "…", "name": "…", "created": true } } döner. created alanı kaydın yeni mi açıldığını, yoksa var olanın mı güncellendiğini söyler. matchBy yalnız taxNumber veya code olur.

3. Faturayı kesin ve onaylayın

Fatura satırında tutar alanı yoktur. Siz miktar, birim fiyat, iskonto ve KDV oranını gönderirsiniz; satır toplamı, tevkif edilen KDV, baz tutar ve belge numarası sunucuda üretilir.

curl -s -X POST "https://api.kumpara.net/v1/sales-invoices" \
  -H "Authorization: Bearer kp_live_…" \
  -H "Idempotency-Key: order-88213-invoice" \
  -H "Content-Type: application/json" \
  -d '{
        "contactId": "6f1c…",
        "currency": "TRY",
        "approve": true,
        "lines": [
          { "productId": "9a3e…", "quantity": 10, "unitPrice": 250, "vatRate": 20 },
          { "description": "Nakliye", "quantity": 1, "unitPrice": 150, "vatRate": 20 }
        ]
      }'
{
  "data": { "id": "c41b…", "number": "SF-2026-000412", "status": "approved", "approved": true },
  "meta": { "requestId": "0HN…" }
}

approve: true oluşturma ve onayı tek transaction'da yapar: belge numarası, cari borcu ve stok çıkışı birlikte doğar. Bu bir para mutasyonudur; bu yüzden anahtarınızda sales:write yanında sales:approve de olmalıdır — aksi hâlde 403 insufficient_scope alırsınız.

4. Tahsilatı kaydedin ve faturayı kapatın

curl -s -X POST "https://api.kumpara.net/v1/payments" \
  -H "Authorization: Bearer kp_live_…" \
  -H "Idempotency-Key: payment-88213" \
  -H "Content-Type: application/json" \
  -d '{
        "contactId": "6f1c…",
        "cashAccountId": "2b77…",
        "direction": "incoming",
        "amount": 3060,
        "invoiceType": "sales_invoice",
        "invoiceId": "c41b…"
      }'

Kasa defteri, cari defteri ve fatura kapaması aynı transaction'da yazılır. Birden çok faturaya dağıtmak için allocations[], sonradan kapatmak için POST /v1/payments/{id}/actions/allocate.

5. Değişiklikleri çekin

Karşı sistemi güncel tutmak için akışı düzenli çekersiniz. Akış değişen kaydın tipini ve kimliğini verir; ayrıntıyı kendi ucundan okursunuz.

curl -s "https://api.kumpara.net/v1/changes?since=2026-09-23T06:00:00Z&types=sales_invoice,payment" \
  -H "Authorization: Bearer kp_live_…"
{
  "data": [
    { "type": "sales_invoice", "id": "c41b…", "action": "created", "occurredAt": "2026-09-23T07:12:44Z" },
    { "type": "payment",       "id": "77af…", "action": "created", "occurredAt": "2026-09-23T07:13:02Z" }
  ],
  "meta": { "checkpoint": "2026-09-23T07:13:02Z", "nextCursor": null, "hasMore": false }
}

Bir sonraki çağrıda meta.checkpoint değerini since olarak verirsiniz — sınır dışlayıcıdır, aynı kayıt ikinci kez gelmez. Commit sırası ile damga sırası arasındaki boşluğa karşı beş dakikalık örtüşme bırakmanızı öneririz; okuma idempotent olduğu için tekrar gelen kayıt zararsızdır.

Temel sözleşme

Kimlik ve yetki

Anahtar Authorization: Bearer kp_live_… (ya da X-Api-Key) ile gönderilir. Anahtarın düz değeri saklanmaz — Kumpara yalnız SHA-256 özetini ve gösterim önekini tutar. Her anahtar tek şirkete kilitlidir; başka şirketin verisi mimari olarak dönmez. Anahtarın yetkisi, onu üreten kullanıcının rol yetkisini aşamaz.

Yetkiler {kaynak}:{eylem} biçimindedir ve yirmi sekiz tanedir:

Eylem Anlamı Örnek
read Listele / görüntüle contacts:read, stock:read
write Oluştur / düzenle products:write, sales:write
approve Onayla / iptal et / ters kayıt sales:approve, purchase:approve
issue, cancel, incoming e-Belge kesme, iptal, gelen kutusu edocuments:issue

Yetkisi olmayan uç 403 insufficient_scope döner ve eksik yetkiyi adıyla söyler.

Idempotency

Her yazma isteği Idempotency-Key başlığı ister. Anahtar, kaydı yazan transaction'ın içinde saklanır — dual-write yoktur. Aynı anahtar ikinci kez gelirse iş tekrar yapılmaz. Yanıt iki biçimden biridir: 409 idempotency_replayed (oluşan kaydı GET ile okursunuz) ya da 200 ile ilk yanıtın gövdesi ve replayed: true bayrağı. İkisi de "işlem zaten uygulandı" demektir; istemciniz her ikisini de başarı olarak ele almalıdır. Anahtarın kapsamı (işletme, API anahtarı, uç, anahtar) dörtlüsüdür: iki farklı entegratörün aynı anahtarı çakışmaz.

Para, kur ve sayısal tipler

Tutarlar numeric(19,4) olarak saklanır ve JSON'da string ondalık döner — kayan nokta yuvarlaması yaşanmaz. Tutar ile para birimi hiçbir zaman ayrılmaz.

Her finansal satır kendi kur snapshot'ını taşır: originalAmount, originalCurrency, exchangeRate, baseAmount, baseCurrency. Kur listesi sonradan güncellense bile geçmiş belge değişmez. Kuru exchangeRate alanıyla siz verebilirsiniz; göndermezseniz 1 kullanılır — çapraz kurlu bir belge kesiyorsanız bu alanı doldurun.

Sayfalama ve filtre

Listeler cursor ile sayfalanır; offset yoktur. Yanıt meta.nextCursor ve meta.hasMore taşır. Sayfa boyutu pageSize ile verilir: varsayılan 50, üst sınır 200. Delta çekmek için updatedAfter sorgu parametresi ya da /v1/changes akışı kullanılır.

Hatalar

Hatalar RFC 9457 application/problem+json biçimindedir ve kararlı bir code alanı taşır. Sözlük dondurulmuştur: dokümante edilen kod değişmez.

{
  "type": "https://docs.kumpara.net/errors/insufficient_scope",
  "title": "Yetki yok",
  "status": 403,
  "detail": "Bu uç `sales:approve` yetkisi ister; anahtarınızda yok.",
  "code": "insufficient_scope",
  "requestId": "0HN…"
}
Durum Ne demek Sık görülen kodlar
400 İstek okunamadı invalid_request, invalid_value, missing_parameter
401 Anahtar geçersiz ya da iptal edilmiş unauthorized
403 Anahtarda gerekli yetki yok insufficient_scope
404 Kayıt yok ya da bu şirkete ait değil not_found
409 Çakışma idempotency_replayed, duplicate_code, duplicate_tax_number
422 İş kuralı ihlali validation_failed, currency_not_enabled, warehouse_required
429 İstek sınırı aşıldı rate_limit_exceeded

Alan bazlı hatalarda gövdeye errors[] eklenir: her satır pointer, code ve detail taşır.

İstek sınırı

Okuma ve yazma ayrı kovadır — rapor çeken bir işlem fatura kesmeyi kilitlemez. Varsayılanlar anahtar başına dakikada 600 okuma ve 120 yazma'dır; her yanıtta RateLimit-Limit, RateLimit-Remaining ve RateLimit-Reset başlıkları döner. Sınır aşılırsa 429 + Retry-After alırsınız.

İstek kimliği

Her yanıt X-Request-Id taşır; aynı değer hata gövdesinde requestId olarak da görünür. Destek talebinde bunu paylaşın. Kendi kimliğinizi göndermek isterseniz istekte X-Request-Id başlığını doldurun (en çok 64 karakter), yanıt aynı değeri geri verir.

Keşif

Sözleşmenin tamamı OpenAPI 3 olarak yayınlanır: https://api.kumpara.net/v1/openapi.json makine tarafından okunur, https://api.kumpara.net/v1/docs ise tarayıcıda gezilir. Spec kimlik doğrulama istemez — sözleşme geneldir, veri içermez.

Kaynaklar

Aşağıdaki tablo bugün yayında olan yüzeyin tamamıdır. Her satırın tam parametreleri, gövdesi ve yanıt şeması OpenAPI'de durur: https://api.kumpara.net/v1/docs.

Alan Ana uçlar Yetki
Bağlam GET /v1/me, GET /v1/capabilities me:read
Cari kartı GET · POST /v1/contacts, PATCH /v1/contacts/{id}, POST /v1/contacts/actions/upsert contacts:read · contacts:write
Cari durumu GET /v1/contacts/{id}/balance, …/ledger-entries, …/open-items, GET /v1/aging contacts:read
Cari açılışı POST /v1/contacts/{id}/actions/set-opening-balance, …/actions/reverse-opening-balance contacts:write
Ürün ve varyant GET · POST /v1/products, PATCH /v1/products/{id}, POST /v1/products/actions/upsert, POST /v1/products/{id}/variants, PATCH /v1/product-variants/{id} products:read · products:write
Stok GET /v1/stock-levels, POST /v1/stock-levels/actions/set, GET /v1/stock-movements, GET /v1/products/{id}/stock stock:read · stock:write
Stok açılışı POST /v1/products/{id}/actions/set-opening-stock, …/actions/reverse-opening-stock stock:write
Sipariş GET · POST /v1/orders, PUT /v1/orders/{id}, POST /v1/orders/{id}/actions/cancel sales:read · sales:write
İrsaliye GET · POST /v1/delivery-notes, PATCH /v1/delivery-notes/{id}, …/actions/ship, …/actions/cancel sales:read · sales:write
Satış faturası GET · POST /v1/sales-invoices, …/{id}/actions/approve, …/{id}/cancel-eligibility, …/{id}/actions/cancel, …/{id}/ledger-entries sales:read · sales:write · sales:approve
Alış faturası GET · POST /v1/purchase-invoices, …/{id}/actions/approve purchase:read · purchase:write · purchase:approve
Tahsilat / ödeme GET · POST /v1/payments, POST /v1/payments/{id}/actions/allocate payments:read · payments:write
Kasa ve banka GET /v1/cash-accounts, GET /v1/cash-accounts/{id}/ledger-entries cash:read
Çek ve senet GET /v1/cheques cheques:read
e-Belge (giden) POST /v1/sales-invoices/{id}/actions/issue-e-document, GET /v1/e-documents, …/{id}/xml, …/{id}/pdf, …/{id}/actions/cancel edocuments:read · edocuments:issue · edocuments:cancel
e-Belge (gelen) GET /v1/incoming-e-documents, POST …/actions/sync, …/{id}/actions/answer, …/{id}/actions/mark-read, …/{id}/actions/ignore edocuments:incoming
Mükellef ve kontör POST /v1/taxpayers/actions/lookup, GET /v1/e-credits edocuments:read
Referans katalog GET /v1/warehouses, GET /v1/categories, GET /v1/reference/{type} catalog:read
Değişiklik akışı GET /v1/changes changes:read

Belge zinciri nasıl bağlanır? İrsaliye gövdesinde orderId, fatura gövdesinde orderId ve deliveryNoteIds[] alanları vardır; satır bazında orderLineId ve deliveryNoteLineId ile eşleştirme yaparsınız. Kalan miktar persisted bir sayaçtan değil, iptal edilmemiş faturalardan türetilir — iptal edilen fatura tüketim sayılmaz, sipariş yeniden faturalanabilir.

Stok çıkışı tek yerde doğar. Sevk ve fatura onayı aynı malı iki kez düşürmez: satış tarafındaki toplam çıkış max(Σ sevk, Σ onaylı fatura) olarak hesaplanır ve her belge yalnız kendi farkını yazar. Fatura önce onaylandıysa sevk hiç hareket üretmeyebilir — bu doğru davranıştır.

Henüz yok — yol haritasında

Entegrasyonunuzu yanlış mimariye oturtmamanız için olmayanı da yazıyoruz.

Webhook Yakında

Bugün çalışan yol GET /v1/changes ile düzenli çekmektir; webhooks:manage yetkisi katalogda durur ama uç yayında değildir.

İzole sandbox ortamı Yakında

kp_test_ öneki bugün yalnız bir etikettir ve gerçek verinize yazar. Deneme için ayrı bir şirket açın.

ETag / If-Match Yakında

Eşzamanlılık koruması dayandığı sürüm kolonu olmadan yarım eklenmez: "koruma var" izlenimi, gerçek korumadan kötüdür.

OAuth 2.1 ve uygulama kataloğu Yakında

Beta'da müşteriniz size kendi panelinden dar kapsamlı bir anahtar üretir; onay ekranlı akış yol haritasındadır.

Gelen e-belgeyi alış faturasına çevirme Yakında

Gelen kutusunu okuma, yanıt verme ve yoksayma çalışır; satır-ürün eşleştirmesi şimdilik panelde yapılır.

Rapor ve dışa aktarma uçları Yakında

Yaşlandırma (GET /v1/aging) çalışır; kâr-zarar, KDV ve asenkron dosya export'u henüz yoktur.

Güvenlik, izolasyon ve KVKK

İzolasyon veritabanı seviyesindedir. İşletmeleri birbirinden ayıran şey uygulamadaki bir filtre değil, PostgreSQL'in kendi satır düzeyi güvenlik katmanıdır. API isteği en az yetkili bir rolle bağlanır ve bağlam her bağlantı açılışında veritabanına yazılır; bir sorgu yanlış yazılsa bile başka bir işletmenin satırı dönmez. Şirket ayrımı bunun üstüne gelir: anahtar tek şirkete kilitlidir.

Anahtar saklanmaz. Yalnız SHA-256 özeti ve gösterim öneki (kp_live_a1b2c3d4) tutulur. Düz değer bir kez, oluşturma yanıtında görünür; kaybederseniz kurtarılamaz, yenisini üretirsiniz. Anahtar loglara yazılmaz — log'a yalnız önek düşer. İptal anında etkilidir.

Yetki yükseltmesi yoktur. Anahtarın scope'u onu üreten kullanıcının rol yetkisini aşamaz. approve: true ile fatura oluşturmak sales:write yanında sales:approve ister; eksikse istek reddedilir, sessizce taslak kaydedilmez.

Her işlem iz bırakır. API'den yapılan her yazma denetim kaydına aktör olarak anahtar önekiyle yazılır (api:kp_live_a1b2c3d4). Kimin ne zaman ne yaptığı sonradan sorulabilir; panel, mobil ve API aynı iz defterine düşer.

Kişisel veri dar kapsamlıdır. TCKN, IBAN, ad-adres gibi alanlar pii:read yetkisi olmayan anahtarlara maskelenerek döner — son dört karakter görünür, uç yine çalışır. Entegrasyonunuz kişisel veriye ihtiyaç duymuyorsa bu yetkiyi hiç vermeyin; en iyi koruma, verinin hiç gitmemesidir.

Anahtarı nasıl saklamalısınız? Sunucu tarafında, ortam değişkeninde ya da bir sır yöneticisinde tutun; kaynak koda, tarayıcıya veya mobil uygulamaya gömmeyin. Her entegrasyona ayrı anahtar üretin — birini iptal etmek diğerlerini etkilemesin. Destek talebi açarken requestId ve Idempotency-Key paylaşın; anahtarınızı asla paylaşmayın.

Geliştiricilerin sorduğu sorular

API hangi pakete dahil?

Erişim pakete göre kapatılmaz. Fark hız limitlerinde ve kotalardadır; bunlar ayarlanabilir. Beta aşamasında erişim başvuruyla açılır.

Tutarları ben hesaplayıp gönderebilir miyim?

Hayır; sunucu tek otoritedir. Siz miktar, birim fiyat, iskonto oranı, KDV oranı, tevkifat kodu ve para birimi gönderirsiniz. Satır toplamı, tevkif edilen KDV, baz tutar ve belge numarası sunucuda üretilir — fatura satırında tutar alanı yoktur.

Aynı isteği iki kez gönderirsem çift kayıt olur mu?

Hayır. Her yazma isteği Idempotency-Key başlığı ister; anahtar, kaydı yazan transaction'ın içinde saklanır. Aynı anahtar ikinci kez gelirse iş tekrar yapılmaz: ya 409 idempotency_replayed alırsınız ve oluşan kaydı GET ile okursunuz, ya da 200 ile ilk yanıtın gövdesini ve replayed: true bayrağını. İkisi de başarı sayılmalıdır.

Onaylanmış bir faturayı düzeltebilir miyim?

Hayır, onaylı belge değişmez. Düzeltme yolu iptal + yeni belgedir; iptal defterlere ters kayıt yazar. Cari, nakit ve stok defterlerinde UPDATE/DELETE yoktur. İptal etmeden önce GET /v1/sales-invoices/{id}/cancel-eligibility ile engelleri görebilirsiniz.

Panelden yapılan değişiklikleri de yakalayabilir miyim?

Evet. GET /v1/changes akışı kaydın nereden değiştiğine bakmaz; panel, mobil uygulama ve API aynı akışa düşer. Akış kaydın yalnız tipini ve kimliğini verir, ayrıntıyı kendi ucundan okursunuz.

Test için ayrı bir sandbox ortamı var mı?

Henüz yok — bunu açıkça söylüyoruz. kp_test_ önekli anahtar bugün yalnız bir etikettir ve gerçek verinize yazar. Denemek için ayrı bir şirket (ya da ayrı bir işletme hesabı) açın; izole sandbox yol haritasındadır.

Webhook var mı?

Henüz yok. Bugün çalışan yol GET /v1/changes ile düzenli çekmektir: son aldığınız meta.checkpoint değerini bir sonraki çağrıda since olarak verirsiniz. Webhook yol haritasındadır.

Çok şirketli işletmede ne yapmalıyım?

Her anahtar tek şirkete kilitlidir ve yalnız o şirketin verisini görür. Çok şirketli entegrasyonda şirket başına bir anahtar üretirsiniz. Tek anahtarla şirket değiştirme yol haritasındadır.

Fatura oluşturmak kontör harcar mı?

Hayır. Kontör yalnız e-belge trafiğinde kullanılır: her giden ve her gelen e-belge 1 kontördür. Sistemde oluşturduğunuz fatura, sipariş veya irsaliye kontör tüketmez. Bakiyeyi GET /v1/e-credits ile okursunuz.

Anahtarımı kaybedersem ne olur?

Kurtarılamaz. Kumpara anahtarın yalnız SHA-256 özetini ve gösterim önekini saklar; düz değer bir kez, oluşturma yanıtında görünür. Kaybederseniz eskisini iptal edip yeni anahtar üretirsiniz — iptal anında etkilidir.

Beta programına katılın

Betaya e-ticaret platformları, ERP ve muhasebe yazılımları, mali müşavir ofisleri ve pazaryeri entegratörleri kabul ediliyor. Katılımcılar erişim, sözleşme değişikliklerinde önceden bildirim ve doğrudan geri bildirim kanalı alır. Başvururken entegrasyon türünüzü ve hangi akışı kuracağınızı yazın.