Muhasefy API
Muhasefy API; faturalarınızı, cari kayıtlarınızı, işlemlerinizi ve hesaplarınızı kendi sistemlerinize programatik olarak bağlamanız için tasarlanmıştır. Bu rehber, API hazır olduğunda nasıl çalışacağını ve isteklerin nasıl yapılandırılacağını açıklar.
Erken erişim için: api@muhasefy.com
Genel Bakış
Muhasefy API, REST mimarisine dayanan, tahmin edilebilir kaynak yollarına sahip bir arayüzdür. Tüm istekler ve yanıtlar JSON biçimindedir; standart HTTP yöntemlerini (GET, POST) ve standart HTTP durum kodlarını kullanır. API üzerinden faturalarınızı, müşteri ve tedarikçi kayıtlarınızı, işlemlerinizi ve hesaplarınızı okuyabilir; yeni kayıtlar oluşturabilirsiniz.
API'yi kullanarak kendi e-ticaret altyapınızı, iç uygulamalarınızı veya otomasyonlarınızı Muhasefy ile bağlayabilirsiniz. Verileriniz her zaman size aittir ve programatik olarak taşınabilir kalır.
Beta ve Erken Erişim
API şu anda Beta aşamasındadır ve uç noktalar henüz herkese açık değildir.
Bu sayfa, API genel kullanıma açıldığında nasıl çalışacağını şeffaf biçimde paylaşmak için hazırlanmıştır. Aşağıdaki yollar, alan adları ve örnek yanıtlar tasarım niteliğindedir; genel kullanıma açılana kadar değişebilir. Üretim ortamınızı bu sürüme göre kurmadan önce erken erişim programına katılmanızı öneririz.
Erken erişim, geri bildirim ve API erişim anahtarları için api@muhasefy.com adresinden bizimle iletişime geçebilirsiniz. API erişimi şu an Kurumsal Enterprise planı kapsamında planlanmaktadır.
Kimlik Doğrulama
Muhasefy API, kimlik doğrulama için gizli API anahtarları kullanır. Anahtarınızı her isteğin Authorization başlığında Bearer şeması ile gönderirsiniz. Geçerli bir anahtar olmadan yapılan istekler 401 Unauthorized yanıtı alır.
API anahtarınız bir parola gibidir. Gizli tutun; istemci tarafı kodda, herkese açık depolarda veya tarayıcıda paylaşmayın. Anahtarın sızdığından şüphelenirseniz hemen yenileyin.
curl https://muhasefy.com/api/v1/invoices \
-H "Authorization: Bearer mhsfy_sk_canli_xxxxxxxxxxxxxxxx"Temel URL ve Sürümleme
Tüm API istekleri aşağıdaki temel URL üzerinden ve HTTPS ile yapılır. Şifrelenmemiş (HTTP) istekler kabul edilmez.
https://muhasefy.com/api/v1Sürüm, URL içinde yer alır (örneğin /v1). Geriye dönük uyumluluğu bozan değişiklikler yeni bir sürüm numarasıyla yayımlanır; mevcut sürümünüz etkilenmez. Küçük ve uyumlu iyileştirmeler mevcut sürüm içinde yapılabilir.
İstek ve Yanıt Formatı
İstek gövdeleri ve yanıtlar UTF-8 kodlu JSON biçimindedir. Gövde gönderen isteklerde Content-Type başlığını application/json olarak ayarlayın. Tarihler ISO 8601 biçiminde (örneğin 2026-06-17), tutarlar ondalık sayı olarak ve para birimleri ISO 4217 kodlarıyla (örneğin TRY, USD, EUR) gösterilir.
Listeleme uç noktaları, kayıtların data dizisinde döndüğü bir liste nesnesi (object: "list") verir. Tekil kayıtlar ise ilgili kaynak nesnesini döndürür. Her nesne, türünü belirten bir object alanı içerir.
AuthorizationBearer API anahtarınız (zorunlu)Content-Typeapplication/json (gövdeli isteklerde)Acceptapplication/jsonKaynaklar
Aşağıda API ile erişebileceğiniz temel kaynaklar, uç noktaları ve örnek istek ile yanıtları yer alır. Örneklerdeki kimlikler ve değerler yalnızca gösterim amaçlıdır.
Faturalar
Satış, alış, ihracat ve proforma faturalarınızı listeleyin, tek bir faturayı getirin veya yeni fatura oluşturun. Faturalar kendi vergi kimliğiniz altında düzenlenir.
/v1/invoicesFaturaları listeler/v1/invoices/{id}Tek bir faturayı getirir/v1/invoicesYeni fatura oluştururcurl https://muhasefy.com/api/v1/invoices \
-H "Authorization: Bearer mhsfy_sk_canli_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json"{
"object": "list",
"data": [
{
"id": "inv_8Hk2Qp",
"object": "invoice",
"invoice_number": "MUH2026000042",
"type": "sales",
"status": "sent",
"client_id": "cli_3Fa9Lt",
"issue_date": "2026-06-15",
"due_date": "2026-06-30",
"currency": "TRY",
"subtotal": 10000.00,
"tax_total": 2000.00,
"total": 12000.00,
"paid_amount": 0,
"created_at": "2026-06-15T09:21:00Z"
}
],
"has_more": false,
"total_count": 1
}curl https://muhasefy.com/api/v1/invoices \
-H "Authorization: Bearer mhsfy_sk_canli_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"type": "sales",
"client_id": "cli_3Fa9Lt",
"issue_date": "2026-06-17",
"due_date": "2026-07-01",
"currency": "TRY",
"items": [
{
"description": "Danışmanlık hizmeti",
"quantity": 1,
"unit_price": 10000,
"tax_rate": 20
}
]
}'Müşteriler
Cari müşteri kayıtlarınızı yönetin. Müşteri adı, vergi kimliği, vergi dairesi ve iletişim bilgileriyle birlikte listeleme, getirme ve oluşturma işlemleri.
/v1/clientsMüşterileri listeler/v1/clients/{id}Tek bir müşteriyi getirir/v1/clientsYeni müşteri oluştururcurl https://muhasefy.com/api/v1/clients \
-H "Authorization: Bearer mhsfy_sk_canli_xxxxxxxxxxxxxxxx"{
"object": "list",
"data": [
{
"id": "cli_3Fa9Lt",
"object": "client",
"name": "Örnek Teknoloji A.Ş.",
"email": "muhasebe@ornek.com",
"phone": "+90 212 000 00 00",
"tax_number": "1234567890",
"tax_office": "Beşiktaş",
"city": "İstanbul",
"created_at": "2026-05-02T12:00:00Z"
}
],
"has_more": false,
"total_count": 1
}Tedarikçiler
Cari tedarikçi kayıtlarınızı yönetin. Müşteri kaynağıyla aynı yapıya sahiptir; alış ve tedarik süreçlerinizdeki firmaları temsil eder.
/v1/vendorsTedarikçileri listeler/v1/vendors/{id}Tek bir tedarikçiyi getirir/v1/vendorsYeni tedarikçi oluştururcurl https://muhasefy.com/api/v1/vendors \
-H "Authorization: Bearer mhsfy_sk_canli_xxxxxxxxxxxxxxxx"{
"object": "list",
"data": [
{
"id": "ven_7Qm4Rb",
"object": "vendor",
"name": "Örnek Tedarik Ltd. Şti.",
"email": "siparis@ornektedarik.com",
"phone": "+90 216 000 00 00",
"tax_number": "9876543210",
"tax_office": "Kadıköy",
"city": "İstanbul",
"created_at": "2026-04-18T10:45:00Z"
}
],
"has_more": false,
"total_count": 1
}İşlemler
Kasa ve banka hesaplarınızdaki gelir ve gider hareketlerini listeleyin veya yeni hareket kaydı oluşturun. Her işlem bir hesaba bağlıdır.
/v1/transactionsİşlemleri listeler/v1/transactions/{id}Tek bir işlemi getirir/v1/transactionsYeni işlem oluştururcurl https://muhasefy.com/api/v1/transactions \
-H "Authorization: Bearer mhsfy_sk_canli_xxxxxxxxxxxxxxxx"{
"object": "list",
"data": [
{
"id": "txn_5Lp1Vd",
"object": "transaction",
"account_id": "acc_9Zx7Nf",
"type": "income",
"amount": 12000.00,
"currency": "TRY",
"description": "Fatura tahsilatı",
"transaction_date": "2026-06-16",
"created_at": "2026-06-16T14:30:00Z"
}
],
"has_more": false,
"total_count": 1
}Hesaplar
Kasa ve banka hesaplarınızı listeleyin veya tek bir hesabın güncel bakiyesini ve bilgilerini getirin. Hesaplar işlemlerin bağlandığı temel kayıtlardır.
/v1/accountsHesapları listeler/v1/accounts/{id}Tek bir hesabı getirircurl https://muhasefy.com/api/v1/accounts \
-H "Authorization: Bearer mhsfy_sk_canli_xxxxxxxxxxxxxxxx"{
"object": "list",
"data": [
{
"id": "acc_9Zx7Nf",
"object": "account",
"name": "Ana Vadesiz TL",
"type": "bank",
"currency": "TRY",
"balance": 152340.75,
"bank_name": "Örnek Bank",
"iban": "TR00 0000 0000 0000 0000 0000 00",
"created_at": "2026-01-15T08:00:00Z"
}
],
"has_more": false,
"total_count": 1
}Hata Formatı
Bir istek başarısız olduğunda API, uygun bir HTTP durum kodu ve gövdesinde tutarlı bir hata nesnesi döndürür. Hata nesnesi; hatanın türünü (type), makine tarafından okunabilir bir kodu (code), açıklayıcı bir mesajı (message) ve ilgiliyse soruna yol açan alanı (param) içerir.
{
"error": {
"type": "invalid_request_error",
"code": "resource_not_found",
"message": "Belirtilen fatura bulunamadı.",
"param": "id"
}
}HTTP durum kodları
200OKİstek başarıyla tamamlandı.201CreatedKaynak başarıyla oluşturuldu.400Bad Requestİstek hatalı veya eksik biçimlendirilmiş.401UnauthorizedAPI anahtarı eksik veya geçersiz.403ForbiddenBu işlem için yetkiniz yok.404Not Foundİstenen kaynak bulunamadı.422UnprocessableDoğrulama hatası, alan değerlerini kontrol edin.429Too Many RequestsHız sınırı aşıldı, kısa süre sonra tekrar deneyin.500Server ErrorBeklenmeyen bir sunucu hatası oluştu.Sayfalama
Listeleme uç noktaları imleç (cursor) tabanlı sayfalama kullanır. limit parametresiyle sayfa başına kayıt sayısını belirleyebilirsiniz (varsayılan 25, en fazla 100). starting_after parametresine bir önceki sayfanın son kaydının kimliğini vererek sonraki sayfayı alırsınız.
Yanıttaki has_more alanı, getirilebilecek başka kayıt olup olmadığını belirtir. total_count alanı ise ölçüte uyan toplam kayıt sayısını verir.
curl "https://muhasefy.com/api/v1/invoices?limit=50&starting_after=inv_8Hk2Qp" \
-H "Authorization: Bearer mhsfy_sk_canli_xxxxxxxxxxxxxxxx"Hız Sınırı
API, kötüye kullanımı önlemek ve kararlılığı korumak için hız sınırı uygular. Sınırlar planınıza göre belirlenir ve genel kullanıma açılışta kesinleşecektir. Her yanıt, mevcut kullanımınızı gösteren hız sınırı başlıkları içerir.
Sınırı aşan istekler 429 Too Many Requests yanıtı alır. Bu durumda X-RateLimit-Reset başlığında belirtilen ana kadar bekleyip isteği yeniden denemeniz beklenir.
HTTP/1.1 200 OK
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 118
X-RateLimit-Reset: 1750000000API erişimi mi istiyorsunuz?
Erken erişim programına katılmak, geri bildirim paylaşmak veya API erişim anahtarı talep etmek için bize ulaşın. Sorularınız için iletişim formunu da kullanabilirsiniz.