curl --request GET \
--url https://dev.noyax.com/services/noyax_api/api/v1/stock/products/{productId}/status \
--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/stock/products/{productId}/status");
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/stock/products/{productId}/status', 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/stock/products/{productId}/status"
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": {
"UnitCode": "C62",
"Quantity": 123,
"Lots": [
{
"LotNo": "LOT-2026-001",
"Quantity": 123
}
],
"SerialNumbers": [
"<string>"
]
},
"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."
}
]
}Ürün stok durumu
Ürünün eldeki toplam miktarı, Lot/seri no dökümüyle.
curl --request GET \
--url https://dev.noyax.com/services/noyax_api/api/v1/stock/products/{productId}/status \
--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/stock/products/{productId}/status");
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/stock/products/{productId}/status', 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/stock/products/{productId}/status"
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": {
"UnitCode": "C62",
"Quantity": 123,
"Lots": [
{
"LotNo": "LOT-2026-001",
"Quantity": 123
}
],
"SerialNumbers": [
"<string>"
]
},
"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."
}
]
}Quantity, ürünün tüm depo hareketlerinin (irsaliyeler ve transfer, sayım gibi bu API’nin kapsamadığı diğer depo fişi tipleri de dahil) toplamıdır — yalnızcaPOST /api/v1/despatchesile oluşturulan irsaliyeleri değil, Noyax uygulamasındaki her hareketi sayar. Bu yüzden ürünün gerçek eldeki miktarını yansıtır.WarehouseName(opsiyonel, query) verilirse yalnızca o depodaki hareketler sayılır; boş bırakılırsa tüm depolar toplanır.- Ürünün
StockType’ına göre ek bir döküm gelir:StockType3 (Lot), 4 (FIFO), 6 (LIFO) ya da 7 (FEFO) iseLots: kalan miktarı sıfırdan büyük olan her Lot için bir kayıt (LotNo,Quantity). Kalan miktarı sıfır ya da altına düşen lotlar listede yer almaz.StockType5 (Seri) iseSerialNumbers: girişi yapılmış ama henüz çıkışı yapılmamış seri numaraları.- Diğer
StockTypedeğerlerinde (1, 2)LotsveSerialNumbersnulldöner; yalnızcaQuantityanlamlıdır.
UnitCode, ürünün ana biriminin evrensel kodu doluysa o, değilse birim adıdır (Quantityve LotQuantityalanları bu birimdedir).
Hata kodları
Bu endpoint’in dönebileceği kodlar. Her endpoint için geçerli olan genel hatalar (kimlik doğrulama, yetki, istek header’ları, günlük limit) burada tekrarlanmaz.| Kod | HTTP | Anlamı |
|---|---|---|
2000 | 404 | Ürün bulunamadı |
4200 | 400 | warehouseName ile verilen depo bulunamadı |
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 >= 1Yol Parametreleri
Ürün ID'si.
Sorgu Parametreleri
Yalnızca bu depodaki hareketleri say (ad, GET /api/v1/stock/warehouses içinden). Boş bırakılırsa tüm depolar dahil olur.
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.