InstallmentRuleChange Notification

InsurGateway tarafında bir taksit tanımı (sigorta şirketi / branş / ürün / acente kapsamında geçerli taksit seçenekleri) değiştiğinde, ilgili acentelerin platformlarına gönderilen bildirim tipidir. Platform bu bildirim ile hangi kapsamda hangi taksit seçeneklerinin geçerli olduğunu öğrenir ve kendi teklif hazırlama / ödeme ekranı mantığını buna göre günceller.

Bildirim şu dört durumda tetiklenir:

  • Ekleme: Yeni bir taksit tanımı (genel veya acente özel) oluşturulduğunda.
  • Güncelleme: Tanımın taksit seçenekleri veya kapsamı (branş/ürün) değiştiğinde.
  • Aktiflik değişimi: Tanım pasife çekildiğinde veya tekrar aktife alındığında.
  • Silme: Taksit tanımı silindiğinde.

Bildirim delta değil, tanımın o anki tam durumunu taşır: tek bir taksit seçeneği değişse dahi tanıma ait tüm seçenekler gönderilir. Tanım açılıp hiçbir alan değiştirilmeden kaydedilirse (seçenekler yalnızca farklı sırada işaretlenmiş olsa bile) bildirim gönderilmez.

Header ve zarf (envelope) yapısı için: Platform Entegrasyon Gereksinimleri. Bu bildirim tipi standart zarfı ve standart retry davranışını kullanır: başarı için hem HTTP 200 hem de gövdede ResultStatus.Status = "Success" gerekir.


Endpoint

AlanDeğer
HTTP MethodPOST
Path/PushNotification
NotificationType12

Örnek İstek

curl -X POST "https://platform.ornek.com.tr/insurgw/PushNotification" \
-H "Content-Type: application/json" \
-H "x-api-key: 9f3c1e8a-2b4d-1234-5678-deadbeefcafe" \
-d '{
"ReferanceNo": "10025_20260806073000123a1b2c_0_0",
"SubReferanceNo": "a1b2c3d4-e5f6-7890abcdef1234567890",
"RequestKeyValueSet": null,
"RequestObject": {
"NotificationType": 12,
"Payload": "[{\"ChangeType\":\"updated\",\"Values\":[{\"InsuranceCompanyId\":12,\"ProductBranchId\":3,\"ProductId\":null,\"AgentId\":null,\"IsActive\":true,\"UpdatedDate\":\"2026-08-06T07:30:00Z\",\"Installments\":[{\"InstallmentCount\":1,\"PaymentType\":\"A\"},{\"InstallmentCount\":3,\"PaymentType\":\"K\"}]}]}]"
}
}'

ReferanceNo opak bir idempotency anahtarıdır; format {AgentId}_{zamanDamgası+benzersiz}_0_0 şeklindedir ve aynı bildirimin retry’larında değişmez.


Parse Edilmiş Payload

RequestObject.Payload alanı serialize edilmiş bir JSON string’tir; ikinci bir parse sonrasında aşağıdaki yapıya ulaşılır. Kök eleman bir dizidir.

[
{
"ChangeType": "updated",
"Values": [
{
"InsuranceCompanyId": 12,
"ProductBranchId": 3,
"ProductId": null,
"AgentId": null,
"IsActive": true,
"UpdatedDate": "2026-08-06T07:30:00Z",
"Installments": [
{ "InstallmentCount": 1, "PaymentType": "A" },
{ "InstallmentCount": 3, "PaymentType": "K" }
]
}
]
}
]
AlanTipAçıklama
[]object[]Değişiklik tipine göre gruplanmış dizi. En az bir grup içerir.
[].ChangeTypestringadded, updated veya deleted.
[].Valuesobject[]O gruptaki değişen taksit tanımları.

Taksit tanımı objesi alanları (Values elemanları):

AlanTipAçıklama
InsuranceCompanyIdintTanımın ait olduğu sigorta şirketi kodu.
ProductBranchIdint|nullTanımın sınırlandığı branş kodu. null ise tanım şirketin tamamı için geçerlidir.
ProductIdint|nullTanımın sınırlandığı ürün kodu. null ise tanım branş veya şirket seviyesindedir.
AgentIdint|nullTanımın sınırlandığı acente kodu. null ise genel (tüm acenteler için geçerli) tanımdır.
IsActiveboolTanımın aktif/pasif durumu. false ise taksit çözümlemesinde dikkate alınmaz.
UpdatedDatestring(ISO 8601)|nullTanımın son güncellenme zamanı. UTC olarak gönderilir (Z sonekli). deleted bildiriminde silinmeden önceki son değeri taşır.
Installmentsobject[]Tanımdaki tüm taksit seçenekleri. Tanımda hiç seçenek yoksa boş dizi gelir.

Taksit seçeneği objesi alanları (Installments elemanları):

AlanTipAçıklama
InstallmentCountintTaksit sayısı (1-12).
PaymentTypestringA = açık hesap, K = kredi kartı.

Beklenen Cevap

Platform, standart cevap zarfını döndürmelidir. Başarı kabul edilmesi için hem HTTP 200, hem de gövdede ResultStatus.Status = "Success" gerekir.

Başarı:

HTTP/1.1 200 OK
Content-Type: application/json
{ "ResultStatus": { "Status": "Success", "Explanation": null }, "Result": null }

Hata (retry tetikler):

HTTP/1.1 200 OK
Content-Type: application/json
{ "ResultStatus": { "Status": "Error", "Explanation": "Taksit değişikliği işlenemedi." }, "Result": null }

Bildirim ReferanceNo üzerinden idempotent işlenmelidir; aynı ReferanceNo ile yeniden gelen bir bildirim tekrar uygulanmamalıdır.


Retry

2xx dışı HTTP kodu, gövdede Status ≠ "Success" ve transport hatası (bağlantı kopması / timeout) durumlarının tamamı retry tetikler.

ParametreDeğer
Retry koşuluHTTP hatası, Status ≠ "Success" veya transport hatası
Maksimum retry (orijinal hariç)5
Toplam maksimum deneme6
Bekleme süreleri3 sn → 10 sn → 1 dk → 1 saat (≥4. retry)

Son retry’da HTTP başlığında IsLastAttemptToReDelivery=true gönderilir.