curl --request GET \
--url https://dev.noyax.com/services/noyax_api/api/v1/finance/customers/balances \
--header 'Authorization: Bearer <token>' \
--header 'X-CompanyID: <x-companyid>' \
--header 'X-UserID: <x-userid>'using RestSharp;
var options = new RestClientOptions("https://dev.noyax.com/services/noyax_api/api/v1/finance/customers/balances");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("X-UserID", "<x-userid>");
request.AddHeader("X-CompanyID", "<x-companyid>");
request.AddHeader("Authorization", "Bearer <token>");
var response = await client.GetAsync(request);
Console.WriteLine("{0}", response.Content);
const options = {
method: 'GET',
headers: {
'X-UserID': '<x-userid>',
'X-CompanyID': '<x-companyid>',
Authorization: 'Bearer <token>'
}
};
fetch('https://dev.noyax.com/services/noyax_api/api/v1/finance/customers/balances', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://dev.noyax.com/services/noyax_api/api/v1/finance/customers/balances"
headers = {
"X-UserID": "<x-userid>",
"X-CompanyID": "<x-companyid>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text){
"Success": true,
"ResultCode": "0000",
"Data": {
"Page": 1,
"PageSize": 50,
"TotalCount": 128,
"Items": [
{
"CustomerId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"CustomerCode": "<string>",
"CustomerName": "<string>",
"Balances": [
{
"CurrencyId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"CurrencyCode": "TRY",
"IsDefault": true,
"Debit": 123,
"Credit": 123,
"Balance": 123
}
]
}
]
},
"Message": "<string>"
}{
"Success": false,
"ResultCode": "0201",
"Message": "X-UserID header is required.",
"Errors": [
{
"Code": "0201",
"Message": "X-UserID header is required."
}
]
}{
"Success": false,
"ResultCode": "0102",
"Message": "Token has expired. Obtain a new token using the refresh token.",
"Errors": [
{
"Code": "0102",
"Message": "Token has expired. Obtain a new token using the refresh token."
}
]
}{
"Success": false,
"ResultCode": "0110",
"Message": "You do not have permission for this operation.",
"Errors": [
{
"Code": "0110",
"Message": "You do not have permission for this operation."
}
]
}{
"Success": false,
"ResultCode": "0120",
"Message": "Daily request limit (10000) exceeded.",
"Errors": [
{
"Code": "0120",
"Message": "Daily request limit (10000) exceeded."
}
]
}Cari bakiye
Şirket genelinde, cari başına döviz bazlı bakiye raporu.
curl --request GET \
--url https://dev.noyax.com/services/noyax_api/api/v1/finance/customers/balances \
--header 'Authorization: Bearer <token>' \
--header 'X-CompanyID: <x-companyid>' \
--header 'X-UserID: <x-userid>'using RestSharp;
var options = new RestClientOptions("https://dev.noyax.com/services/noyax_api/api/v1/finance/customers/balances");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("X-UserID", "<x-userid>");
request.AddHeader("X-CompanyID", "<x-companyid>");
request.AddHeader("Authorization", "Bearer <token>");
var response = await client.GetAsync(request);
Console.WriteLine("{0}", response.Content);
const options = {
method: 'GET',
headers: {
'X-UserID': '<x-userid>',
'X-CompanyID': '<x-companyid>',
Authorization: 'Bearer <token>'
}
};
fetch('https://dev.noyax.com/services/noyax_api/api/v1/finance/customers/balances', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://dev.noyax.com/services/noyax_api/api/v1/finance/customers/balances"
headers = {
"X-UserID": "<x-userid>",
"X-CompanyID": "<x-companyid>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text){
"Success": true,
"ResultCode": "0000",
"Data": {
"Page": 1,
"PageSize": 50,
"TotalCount": 128,
"Items": [
{
"CustomerId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"CustomerCode": "<string>",
"CustomerName": "<string>",
"Balances": [
{
"CurrencyId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"CurrencyCode": "TRY",
"IsDefault": true,
"Debit": 123,
"Credit": 123,
"Balance": 123
}
]
}
]
},
"Message": "<string>"
}{
"Success": false,
"ResultCode": "0201",
"Message": "X-UserID header is required.",
"Errors": [
{
"Code": "0201",
"Message": "X-UserID header is required."
}
]
}{
"Success": false,
"ResultCode": "0102",
"Message": "Token has expired. Obtain a new token using the refresh token.",
"Errors": [
{
"Code": "0102",
"Message": "Token has expired. Obtain a new token using the refresh token."
}
]
}{
"Success": false,
"ResultCode": "0110",
"Message": "You do not have permission for this operation.",
"Errors": [
{
"Code": "0110",
"Message": "You do not have permission for this operation."
}
]
}{
"Success": false,
"ResultCode": "0120",
"Message": "Daily request limit (10000) exceeded.",
"Errors": [
{
"Code": "0120",
"Message": "Daily request limit (10000) exceeded."
}
]
}AsOfDate(opsiyonel, tarih + saat, ISO 8601 — ör.2026-09-25T14:30:00) yalnızca bu tarih-saatten kesinlikle önceki hareketleri sayar; gönderilmezse geçerli tarih ve saat kullanılır. Örneğin2026-09-25T00:00:00gönderirseniz 25’in kendisi (00:00’dan itibaren) ve sonrası hariç tutulur, yalnızca 24’e kadarki hareketler dahil olur;2026-09-25T14:30:00gönderirseniz 25 Eylül saat 14:30’a kadarki (o an hariç) hareketler dahil olur — saat kısmını değiştirerek aynı günün istediğiniz noktasındaki bakiyeyi alabilirsiniz.StartDateyoktur: bu, Cari işlemleri raporundan farklıdır — orada tarih aralığı vardır, burada yalnızca tek bir kesme noktası vardır ve bütün geçmiş hareketler bu noktaya kadar toplanır.- Yanıt cari başına gruplanır: her cari için
CustomerCode/CustomerNameveBalances(döviz başınaDebit/Credit/Balance) listesi döner. Bir cari birden fazla dövizde hareket gördüyseBalancesbirden fazla girdi içerir. - Yalnızca
AsOfDate’ten önce en az bir hareketi olan cariler listede yer alır; hiç hareketi olmayan cariler dönmez. ExcludeZeroBalance(opsiyonel, varsayılanfalse)trueise bakiyesi tam olarak0olan döviz satırlarıBalances’tan çıkarılır; bir carinin her dövizi0’a netleşiyorsa o cari listeden tamamen çıkar (boşBalancesile dönmez). Bu filtre sayfalamadan önce uygulanır, yaniTotalCountve sayfa içeriği de bu filtreye göre hesaplanır.MinAbsoluteBalance(opsiyonel, sayı) gönderilirse, mutlak değeri bu eşiğe eşit ya da küçük olan döviz satırlarıBalances’tan çıkarılır (ör.100gönderirseniz-100ile100arası, uçlar dahil, tamamen elenir — yalnızca mutlak değeri kesin100’den büyük olanlar kalır). Küçük kalıntı bakiyeleri (ör. kuruş farkları) ayıklamak için kullanılır;ExcludeZeroBalanceile birlikte de kullanılabilir. Bu filtre de sayfalamadan önce uygulanır.- Sayfalama
page/pageSize(en fazla 50) cari sayısı üzerinden yapılır; bir carinin tüm dövizleri her zaman aynı sayfadadır. Arama parametresi yoktur. Balance=Debit - Credit; pozitif değer carinin borçlu olduğunu gösterir.
Hata kodları
Bu endpoint’e özel bir hata kodu yoktur. Her endpoint için geçerli olan genel hatalar (kimlik doğrulama, yetki, istek header’ları, günlük limit) yine geçerlidir.Yetkilendirmeler
Access token obtained from the Noyax auth service with your API key.
Başlıklar
İsteğin adına yapıldığı Noyax kullanıcısının ID'si. Oluşturulan, güncellenen ve silinen kayıtların denetim alanlarına yazılır.
x >= 1Şirketin ID'si. Kullanıcı bu şirkete tanımlı olmalıdır. Bütün okuma ve yazma işlemleri bu şirketle sınırlıdır.
x >= 1Muhasebe döneminin ID'si. Cari endpoint'lerinde isteğe bağlıdır; gönderilirse oluşturulan kayıtlara yazılır.
x >= 1Sorgu Parametreleri
Sayfa numarası, 1'den başlar. Varsayılan 1.
Sayfa başına kayıt, en fazla 50. Varsayılan 50.
Yalnızca bu tarih ve saatten kesinlikle önceki hareketler dahil edilir (ör. 25'i gönderirseniz 25'in kendisi ve sonrası hariç tutulur). ISO 8601 formatında, örneğin 2026-09-25T14:30:00. Gönderilmezse geçerli tarih ve saat kullanılır.
true ise bakiyesi tam olarak 0 olan dövizler Balances'ta yer almaz; her dövizi 0'a netleşen bir cari de listeden tamamen çıkar. Varsayılan false.
Gönderilirse, bakiyesinin mutlak değeri buna eşit ya da küçük olan dövizler Balances'ta yer almaz (ör. 100 gönderilirse -100 ile 100 arası, uçlar dahil, tamamen elenir); tüm dövizleri bu şekilde elenen bir cari de listeden tamamen çıkar. excludeZeroBalance ile birlikte kullanılabilir. Eşik istemiyorsanız göndermeyin.
Yanıt
OK
İşlemin başarılı olup olmadığı.
true
Başarıda "0000". Hatada ilk hatanın kodu; hataların tamamı Errors içinde listelenir.
"0000"
Response data. Null when Success is false.
Show child attributes
Show child attributes
Success false olduğunda hata mesajı. Bütün hataların mesajları tek metinde birleştirilir.