Sigorta
API Yolu
Talep

Talep

Bazı sigorta tipleri teklif vermez; bu tiplerde alıcının bilgilerini talep olarak, sağlayıcı bağlantınız üzerinden sağlayıcınıza iletirsiniz. Talebi POST /api/v1/insurance/leads ile açarsınız; sonucunu talep ucundan ve webhook ile izlersiniz.

  • Talep bir iletimdir. Lunixi talebi sağlayıcınıza iletir ve iletimin sonucunu gösterir. Talepte teklif, prim, tahsilat, poliçe ve belge yoktur; sonraki adım (alıcıyla iletişim, teklif) sağlayıcıdadır ve talepte yer almaz.
  • Talep yalnızca API yolundadır. Checkout Form'da ve ödeme linkinde talep yoktur.
  • Talep ödemeye bağlanmaz. Talepte tutar, para birimi, sepet kalemi ve ödeme yoktur.

Kimlik doğrulama ve imzalama: Akışlar › Kimlik doğrulama.

Talep tipleri

TipTalepŞema
MOTOR_THIRD_PARTY_LIABILITYZorunlu trafik sigortasıTalep şeması sürüm 1
MOTOR_COMPREHENSIVEKaskoTalep şeması sürüm 1
CARGO_TRANSITKarayolu yük taşıma (nakliyat) sigortasıTalep şeması sürüm 1

Talep açabilmeniz için:

  • Tip hesabınızda açık olmalı ve sigortayı API yolunda kullanıyor olmalısınız.
  • Bağlantılarınızda bu tip için talep alan, açık bir sağlayıcı ürünü bulunmalıdır.

Koşullardan biri karşılanmazsa istek 412 insurance.type.not_available döner. Yalnızca talep alan tipler (CARGO_TRANSIT) teklif vermediği için uygunluk listesinde yer almaz ve teklif istekleri 412 insurance.type.not_available alır.

MOTOR_THIRD_PARTY_LIABILITY ve MOTOR_COMPREHENSIVE teklif de verir: Sigorta Tipleri › MOTOR_THIRD_PARTY_LIABILITY, MOTOR_COMPREHENSIVE. Talep ve teklif bağlantılarınızdaki ayrı ürünlerle çalışır: talep için talep alan, teklif için teklif veren bir ürün gerekir.

Akış

Alıcının bilgilerini toplayın

Tipin talep şemasındaki alanları alıcınızdan alın: Sigorta Tipleri › Talep şemaları.

Talebi açın

POST /api/v1/insurance/leads ucunu tip ve alanlarla çağırın. Lunixi talebi doğrular, kaydeder ve aynı istekte sağlayıcınıza iletir.

Sonucu işleyin

Yanıttaki status değerine göre devam edin: Sonuçlar. Sağlayıcı talebi aldığında insurance.lead.submitted webhook'u gönderilir.

Talep açma: POST /api/v1/insurance/leads

Idempotency-Key zorunludur. Bkz. Tekrar ve Idempotency-Key.

AlanTipZorunluAçıklama
insuranceTypestringEvetTalep tipi, ör. CARGO_TRANSIT.
schemaVersionintegerHayırTalep şemasının sürümü. Gönderilmezse tipin güncel talep şeması kullanılır.
policyholdernesneTipe göreTalep sahibi.
Tip nesnesinesneTipe görevehicle, shipment gibi; tipin talep şemasındaki adla.
companynesneTipe göreYalnızca CARGO_TRANSIT: firmanın vergi kimliği.
notestringHayırTalep notu. Metin, en fazla 1000 karakter.
  • Alanlar ve zorunlulukları tipin talep şemasındadır: Talep şemaları. Şemada olmayan bir alan reddedilir.
  • Bütün alan ihlalleri tek bir 422 insurance.validation.invalid yanıtında döner; ihlal varsa talep açılmaz ve sağlayıcıya istek gitmez.
  • Biçimler: Veri Biçimleri.

MOTOR_COMPREHENSIVE için bir talep isteği. Değerler örnektir; açılı parantez içindeki değerlerin yerine alıcınızın bilgilerini yazın:

{
  "insuranceType": "MOTOR_COMPREHENSIVE",
  "policyholder": {
    "identityType": "TCKN",
    "identityNumber": "<kimlik numarası>",
    "birthDate": "<YYYY-MM-DD>",
    "email": "<e-posta>",
    "phone": "<E.164 telefon>"
  },
  "vehicle": {
    "plate": "<plaka>",
    "registrationDocument": {
      "serial": "<seri kodu>",
      "number": "<ruhsat numarası>"
    }
  },
  "note": "<talep notu>"
}
source lunixi-sign.sh
BODY='<talep isteği, boşluksuz JSON>'
lunixi_sign POST "/api/v1/insurance/leads" "$BODY"
 
curl -X POST "https://api-gateway.lunixi.com/api/v1/insurance/leads" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: insurance-lead-1001" \
  -H "X-Key-Id: $LUNIXI_KEY_ID" \
  -H "X-Date: $DATE" \
  -H "X-Nonce: $NONCE" \
  -H "Digest: $DIGEST" \
  -H "X-Signature: $SIGNATURE" \
  --data-raw "$BODY"

CARGO_TRANSIT talebinin alanları ve örneği: Sigorta Tipleri › CARGO_TRANSIT.

Yanıt

İstek tamamlandığında 201 ve data içinde talep nesnesini döner. Sağlayıcı talebi aldıysa status SUBMITTED, sonuç bilinmiyorsa UNKNOWN olur.

Sonuçlar

SonuçYanıtTalepteNe yapmalı
Sağlayıcı talebi aldı201status: SUBMITTEDTalep iletildi. insurance.lead.submitted gönderilir.
Sonuç bilinmiyor201status: UNKNOWNİstek sağlayıcıya ulaştı ama sonucu bilinmiyor. Talep yeniden gönderilmez ve sonuç sonradan kesinleşmez. Gerekirse alıcınızla teyit edin; yeni talep açmanız gerekiyorsa yeni bir Idempotency-Key kullanın.
Sağlayıcı talebi reddetti422 insurance.lead.rejectedstatus: FAILED, errorCode: insurance.lead.rejectedSağlayıcı talebi kabul etmedi; aynı istekle tekrar denemek sonucu değiştirmez. Bilgileri düzeltip yeni bir Idempotency-Key ile yeni talep açabilirsiniz.
Bağlantınızdaki ürün bir değeri kabul etmiyor422 insurance.validation.invalid (reason: not_supported_by_provider)status: FAILED, errorCode: insurance.validation.invalidİstek sağlayıcıya gönderilmedi. Örneğin ürün yalnızca Türkiye cep telefonu kabul ediyorsa başka bir numara bu sonucu alır. Değeri düzeltip yeni bir Idempotency-Key ile yeniden gönderin.
Sağlayıcıya ulaşılamadı503 insurance.provider.unavailablestatus: FAILED, errorCode: insurance.provider.unavailableTalep sağlayıcıya iletilmedi. Bir süre sonra yeni bir Idempotency-Key ile yeniden gönderin.

details.leadId hata yanıtında talebin kimliğini taşır; talebi okuma ucundan görebilirsiniz. İşlem beklenmedik bir hatayla yarıda kalırsa yanıt 500 insurance.internal.integrity olur ve talep UNKNOWN görünür.

Tekrar ve Idempotency-Key

  • Talep sağlayıcıya aynı istekte iletilir. İstek 45 saniyeye kadar sürebilir; istemcinizin zaman aşımını buna göre ayarlayın.
  • Zaman aşımı ya da 5xx sonrasında yanıtı alamadıysanız isteği aynı Idempotency-Key ve aynı gövdeyle tekrarlayın. Talep ilk denemede açıldıysa yeni talep açılmaz; mevcut talep güncel durumuyla döner ve sağlayıcıya yeniden gönderilmez.
  • Aynı anahtar, talebin durumu ne olursa olsun aynı talebi döner. FAILED ya da UNKNOWN bir talebi yeniden göndermek için yeni bir anahtar üretin. UNKNOWN bir talebi yeniden göndermek sağlayıcıda ikinci bir talep açabilir.
  • Aynı anahtarı farklı bir istekle (başka tip, sürüm ya da gövde) kullanırsanız 409 insurance.idempotency.conflict döner.

Talep nesnesi

AlanTipAçıklama
leadIdstringTalebin kimliği (insl_…).
insuranceTypestringTalep tipi, ör. CARGO_TRANSIT.
schemaVersionintegerTalebin doğrulandığı talep şemasının sürümü.
statusstringTalebin durumu; bkz. Durumlar.
errorCodestring ya da nullTalep FAILED ise sebebin Lunixi kodu.
requestMaskednesneTalep gövdesinin maskeli görüntüsü. Kişisel veriler ve not *** olarak görünür.
submittedAtstring ya da nullSağlayıcının talebi aldığı an. SUBMITTED olana kadar null.
createdAtstringOluşturulma zamanı, ISO 8601.
updatedAtstringSon değişiklik zamanı, ISO 8601.

Talepte sağlayıcının adı, kodu, ham mesajı ve talep referansı bulunmaz.

Durumlar

statusAnlamı
PENDINGTalep açıldı, sağlayıcıya iletiliyor. Bu değeri yalnızca istek sürerken okuduğunuz ya da aynı Idempotency-Key ile tekrarladığınız isteklerde görürsünüz. 5 dakikadan eski PENDING talep UNKNOWN olarak görünür.
SUBMITTEDSağlayıcı talebi aldı.
UNKNOWNİstek sağlayıcıya ulaştı ama sonucu bilinmiyor. Talep yeniden gönderilmez.
FAILEDSağlayıcı talebi reddetti ya da istek sağlayıcıya ulaşmadı. Sebep errorCode alanındadır.

SUBMITTED ve FAILED kesin durumlardır; değişmez. Sağlayıcının talep sonrası adımları (alıcıyla iletişim, teklif ya da poliçe) talebin durumuna yansımaz.

Listeleme: GET /api/v1/insurance/leads

Taleplerinizi en yeniden eskiye, cursor tabanlı sayfalar hâlinde döner.

Sorgu parametresiTipAçıklama
limitintegerSayfa başına kayıt, 1-100. Varsayılan 25.
cursorstringÖnceki yanıttaki pageInfo.nextCursor. İlk sayfada gönderilmez.
insuranceTypestringYalnız bu tipin talepleri.
statusstringYalnız bu durumdaki talepler: PENDING, SUBMITTED, UNKNOWN ya da FAILED.

Yanıtta talepler data.items dizisindedir; sayfalama bilgisi pageInfo alanındadır. Bozuk bir cursor 422 insurance.validation.invalid (field: cursor) döner.

source lunixi-sign.sh
REQ_PATH="/api/v1/insurance/leads?limit=25&insuranceType=CARGO_TRANSIT"
lunixi_sign GET "$REQ_PATH"
 
curl "https://api-gateway.lunixi.com$REQ_PATH" \
  -H "X-Key-Id: $LUNIXI_KEY_ID" \
  -H "X-Date: $DATE" \
  -H "X-Nonce: $NONCE" \
  -H "X-Signature: $SIGNATURE"

Okuma: GET /api/v1/insurance/leads/{leadId}

Tek bir talebi döner. Yanıtta data talep nesnesidir. Webhook alamadığınız bir sonucu doğrulamak için bu ucu kullanın.

Hatalar

HTTPcodeNe yapmalı
400VALIDATION_ERRORBiçimi düzeltin. Idempotency-Key eksikse ya da tanımlanmamış bir kök alan gönderildiyse de bu hata döner.
404insurance.lead.not_foundTalep bulunamadı ya da başka bir hesaba ait.
409insurance.idempotency.conflictAynı Idempotency-Key farklı bir istekle kullanıldı; yeni talep için yeni anahtar üretin.
412insurance.type.not_availableTip talep tipi değil, hesabınızda açık değil ya da bağlantılarınızda bu tip için talep alan bir ürün yok.
422insurance.validation.invaliddetails.errors[] alanlarını düzeltin. Bilinmeyen bir schemaVersion field: schemaVersion, reason: unsupported_schema_version ile döner.
422insurance.lead.rejectedSağlayıcı talebi kabul etmedi; talep FAILED olur.
503insurance.provider.unavailableSağlayıcıya ulaşılamadı; talep açıldıysa FAILED olur. Bir süre sonra yeni bir Idempotency-Key ile yeniden gönderin.

Ortak kodlar: Akışlar › Yanıt ve hatalar. Kodların ayrıntısı: Hata Kodları › Talep.

İlgili