ProductUsingChange Notification

InsurGateway tarafında bir ürünün request mapping’i (ilgili sigorta şirketi servisine giderken kullanılan “key/parametre kullanım listesi” — kısaca usings) değiştiğinde, o ürünü kullanan acentelerin platformlarına gönderilen bildirim tipidir. Platform bu bildirim ile hangi key’lerin artık gönderilmesi gerektiğini (eklenenler) ve hangilerinin artık gönderilmeyeceğini (kaldırılanlar) öğrenir; kendi teklif/poliçe isteği hazırlama mantığını buna göre günceller.

Bildirim yalnızca değişikliği (delta) taşır; ürünün tüm güncel key listesini değil, sadece eklenen ve kaldırılan key’leri içerir. Bir ürün için ilk hesaplamada (karşılaştırılacak önceki kayıt henüz olmadığından) bildirim gönderilmez; yalnızca o anki liste kayıt altına alınır. Bu noktadan sonraki her değişiklikte delta gönderilir.

Header ve zarf (envelope) yapısı için: Platform Entegrasyon Gereksinimleri. Bu bildirim tipinde cevap ve retry davranışı aşağıda ayrıca tanımlanmıştır: başarı yalnızca HTTP durum koduna göre belirlenir ve transport hatası dışında retry yapılmaz.


Endpoint

AlanDeğer
HTTP MethodPOST
Path/PushNotification
NotificationType9

Ö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_20260609153012345a1b2c_0_0",
> "SubReferanceNo": "a1b2c3d4-e5f6-7890abcdef1234567890",
> "RequestKeyValueSet": null,
> "RequestObject": {
> "NotificationType": 9,
> "Payload": "{\"ProductId\":2930,\"ServiceOperations\":{\"GetProposal\":{\"IncludedKeys\":[{\"KeyId\":20,\"KeyName\":\"Sigortalı TC Kimlik No\",\"ParameterId\":null,\"ParameterName\":null}],\"RemovedKeys\":[{\"KeyId\":10,\"KeyName\":\"Sigortalı TC\",\"ParameterId\":null,\"ParameterName\":null}]}}}"
> }
> }'

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:

1{
2 "ProductId": 2930,
3 "ServiceOperations": {
4 "GetProposal": {
5 "IncludedKeys": [
6 { "KeyId": 20, "KeyName": "Sigortalı TC Kimlik No", "ParameterId": null, "ParameterName": null },
7 { "KeyId": 35, "KeyName": "Meslek", "ParameterId": 8, "ParameterName": "Meslek Kodu" }
8 ],
9 "RemovedKeys": [
10 { "KeyId": 10, "KeyName": "Sigortalı TC", "ParameterId": null, "ParameterName": null }
11 ]
12 },
13 "CreatePolicy": {
14 "IncludedKeys": [],
15 "RemovedKeys": [
16 { "KeyId": 51, "KeyName": "Eski Poliçe No", "ParameterId": null, "ParameterName": null }
17 ]
18 }
19 }
20}
AlanTipAçıklama
ProductIdintKullanım listesi değişen InsurGateway ürün kodu.
ServiceOperationsobjectYalnızca değişiklik olan servis operasyonlarını içerir. Anahtar = servis operasyonu adı (örn. GetProposal, CreatePolicy); değer = { IncludedKeys, RemovedKeys }.
IncludedKeysobject[]İlgili operasyona eklenen key’ler. Platform bu key’leri artık göndermeye başlamalıdır.
RemovedKeysobject[]İlgili operasyondan kaldırılan key’ler. Bu key’ler artık gönderilmemelidir.

Key objesi alanları (IncludedKeys / RemovedKeys elemanları):

AlanTipAçıklama
KeyIdintInsurGateway key kodu. Delta’nın uygulanmasında esas alınacak alandır.
KeyNamestringKey’in adı (bilgi/okunabilirlik amaçlı).
ParameterIdint|nullKey bir parametreye bağlıysa parametre kodu; bağlı değilse null.
ParameterNamestring|nullParametre adı; bağlı parametre yoksa null.

Delta kimliği (ServiceOperation, KeyId, ParameterId) üçlüsüdür. Bir key’in parametre bağı değişirse, eski (KeyId, ParameterId) ikilisi RemovedKeys’e, yeni ikili IncludedKeys’e girer. Bu nedenle aynı KeyId aynı operasyonda hem RemovedKeys hem IncludedKeys içinde farklı ParameterId ile görünebilir; delta uygulanırken ParameterId de dikkate alınmalıdır.

Bir servis operasyonu altında yalnızca IncludedKeys, yalnızca RemovedKeys veya her ikisi birden dolu olabilir. Değişiklik olmayan operasyonlar payload’a hiç eklenmez.


Beklenen Cevap

Platform, bildirimi aldığında HTTP 2xx dönmelidir. InsurGateway başarıyı yalnızca HTTP durum koduna göre belirler; cevap gövdesi değerlendirilmez (gövde boş olabilir).

Başarı:

1HTTP/1.1 200 OK

Hata:

2xx dışı herhangi bir HTTP kodu (örn. 500) hata kabul edilir.

1HTTP/1.1 500 Internal Server Error

Bildirim ReferanceNo üzerinden idempotent işlenmelidir; aynı ReferanceNo ile yeniden gelen bir bildirim tekrar uygulanmamalıdır (aksi halde aynı delta birden fazla işlenip key listesi bozulabilir).


Retry

InsurGateway, bildirimi yalnızca platforma ulaşamadığında (bağlantı hatası / timeout — yani HTTP cevabı hiç alınamadığında) yeniden gönderir. Platformdan dönen 2xx dışı bir HTTP cevabı retry üretmez; hata loglanır ve bildirim düşülür. Dolayısıyla bildirimin tekrar denenmesini istiyorsanız cevap dönmeyin (timeout) — 2xx dışı bir HTTP kodu düşmeye yol açar.

ParametreDeğer
Retry koşuluYalnızca transport hatası (HTTP cevabı alınamaması)
2xx dışı HTTP cevabıRetry YOK — loglanır ve düşülür
Maksimum retry (orijinal hariç)10
Toplam maksimum deneme11
Bekleme süreleri3 sn → 10 sn → 1 dk → 1 saat (≥4. retry)