Sigorta
Referans
Uç Referansı

Uç Referansı

Bu sayfa her sigorta ucunun özetini verir. Alanların tam açıklaması, kurallar ve örnekler her ucun Ayrıntı bağlantısındadır.

  • Taban adres https://api-gateway.lunixi.com'dur.
  • Bütün uçlar API anahtarınızla imzalanmış istek ister: Akışlar › Kimlik doğrulama. /pay ayrıca Bearer erişim token'ı ister.
  • Bütün uçlarda ortak hata kodları (VALIDATION_ERROR, insurance.validation.invalid, insurance.idempotency.conflict, insurance.dependency.unavailable, insurance.internal.integrity) ve kimlik hataları geçerlidir: Akışlar › Yanıt ve hatalar. Aşağıdaki tablolar uca özgü kodları verir.
  • Başarılı yanıtın gövdesi data altındadır; belge uçları PDF, dışa aktarım ucu CSV döner. Liste uçlarında sayfalama bilgisi pageInfo alanındadır: Sayfalama.

Özet

Lunixi ödemesi olmadan sütunu, ucun Lunixi'de ödeme almadan kullanılıp kullanılamayacağını gösterir: Yalnız Sigorta Entegrasyonu.

YöntemYolIdempotency-KeyLunixi ödemesi olmadan
POST/api/v1/insurance/products—Evet
GET/api/v1/insurance/products—Evet, paymentIntentId olmadan
GET/api/v1/insurance/reference/{kind}—Evet
POST/api/v1/insurance/quotesİsteğe bağlıEvet, paymentIntentId olmadan
GET/api/v1/insurance/quotes/{quoteId}—Evet
GET/api/v1/insurance/quotes/{quoteId}/facilities—Evet
POST/api/v1/insurance/ordersZorunluEvet
GET/api/v1/insurance/orders—Evet
GET/api/v1/insurance/orders/{orderId}—Evet
POST/api/v1/insurance/orders/{orderId}/bind-paymentİsteğe bağlıHayır
POST/api/v1/insurance/orders/{orderId}/confirm-paymentZorunluEvet
POST/api/v1/insurance/orders/{orderId}/issue-policyZorunluEvet
POST/api/v1/insurance/orders/{orderId}/payZorunluEvet
POST/api/v1/insurance/orders/{orderId}/cancelZorunluEvet
POST/api/v1/insurance/orders/{orderId}/refund-premiumZorunluEvet, externalRefund ile
GET/api/v1/insurance/policies/{policyId}/document—Evet
GET/api/v1/insurance/policies/{policyId}/receipt—Evet
GET/api/v1/insurance/policies/{policyId}/certificate—Evet
POST/api/v1/insurance/policies/{policyId}/claimsZorunluEvet
GET/api/v1/insurance/claims—Evet
GET/api/v1/insurance/claims/{claimId}—Evet
GET/api/v1/insurance/claims/{claimId}/document—Evet
POST/api/v1/insurance/leadsZorunluEvet
GET/api/v1/insurance/leads—Evet
GET/api/v1/insurance/leads/{leadId}—Evet
GET/api/v1/insurance/reconciliation/summary—Evet
GET/api/v1/insurance/reconciliation/orders—Evet
GET/api/v1/insurance/reconciliation/export—Evet

Uygunluk ve referans

POST /api/v1/insurance/products

Ne yaparGöndereceğiniz sepet kalemleri için sunulan sigorta tiplerini döner. Salt okumadır.
İstekcurrency, context.items (1-100 kalem; insuranceData saklanmaz), isteğe bağlı insuranceType.
Yanıt200; data.products[]: insuranceType, typeObject, schemaVersion, basketItemIds, title, description, fields, prefill, providedFields, quoteReady, insuranceDataIssues. Boş liste sigortanın sunulmadığını gösterir.
Hatalar400 VALIDATION_ERROR, 422 insurance.validation.invalid
Webhook—
AyrıntıUygunluk › Ödemeden önce

GET /api/v1/insurance/products

Ne yaparpaymentIntentId ile: Lunixi ödemesinin kalemleri için sunulan tipler. paymentIntentId olmadan: sepet kalemi olmadan satılan tipler.
İstekSorgu: currency, isteğe bağlı paymentIntentId ve insuranceType.
Yanıt200; POST ile aynı data.products[].
Hatalar400 VALIDATION_ERROR, 422 insurance.validation.invalid (reason: currency_mismatch)
Webhook—
AyrıntıUygunluk › Ödemeden sonra, Sepet kalemi olmadan

GET /api/v1/insurance/reference/{kind}

Ne yaparTip alanlarında kullanılan Lunixi referans kodlarını (ülke, il, ilçe, marka, model, meslek, adres zinciri gibi) listeler. Sağlayıcının kodları dönmez.
İstekYol: kind. Sorgu: parentCode, limit (1-100, varsayılan 25), cursor; araç listelerinde vehicleTypeCode ve modelYear; bina listesinde outerDoorNumber.
Yanıt200; data.items[]: code, label, parentCode; pageInfo.
Hatalar400 VALIDATION_ERROR; 422 insurance.validation.invalid (field: kind, reason: unknown_reference_kind ya da live_reference_unavailable; field: parentCode, reason: required, not_applicable, invalid_reference_code ya da invalid_enum); 422 insurance.reference.unknown
Webhook—
AyrıntıSigorta Tipleri ve Şemalar › Referans kodları

Teklif

POST /api/v1/insurance/quotes

Ne yaparSigorta tipini sigortalı ve sigortalanan kalemler için fiyatlar; bir ya da daha fazla seçenek döner.
İstekinsuranceType, currency, sepet kaynağı (context.items ya da paymentIntentId; sepet kalemi olmadan satılan tiplerde hiçbiri), isteğe bağlı schemaVersion ve merchantOrderId, tipe göre policyholder, insured[] ve tip nesnesi. Kalemlerin bağlamı ve ön verisi gövdeyi tamamlar; paymentIntentId ile gövde boş olabilir (Ön veriyle teklif).
Yanıt201; data: insuranceType, schemaVersion, options[], excludedOptions[].
Hatalar412 insurance.type.not_available, 412 insurance.provider.not_integrated, 422 insurance.reference.unknown, 422 insurance.quote.declined, 503 insurance.provider.unavailable
Webhook—
AyrıntıTeklif › Teklif alma, Seçenek

GET /api/v1/insurance/quotes/{quoteId}

Ne yaparTek bir seçeneği döner; süresi dolan seçenek status: EXPIRED ile döner.
İstekYol: quoteId (insq_…).
Yanıt200; data: seçenek nesnesi.
Hatalar404 insurance.quote.not_found
Webhook—
AyrıntıTeklif › Teklifi okuma

GET /api/v1/insurance/quotes/{quoteId}/facilities

Ne yaparSeçeneğin verilen ildeki anlaşmalı sağlık kurumlarını döner.
İstekYol: quoteId. Sorgu: cityCode (01-81).
Yanıt200; data.items[]: name, cityCode. Sayfalama yoktur.
Hatalar404 insurance.quote.not_found, 412 insurance.facility.not_supported, 422 insurance.validation.invalid (field: cityCode)
Webhook—
AyrıntıTeklif › Anlaşmalı kurumlar

Sipariş ve tahsilat

POST /api/v1/insurance/orders

Ne yaparAlıcının onayladığı seçenekle sipariş oluşturur. Sağlayıcıya istek göndermez, para hareketi yapmaz.
İstekquoteId, consent.termsVersion, consent.termsSha256, consent.acceptedAt, isteğe bağlı merchantOrderId.
Yanıt201; data: sipariş nesnesi (paymentMode: NO_PAYMENT).
Hatalar404 insurance.quote.not_found, 409 insurance.quote.expired, 409 insurance.order.state_conflict (reason: quote_already_ordered), 422 insurance.validation.invalid (reason: terms_mismatch)
Webhook—
AyrıntıSipariş › Sipariş oluşturma, Sipariş nesnesi

GET /api/v1/insurance/orders

Ne yaparSiparişlerinizi en yeniden eskiye listeler; Checkout Form siparişleri de dahildir.
İstekSorgu: limit (1-100, varsayılan 25), cursor, paymentIntentId, merchantOrderId.
Yanıt200; data.items[]: sipariş nesnesi; pageInfo.
Hatalar422 insurance.validation.invalid (field: cursor)
Webhook—
AyrıntıSipariş › Listeleme

GET /api/v1/insurance/orders/{orderId}

Ne yaparTek bir siparişi döner; poliçe ve belge durumunu bu uçla izlersiniz.
İstekYol: orderId (inso_…).
Yanıt200; data: sipariş nesnesi.
Hatalar404 insurance.order.not_found
Webhook—
AyrıntıSipariş › Okuma

POST /api/v1/insurance/orders/{orderId}/bind-payment

Ne yaparSiparişi, sigorta alanlı kalemlerle oluşturulmuş bir Lunixi ödemesine bağlar. Yalnızca Lunixi ödemesine bağlı akışta kullanılır.
İstekpaymentIntentId.
Yanıt200; data: sipariş nesnesi (paymentMode: LUNIXI_PAYMENT).
Hatalar404 insurance.order.not_found, 409 insurance.quote.expired, 409 insurance.quote.stale, 409 insurance.order.state_conflict, 409 insurance.order.premium_item_mismatch, 412 insurance.order.payment_not_recorded
WebhookÖdeme tahsil edildikten sonra poliçe olayları: insurance.policy.issued, insurance.policy.failed, insurance.refund.required, insurance.policy.document_ready.
AyrıntıSipariş › Ödemeye bağlama, Prim ve Ödeme › Lunixi ödemesiyle

POST /api/v1/insurance/orders/{orderId}/confirm-payment

Ne yaparLunixi dışında tahsil ettiğiniz primi bildirir; Lunixi bildirimi bağlantınız üzerinden sağlayıcınıza iletir.
İstekpayment.externalPaymentId, payment.paidAmount, payment.paidCurrency, payment.paidAt, isteğe bağlı payment.paymentProvider.
Yanıt200; data: sipariş nesnesi (paymentMode: EXTERNAL_PAYMENT, collectionStatus: COLLECTED).
Hatalar404 insurance.order.not_found, 409 insurance.quote.expired, 409 insurance.order.state_conflict (reason: lunixi_payment, external_payment, collected_by_provider), 422 insurance.validation.invalid (reason: premium_amount_mismatch ya da premium_currency_mismatch)
Webhook—
AyrıntıSipariş › Lunixi dışında alınan primi bildirme

POST /api/v1/insurance/orders/{orderId}/issue-policy

Ne yaparLunixi dışında tahsil edilen primden sonra poliçeyi ister. Gövde gönderilmez.
İstekYol: orderId.
Yanıt200; data: sipariş nesnesi (policyStatus: PENDING). Poliçe arka planda kesilir.
Hatalar404 insurance.order.not_found, 409 insurance.order.state_conflict (reason: refund_started ya da collected_by_provider), 412 insurance.premium.not_captured
Webhookinsurance.policy.issued, insurance.policy.failed, insurance.refund.required, insurance.policy.document_ready
AyrıntıSipariş › Poliçe isteme

POST /api/v1/insurance/orders/{orderId}/pay

Ne yaparPrimi sağlayıcının tahsil ettiği (premiumCollectedBy: PROVIDER) siparişte prim çekimini başlatır. Prim çekilince poliçe otomatik istenir.
KimlikBearer erişim token'ı ve imza başlıkları birlikte.
İstekCARD üründe card (yalnızca PCI-DSS sertifikalı merchant'lar), isteğe bağlı returnUrl.
Yanıt200; data.order (sipariş nesnesi) ve data.providerPayment (insurancePaymentId, status, paymentInput, amount, currency, failureCode, nextAction).
Hatalar403 insurance.card.pci_required, 404 insurance.order.not_found, 409 insurance.order.state_conflict, 409 insurance.quote.expired, 412 insurance.payment.merchant_payment_not_captured, 422 insurance.payment.method_not_supported, 422 insurance.card.invalid, 422 insurance.reference.unknown, 422 insurance.quote.declined, 503 insurance.provider.unavailable
WebhookPrim çekilince poliçe olayları; çekim reddedilirse insurance.policy.failed (errorCode: insurance.payment.declined).
AyrıntıSağlayıcı Tahsilatı

İptal ve iade

POST /api/v1/insurance/orders/{orderId}/cancel

Ne yaparKesilmiş her poliçe için sağlayıcıda iptal talebi açar. Sonuç sonradan kesinleşir. İptal primi iade etmez. Gövde gönderilmez.
İstekYol: orderId.
Yanıt200; data: sipariş nesnesi (policyStatus: CANCEL_PENDING).
Hatalar404 insurance.order.not_found, 409 insurance.order.state_conflict (reason: policy_not_issued), 412 insurance.provider.not_integrated
Webhookinsurance.policy.cancelled. Sağlayıcı iptali reddederse olay gönderilmez; errorCode insurance.policy.cancel_failed olur.
Ayrıntıİptal ve Prim İadesi › Poliçe iptali

POST /api/v1/insurance/orders/{orderId}/refund-premium

Ne yaparLunixi ödemesindeki primi iade eder ya da Lunixi dışında yaptığınız iadeyi kaydeder. Primi sağlayıcı tahsil ettiyse kullanılmaz.
İstekLunixi ödemesinde gövdesiz. Lunixi dışında tahsil edilen primde externalRefund.externalRefundId ve externalRefund.refundedAt.
Yanıt200; data: sipariş nesnesi (refundStatus: PENDING ya da REFUNDED).
Hatalar404 insurance.order.not_found, 409 insurance.order.state_conflict (reason: policy_active, policy_in_progress, already_refunded, collected_by_provider), 412 insurance.premium.not_captured, 422 insurance.validation.invalid
Webhookinsurance.refund.completed
Ayrıntıİptal ve Prim İadesi › Prim iadesi

Poliçe belgeleri

Belgeler Lunixi'de saklanmaz; her istekte sağlayıcıdan alınır. Başarılı yanıt PDF dosyasının kendisidir (Content-Type: application/pdf, Cache-Control: no-store); hata yanıtı JSON hata zarfıdır. Belge, poliçe ISSUED ya da CANCEL_PENDING iken alınabilir.

GET /api/v1/insurance/policies/{policyId}/document

Ne yaparPoliçe belgesini PDF olarak döner.
İstekYol: policyId (insp_…).
Yanıt200; PDF, dosya adı <policyId>.pdf.
Hatalar404 insurance.policy.not_found, 409 insurance.order.state_conflict (reason: policy_not_issued ya da policy_cancelled), 503 insurance.document.unavailable
WebhookBelge hazır olduğunda insurance.policy.document_ready.
AyrıntıPoliçe Belgesi

GET /api/v1/insurance/policies/{policyId}/receipt

Ne yaparÜrün makbuz sunuyorsa poliçenin prim makbuzunu PDF olarak döner.
İstekYol: policyId.
Yanıt200; PDF, dosya adı <policyId>-receipt.pdf.
HatalarPoliçe belgesindekiler ve 412 insurance.document.not_supported
Webhook—
AyrıntıPoliçe Belgesi › Makbuz

GET /api/v1/insurance/policies/{policyId}/certificate

Ne yaparÜrün sertifika veriyorsa poliçenin sertifikasını PDF olarak döner.
İstekYol: policyId.
Yanıt200; PDF, dosya adı <policyId>-certificate.pdf.
HatalarPoliçe belgesindekiler ve 412 insurance.document.not_supported
Webhook—
AyrıntıPoliçe Belgesi › Sertifika

Hasar kaydı

POST /api/v1/insurance/policies/{policyId}/claims

Ne yaparYürürlükteki poliçe için hasarı sağlayıcıya bildirir. Belgeler bu istekte sağlayıcıya iletilir ve Lunixi'de saklanmaz.
İstekYol: policyId. Gövde: incidentAt, documents[].
Yanıt201; data: hasar kaydı (status: SUBMITTED ya da UNKNOWN).
Hatalar404 insurance.policy.not_found, 409 insurance.claim.state_conflict, 412 insurance.claim.not_supported, 422 insurance.claim.rejected, 503 insurance.provider.unavailable
Webhookinsurance.claim.submitted, insurance.claim.failed
AyrıntıHasar Kaydı › Hasar kaydı açma

GET /api/v1/insurance/claims

Ne yaparHasar kayıtlarınızı en yeniden eskiye listeler.
İstekSorgu: limit (1-100, varsayılan 25), cursor, orderId, policyId, status.
Yanıt200; data.items[]: hasar kaydı; pageInfo.
Hatalar422 insurance.validation.invalid (field: cursor)
Webhook—
AyrıntıHasar Kaydı › Listeleme

GET /api/v1/insurance/claims/{claimId}

Ne yaparTek bir hasar kaydını döner.
İstekYol: claimId (insclm_…).
Yanıt200; data: hasar kaydı.
Hatalar404 insurance.claim.not_found
Webhook—
AyrıntıHasar Kaydı › Okuma

GET /api/v1/insurance/claims/{claimId}/document

Ne yaparSağlayıcının hasar kaydı için verdiği belgeyi PDF olarak döner; kayıt SUBMITTED olmalıdır.
İstekYol: claimId.
Yanıt200; PDF, dosya adı <claimId>.pdf.
Hatalar404 insurance.claim.not_found, 409 insurance.claim.state_conflict (reason: claim_not_submitted), 503 insurance.document.unavailable
Webhook—
AyrıntıHasar Kaydı › Sağlayıcının hasar belgesi

Talep

POST /api/v1/insurance/leads

Ne yaparTeklif vermeyen sigorta tiplerinde alıcının bilgilerini sağlayıcıya talep olarak iletir. Teklif, prim, poliçe ve belge yoktur.
İstekinsuranceType, isteğe bağlı schemaVersion, tipe göre policyholder, tip nesnesi ve company, isteğe bağlı note.
Yanıt201; data: talep (status: SUBMITTED ya da UNKNOWN).
Hatalar412 insurance.type.not_available, 422 insurance.lead.rejected, 503 insurance.provider.unavailable
Webhookinsurance.lead.submitted
AyrıntıTalep › Talep açma

GET /api/v1/insurance/leads

Ne yaparTaleplerinizi en yeniden eskiye listeler; kişisel veriler maskelidir.
İstekSorgu: limit (1-100, varsayılan 25), cursor, insuranceType, status.
Yanıt200; data.items[]: talep; pageInfo.
Hatalar422 insurance.validation.invalid (field: cursor)
Webhook—
AyrıntıTalep › Listeleme

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

Ne yaparTek bir talebi döner; kişisel veriler maskelidir.
İstekYol: leadId.
Yanıt200; data: talep.
Hatalar404 insurance.lead.not_found
Webhook—
AyrıntıTalep › Okuma

Mutabakat

GET /api/v1/insurance/reconciliation/summary

Ne yaparDönemin poliçe ve prim toplamlarını bağlantı, para birimi ve primi tahsil eden başına döner.
İstekSorgu: from, to, isteğe bağlı connectionId, insuranceType, currency.
Yanıt200; data: period, filters, groups[], generatedAt.
Hatalar422 insurance.validation.invalid (field: filter.from ya da filter.to)
Webhook—
AyrıntıMutabakat Raporu › Özet

GET /api/v1/insurance/reconciliation/orders

Ne yaparÖzetin arkasındaki siparişleri poliçeleriyle birlikte listeler.
İstekSüzgeç parametreleri, limit (1-100, varsayılan 100), cursor.
Yanıt200; data.items[]: rapor satırı; pageInfo.
Hatalar422 insurance.validation.invalid (field: filter.* ya da cursor)
Webhook—
AyrıntıMutabakat Raporu › Satırlar

GET /api/v1/insurance/reconciliation/export

Ne yaparRapor satırlarını CSV olarak döner; her poliçe bir satırdır.
İstekSüzgeç parametreleri, kesilen dosyayı sürdürmek için cursor.
Yanıt200; text/csv, dosyada en fazla 20.000 sipariş.
Hatalar422 insurance.validation.invalid (field: filter.*)
Webhook—
AyrıntıMutabakat Raporu › CSV

İlgili