Geri

Gateway OfflinePro Platform Dokümantasyonu V2

Version Publish Date
V1 2018-08-15
V2 2018-10-19

Bu dokümantasyon da açıklanan api istekleri, OfflinePro projesinin Gateway Platformları tarafından kullanılacak metotlarını içermektedir.

Aşağıdaki canlı ve test linklerini kullanarak, açıklaması yapılan metotlara ait api swaggerdan bilgi edinilebilir.

Test API Swagger:

http://testgatewayapi.insurapps.net/ApiDoc/index.html

Canlı API Swagger:

http://gatewayapi.insurapps.net/ApiDoc/index.html


OfflinePro Api Fonksiyonları Örnekleri ve Açıklamaları

Token Almak için(Authentication/Login)

Her istek bir token ile başlar, bu token olmadan offline istek başlatılamaz.

Url:

http://testgatewayapi.insurapps.net/api/authentication/login

Authorization Type: Bearer Token

Örnek Request:

{
      "UserName": "omer.ipek@acerpro.com.tr",
      "Password": "*Password*",
      "WebApiKey": "3CA9380245DFBA53359FE7D41**"
}

Requestteki tüm alanlar zorunludur.

Örnek Response:

{
      "Token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJmdXJrYW4uaW5jaUB2YWtpZmthdGlsaW0uY29tLnRyIiwianRpIjoiNjk2ODU5OGQtZmM1ZS00M2FiLWE2OWYtY2JjNmE0NTBhNDNjIiwicm9sZXMiOiJQbGF0Zm9ybVVzZXIiLCJBZ2VudElkIjoiMjEiLCJleHAiOjE4OTQ0MDE1MjMsImlzcyI6IkdhdGV3YXlQcm8iLCJhdWQiOiJHYXRld2F5UHJvIn0.oKWG69XQ-bePgvzm-gb23KZcQO5rmJdURwalFby5KUM",
      "Expiration": "2018-08-16T10:38:43Z"          
}

Token: Sistem tarafından üretilen token, platformların Gateway’ deki kullanıcı bilgilerini ve yetkilerini sağlayan bilgidir.
Request’ler esnasında Bearer Token olarak Authorization Type ile gönderilmesi gerekmektedir.

Expiration : Token’ın ömrünü belirtir. Expiration saat tipi TimeUtc’dir. Yani Türkiye saati ile +3 saat anlamına gelmektedir. Bu örnekte 2018-08-16 tarihinde Saat 10:38:43 +3 saat ile 13:38:43 itibari ile sonlanacaktır.
Önemli bir detay olarak, şu an tokenlarımızda refresh token bulunmamaktadır. Bir süre platformların, yapacakları isteklerden önce saati kontrol etmesi gerekmektedir.
Daha sonra ise Gateway tarafında yapılacak geliştirme ile istek esnasında platformların kullandığı token geçerli ise otomatik olarak token expiration süresi uzayacaktır. Bu geliştirme yapıldığında platforma bilgi iletilecektir.

*Önemli Not: Login’de dikkat edilmesi gereken nokta WebApiKey parametresi, her acenteye özel üretilen bilgidir. Bu bilgiyi request göndermeden önce, Gateway’den temin etmek gerekmektedir.

*Önemli Not2: Platformda offline istekte bulunacak kullanıcı OfflinePro sisteminde kayıtlı bir kullanıcı olmalıdır. Şöyle ki; işlemi yapacak olan kullanıcı Kağan Ayyıldız (kagan.ayyildiz@bankx.tr) isimli banka kullanıcısı olsun.
OfflinePro sisteminde bu kullanıcı kayıtlı olmayabilir.
Kullanıcının hangi acenteden istekte bulunduğu WebApiKey(bankx Üsküdar Şubesi Gateway Acente Id: 20) bilgisi ile doğrulanmaktadır.
OfflinePro sistemine kayıt edilen kullanıcı gönderilen WebApiKey bilgisindeki Gateway Acente Id’ye göre kaydedilmektedir.

OfflinePro’da tanımsız kullanıcı ile işlem yapılmadığından gönderilen Email Adresi ve WebApiKey bilgisine göre sistemde kullanıcı oluşturulur.

OfflinePro iş akışı oluştururken, her bir iş akışı bir job kaydı ile başlar.


Teklif oluşturma fonksiyonlarında 3 farklı istek türü vardır.

1. Gateway teklif numarası parametre olarak gönderilmeden
Sadece ilgili model gönderilir, gateway request,operation watch, proposal bilgisi üretir.

2. Gateway teklif numarası parametre olarak gönderilerek
Online ürünlerden dönen hatalardan sonra üretilen Gateway teklif numarası(onlinede üretilen teklif no kullanılmaya devam etmektedir.) gönderilerek, offline teklif üretilir.

3. Prim indirim isteği
Daha önce üretilen ve prim girişi yapılmış olan teklife ait prim indirim isteğinde bulunulmasıdır. Platform tarafından yapılan bu istek sonrası mevcut job üzerinden prim indirim isteği oluşturulur.

1. Gateway Teklif numarası gönderilmeden yapılan request.(Jobs/OfflineRequest)

Gateway Teklif numarası request içerisinde gönderilmeden yapılan request örneğidir.
Bu request’te gateway teklif numarası gönderilmeden işlem yapılmıştır.
Online üründen alınan bir hatayı Offline yönlendirilmek için değil Offline olan bir ürüne istekte bulunmak için kullanılır.

Test Url:

http://testgatewayapi.insurapps.net/api/Jobs/OfflineRequest

Örnek Request:

{
  "ProductIds":[3],
  "ProductBranchId":1,
  "Message":" Teklif istiyorum",
  "PlatformProposalId" :"12",
  "Attachments": [
    {
      "Title": "dokuman.pdf",
      "Type": "pdf",
      "PlaformDocumentId" : "20"
    },
    {
      "Title": "testtt23.pdf",
      "Type": "pdf",
      "PlaformDocumentId" : "21"
    }
  ]
}

Not: ProductIds ve Attachments array parametredir. Attachments PlaformDocumentId
parametresi platform servislerinden çekilecek unique bir bilgiye
sahip olan parametredir. Dosya, platform veritabanında hangi (Id-Name-Erişim bilgisi) ile kaydedilmiş ise o bilgi PlaformDocumentId
bilgisidir.
Kaydedilen dökümana daha sonra erişilebilmesi için o bilginin bu parametre içinde gönderilmesi gerekir.
Alan string alandır. Id veya erişime göre guid string parametre gönderilebilir.

PlatformProposalId - Platform teklif numarası eğer istek öncesi oluşturuluyorsa gönderilmelidir. Eğer teklif numarası istekten sonra oluşturuluyorsa 4. Request kullanılıarak(Jobs/jobId/UpdateProposalId) platform teklif numarası güncellenebilir.
Alan zorunlu alan değildir.

Örnek Response:

 {
    "JobDetails": [
        {
            "JobId": 14155,
            "ProposalId": 12088,
            "ProductId": 3,
            "InsuranceCompanyId": 3,
            "CurrentStage": 1,
            "JobStatus": 0
        }
    ]
}

Başarılı olma durumunda response status.

Status: 200 OK

Hata durumunda response status. Hata veya kurallarda dönebilecek status 400 Bad Requesttir.
Bu bad requestte uyarı bilgisi yansıtılmaktadır. Bu hatayı dilerseniz popup ile kullanıcıya gösterim yapabilirsiniz.

Status 400 Bad Request


*Önemli Not: Teklifte, herbir ürüne ait sadece bir job kaydı oluşturulur ve response de
bu bilgi dönülür. Örnek; X ürünü, Y ürünü, Z ürünü için teklif oluşturulmak istendiğinde, bu üç
ürün için üç farklı job oluşturulur.

Not: Job Status isteğin genel durumunu belirtir. Bu JobStatus bilgisine ait enum bilgisi aşağıda paylaşılmıştır.

2. Gateway Teklif numarası gönderilerek yapılan request. (Jobs/OfflineRequest)

Gateway Teklif numarası request bilgisi gönderilerek yapılan requesttir.
Bu request örneğini online olarak oluşmuş 10075 nolu Gateway Teklif Id’yi Offline yönlendirilmek için kullanılır.

Test Url:

http://testgatewayapi.insurapps.net/api/Jobs/OfflineRequest

Örnek Request:

 {
  "ProductIds":[12,13],
  "ProductBranchId":5,
  "ProposalId" : 10075,
  "Message": "Online teklif offline düştü",
  "PlatformProposalId": "0202",
  "Attachments": [
    {
      "Title": "test1.png",
      "FileType": "png",
      "PlaformDocumentId" : "20"
    },
    {
      "Title": "testtt23.png",
      "FileType": "png",
      "PlaformDocumentId" : "22"
    }
  ]
}

Başarılı olma durumunda response status.

Status: 200 OK

Hata durumunda response status. Hata veya kurallarda dönebilecek status 400 Bad Requesttir.
Bu bad requestte uyarı bilgisi yansıtılmaktadır. Bu hatayı dilerseniz popup ile kullanıcıya gösterim yapabilirsiniz.

Status 400 Bad Request


Not: ProductIds ve Attachments array parametredir. Attachments PlaformDocumentId
parametresi platform servislerinden çekilecek unique bir bilgiye
sahip olan parametredir. Dosya, platform veritabanında hangi (Id-Name-Erişim bilgisi) ile kaydedilmiş ise o bilgi PlaformDocumentId
bilgisidir.
Kaydedilen dökümana daha sonra erişilebilmesi için o bilginin bu parametre içinde gönderilmesi gerekir.
Alan string alandır. Id veya erişime göre guid string parametre gönderilebilir.

PlatformProposalId - Platform teklif numarası eğer istek öncesi oluşturuluyorsa gönderilmelidir. Eğer teklif numarası istekten sonra oluşturuluyorsa 4. Request kullanılıarak(Jobs/jobId/UpdateProposalId) platform teklif numarası güncellenebilir.
Alan zorunlu alan değildir.

Örnek Response:

  {
    "JobDetails": [
        {
            "JobId": 14156,
            "ProposalId": 10075,
            "ProductId": 14,
            "InsuranceCompanyId": 5,
            "CurrentStage": 1,
            "JobStatus": 1
        }
    ]
}

3. Prim girişi yapılmış fakat indirim istenilen request. (Jobs/OfflineRequest)

Gateway teklif oluşmuş ve sigorta şirketi teklif girişi yapıldıktan sonra platfrom tarafından(MT tarafından)
bu teklife ait prim indirim isteği için kullanılan requesttir.

Test Url:

http://testgatewayapi.insurapps.net/api/Jobs/11149/Premiums/RequestDiscount
11149 Örnek job numarasıdır, siz indirim isteğinde bulunmak istediğiniz job numarası bilgisi iletmelisiniz.

Örnek Request:

  {
  "ProductId": 3,
  "Message": "Müşterimiz banka personelidir, teklif indirim istiyorum indirimli teklif verir misin?",
  "PlatformProposalId" :"125",
  "Attachments": [
    {
      "Title": "platform.pdf",
      "FileType": "pdf",
      "PlaformDocumentId" : "20"
    },
    {
      "Title": "platform indirim.pdf",
      "FileType": "pdf",
      "PlaformDocumentId" : "23"
    }
  ]
}

Başarılı olma durumunda response status.

Status: 200 OK

Hata durumunda response status. Hata veya kurallarda dönebilecek status 400 Bad Requesttir.
Bu bad requestte uyarı bilgisi yansıtılmaktadır. Bu hatayı dilerseniz popup ile kullanıcıya gösterim yapabilirsiniz.

Status 400 Bad Request


Not: ProductIds ve Attachments array parametredir. Attachments PlaformDocumentId
parametresi platform servislerinden çekilecek unique bir bilgiye
sahip olan parametredir. Dosya, platform veritabanında hangi (Id-Name-Erişim bilgisi) ile kaydedilmiş ise o bilgi PlaformDocumentId
bilgisidir.
Kaydedilen dökümana daha sonra erişilebilmesi için o bilginin bu parametre içinde gönderilmesi gerekir.
Alan string alandır. Id veya erişime göre guid string parametre gönderilebilir.

PlatformProposalId - Platform teklif numarası eğer istek öncesi oluşturuluyorsa gönderilmelidir. Eğer teklif numarası istekten sonra oluşturuluyorsa 4. Request kullanılıarak(Jobs/jobId/UpdateProposalId) platform teklif numarası güncellenebilir.
Alan zorunlu alan değildir.

Örnek Response:

 Status 200 Ok

4. Oluşturulan Teklifin Platform teklif numarasını Güncellemek için. (Jobs/jobId/UpdateProposalId)

İstekte bulunan platform kendi teklif numarasını üretmek için öncelikle Gateway’den yanıt bekleyebiliyor.
Önce Job/OfflineRequest ile teklif süreci başlatıldıktan sonra platform teklif numarasını güncellemek için bu
fonksiyonu kullanmalısınız.
Aynı şekilde zeyil aşamasında platform teklif numarası değişebiliyor bu durum içinde Platform teklif numarasını bu
fonksiyondan güncelleyebilirsiniz.

Platform ilgili Job’a ait job Id bilgisini bu api’ye gönderdiğinde Job’a ait aksiyonlarda bu platform teklif bilgisi güncellemektedir.

Test Url:

http://testgatewayapi.insurapps.net/api/Jobs/12155/UpdateProposalId

12155 Örnek job numarasıdır, size ait güncellemek istediğiniz Job numarası bilgisi iletmelisiniz.

Örnek Request:

 "20"

Not: Tek parametreli bir api fonksiyonudur. Scope kullanılmadan doğrudan text olarak platform teklif numarası
bilgisi gönderilmelidir.

Örnek Response:

 Job(12155)'a ait kayıt başarıyla güncellenmiştir. 
 Status : 200 OK

5. Poliçe İsteği (Jobs/jobId/OfflinePolicyRequest)

Oluşturulan job’a ait prim girişi yapılmış ise platform tarafından poliçe isteği yapılabilecek fonksiyondur.

Test Url:

http://testgatewayapi.insurapps.net/api/Jobs/12149/OfflinePolicyRequest
12149 Örnek job numarasıdır. Platformlar, indirim isteğinde bulunmak istedikleri job numarası bilgisini iletmelidir.

Örnek Request:

{
  "ProductId":3,
  "Message":"Poliçe ver bana",
  "InstallmentNumber": 1,
  "PaymentType" : "Hesaptan",
  "Attachments": [
    {
      "Title": "test1.png",
      "FileType": "png",
      "PlatformDocumentId" : 20
    },
    {
      "Title": "testtt23.png",
      "FileType": "png",
      "PlatformDocumentId" : 20
    },
    {
      "Title": "dosyalar4.xlsx", 
      "FileType": "xlsx",
      "PlatformDocumentId" : 20
    }
  ]
}

Başarılı olma durumunda response status.

Status: 200 OK

Hata durumunda response status. Hata veya kurallarda dönebilecek status 400 Bad Requesttir.
Bu bad requestte uyarı bilgisi yansıtılmaktadır. Bu hatayı dilerseniz popup ile kullanıcıya gösterim yapabilirsiniz.

Status: 400 Bad Request


Not: Attachments array parametredir.

PlaformDocumentId - Platform servisinden erişilecek GetDocumentById’ye göre erişilecek platform döküman Id’sidir.

InstallmentNumber - Satın alınacak taksit numarası gönderilir.

PaymentType - Ödeme Türü

Ödeme Türünün alabileceği parametre listesi

/// <summary>
/// Ödeme Türleri
/// </summary>
public enum PaymentOptionType
{
    [Display(Name = "Hesaptan Ödeme")]
    [Description("A")]
    Hesaptan,
    [Display(Name = "Kredi Kartı")]
    [Description("K")]
    KrediKarti        
}

Örnek Response:

{
"JobDetails": [
    {
        "JobId": 12154,
        "ProposalId": 10075,
        "ProductId": 12,
        "InsuranceCompanyId": 1,
        "CurrentStage": 7,
        "JobStatus": 1
    }
]
}

Not: CurrentStage işlem sonucunda 7(Poliçe isteği) olarak güncellenmiştir. Job’a ait son durum CurrentStage bilgisinden takip edilebilir.

6. Zeyil İsteği (Jobs/jobId/OfflineEndorsementRequest)

Oluşturulan job’a ait prim girişi ve poliçe isteği yapıldıktan sonra, platform tarafından zeyil isteği yapılabilecek fonksiyondur.

Test Url:

http://testgatewayapi.insurapps.net/api/Jobs/12149/OfflineEndorsementRequest
12149 Örnek job numarasıdır, platform tarafından indirim isteğinde bulunmak istendiğinde, job numarası bilgisi iletilmelidir.

Örnek Request:

{
  "ProductId":13,
  "PolicyNo" : "10100010111",
  "EndorsementType": "Police Duzeltme Talebi",
  "EndorsementSubject" : "Adres Değişikliği",
  "RenewalNo" : "1",
  "PaymentType" : "KrediKarti",
  "PlatformProposalId": "12121",
  "Message":"Zeyil talep ediyorum, acilen yapılmalıdır.",
  "Attachments": [
    {
      "Title": "test1.pdf",
      "FileType": "application/pdf",
      "PlatformDocumentId" : 20
    }
  ]
}

Başarılı olma durumunda response status.

Status: 200 OK

Hata durumunda response status. Hata veya kurallarda dönebilecek status 400 Bad Requesttir.
Bu bad requestte uyarı bilgisi yansıtılmaktadır. Bu hatayı dilerseniz popup ile kullanıcıya gösterim yapabilirsiniz.

Status: 400 Bad Request


Not: Attachments array parametredir.
Zeyil parametreleri sigorta şirketine istek parametreleri gösterilmesi için gereken bilgileri Request detail içerisinde iletilecektir.

PlaformDocumentId - Platform servisinden erişilecek GetDocumentById’ye göre erişilecek platform döküman Id’sidir.

Ödeme Türü Parametresi zeyilde eğer satın alma işlemi yapılacak ise gönderilmelidir.
Boş geçilebilir alandır. Gönderilmesede request tamamlanır.
Sigorta şirketi ekranında BKM/Kredi Kartı transferi yapılacağında bu parametre kriter alınır.

PlatformProposalId: Platform teklif numarasını ifade eder eğer platform teklif numarası üretmiş ise bu
dolu gönderilmelidir.
PaymentType: Parametresi zeyil’de ödeme şekli seçimidir. Alabileceği değer listesi aşağıdaki gibidir.

Ödeme Türünün alabileceği parametre listesi

/// <summary>
/// Ödeme Türleri
/// </summary>
public enum PaymentOptionType
{
    [Display(Name = "Hesaptan Ödeme")]
    [Description("A")]
    Hesaptan,
    [Display(Name = "Kredi Kartı")]
    [Description("K")]
    KrediKarti        
}

Örnek Response:

 {
    "JobDetails": [
        {
            "JobId": 12155,
            "ProposalId": 12089,
            "ProductId": 13,
            "InsuranceCompanyId": 5,
            "CurrentStage": 10
        }
    ]
}

Not: CurrentStage işlem sonucunda 10(Zeyil isteği) olarak güncellenmiştir. Job’a ait son durumu CurrentStage bilgisinden takip edilebilir.

7. Zeyil İsteği (Jobs/OfflineEndorsementRequest)

Job bilgisi olmadan oluşturulabilecek bir zeyil istek fonksiyonudur.
Bu fonksiyonda job Id bilgisi olmadan zeyil isteği başlatılabilir.
İstek sonunda job bilgisi üretilir.
6. fonksiyonda ki gibi model geçerlidir.
Request ve response dönüş tipleri aynıdır.

Test Url:

http://testgatewayapi.insurapps.net/api/Jobs/OfflineEndorsementRequest

Örnek Request:

{
  "ProductId":13,
  "PolicyNo" : "101010101",
  "EndorsementType": "Police teminat değişimi",
  "EndorsementSubject" : "Anahtar teminatı istiyorum",
  "RenewalNo" : "2",
  "PaymentType" : "Hesaptan",
  "PlatformProposalId": "12120",
  "Message":"Zeyil talep ediyorum, acilen yapılmalıdır.",
  "Attachments": [
    {
      "Title": "test2.pdf",
      "FileType": "application/pdf",
      "PlatformDocumentId" : 211589
    }
  ]
}

Başarılı olma durumunda response status.

Status: 200 OK

Hata durumunda response status. Hata veya kurallarda dönebilecek status 400 Bad Requesttir.
Bu bad requestte uyarı bilgisi yansıtılmaktadır. Bu hatayı dilerseniz popup ile kullanıcıya gösterim yapabilirsiniz.

Status: 400 Bad Request


Not: Attachments array parametredir.
Zeyil parametreleri sigorta şirketine istek parametreleri gösterilmesi için gereken bilgileri Request detail içerisinde iletilecektir.

PlaformDocumentId - Platform servisinden erişilecek GetDocumentById’ye göre erişilecek platform döküman Id’sidir.

Ödeme Türü Parametresi zeyilde eğer satın alma işlemi yapılacak ise gönderilmelidir.
Boş geçilebilir alandır. Gönderilmesede request tamamlanır.
Sigorta şirketi ekranında BKM/Kredi Kartı transferi yapılacağında bu parametre kriter alınır.

PlatformProposalId: Platform teklif numarasını ifade eder eğer platform teklif numarası üretmiş ise bu
dolu gönderilmelidir.
PaymentType: Parametresi zeyil’de ödeme şekli seçimidir. Alabileceği değer listesi aşağıdaki gibidir.

Ödeme Türünün alabileceği parametre listesi

/// <summary>
/// Ödeme Türleri
/// </summary>
public enum PaymentOptionType
{
    [Display(Name = "Hesaptan Ödeme")]
    [Description("A")]
    Hesaptan,
    [Display(Name = "Kredi Kartı")]
    [Description("K")]
    KrediKarti        
}

Örnek Response:

{
    "JobDetails": [
        {
            "JobId": 16209,
            "ProposalId": 14128,
            "ProductId": 13,
            "InsuranceCompanyId": 5,
            "CurrentStage": 10,
            "JobStatus": 0
        }
    ]
}

Not: CurrentStage işlem sonucunda 10(Zeyil isteği) olarak güncellenmiştir. Job’a ait son durumu CurrentStage bilgisinden takip edilebilir.

Job - Job Action - Attachment Fonksiyonları (İş Aksiyonları)

Job ve Job action kayıtlarına ulaşabilmek için kullanılabilecek fonksiyonlar aşağıda ayrıntılandırılmıştır.

1. Joba ait tüm aksiyon bilgisi. (Jobs/jobId/Actions)

Job kaydına ait aksiyonları(actions) görüntüleyebilirsiniz.

Method Type: Get

Test Url:

http://testgatewayapi.insurapps.net/api/Jobs/12149/Actions
12149 Örnek job numarasıdır, platformlar indirim isteğinde bulunmak istediğinde, job numarası bilgisi iletmelidir.
http://testgatewayapi.insurapps.net/api/Jobs/12149/Actions?page=1&pagesize=10
Page sayfa bilgisini, PageSize sayfada görüntülenecek data sayısını belirtmektedir.

Örnek Response:

 {
  "Data": [
    {
      "Id": 140429,
      "JobId": 15216,
      "AgentId": 21,
      "CreateDate": "2018-10-19T13:59:19.6025088",
      "Message": "[Mesaj içeriği]",
      "ToFullName": "X Kullanıcı Adı",
      "FromFullName": "Y Kullancı Adı",
      "MessageFrom": 0,
      "MessageTo": 1,
      "Attachments": [],
      "PlatformProposalId": null,
      "ActionType": 0
    },
    {
      "Id": 140428,
      "JobId": 15216,
      "AgentId": 21,
      "CreateDate": "2018-10-19T13:57:47.7616082",
      "Message": "[Mesaj içeriği]",
      "ToFullName": "Y Kullancı Adı",
      "FromFullName": "Z Kullanıcı Adı",
      "MessageFrom": 1,
      "MessageTo": 0,
      "Attachments": [],
      "PlatformProposalId": null,
      "ActionType": 0
    },
    {
      "Id": 140427,
      "JobId": 15216,
      "AgentId": 21,
      "CreateDate": "2018-10-19T13:56:37.6774181",
      "Message": "[Mesaj İçeriği]",
      "ToFullName": "Y Kullancı Adı",
      "FromFullName": "X Kullanıcı Adı",
      "MessageFrom": 1,
      "MessageTo": 0,
      "Attachments": [],
      "PlatformProposalId": null,
      "ActionType": 0
    },
    {
      "Id": 140426,
      "JobId": 15216,
      "AgentId": 21,
      "CreateDate": "2018-10-19T13:56:11.3101596",
      "Message": "[Mesaj İçeriği]",
      "ToFullName": "Y Kullancı Adı",
      "FromFullName": "X Kullanıcı Adı",
      "MessageFrom": 1,
      "MessageTo": 0,
      "Attachments": [],
      "PlatformProposalId": null,
      "ActionType": 0
    },
    {
      "Id": 140425,
      "JobId": 15216,
      "AgentId": 21,
      "CreateDate": "2018-10-19T11:09:14.9749765",
      "Message": "[Mesaj İçeriği]",
      "ToFullName": "X Kullanıcı Adı",
      "FromFullName": "Y Kullancı Adı",
      "MessageFrom": 0,
      "MessageTo": 1,
      "Attachments": [],
      "PlatformProposalId": null,
      "ActionType": 0
    },
    {
      "Id": 140424,
      "JobId": 15216,
      "AgentId": 21,
      "CreateDate": "2018-10-19T11:09:05.5754547",
      "Message": "[Mesaj İçeriği]",
      "ToFullName": "X Kullanıcı Adı",
      "FromFullName": "Y Kullancı Adı",
      "MessageFrom": 0,
      "MessageTo": 1,
      "Attachments": [],
      "PlatformProposalId": null,
      "ActionType": 0
    },
    {
      "Id": 140423,
      "JobId": 15216,
      "AgentId": 21,
      "CreateDate": "2018-10-19T10:35:18.9588922",
      "Message": "[Mesaj İçeriği]",
      "ToFullName": "X Kullanıcı Adı",
      "FromFullName": "Y Kullancı Adı",
      "MessageFrom": 0,
      "MessageTo": 1,
      "Attachments": [],
      "PlatformProposalId": null,
      "ActionType": 0
    },
    {
      "Id": 140421,
      "JobId": 15216,
      "AgentId": 21,
      "CreateDate": "2018-10-19T10:23:39.3992686",
      "Message": null,
      "ToFullName": "Y Kullancı Adı",
      "FromFullName": "X Kullanıcı Adı",
      "MessageFrom": 1,
      "MessageTo": 0,
      "Attachments": [],
      "PlatformProposalId": "25",
      "ActionType": 1
    }
  ],
  "Page": 1,
  "PageSize": 10,
  "TotalCount": 8
}

Not: Data aksiyon listesi, Page = hangi sayfa, PageSize = sayfadaki kayıt sayısı, TotalCount = Datanın toplamdaki kayıt sayısı.
MessageFrom ve MessageTo Enum Listesi aşağıdaki gibidir.
Mesajın sahibi(MessageFrom) ve Mesajın gönderildiği kişiyi (MessageTo) belirtmek için kullanılır.

    /// <summary>
    /// İletilen aksiyon Kime Ait?
    /// </summary>
    public enum MessageSentBy
    {
        [Display(Name = "Sigorta Şirketi")]
        InsuranceCompany = 0,

        [Display(Name = "Platform")]
        Platform = 1
    }

1.1 Jobdaki aksiyona ait detay bilgisini çekebilmek için (Jobs/jobId/Actions/actionId)

Mevcut job kaydına ait actions(aksiyonları) görüntüleyebilirsiniz.

Method Type: Get

Test Url:

http://testgatewayapi.insurapps.net/api/Jobs/12149/Actions/110336
12149 Örnek job numarasıdır, platformlar indirim isteğinde bulunmak istediğinde job numarası bilgisi iletmelidir.
110336 Parametriktir, aksiyon numarasını temsil eder. Platformlar istekte bulunurken kendi job action numaranızı göndermelesiniz.

Örnek Response:

   {
    "Id": 110336,
    "JobId": 12149,
    "AgentId": 21,
    "CreateDate": "2018-08-13T14:07:04.9933333",
    "Message": "[Mesaj İçeriği]",     
    "ToFullName": "X Kullanıcı Adı",
    "FromFullName": "Y Kullancı Adı",
    "MessageFrom": 0,
    "MessageTo": 1,   
    "Attachments": [
        {
            "AttachmentId": 1,
            "JobActionId": 110336,
            "Title": "test1.png",
            "AgentId": 0,
            "FileType": "png",
            "Bytes": null,
            "ErrorExplanation": null,
            "PlatformDocumentId" :1
        },
        {
            "AttachmentId": 2,
            "JobActionId": 110336,
            "Title": "testtt23.png",
            "AgentId": 0,
            "FileType": "png",
            "Bytes": null,
            "ErrorExplanation": null,
            "PlatformDocumentId" :1
        }
    ]
    "PlatformProposalId" : "20"
}

MessageFrom ve MessageTo Enum Listesi aşağıdaki gibidir.
Mesajın sahibi(MessageFrom) ve Mesajın gönderildiği kişiyi (MessageTo) belirtmek için kullanılır.
Yukarıda ki response örneğinde MessageFrom(Gönderen) Sigorta Şirketi MessageTo(Karşılayan) Platformdur.

    /// <summary>
    /// İletilen aksiyon Kime Ait?
    /// </summary>
    public enum MessageSentBy
    {
        [Display(Name = "Sigorta Şirketi")]
        InsuranceCompany = 0,

        [Display(Name = "Platform")]
        Platform = 1
    }

2. Aksiyonlarda girilen eklere ait dosyaların listesi için (Jobs/jobId/Actions/jobActionId/Attachments

Job kaydına ait aksiyonların dökümanlarını görüntüleyebilirsiniz.
Aşağıdaki örnekte 12149 nolu job’ın 110336 aksiyonuna ait tüm ekleri getirir.

Method Type: Get

Test Url:

http://testgatewayapi.insurapps.net/api/Jobs/12149/Actions/110336/Attachments
12149 Örnek job numarasıdır, platformlar indirim isteğinde bulunmak istediğinde job numarası bilgisi iletmelidir.
110336 Parametriktir, aksiyon numarasını temsil eder. Platformlar istekte bulunurken kendi job action numarasını iletmelidir.

Örnek Response:

{
    "Data": [
        {
            "AttachmentId": 1,
            "JobActionId": 110336,
            "Title": "test1.png",
            "AgentId": 0,
            "FileType": "png",
            "Bytes": null,
            "ErrorExplanation": null,
            "PlatformDocumentId" :1
        },
        {
            "AttachmentId": 2,
            "JobActionId": 110336,
            "Title": "testtt23.png",
            "AgentId": 0,
            "FileType": "png",
            "Bytes": null,
            "ErrorExplanation": null,
            "PlatformDocumentId" :1
        }
    ],
    "Page": 1,
    "PageSize": 10,
    "TotalCount": 2
}

2.1 Aksiyonlarda girilen eklere ait dosyanın kayıdı için (Jobs/jobId/Actions/jobActionId/Attachments/attachmentId

Job’a ait aksiyonun dökümanını detayını görüntüleyebilirsiniz.
Yukarıda ki (2 nolu madde de) Aksiona ait ek listesinin tüümü getirilirken burada ki
örnekte ilgili eke ait detay bilgilerini getirir.

Method Type: Get

Test Url:

http://testgatewayapi.insurapps.net/api/Jobs/12149/Actions/110336/Attachments/19
12149 Örnek job numarasıdır, platformlar indirim isteğinde bulunmak istediğinde job numarası bilgisi iletmelidir.
110336 Parametriktir, aksiyon numarasını temsil eder. Platformlar istekte bulunurken kendi job action numarasını göndermelidir.
19 Ek dosyaya ait dosya numarasını temsil etmektedir. Platformlar istekte bulunurken kendi dosya numarasını, GetAll servisinden bilgiyi edindikten sonra parametre olarak göndermelidir.

Örnek Response:

{
    "AttachmentId": 19,
    "JobActionId": 110354,
    "Title": "2986336a-f60a-4ae5-9e68-e48a791a4978.pdf",
    "AgentId": 21,
    "FileType": "pdf",
    "Bytes": [ByteArray],
    "PlatformDocumentId" :1
}

Stage(Aşamalar)

    [Display(Name = "Mesaj")]
    Message = 0,

    [Display(Name = "Prim İsteği")]
    PremiumRequested = 1,

    [Display(Name = "Prim Reddedildi")]
    PremiumRequestRejected = 2,

    [Display(Name = "Prim Verildi")]
    PremiumOffered = 3,

    [Display(Name = "Prim Revize İsteği")]
    PremiumReviseRequested = 4,

    [Display(Name = "Prim Revize Gerçekleşti")]
    PremiumRevised = 5,

    [Display(Name = "Prim Revize Reddedildi")]
    PremiumReviseRejected = 6,

    [Display(Name = "Poliçe İsteği")]
    PolicyRequested = 7,

    [Display(Name = "Poliçe Reddedildi")]
    PolicyRejected = 8,

    [Display(Name = "Poliçe Gerçekleşti")]
    PolicyMade = 9,

    [Display(Name = "Zeyil İsteği")]
    EndorsementRequested = 10,

    [Display(Name = "Zeyil Reddedildi")]
    EndorsementRejected = 11,

    [Display(Name = "Zeyil Gerçekleşti")]
    EndorsementMade = 12

JobStatus (Job Durumu)

    [Display(Name = "Yeni")]
    New,
    [Display(Name = "Devam Ediyor")]
    InProcess,
    [Display(Name = "Durduruldu")]
    Paused,
    [Display(Name = "Kapatıldı")]
    Closed