Reject Revise Batch Premium

## Toplu Teklif Revize Talebini Reddet ### Endpoint Bilgileri | Alan | Değer | | --- | --- | | **Method** | `PUT` | | **URL** | `{{baseUrl}}/api/Offline/jobs/{jobId}/BatchPremiums/reject-revision` | | **Content-Type** | `application/json` | | **Yetkilendirme** | Bearer Token + `Update` politikası | --- Acentenin açtığı toplu teklif revize (indirim) talebini, seçilen red sebebi ve açıklama ile reddeder. Başarılı istekte iş `Toplu Teklif Revize Talebi Reddedildi` (`BatchPremiumReviseRejected`) aşamasına geçer, red aksiyonu oluşturulur, platforma iletilir, varsa ek dosyalar kaydedilir ve bilgilendirme maili gönderilir. > İşin aşaması `Toplu Teklif Revize Talebi` (`BatchPremiumReviseRequested`) olmalıdır; aksi halde geçiş reddedilir. --- ### Route Parametreleri | Parametre | Tip | Zorunlu | Açıklama | | --- | --- | --- | --- | | `jobId` | `integer` | Evet | Revize talebi reddedilecek işin Id bilgisi | --- ### Kimlik Doğrulama Geçerli bir bearer token gerektirir. Token şunları içermelidir: - Tanınan bir rol (`InsuranceCompanyAPIUser`, `InsuranceCompanyAPIAdmin` veya `Supervizor`) - İlgili route için `Update` yetkisi - Geçerli bir sigorta şirketi ataması - Çözümlenebilir bir kullanıcı kimliği > `InsuranceCompanyAPIUser` yalnızca kendi sahibi olduğu işleri reddedebilir. `InsuranceCompanyAPIAdmin` ve `Supervizor` şirketin tüm işlerine erişebilir. --- ### İstek Modeli — `RejectReviseBatchPremiumRequest` | Alan | Tip | Zorunlu | Açıklama | Doğrulama | | --- | --- | --- | --- | --- | | `JobRejectReason` | `integer` | Evet | Red sebebi Id | Zorunlu: `"JobRejectReason is required."` <br>0'dan büyük olmalı: `"JobRejectReason must be greater than 0."` | | `Message` | `string` | Evet | Red açıklaması | Zorunlu: `"Message is required."` <br>Boş olamaz: `"Message must not be empty."` <br>Maks. 500 karakter: `"Message must not exceed 500 characters."` | | `Attachments` | `PremiumFileRequest[]` | Hayır | Redde dayanak oluşturan belgeler | Gönderilirse her eleman için `PremiumFileRequest` doğrulamaları uygulanır | > `JobId` gövdeden alınmaz (`[JsonIgnore]`); route parametresinden set edilir. 0'dan büyük olmalıdır: `"JobId must be greater than 0."` > > `JobRejectReason` yalnızca sayısal olarak doğrulanır; kategori veya şirket uygunluğu kontrolü yapılmaz. #### Ek Dosya — `PremiumFileRequest` | Alan | Tip | Zorunlu | Açıklama | Doğrulama | | --- | --- | --- | --- | --- | | `FileName` | `string` | Evet\* | Dosya adı | Boş olamaz: `"FileName must not be empty."` <br>`.pdf` ile bitmeli: `"Only PDF files are allowed."` | | `Base64Content` | `string` | Evet\* | Base64 kodlu dosya içeriği | Boş olamaz: `"Base64Content must not be empty."` <br>Geçerli base64 olmalı: `"Base64Content must be a valid base64 encoded string."` <br>İçerik geçerli bir PDF olmalı: `"File content is not a valid PDF."` | | `ContentType` | `string` | Hayır | MIME türü | Doğrulanmaz; kayıt sırasında `application/pdf` olarak set edilir | > \* Bu alanlar yalnızca `Attachments` dizisi gönderildiğinde doğrulanır. İçerik, base64 çözüldükten sonra PDF imzasıyla (`%PDF`) başlamalıdır. --- ### Yanıt #### `204 No Content` — Başarılı Yanıt Gövde boştur. --- ### Hata Senaryoları #### `400 Bad Request` — Doğrulama Hatası İstek modeli doğrulamadan geçemediğinde döner. Hatalı alanlar `Response` içinde listelenir. ``` json { "Status": false, "Code": "Validation.General", "Message": "One or more validation errors occurred", "Response": [ { "Field": "JobRejectReason", "Message": "JobRejectReason is required." }, { "Field": "Message", "Message": "Message is required." } ] } ``` --- #### `403 Forbidden` — Geçerli Sigorta Şirketi Ataması Bulunamadı Token'da geçerli bir sigorta şirketi ataması bulunmadığında döner. ``` json { "Status": false, "Code": "OfflineUsers.InsuranceCompanyNotFound", "Message": "No valid insurance company assignment found in token.", "Response": null } ``` --- #### `403 Forbidden` — Kullanıcı Kimliği Çözümlenemedi Token'dan kullanıcı kimliği okunamadığında döner. ``` json { "Status": false, "Code": "OfflineUsers.UserIdentityNotResolved", "Message": "User identity could not be resolved from token.", "Response": null } ``` --- #### `403 Forbidden` — İşe Erişim Reddedildi İş, çağıranın sahipliğinde değilse döner. ``` json { "Status": false, "Code": "OfflineJobs.JobOwnershipDenied", "Message": "You do not have permission to access this job.", "Response": null } ``` --- #### `403 Forbidden` — Rol veya Yetki Yetersiz Kullanıcı tanınan rollerden birine sahip değilse ya da `Update` yetkisi yoksa döner. **Gövde boştur.** --- #### `401 Unauthorized` — Token Yok veya Geçersiz Token gönderilmediğinde, geçersiz olduğunda veya süresi dolduğunda döner. **Gövde boştur.** --- #### `404 Not Found` — İş Bulunamadı Belirtilen `jobId` ile bir iş bulunamadığında döner. ``` json { "Status": false, "Code": "OfflineJobs.JobNotFound", "Message": "No job found for the requested JobId: 100931.", "Response": null } ``` --- #### `500 Internal Server Error` — İş Kuralı İhlali İş uygun aşamada değilse, red aksiyonu platforma iletilemezse veya aksiyonu karşılayacak kullanıcı bulunamazsa döner. `Message` alanı iş kuralı hatasının detayını içerir. ``` json { "Status": false, "Code": "JobState.UnknownBusinessRule", "Message": "An unknown business rule error occurred: 'Toplu Prim Verildi' aşamasından 'Toplu Teklif Revize Talebi Reddedildi' aşamasına geçiş yapılamaz.", "Response": null } ``` > Aksiyon platforma iletilemediğinde (red sebebi teknik hata kategorisinde değilse) oluşturulan aksiyon silinir ve iş `Toplu Teklif Revize Talebi` aşamasına geri döndürülür. --- #### `500 Internal Server Error` — Beklenmeyen Hata Geçiş sırasında iş kuralı dışında bir hata oluştuğunda döner. ``` json { "Status": false, "Code": "JobState.TransitionError", "Message": "An unexpected error occurred during job state transition.", "Response": null } ```

Authentication

AuthorizationBearer

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

Path parameters

jobIdintegerRequired

Request

This endpoint expects an object.

Response

No Content

Errors

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