Giriş
Partner API, otomotiv parça fiyatları ve bakım paketleri için sorgulama hizmeti sunan REST API’dir.
Bu API ile entegre yazılımlar; parça kodu ve TSRB (araç marka/model) bilgisiyle tek parça fiyatı, alternatif parçalarla birlikte fiyat listesi ve belirli kilometre/yıl için bakım paketi listesini alabilir. Tüm endpoint’ler X-API-Key header ile kimlik doğrulama gerektirir.
Parça fiyat (tek parça)
Parça kodu ve TSRB ID ile tek parça fiyatı sorgulama.
POST /api/part/query
Request (Gönderim)
| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| productCode | string | Evet | Parça kodu (örn: ABC123) |
| brandTsbId | int | Evet | Araç markası TSB ID |
| modelTsbId | int | Evet | Araç modeli TSB ID |
| carYear | short? | Hayır | Model yılı (miktar hesabı için kullanılır) |
Örnek istek
{
"productCode": "ABC123",
"brandTsbId": 100,
"modelTsbId": 123,
"carYear": 2020
}
Response (Yanıt)
| Alan | Tip | Açıklama |
|---|---|---|
| success | bool | İşlem başarılı mı |
| message | string | Mesaj |
| data | object? | productCode, name, unit, quantity, unitPriceWithoutTax, localUnitPriceWithoutTax, totalPriceWithoutTax, localTotalPriceWithoutTax, currency, priceUpdatedAt, productId, hasApprovedOilMapping, approvedOilMappings |
Örnek yanıt
{
"success": true,
"message": "",
"data": {
"productCode": "ABC123",
"name": "Parça Adı",
"unit": 1,
"quantity": 1,
"unitPriceWithoutTax": 150.50,
"localUnitPriceWithoutTax": 150.50,
"totalPriceWithoutTax": 150.50,
"localTotalPriceWithoutTax": 150.50,
"currency": "TL",
"priceUpdatedAt": "2024-01-15T10:00:00",
"productId": "...",
"hasApprovedOilMapping": false,
"approvedOilMappings": []
}
}
Parça fiyat (alternatifler ile)
Ana parça ile birlikte alternatif parça fiyatlarını döner.
POST /api/part/query-with-alternatives
Request (Gönderim)
| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| productCode | string | Evet | Parça kodu |
| brandTsbId | int | Evet | Marka TSB ID |
| modelTsbId | int | Evet | Model TSB ID |
| carYear | short? | Hayır | Model yılı |
| subsidiaryManufacturerIds | long[]? | Hayır | Alternatif marka ID listesi; boş/null ise tüm markalar |
Örnek istek
{
"productCode": "ABC123",
"brandTsbId": 100,
"modelTsbId": 123,
"carYear": 2020,
"subsidiaryManufacturerIds": [320, 450]
}
Response (Yanıt)
data içinde mainPart (ana parça) ve alternatives (alternatif parçalar). Her alternatif: subsidiaryCode, productName, manufacturerName, subsidiaryManufacturerName, unit, quantity, unitPriceWithoutTax, localUnitPriceWithoutTax, totalPriceWithoutTax, localTotalPriceWithoutTax, currency, priceUpdatedAt.
Örnek yanıt
{
"success": true,
"message": "",
"data": {
"mainPart": { "productCode": "...", "name": "...", "unit": 1, "quantity": 1, "unitPriceWithoutTax": 150.50, ... },
"alternatives": [
{ "subsidiaryCode": "...", "productName": "...", "manufacturerName": "...", "unitPriceWithoutTax": 140, ... }
]
}
}
Bakım paketi sorgulama
TSRB ID, model yılı ve kilometre ile bakım paketi listesi (parçalar ve alternatifler dahil).
POST /api/servicepack/query
Request (Gönderim)
| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| brandTsbId | int | Evet | Araç markası TSB ID |
| modelTsbId | int | Evet | Araç modeli TSB ID |
| year | short | Evet | Model yılı (örn: 2020) |
| km | int | Evet | Kilometre (örn: 15000, 30000) |
| subsidiaryManufacturerIds | long[]? | Hayır | Alternatif parça marka ID listesi; boş/null ise tüm markalar |
Örnek istek
{
"brandTsbId": 123,
"modelTsbId": 456,
"year": 2020,
"km": 15000,
"subsidiaryManufacturerIds": [320, 450]
}
Response (Yanıt)
data: ServicePack listesi. Her öğede id, code, name, carModelName, carBrandName, carYear, km, products (parça listesi). Her parçada: productCode, productName, unit, quantity, unitPriceWithoutTax, localUnitPriceWithoutTax, totalPriceWithoutTax, localTotalPriceWithoutTax, currency, priceUpdatedAt, alternatives, hasApprovedOilMapping, approvedOilMappings.
Örnek yanıt
{
"success": true,
"message": "",
"data": [
{
"id": 1,
"code": "PKT001",
"name": "15.000 km Bakım",
"carModelName": "...",
"carBrandName": "...",
"carYear": 2020,
"km": 15000,
"products": [
{
"productCode": "...",
"productName": "...",
"unit": 1,
"quantity": 1,
"unitPriceWithoutTax": 100,
"alternatives": []
}
]
}
]
}
Bakım paketleri (KM olmadan)
TSRB ID ve model yılına göre tüm KM değerlerindeki bakım paketlerini KM bazında gruplu döner.
POST /api/servicepack/query-all
Request (Gönderim)
| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| brandTsbId | int | Evet | Araç markası TSB ID |
| modelTsbId | int | Evet | Araç modeli TSB ID |
| year | short | Evet | Model yılı (örn: 2020) |
| subsidiaryManufacturerIds | long[]? | Hayır | Alternatif parça marka ID listesi; boş/null ise tüm markalar |
Örnek istek
{
"brandTsbId": 123,
"modelTsbId": 456,
"year": 2020,
"subsidiaryManufacturerIds": [320, 450]
}
Response (Yanıt)
data: KM bazlı gruplar. Her grupta km ve bu KM için servicePacks listesi bulunur.
Örnek yanıt
{
"success": true,
"message": "2 adet KM grubu bulundu.",
"data": [
{
"km": 15000,
"servicePacks": [
{ "id": 1, "code": "PKT001", "name": "15.000 km Bakım", "products": [] }
]
},
{
"km": 30000,
"servicePacks": [
{ "id": 2, "code": "PKT002", "name": "30.000 km Bakım", "products": [] }
]
}
]
}
Bakım periyodu hesaplama
Marka TSB ID, model TSB ID ve model yılına göre önerilen bakım periyodunu (km) döner.
POST /api/servicepack/maintenance-interval
Request (Gönderim)
| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| brandTsbId | int | Evet | Araç markası TSB ID |
| modelTsbId | int | Evet | Araç modeli TSB ID |
| year | short | Evet | Model yılı (örn: 2020) |
Örnek istek
{
"brandTsbId": 123,
"modelTsbId": 456,
"year": 2020
}
Response (Yanıt)
data.intervalKm alanında önerilen bakım periyodu döner.
Örnek yanıt
{
"success": true,
"message": "",
"data": {
"intervalKm": 15000
}
}