Sigorta
API Yolu
Mutabakat Raporu

Mutabakat Raporu

Sağlayıcınızla mutabakat için bağlantı bazlı poliçe ve prim raporunu API'den alırsınız. Panelin Mutabakat ekranındaki rapor da aynı verilerden oluşur: Sigorta Menüsü › Mutabakat.

  • Rakamlar sigorta siparişlerinizin kendisinden okunur. Aynı süzgeçle özet uçtaki toplamlar, satır ucundaki ve CSV dosyasındaki satırların toplamına eşittir.
  • Durumlar raporu aldığınız andaki durumlardır.
  • Checkout Form'da ve API'de oluşan siparişlerin hepsi rapordadır; prim Lunixi ödemesinde, Lunixi dışında ya da sağlayıcı tarafından tahsil edilmiş olabilir.

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

Süzgeç

Üç uç aynı süzgeci alır:

Sorgu parametresiTipZorunluAçıklama
fromstringEvetDönemin başı (dahil). ISO 8601, saat dilimi zorunlu (Z ya da ±hh:mm).
tostringEvetDönemin sonu (hariç). ISO 8601, saat dilimi zorunlu.
connectionIdstring (UUID)HayırYalnız bu sağlayıcı bağlantısının siparişleri.
insuranceTypestringHayırYalnız bu sigorta tipinin siparişleri, ör. TICKET_CANCELLATION.
currencystringHayırYalnız bu para birimindeki siparişler, ISO 4217.
  • Dönem siparişin oluşturulma anına göredir ve yarı açıktır: from dahil, to hariç. Dönem en fazla 366 gündür.
  • Sorgu dizesinde saat dilimindeki + işaretini %2B olarak yazın.

Dönem kuralına uymayan istek 422 insurance.validation.invalid döner:

fieldreasonAnlamı
filter.from, filter.totimezone_requiredZaman damgasında saat dilimi yok.
filter.from, filter.toinvalid_timestampDeğer ISO 8601 zaman damgası değil.
filter.tonot_after_fromto, from'dan sonra değil.
filter.toperiod_too_longDönem 366 günden uzun.

from ya da to gönderilmezse, connectionId UUID değilse ya da currency veya insuranceType biçim dışıysa istek 400 VALIDATION_ERROR döner.

Özet: GET /api/v1/insurance/reconciliation/summary

Dönemin toplamlarını bağlantı, para birimi ve primi tahsil eden başına gruplar hâlinde döner.

source lunixi-sign.sh
REQ_PATH="/api/v1/insurance/reconciliation/summary?from=2026-09-01T00:00:00Z&to=2026-10-01T00:00:00Z"
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"

data şu alanları taşır:

AlanTipAçıklama
period.from, period.tostringİstediğiniz dönem.
filters.connectionId, filters.insuranceType, filters.currencystring ya da nullUygulanan süzgeçler; gönderilmediyse null.
groupsdiziBağlantı, para birimi ve primi tahsil eden başına bir grup; alanları aşağıda.
generatedAtstringRaporun oluşturulduğu an, ISO 8601.

groups[]:

AlanTipAçıklama
provider.codestringSağlayıcının Lunixi kataloğundaki kodu.
provider.namestringSağlayıcının adı.
provider.logoUrlstring ya da nullSağlayıcının logosu.
provider.connectionIdstringSağlayıcı bağlantınızın kimliği.
currencystringPara birimi, ISO 4217.
premiumCollectedBystringPrimi kimin tahsil ettiği: MERCHANT ya da PROVIDER.
totalsnesneToplamlar; alanları aşağıda.

totals, tutarlar kuruş:

AlanNeyi sayar
orderCount, premiumAmountDönemde oluşturulan siparişler ve primleri.
collectedOrderCount, collectedPremiumAmountPrimi tahsil edilmiş siparişler (collectionStatus: COLLECTED).
policyCountPoliçe sayısı.
inForcePolicyCount, inForcePremiumAmountYürürlükteki poliçeler (ISSUED ya da CANCEL_PENDING) ve primleri. İptal talebi açık poliçe, sağlayıcı iptali kesinleştirene kadar burada sayılır.
cancelledPolicyCount, cancelledPremiumAmountSağlayıcının iptali kesinleştirdiği poliçeler (CANCELLED) ve primleri.
refundedOrderCount, refundedPremiumAmountPrim iadesi tamamlanmış siparişler (refundStatus: REFUNDED).
refundOpenOrderCount, refundOpenPremiumAmountPrim iadesi gereken, süren ya da başarısız olan siparişler (REQUIRED, PENDING ya da FAILED).

Tahsilat ve iade toplamları sipariş başına, poliçe toplamları poliçe başınadır.

Satırlar: GET /api/v1/insurance/reconciliation/orders

Özetin arkasındaki siparişleri poliçeleriyle birlikte, en yeniden eskiye, cursor tabanlı sayfalar hâlinde döner. Süzgeç parametrelerine ek olarak:

Sorgu parametresiTipAçıklama
limitintegerSayfa başına sipariş, 1-100. Varsayılan 100.
cursorstringÖnceki yanıttaki pageInfo.nextCursor. İlk sayfada gönderilmez.

Yanıtta satırlar data.items dizisindedir; sayfalama bilgisi pageInfo alanındadır.

AlanTipAçıklama
orderIdstringSipariş kimliği (inso_…).
merchantOrderIdstring ya da nullKendi sipariş numaranız.
paymentIntentIdstring ya da nullBağlı Lunixi ödemesinin kimliği.
externalPaymentIdstring ya da nullLunixi dışında alınan primde bildirdiğiniz ödeme kimliği.
insuranceTypestringSigorta tipi.
connectionIdstringSağlayıcı bağlantınızın kimliği.
providerCodestringSağlayıcının Lunixi kataloğundaki kodu.
premiumCollectedBystringMERCHANT ya da PROVIDER.
paymentModestringNO_PAYMENT, LUNIXI_PAYMENT ya da EXTERNAL_PAYMENT.
premiumAmountintegerSiparişin primi, kuruş.
currencystringPara birimi, ISO 4217.
collectionStatus, policyStatus, refundStatusstringSiparişin durum eksenleri: Kavramlar › Sipariş durumları.
createdAtstringSiparişin oluşturulma anı.
collectedAtstring ya da nullPrimin tahsil edildiği an.
refundedAtstring ya da nullİadenin kesinleştiği an.
policiesdiziSiparişin poliçeleri; alanları aşağıda. Henüz poliçe yoksa boş dizidir.

policies[]:

AlanTipAçıklama
policyIdstringPoliçe kimliği (insp_…).
basketItemIdstringPoliçenin sigortaladığı sepet kalemi.
policyNumberstring ya da nullPoliçe belgesindeki numara.
policyStatusstringPoliçenin durumu.
premiumAmountintegerPoliçenin primi, kuruş.
cancelledAtstring ya da nullİptalin kesinleştiği an.

Bozuk bir cursor 422 insurance.validation.invalid (field: cursor) döner.

CSV: GET /api/v1/insurance/reconciliation/export

Rapor satırlarını CSV dosyası olarak döner. Süzgeç parametreleri aynıdır; kesilen bir dosyayı sürdürmek için ayrıca cursor alır.

source lunixi-sign.sh
REQ_PATH="/api/v1/insurance/reconciliation/export?from=2026-09-01T00:00:00Z&to=2026-10-01T00:00:00Z"
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" \
  -o mutabakat.csv
BaşlıkDeğer
Content-Typetext/csv; charset=utf-8
Content-Dispositionattachment; filename="insurance-reconciliation-<YYYY-MM-DD>.csv"
Cache-Controlno-store
X-Export-Order-CapBir dosyadaki en fazla sipariş sayısı.
  • Dosya UTF-8'dir ve BOM ile başlar. Tutarlar kuruştur.
  • Her poliçe bir satırdır. Sipariş sütunları siparişin her poliçe satırında tekrar eder; henüz poliçesi olmayan sipariş, poliçe sütunları boş tek satırdır. Sipariş toplamı için orderPremiumAmountMinor değerini orderId başına bir kez, poliçe toplamı için policyPremiumAmountMinor değerini toplayın.
  • Bir dosya en fazla 20.000 sipariş içerir. Sınıra ulaşılırsa dosyanın son satırı # truncated=true orderCap=20000 nextCursor=<imleç> olur; kalan siparişler için isteği aynı süzgeç ve cursor=<imleç> ile tekrarlayın.
  • Dışa aktarım yarıda kesilirse dosyanın son satırı # export-aborted=true olur ve dosya eksiktir; dosyayı yeniden indirin.
  • İstek doğrulanamazsa yanıt CSV değil, JSON hata zarfıdır. Yanıtın Content-Type başlığına bakın.
Sütun grubuSütunlar
SiparişorderId, merchantOrderId, paymentIntentId, externalPaymentId, orderCreatedAt, collectedAt, insuranceType, connectionId, providerCode, premiumCollectedBy, paymentMode, currency, orderPremiumAmountMinor, collectionStatus, orderPolicyStatus, refundStatus, refundedAt
PoliçepolicyId, policyNumber, basketItemId, policyStatus, policyPremiumAmountMinor, cancelledAt

Hatalar

HTTPcodeNe yapmalı
400VALIDATION_ERRORSorgu parametrelerinin biçimini düzeltin.
422insurance.validation.invalidDönemi düzeltin; details.errors[] alanına bakın (Süzgeç).

Ortak kodlar: Akışlar › Yanıt ve hatalar.

İlgili