## Offline İşleri Getir
InsurGateway API üzerinden offline işlerin sayfalanmış listesini getirir.
### Endpoint
`GET /api/offline/jobs`
### Kimlik Doğrulama
Bu istek, üst koleksiyondan miras alınan **Bearer Token** kimlik doğrulamasını kullanır. Token, `{{authToken}}` ortam değişkeninden çözümlenir.
### Sorgu Parametreleri
Tüm sorgu parametreleri isteğe bağlıdır ve varsayılan değerlere sahiptir. Hiçbir parametre gönderilmezse varsayılan değerler kullanılır.
| Parametre | Tip | Zorunlu | Varsayılan | Açıklama |
| --- | --- | --- | --- | --- |
| `page` | integer | ❌ | `1` | Getirilecek sayfa numarası (1'den başlar). Minimum değer: `1`. |
| `pageSize` | integer | ❌ | `50` | Sayfa başına döndürülecek kayıt sayısı. Değer aralığı: `1` - `200`. |
| `sortOrder` | enum | ❌ | `desc` | Sonuçların sıralama yönü. Kabul edilen değerler: `asc`, `desc`. |
| `lastActionDate` | string (tarih) | ❌ | `DateTime.Today` | İşleri oluşturulma tarihine göre filtreler. Format: `YYYY-MM-DD` (örn. `2025-01-15`). Varsayılan olarak bugünün tarihi kullanılır. |
### Örnek İstek
```
GET https://gatewayapi.insurapps.net/api/offline/jobs?page=1&pageSize=50&sortOrder=desc&lastActionDate=2025-03-13
```
### Yanıt Yapısı
#### Başarılı Yanıt (200 OK)
``` json
{
"TotalCount": 38,
"Page": 1,
"Size": 50,
"TotalPage": 1,
"HasNextPage": false,
"HasPreviousPage": false,
"Items": [
{
"Id": 100001,
"CurrentStage": 1,
"JobStatus": 0,
"ProductId": 10,
"ProductBranchId": 3,
"RejectReasonId": null,
"LastJobActionType": 1,
"CreateDate": "2025-03-01T10:00:00.0000000",
"LastActionDate": "2025-03-01T10:00:00.0000000",
"HasExistPolicyRequest": false,
"OwnerId": null,
"AgentName": null,
"ProductBranchName": "Kasko",
"PlatformProposalId": null,
"InsuranceCompanyProposalNumber": "234234231"
},
{
"Id": 100002,
"CurrentStage": 2,
"JobStatus": 1,
"ProductId": 20,
"ProductBranchId": 1,
"RejectReasonId": null,
"LastJobActionType": 2,
"CreateDate": "2025-03-02T11:30:00.0000000",
"LastActionDate": "2025-03-02T14:00:00.0000000",
"HasExistPolicyRequest": true,
"OwnerId": 5001,
"AgentName": "Acme Sigorta Acentesi",
"ProductBranchName": "Trafik",
"PlatformProposalId": "PLT-0001",
"InsuranceCompanyProposalNumber": null
}
.
.
.
]
}
```
| Alan | Tip | Açıklama |
| --- | --- | --- |
| `TotalCount` | integer | Toplam kayıt sayısı. |
| `Page` | integer | Mevcut sayfa numarası. |
| `Size` | integer | Sayfa başına kayıt sayısı. |
| `TotalPage` | integer | Toplam sayfa sayısı. |
| `HasNextPage` | boolean | Sonraki sayfa var mı. |
| `HasPreviousPage` | boolean | Önceki sayfa var mı. |
| `Items` | array | İş kayıtlarının listesi. |
**Items Dizisi:**
| Alan | Tip | Açıklama |
| --- | --- | --- |
| `Id` | integer | İş kaydının benzersiz kimliği. |
| `CurrentStage` | integer | İşin mevcut aşaması. [bknz.](https://docs.insurgateway.com/offline-constants#offline-stage-action) |
| `JobStatus` | integer | İş durumu kodu. [bknz.](https://docs.insurgateway.com/offline-constants#job-status) |
| `ProductId` | integer | Ürün kimliği. |
| `ProductBranchId` | integer | Ürün branş kimliği. |
| `RejectReasonId` | integer / null | Red nedeni kimliği. |
| `LastJobActionType` | integer | Son iş stage(aksiyon) tipi. [bknz.](https://docs.insurgateway.com/offline-constants#offline-stage-action) |
| `CreateDate` | string (datetime) | Oluşturulma tarihi. |
| `LastActionDate` | string (datetime) | Son işlem tarihi. |
| `HasExistPolicyRequest` | boolean | Mevcut poliçe talebi var mı. |
| `OwnerId` | integer / null | Sahip kimliği. |
| `AgentName` | string / null | Acente adı. |
| `ProductBranchName` | string | Ürün branş adı (örn. Trafik, KonutYangin). |
| `PlatformProposalId` | string / null | Platform teklif kimliği. |
| InsuranceCompanyProposalNumber | string / null | Sigorta şirketi teklif numarası |
#### Validasyon Hatası (400 - Status: false)
Geçersiz parametreler gönderildiğinde döner. Her hatalı alan için ayrı bir hata mesajı içerir.
``` json
{
"Status": false,
"Code": "Validation.General",
"Message": "One or more validation errors occurred",
"Response": [
{
"Field": "Page",
"Message": "Page must be greater than or equal to 1."
},
{
"Field": "PageSize",
"Message": "PageSize must be between 1 and 200."
},
{
"Field": "SortOrder",
"Message": "sortOrder must be 'asc' or 'desc'."
},
{
"Field": "CreateDate",
"Message": "createDate must be in 'yyyy-MM-dd' format (e.g. 2025-01-15)."
}
]
}
```
#### Şirket Ataması Hatası (403 - Status: false)
Token'da geçerli bir sigorta şirketi ataması bulunamadığında döner.
``` json
{
"Status": false,
"Code": "OfflineUsers.InsuranceCompanyNotFound",
"Message": "No valid insurance company assignment found in token.",
"Response": null
}
```
#### Yetkilendirme Hataları
| Durum Kodu | Açıklama |
| --- | --- |
| `401 Unauthorized` | Token geçersiz veya süresi dolmuş. Body dönmez. |
| `403 Forbidden` | Kullanıcının bu endpoint'e erişim yetkisi yok. Body dönmez. |
### Kullanım Sıklığı ve Zamanlama
Bu endpoint yüksek miktarda veri döndürdüğünden, aşırı kullanımdan kaçınılmalıdır.
| Özellik | Değer |
| --- | --- |
| **Önerilen Çağrı Sıklığı** | Günde 1 kez |
| **Önerilen Zaman Dilimi** | Akşam saatleri (iş saatleri dışında) |
| **Gerekçe** | API yüksek hacimli veri döndürdüğünden, sistem yükünü azaltmak ve performansı korumak için günde bir kez akşam saatlerinde çağrılması yeterlidir. |
> **Uyarı:** Bu endpoint'in gün içinde sık aralıklarla çağrılması gereksiz sistem yükü oluşturabilir. Akşam saatlerinde günde tek bir çağrı ile güncel verilere ulaşılabilir.
### Notlar
- İstek göndermeden önce aktif ortamda geçerli bir `authToken` değişkeninin ayarlandığından emin olun. Token almak için **Authentication Login** isteğini kullanabilirsiniz.
- Token süresi dolmuşsa, yeni bir token almak için **Refresh Token** isteğini kullanın.
- Kullanıcının token'ında mutlaka bir sigorta şirketi ataması ve **InsuranceCompanyAPIAdmin** yetkisi bulunmalıdır.
Authentication
AuthorizationBearer
Bearer authentication of the form Bearer <token>, where token is your auth token.
Query parameters
lastActionDatestringOptional