Skip to navigation

Create Premium

Bu dokümantasyon, offline iş akışı kapsamında prim teklifi oluşturma endpoint’inin teknik kullanım kılavuzudur. Endpoint aracılığıyla sigorta şirketi API kullanıcıları; prim bilgilerini çeşitli ödeme seçenekleriyle (peşin veya taksitli) iletebilir, teklif ve bilgilendirme belgelerini PDF olarak ekleyebilir.


Endpoint Bilgisi

ÖzellikDeğer
HTTP MetoduPOST
URL/api/offline/jobs/{jobId}/premiums
Content-Typeapplication/json
YetkilendirmeAuthorization: Bearer {token}

Yetkilendirme Rolleri

Çağıranın aşağıdaki rollerden birine sahip olması gerekir:

RolErişim Kapsamı
InsuranceCompanyAPIUserSadece kendi işlerine erişebilir
InsuranceCompanyAPIAdminŞirketin tüm işlerine erişebilir
SupervizorŞirketin tüm işlerine erişebilir

Route Parametreleri

ParametreTipZorunluAçıklama
jobIdintegerEvetİşin benzersiz tanımlayıcısı


İstek Modeli

Ana İstek — CreateOfferPremiumRequest

AlanTipZorunluAçıklamaDoğrulama Kuralları
InsuranceCompanyProposalNumberstringEvetSigorta şirketinin teklif numarasıBoş olamaz: "Insurance company proposal number is required."
RenewalNumberintegerEvetYenileme numarasıZorunlu: "Renewal number is required."
0’dan büyük veya eşit olmalı: "Renewal number must be greater than or equal to 0."
ProductIdintegerEvetÜrün tanımlayıcısıZorunlu: "Product ID is required."
MessagestringHayırİsteğe bağlı mesajMaks. 500 karakter: "Message cannot exceed 500 characters."
OfferPdfPremiumFileRequestHayırTeklif PDF dosyasıSağlanırsa PremiumFileRequest doğrulamaları uygulanır
InformationPdfPremiumFileRequestHayırBilgi PDF dosyasıSağlanırsa PremiumFileRequest doğrulamaları uygulanır
PremiumsPremiumEntryRequest[]EvetPrim girişleri listesiZorunlu: "Premium list is required."
Boş olamaz: "Premium list cannot be empty."
Tekrarsız olmalı: "Duplicate premium entries are not allowed for the same installment, payment type, and installment option."

Benzersizlik Kuralı: Aynı IsInstallmentsEqual + PaymentOptionType + InstallmentNumber kombinasyonuna sahip birden fazla prim girişi gönderilemez.

Prim Girişi — PremiumEntryRequest

AlanTipZorunluAçıklamaDoğrulama Kuralları
PaymentOptionTypeintegerEvetÖdeme seçeneği türüZorunlu: "PaymentOptionType is required."
Geçerli enum değeri (bknz.) olmalı: "PaymentOptionType must be a valid payment type."
CurrencyTypeintegerEvetPara birimi türüZorunlu: "CurrencyType is required."
Geçerli enum değeri (bknz.) olmalı: "CurrencyType must be a valid currency type."
IsInstallmentsEqualbooleanEvetTaksitler eşit tutarlı mı?—
FirstInstallmentRateintegerHayırİlk taksit oranı (%)1–100 arasında olmalı (sağlanırsa): "FirstInstallmentRate must be between 1 and 100."
InstallmentNumberintegerEvetTaksit sayısıZorunlu: "InstallmentNumber is required."
0’dan büyük olmalı: "InstallmentNumber must be greater than 0."
GrossPremiumdecimalEvetBrüt prim tutarıZorunlu: "GrossPremium is required."
0’dan büyük olmalı: "GrossPremium must be greater than 0."
GrossPremiumTLdecimalHayırBrüt prim TL karşılığı—
NetPremiumdecimalEvetNet prim tutarıZorunlu: "NetPremium is required."
0’dan büyük olmalı: "NetPremium must be greater than 0."
CommissiondecimalEvetKomisyon tutarıZorunlu: "Commission is required."
0’dan büyük veya eşit olmalı: "Commission must be greater than or equal to 0."
CommissionTLdecimalHayırKomisyon TL karşılığı—
ExchangeRatedecimalHayırDöviz kuru—
InstallmentExplanationstringHayırTaksit açıklama metni—
PremiumInstallmentDetailsPremiumInstallmentDetailRequest[]KoşulluTaksit detayları (InstallmentNumber > 1 olduğunda zorunlu)Zorunlu: "Premium installment details are required when InstallmentNumber is greater than 1."
Boş olamaz: "Premium installment details cannot be empty when InstallmentNumber is greater than 1."

Taksit Detayı — PremiumInstallmentDetailRequest

AlanTipZorunluAçıklamaDoğrulama Kuralları
InstallmentNumberintegerEvetToplam taksit sayısıZorunlu: "InstallmentNumber is required"
0’dan büyük olmalı: "InstallmentNumber must be greater than 0."
InstallmentNointegerEvetTaksit sıra numarasıZorunlu: "InstallmentNo is required"
0’dan büyük olmalı: "InstallmentNo must be greater than 0."
PaymentAmountdecimalEvetBu taksitin ödeme tutarıZorunlu: "PaymentAmount is required"
0’dan büyük olmalı: "PaymentAmount must be greater than 0."
CommissiondecimalEvetBu taksitin komisyon tutarıZorunlu: "Commission is required."
0’dan büyük veya eşit olmalı: "Commission must be greater than or equal to 0."
PaymentDatedatetimeEvetÖdeme tarihiZorunlu: "PaymentDate is required"
Boş olamaz: "PaymentDate must not be empty."

PDF Dosyası — PremiumFileRequest

Aşağıdaki alanlar yalnızca OfferPdf veya InformationPdf nesnesi gönderildiğinde zorunludur.

AlanTipZorunluAçıklamaDoğrulama Kuralları
FileNamestringEvet*Dosya adıBoş olamaz: "FileName must not be empty."
.pdf uzantısı olmalı: "Only PDF files are allowed."
ContentTypestringEvet*MIME türüBoş olamaz: "ContentType must not be empty."
application/pdf olmalı: "ContentType must be 'application/pdf'."
Base64ContentstringEvet*Base64 kodlu dosya içeriğiBoş olamaz: "Base64Content must not be empty."
Geçerli Base64 olmalı: "Base64Content must be a valid base64 encoded string."
İçerik geçerli bir PDF olmalı: "File content is not a valid PDF."

Yanıt Formatı

Başarılı Yanıt

HTTP Durumu: 201 Created
Yanıt gövdesi boştur.

Hata Yanıtı

{
"Status": false,
"Code": "Error.Code",
"Message": "Error description",
"Response": null
}

Doğrulama hatalarında Response alanı detayları içerir:

{
"Status": false,
"Code": "Validation.General",
"Message": "One or more validation errors occurred",
"Response": [
{
"Field": "FieldName",
"Message": "Error message description"
}
]
}

HTTP Durum Kodları

DurumAçıklama
201 CreatedPrim teklifi başarıyla oluşturuldu
400 Bad RequestDoğrulama hatası veya prim zaten mevcut
401 UnauthorizedEksik, geçersiz veya süresi dolmuş token
403 ForbiddenYetersiz yetki veya iş sahipliği reddedildi
404 Not Foundİş, teklif veya operation watch bulunamadı
500 Internal Server ErrorPlatform servisi hatası veya beklenmeyen hata

Hata Kodları Referansı

KodHTTP DurumuMesaj
Validation.General400One or more validation errors occurred
OfflineUsers.InsuranceCompanyNotFound403No valid insurance company assignment found in token.
OfflineUsers.UserIdentityNotResolved403User identity could not be resolved from token.
OfflineJobs.JobNotFound404No job found for the requested JobId.
OfflineJobs.JobOwnershipDenied403You do not have permission to access this job.
JobState.ProposalNotFound404Proposal record not found for job {jobId}.
JobState.OperationWatchNotFound404Operation Watch record not found for job {jobId}.
JobState.PremiumAlreadyExists400Premium information already exists for job {jobId}.
JobState.PlatformServiceFailure500Failed to write premium information to the platform service. Platform returned: {msg}
JobState.TransitionError500An unexpected error occurred during job state transition.

Authentication

AuthorizationBearer

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

Path parameters

jobIdintegerRequired
The unique identifier of the job to create a premium offer request for.

Request

This endpoint expects an object.

Response

Created

Errors

400
Bad Request Error
403
Forbidden Error
404
Not Found Error
500
Internal Server Error