Skip to navigation

Agent Installment Options

Agent Installment Options

Bir acente için tanımlı taksit seçeneklerini ürün branşı bazında döndürür. Her kayıtta ödeme tipi başına izin verilen taksit sayıları bulunur. Ödeme tipi değerleri prim giriş servislerinde kullanılan değerlerle aynıdır. Acenteye ayar tanımlı değilse portal prim giriş ekranındaki varsayılan seçenekler döner.

Uç Nokta (Endpoint)

GET {{baseUrl}}/api/offline/agents/:agentId/installment-options


Kullanım

Bu servis, prim girişi yapılmadan önce acentenin hangi ödeme tipinde hangi taksit sayılarını kabul ettiğini öğrenmek için kullanılır. Önerilen akış:

  1. POST /api/authentication/login ile token alınır.
  2. GET /api/offline/agents (Get My Agents) ile erişilebilen acenteler listelenir ve agentId belirlenir.
  3. Bu servis agentId ile çağrılır.
  4. Prim girişi yapılacak işin ProductBranchId değerine (GET /api/offline/jobs) karşılık gelen kayıt seçilir. İşin branşı için ayrı bir kayıt yoksa ProductBranchId = 0 kaydı kullanılır.
  5. POST /api/offline/jobs/:jobId/premiums isteğinde PaymentOptionType ve InstallmentNumber değerleri bu kayıttaki seçeneklerden seçilir.

💡 Yanıtta her zaman ProductBranchId = 0 olan bir kayıt bulunur. Acenteye tüm branşlar için ayar tanımlı değilse bu kayıt IsDefault = true ile döner ve ekrandaki varsayılan seçenekleri (her ödeme tipi için 1–12) taşır.

⚠️ Prim giriş servisleri gönderilen taksit sayısı ve ödeme tipini bu ayara göre doğrulamaz. Kurala uymak istemcinin sorumluluğundadır.


Kimlik Doğrulama

Bu uç nokta geçerli bir JWT erişim token’ı gerektirir. Token, Authentication Login servisinden alınır ve Authorization başlığında gönderilir.

BaşlıkTürZorunluAçıklama
Authorizationstring✅Bearer <token> biçiminde erişim token’ı.

Token’ın InsuranceCompanyAPIUser, InsuranceCompanyAPIAdmin veya Supervizor rollerinden birini taşıması ve Read yetkisine sahip olması gerekir. Erişilebilen acenteler kullanıcı tipine göre belirlenir:

RolErişim Kapsamı
CompanyUserGet My Agents listesindeki acenteler ve bu acentelerin alt acenteleri. Sonuç, token’daki sigorta şirketlerine ait ayarlarla sınırlıdır.
PlatformUserToken’daki acenteler ve bu acentelerin alt acenteleri.

⚠️ Kapsam dışındaki bir agentId için istek 403 ile OfflineAgents.AgentNotAccessible döner.


İstek Parametreleri (Path Variables)

ParametreTürZorunluMinMaxAçıklama
:agentIdinteger (int32)✅12147483647Taksit seçenekleri istenen acentenin kimliği. GET /api/offline/agents yanıtındaki Value alanıdır. Alt acente kimliği de gönderilebilir.

Başarılı Yanıt (200 OK)

Ürün branşı bazında taksit seçenekleri listesi döner. Liste ProductBranchId değerine göre artan sıradadır.

AgentInstallmentOptionResponse

AlanTürAçıklama
ProductBranchIdintegerSeçeneklerin geçerli olduğu ürün branşı. 0, ayrı kaydı olmayan tüm branşları ifade eder.
ProductBranchNamestringÜrün branşı adı.
IsDefaultbooleantrue ise acenteye ayar tanımlı değildir ve kayıt varsayılan seçenekleri taşır.
PaymentOptionsarrayÖdeme tipi başına izin verilen taksit sayıları. Her zaman üç kayıt içerir: Hesaptan, Kredi Kartı, Tümü.

InstallmentPaymentOptionResponse (PaymentOptions)

AlanTürAçıklama
PaymentOptionTypeintegerÖdeme tipi. Prim girişindeki PaymentOptionType ile aynı değerleri kullanır. Değerler için bknz.
InstallmentNumbersarray of integerİzin verilen taksit sayıları, artan sırada. Boş liste, bu ödeme tipinin kullanılamadığı anlamına gelir.

Kurallar:

  • Acentenin kendi ayarı yoksa üst acentesinin ayarı geçerlidir. Aynı branş için ikisinde de ayar varsa acentenin ayarı kullanılır.
  • Tümü ödeme tipinde yalnızca Hesaptan ve Kredi Kartı için ortak olan taksit sayıları izinlidir.

Örnek Yanıt (ayar tanımlı):

[
{
"ProductBranchId": 0,
"ProductBranchName": "Tüm Branşlar",
"IsDefault": false,
"PaymentOptions": [
{
"PaymentOptionType": 1,
"InstallmentNumbers": [
1,
2,
3,
4,
5,
6
]
},
{
"PaymentOptionType": 2,
"InstallmentNumbers": [
1,
2,
3,
6,
9,
12
]
},
{
"PaymentOptionType": 3,
"InstallmentNumbers": [
1,
2,
3,
6
]
}
]
},
{
"ProductBranchId": 5,
"ProductBranchName": "Kasko",
"IsDefault": false,
"PaymentOptions": [
{
"PaymentOptionType": 1,
"InstallmentNumbers": [
1
]
},
{
"PaymentOptionType": 2,
"InstallmentNumbers": [
1,
2,
3,
4
]
},
{
"PaymentOptionType": 3,
"InstallmentNumbers": [
1
]
}
]
}
]

Örnek Yanıt (ayar tanımlı değil):

[
{
"ProductBranchId": 0,
"ProductBranchName": "Tüm Branşlar",
"IsDefault": true,
"PaymentOptions": [
{
"PaymentOptionType": 1,
"InstallmentNumbers": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12
]
},
{
"PaymentOptionType": 2,
"InstallmentNumbers": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12
]
},
{
"PaymentOptionType": 3,
"InstallmentNumbers": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12
]
}
]
}
]

Hatalı Yanıt (400 Bad Request)

agentId doğrulaması başarısız olduğunda ApiResponse zarfı içinde alan bazlı hata listesi döner.

AlanTürAçıklama
StatusbooleanHatalarda her zaman false.
CodestringHata kodu. Doğrulama hatalarında Validation.General.
MessagestringGenel hata açıklaması.
Responsearray | nullDoğrulama hatalarında { Field, Message } listesi; diğer hatalarda null.
{
"Status": false,
"Code": "Validation.General",
"Message": "One or more validation errors occurred",
"Response": [
{
"Field": "AgentId",
"Message": "AgentId must be greater than 0."
}
]
}
FieldMessage
AgentIdAgentId must be greater than 0.

⚠️ agentId sayı değilse (örneğin abc) route eşleşmez ve istek 404 döner.


Hatalı Yanıt (401 Unauthorized)

Token gönderilmediğinde, geçersiz olduğunda veya süresi dolduğunda HTTP 401 Unauthorized döner. Yanıt gövdesi boştur.

💡 Token’ın süresi dolduysa yanıtta Token-Expired: true başlığı bulunur. Bu durumda POST /api/authentication/refreshtoken ile yeni token alınmalıdır.


Hatalı Yanıt (403 Forbidden)

Token geçerli olduğu hâlde yetki kapsamı yetersiz olduğunda döner.

KodMesajOluşma Nedeni
OfflineAgents.InsuranceCompanyNotFoundNo valid insurance company assignment found in token.Sigorta şirketi kullanıcısının token’ında şirket ataması yok.
OfflineAgents.AgentNotFoundNo valid agent assignment found for agent user.Acente kullanıcısının token’ında acente ataması yok.
OfflineAgents.AgentOrCompanyRoleRequiredOnly agent or company users are authorized for this endpoint.Kullanıcı ne sigorta şirketi ne acente kullanıcısı.
OfflineAgents.AgentNotAccessibleAgent {agentId} is not accessible within the current scope.Acente, kullanıcının erişim kapsamı dışında.

Örnek Hatalı Yanıt:

{
"Status": false,
"Code": "OfflineAgents.AgentNotAccessible",
"Message": "Agent 1250 is not accessible within the current scope.",
"Response": null
}

Hatalı Yanıt (404 Not Found)

Verilen :agentId ile bir acente bulunamadığında döner.

KodMesaj
OfflineAgents.AgentNotExistsAgent {agentId} does not exist.

Örnek Hatalı Yanıt:

{
"Status": false,
"Code": "OfflineAgents.AgentNotExists",
"Message": "Agent 999999 does not exist.",
"Response": null
}

Authentication

AuthorizationBearer

Bearer authentication of the form Bearer <token>, where token is your auth token.

Path parameters

agentIdintegerRequired

Taksit seçenekleri istenen acentenin kimliği. GET /api/offline/agents yanıtındaki Value alanıdır.

Headers

AuthorizationstringOptional

Response headers

Content-TypestringOptional

Response

OK

Errors

400
Bad Request Error
403
Forbidden Error
404
Not Found Error