Sepet Kalemleri
Sepet kalemleri (basketItems[]), ödemenin neyi kapsadığını satır satır anlatır. Bu sayfa kalem alanlarını, kuralları ve kaleme eklenebilen isteğe bağlı sigorta alanlarını tek yerde toplar.
Tutarlar kuruş cinsinden tamsayıdır: "price": 10050 = ₺100,50.
Kalemi alan uçlar
| Uç | Kalem | Sigorta alanları |
|---|---|---|
POST /payments/intents (Checkout Formu) | basketItems[] | Kabul edilir |
POST /payments/direct/payment (Payment) | basketItems[] | Kabul edilmez; gönderilirse istek 400 ile reddedilir |
POST /payments/marketplace/intents, /marketplace/2d, /marketplace/3d | basketItems[] | Kabul edilmez; gönderilirse istek 400 ile reddedilir |
POST /payments/links, PATCH /payments/links/{id} (Linkle Ödeme) | items[], kendi biçimiyle | Kabul edilir, insuranceContext ve insuranceData hariç (aşağıya bakın) |
Kalem alanları
| Alan | Tip | Zorunlu | Kural |
|---|---|---|---|
id | string | Evet | Boş olamaz. Kalemlerden biri sigorta alanı taşıyorsa sepette tekil olmalıdır. |
price | integer | Evet | Kuruş, en az 0. Satırın toplam tutarıdır. |
name | string | Evet | Boş olamaz. |
category1 | string | Evet | Boş olamaz. |
category2 | string | Hayır | — |
itemType | enum | Evet | Yalnızca PHYSICAL ya da VIRTUAL. |
Kurallar:
- Kalemde adet alanı yoktur;
pricesatır toplamıdır. Aynı üründen 3 adet satıyorsanız ya tek kalemde 3 adedin toplamını ya da her adet için ayrı bir kalem gönderirsiniz. Sigorta alanı taşıyan kalemlerde her birim ayrı bir kalemdir (aşağıya bakın). - Kalem alan bütün ödeme isteklerinde kalemlerin
pricetoplamı isteğinamountalanına eşit olmalıdır; eşit değilse istek400 VALIDATION_ERRORile reddedilir.amountvade farkını içermez; taksitte vade farkını sistem çekilen tutara ekler, kalemlere yazılmaz. - Tanımlanmamış bir alan gönderirseniz istek reddedilir. Sigorta alanlarını yalnızca kabul eden uçlarda gönderin.
Doğrulama hataları
Kalemdeki bir hata 400 VALIDATION_ERROR döner. details.errors[] içindeki field, hatalı alanı kalemin sırasıyla birlikte noktalı bir yol olarak verir. Sıra 0'dan başlar: basketItems.0.itemType, ilk kalemin itemType alanıdır.
{
"status": "failure",
"code": "VALIDATION_ERROR",
"message": "Doğrulama hatası — gönderilen alanları kontrol edin.",
"statusCode": 400,
"requestId": "4b0e6c1a-2f3d-4e5a-9b8c-7d6e5f4a3b2c",
"details": {
"errors": [
{ "field": "basketItems", "errors": [] },
{ "field": "basketItems.0.itemType", "errors": ["itemType must be one of the following values: PHYSICAL, VIRTUAL"] }
]
}
}basketItemsgirdisi her zaman ilk sıradadır; kalem hatalarının nedeni ondan sonra gelen yol girdilerindedir.- İç içe alanlarda yol uzar:
basketItems.0.insuranceContext.departureAt. - Bilinmeyen bir alanın yolu da aynı biçimde döner:
basketItems.1.pnr. - Kodunuzda
message'a göre değilcode'a vefield'a göre dallanın. Hata zarfı: Hatalar.
Sigorta alanları
Sigorta alanları canlıda kabul edilir ve ödemenizi etkilemez; hesabınızda sigorta açık değilse kullanılmaz.
Alıcınıza hangi sigortanın sunulacağı, kalemlerinizdeki sigorta alanlarından çözülür. Teklif için gereken bilgiyi de kalemle birlikte gönderebilirsiniz; bu bilgiler alıcıya yeniden sorulmaz. Ürünün nasıl çalıştığı: Sigorta.
- Sigorta alanlarının hepsi isteğe bağlıdır. Göndermezseniz ödemeniz bugünkü gibi çalışır.
- Sigorta alanları ödeme sağlayıcınıza iletilmez.
- Sigorta sunulamasa da ödeme durmaz; yalnızca sigorta gösterilmez.
- Sigorta hiçbir durumda kendiliğinden eklenmez; alıcının teklifi açıkça onaylaması gerekir.
| Alan | Tip | Kural | Anlamı |
|---|---|---|---|
insuranceCategory | enum | Kalem türü sözlüğünden bir değer | Kalemin türü. Hangi sigorta tiplerinin uygun olduğu bu alandan çözülür. |
insuranceTypes | string[] | Her öge ^[A-Z][A-Z0-9_]{2,63}$; tekil; en fazla 10 öge | Sigorta tipi kodları; uygun tipleri daraltır. Gönderilmez ya da boş gönderilirse kalem türünün bütün tipleri. |
insuranceEligible | boolean | true ya da false | false ise bu kalem için sigorta sunulmaz; diğer sigorta alanlarından önce gelir. |
insuranceValueAmount | integer | Kuruş, en az 1 | Bir birimin sigortalanacak değeri. Gönderilmezse birim fiyatı kullanılır. |
insuranceContext | nesne | Yalnızca izinli anahtarlar; bilinmeyen anahtar reddedilir | Kişisel olmayan bilgiler (sefer, cihaz modeli, seyahat günleri gibi). Sigorta tipinin alanlarını önceden doldurur: Ön doldurma. |
insuranceData | nesne | Sigorta ön verisi; en fazla 16 KB | Teklif için gereken diğer bilgiler, kişisel veriler dahil (sigortalı, IMEI, rezervasyon kodu, plaka gibi). Kısmi olabilir. |
Kurallar:
insuranceTypes,insuranceValueAmount,insuranceContextya dainsuranceDatagönderirsenizinsuranceCategoryzorunludur.insuranceEligible: falsetek başına gönderilebilir.- Kalemlerden en az biri sigorta alanı taşıyorsa sepetteki
id'ler tekil olmalıdır. Sigorta alanı olmayan sepette bu kural uygulanmaz. - Sigorta birim başınadır. Her birim ayrı sigortalanır ve teminat bedeli birim fiyatıdır. Bu yüzden sigorta alanı taşıyan kalemde her birimi ayrı kalem olarak gönderin: 3 bilet, 3 kalem.
- Sigorta primi kalemi (
id'siinso_ile başlayan kalem) sigorta alanı taşımaz; taşırsa istek400 VALIDATION_ERRORile reddedilir. - İstek sırasında yalnızca biçim doğrulanır. Tip kodunun tanınıp tanınmadığı, kalem türüyle uyumu ve hesabınızda açık olup olmadığı sonra kontrol edilir; uyuşmazlık ödemeyi durdurmaz, yalnızca sigorta sunulmaz.
Kalem türü sözlüğü
| Değer | Kalem |
|---|---|
TICKET | Otobüs, uçak, tren bileti |
HOTEL | Konaklama rezervasyonu |
EVENT | Etkinlik bileti |
DEVICE | Cep telefonu |
ELECTRONICS | Elektronik, beyaz eşya |
VEHICLE | Araç |
TRAVEL | Seyahat, tur paketi |
HOME | Konut |
HEALTH | Sağlık hizmeti |
PET | Evcil hayvan |
MICROMOBILITY | Kiralık scooter ve benzeri mikro mobilite |
MUSICAL_INSTRUMENT | Müzik aleti |
SHIPMENT | Nakliye, kargo gönderisi |
EDUCATION | Eğitim, yurt dışı öğrenim |
Sözlüğe yeni değer eklenebilir; yayınlanmış bir değer değişmez ve silinmez. Bir kalem türünün hangi sigorta tiplerine karşılık geldiğini Lunixi kataloğu belirler. Şu anki karşılıklar: TICKET → TICKET_CANCELLATION, HOTEL → HOTEL_CANCELLATION, DEVICE → DEVICE_INSURANCE ve DEVICE_PROTECTION, ELECTRONICS → EXTENDED_WARRANTY, VEHICLE → ROADSIDE_ASSISTANCE, VEHICLE_TAG_PROTECTION, MOTOR_GREEN_CARD, MOTOR_THIRD_PARTY_LIABILITY, MOTOR_COMPREHENSIVE ve MOTOR_EXCESS_LIABILITY, TRAVEL → TRAVEL_HEALTH, INBOUND_TRAVEL_HEALTH, MOTOR_GREEN_CARD ve ABROAD_STAY_HEALTH, EVENT → EVENT_ACCIDENT, MICROMOBILITY → MICROMOBILITY_ACCIDENT, MUSICAL_INSTRUMENT → MUSICAL_INSTRUMENT_PROTECTION, HEALTH → MEDICAL_COMPLICATION, PET → PET_HEALTH, EDUCATION → ABROAD_STAY_HEALTH, HOME → COMPULSORY_EARTHQUAKE ve HOME_INSURANCE. Bir kalem türü birden çok tipe karşılık geliyorsa sunulacak tipleri insuranceTypes ile daraltabilirsiniz. Karşılığı olmayan bir kalem türünde sigorta sunulmaz. Bir kalem türüne bağlı olmayan tipler sepet kalemi olmadan, yalnızca API yolunda satılır: Sepet Kalemi Olmadan Satış. Tipler için bkz. Sigorta Tipleri.
insuranceContext
Bağlam, sigorta tipinin kişisel olmayan alanlarını taşır. Anahtarlar, tip nesnesindeki alan adlarıdır. İzinli anahtarlar kalem türüne göre aşağıdadır.
TICKET:
| Anahtar | Biçim |
|---|---|
transportMode | BUS, FLIGHT ya da TRAIN |
carrier | Metin, 1-100 karakter |
departureAt | Zaman damgası, saat dilimi zorunlu (2025-12-23T12:50:00+03:00) |
originCity | Metin, 1-100 karakter |
destinationCity | Metin, 1-100 karakter |
originAirportCode | IATA, üç büyük harf |
destinationAirportCode | IATA, üç büyük harf |
flightNumber | Metin, 1-100 karakter |
isPromotional | true ya da false |
HOTEL:
| Anahtar | Biçim |
|---|---|
hotelName | Metin, 1-200 karakter |
checkInDate | Tarih, YYYY-MM-DD |
checkOutDate | Tarih, YYYY-MM-DD |
guestCount | Tamsayı, en az 1 |
cityCode | İl plaka kodu, 01-81 |
DEVICE:
| Anahtar | Biçim |
|---|---|
brandCode | Lunixi referans kodu |
modelCode | Lunixi referans kodu |
coverageStartDate | Tarih, YYYY-MM-DD |
ELECTRONICS:
| Anahtar | Biçim |
|---|---|
categoryCode | Lunixi referans kodu |
brand | Metin, 1-100 karakter |
model | Metin, 1-100 karakter |
warrantyMonths | 12 ya da 24 (sayı) |
VEHICLE:
| Anahtar | Biçim |
|---|---|
brandCode | Lunixi referans kodu |
modelCode | Lunixi referans kodu |
modelYear | Tamsayı |
vehicleTypeCode | Lunixi referans kodu |
vehicleUsageCode | Lunixi referans kodu (kullanım şekli) |
seatCount | Tamsayı, sürücü dahil koltuk sayısı |
TRAVEL:
| Anahtar | Biçim |
|---|---|
scope | DOMESTIC ya da INTERNATIONAL |
startDate | Tarih, YYYY-MM-DD |
endDate | Tarih, YYYY-MM-DD |
destinationCountryCodes | Dizi; her öge ISO 3166-1 alpha-2, en fazla 20 öge |
EVENT ve MICROMOBILITY:
| Anahtar | Biçim |
|---|---|
coverageStartDate | Tarih, YYYY-MM-DD |
MUSICAL_INSTRUMENT:
| Anahtar | Biçim |
|---|---|
categoryCode | Lunixi referans kodu |
brand | Metin, 1-100 karakter |
model | Metin, 1-100 karakter |
HEALTH:
| Anahtar | Biçim |
|---|---|
procedureCoverCode | Lunixi referans kodu |
procedureDate | Tarih, YYYY-MM-DD |
facilityName | Metin, 1-200 karakter |
PET:
| Anahtar | Biçim |
|---|---|
petSpecies | CAT ya da DOG |
petBreedCode | Lunixi referans kodu |
EDUCATION:
| Anahtar | Biçim |
|---|---|
startDate | Tarih, YYYY-MM-DD |
endDate | Tarih, YYYY-MM-DD |
HOME:
| Anahtar | Biçim |
|---|---|
areaSqm | Tamsayı, brüt alan (metrekare), 1-100000 |
constructionYear | Tamsayı, binanın inşa yılı |
dwellingTypeCode | Lunixi referans kodu (konut türü) |
SHIPMENT:
| Anahtar | Biçim |
|---|---|
originCityCode | Çıkış ili, plaka kodu 01-81 |
destinationCityCode | Varış ili, plaka kodu 01-81 |
departureDate | Tarih, YYYY-MM-DD |
Anahtarlar kalem türleri arasında ortaktır: tablolar anahtarın en çok kullanıldığı türü gösterir. Anahtarın kalem türüyle uyumuna ödeme isteğinde bakılmaz; bir anahtar, kalemin sigorta tipinde karşılığı varsa ön doldurmada kullanılır (Ön doldurma). Değerlerin tipin şemasına göre doğrulanması (ör. çıkış gününün girişten sonra olması, model yılı aralığı) teklif sırasında yapılır: Sigorta Tipleri.
insuranceContextkişisel veri taşımaz. Rezervasyon kodu (pnr), bilet numarası (ticketNumber), IMEI (imei), plaka (plate), UAVT adres kodu (uavtAddressCode), seri numarası (serialNumber), ikamet ülkesi (residenceCountryCode), uyruk (nationalityCountryCode) ve kişi alanları (identityNumber,firstName,birthDategibi) burada gönderilirse istek reddedilir. Bu bilgileri göndermek istiyorsanızinsuranceDataalanını kullanın.- Tutar alanları burada gönderilmez; sigortalanacak değer
insuranceValueAmount'tadır. Tipin tutar alanını (ör. bilet tutarıpriceAmount)insuranceDataile verebilirsiniz. - Değer yoksa anahtarı göndermeyin. Boş metin ya da "yok" gibi yer tutucu değerler kabul edilmez.
- Havalimanı kodlarının yalnızca uçak bileti için geçerli olması gibi çapraz kurallar teklif sırasında kontrol edilir.
Zaman, tarih ve kod biçimlerinin ayrıntısı: Veri Biçimleri.
Ön doldurma
Bağlamın anahtarı, tip nesnesindeki aynı adlı alanı doldurur; değer aynen kullanılır. Checkout Form'da bu alanlar dolu gelir ve alıcı değiştirebilir. API'de Uygunluk yanıtının prefill alanında döner ve teklif isteğinde göndermediğiniz alanları tamamlar.
| Sigorta tipi | Tip nesnesi | Bağlamdan doldurulan alanlar |
|---|---|---|
TICKET_CANCELLATION | tickets | transportMode, carrier, departureAt, originCity, destinationCity, originAirportCode, destinationAirportCode, flightNumber, isPromotional |
HOTEL_CANCELLATION | stay | hotelName, checkInDate, checkOutDate, guestCount, cityCode |
DEVICE_INSURANCE, DEVICE_PROTECTION | device | brandCode, modelCode, coverageStartDate |
EXTENDED_WARRANTY | product | categoryCode, brand, model, warrantyMonths |
ROADSIDE_ASSISTANCE | vehicle | brandCode, modelCode, modelYear, vehicleTypeCode |
VEHICLE_TAG_PROTECTION | vehicle | coverageStartDate |
MOTOR_GREEN_CARD | vehicle | seatCount, vehicleTypeCode, startDate, endDate |
MOTOR_THIRD_PARTY_LIABILITY | vehicle | modelCode, modelYear, vehicleTypeCode |
MOTOR_COMPREHENSIVE | vehicle | modelCode, modelYear, vehicleTypeCode, coverageStartDate |
MOTOR_EXCESS_LIABILITY | vehicle | modelCode, modelYear, vehicleTypeCode, vehicleUsageCode, coverageStartDate |
TRAVEL_HEALTH | trip | scope, startDate, endDate, destinationCountryCodes, originCityCode |
INBOUND_TRAVEL_HEALTH | trip | startDate, endDate |
ABROAD_STAY_HEALTH | abroadStay | startDate, endDate |
MICROMOBILITY_ACCIDENT | rental | coverageStartDate |
MUSICAL_INSTRUMENT_PROTECTION | instrument | brand, model, categoryCode |
EVENT_ACCIDENT | event | coverageStartDate |
MEDICAL_COMPLICATION | procedure | procedureCoverCode, procedureDate, facilityName, startDate, endDate |
PET_HEALTH | pet | coverageStartDate, petSpecies, petBreedCode |
COMPULSORY_EARTHQUAKE | property | coverageStartDate, areaSqm, constructionYear |
HOME_INSURANCE | property | areaSqm, constructionYear, dwellingTypeCode |
- Tabloda olmayan bir anahtar o tipte kullanılmaz; ör.
DEVICE_PROTECTIONiçinwarrantyMonths. - Tipin şemasına uymayan ya da o durumda geçerli olmayan bir bağlam değeri ön doldurmada kullanılmaz ve teklifi engellemez. Örneğin
transportMode: BUSolan bir bilette bağlamdaki havalimanı kodu dikkate alınmaz. - Aynı alan
insuranceData'da da varsainsuranceData'daki değer geçerlidir. Teklif isteğinde gönderilen değer (alıcının formda girdiği ya da sizin API'de gönderdiğiniz) ikisinden de önce gelir.
Sigorta ön verisi: insuranceData
Teklif için gereken bilgileri, kişisel veriler dahil, sigortalanacak kalemle birlikte gönderebilirsiniz: sigortalı, cihazın IMEI'si, rezervasyon kodu, aracın plakası gibi. Ne kadarını gönderdiğinize göre:
| Gönderdiğiniz | Sonuç |
|---|---|
| Hiçbir şey | Bugünkü gibi: bilgileri alıcı formda doldurur ya da siz teklif isteğinde gönderirsiniz. |
| Bilgilerin bir kısmı | Gelen alanlar hazır gelir; yalnızca eksikler sorulur ya da teklif isteğinde yalnızca eksikleri gönderirsiniz. |
| Teklif için gereken her şey | Teklif ek bilgi gerekmeden alınır. Checkout Form'da poliçe alanları da geldiyse form açılınca teklif kendiliğinden gelir. |
Her durumda sigorta yalnızca alıcının açık onayıyla eklenir. Form ve API'deki davranış: Sigorta › Sepet bilgisi ve ön veri.
Biçim
- Anahtarlar, sigorta tipinin teklif isteğindeki kök alanlarıdır:
policyholder,insuredve tipin nesnesi. Alan adları ve biçimleri Sigorta Tipleri ve Şemalar sayfasındakiyle aynıdır; ayrı bir sözlük yoktur. - Tip nesnesi kalem için tek nesnedir. Teklif isteğinde dizi olan
ticketsde burada tek nesne olarak verilir:"tickets": { "pnr": "…" }. - Tip nesnesinde
basketItemIdgönderilmez; kaleminid'si kullanılır. Gönderilirse istek reddedilir. insurednesne dizisidir: 1-10 öge.- Kısmi veri serbesttir. Zorunlu alanlar burada aranmaz; eksik alanları alıcı formda doldurur ya da siz teklif isteğinde gönderirsiniz.
- Değer yoksa alanı göndermeyin.
nulldeğer ve boş nesne ({}) kabul edilmez. - JSON olarak en fazla 16 KB (UTF-8).
| Kök | Biçim | Kullanıldığı tipler |
|---|---|---|
policyholder | nesne | Sigorta ettiren; kişi alanları |
insured | dizi, 1-10 nesne | Sigortalılar; kişi alanları |
tickets | nesne | TICKET_CANCELLATION |
stay | nesne | HOTEL_CANCELLATION |
device | nesne | DEVICE_INSURANCE, DEVICE_PROTECTION |
product | nesne | EXTENDED_WARRANTY |
vehicle | nesne | ROADSIDE_ASSISTANCE, VEHICLE_TAG_PROTECTION, MOTOR_GREEN_CARD, MOTOR_THIRD_PARTY_LIABILITY, MOTOR_COMPREHENSIVE, MOTOR_EXCESS_LIABILITY |
trip | nesne | TRAVEL_HEALTH, INBOUND_TRAVEL_HEALTH |
rental | nesne | MICROMOBILITY_ACCIDENT |
instrument | nesne | MUSICAL_INSTRUMENT_PROTECTION |
event | nesne | EVENT_ACCIDENT |
procedure | nesne | MEDICAL_COMPLICATION |
pet | nesne | PET_HEALTH |
abroadStay | nesne | ABROAD_STAY_HEALTH |
property | nesne | COMPULSORY_EARTHQUAKE, HOME_INSURANCE |
- Kalem birden çok tipe uygunsa (ör.
DEVICEtüründe iki tip) aynı ön veri her tipte kullanılır; bir tipin şemasında olmayan alan o tipte dikkate alınmaz. - Yalnızca sepet kalemi olmadan satılan tiplerin (
PERSONAL_ACCIDENT,FOREIGN_RESIDENT_HEALTH,SUPPLEMENTARY_HEALTH) bilgilerini doğrudan teklif isteğinde gönderin: Sepet Kalemi Olmadan Satış.
Doğrulama
Ön veri iki adımda doğrulanır:
| Ne zaman | Ne kontrol edilir | Uymazsa |
|---|---|---|
| İstek sırasında | JSON nesnesi olması, 16 KB sınırı, kök adları, insured listesi, tip nesnesinde basketItemId olmaması, alan adına göre temel biçim (tarih, zaman damgası, e-posta, telefon, ülke ve il kodu, tutar, metin uzunluğu) | İstek 400 VALIDATION_ERROR ile reddedilir. |
| İstek kabul edildikten sonra, tipin şemasına göre | Alan adının tipte bulunması, kimlik numarasının kontrol haneleri, IMEI ve plaka gibi özel biçimler, alanın o durumda geçerli olması (ör. transportMode: BUS olan bilette havalimanı kodu) | Ödeme durmaz. Kalemin ön verisi bütünüyle kullanılmaz; alanlar alıcıdan istenir. Sebep Uygunluk yanıtının insuranceDataIssues alanında görünür. |
- Kalemin
insuranceContext'i doğrulamada birlikte değerlendirilir: bağlamdakitransportMode: FLIGHT, ön veridekiflightNumber'ı geçerli kılar. - Kalemin ön verisinde tek bir alan uymazsa o kalemin ön verisinin tamamı kullanılmaz. Biçimleri gönderiden önce kendi tarafınızda doğrulayın: Veri Biçimleri.
İstek sırasındaki hatalarda alan yolu kökü gösterir; ileti kökün altındaki alanı söyler. Gönderdiğiniz değer hata yanıtına yazılmaz:
{
"status": "failure",
"code": "VALIDATION_ERROR",
"message": "Doğrulama hatası — gönderilen alanları kontrol edin.",
"statusCode": 400,
"requestId": "4b0e6c1a-2f3d-4e5a-9b8c-7d6e5f4a3b2c",
"details": {
"errors": [
{ "field": "basketItems", "errors": [] },
{ "field": "basketItems.0.insuranceData.tickets", "errors": ["insuranceData.tickets.departureAt must be an ISO 8601 timestamp with a time zone"] },
{ "field": "basketItems.1.insuranceData.passenger", "errors": ["property passenger should not exist"] }
]
}
}| İleti | Sebep |
|---|---|
insuranceData must not be empty; omit the field instead | Boş nesne gönderildi. |
insuranceData must be at most 16384 bytes as JSON | Ön veri 16 KB'ı aşıyor. |
property <ad> should not exist | Tanınmayan kök adı. |
insuranceData.<kök> must be a single object (a list type object is sent as one object for the basket item) | Tip nesnesi dizi olarak gönderildi. |
insuranceData.<kök>.basketItemId must not be sent; the basket item id is used | Tip nesnesinde basketItemId gönderildi. |
insuranceData.insured must be a list of 1-10 objects | insured dizi değil ya da öge sayısı 1-10 dışında. |
insuranceData.<yol> must not be null; omit the field instead | Alanın değeri null. |
insuranceCategory is required when insuranceTypes, insuranceValueAmount, insuranceContext or insuranceData is sent | Kalemde insuranceCategory yok. |
Kişisel veri
insuranceDatayalnızca sigorta için kullanılır; ödeme işlemine ve ödeme sağlayıcınıza iletilmez.- Şifreli saklanır ve ödeme oluşturulduktan 24 saat sonra, en geç bir saat içinde silinir.
- İstek kayıtlarında ödeme isteğinin
insuranceDataalanı gizlenir; hata yanıtları değeri değil yalnızca alan yolunu taşır. Uygunluk yanıtında kişisel değerler maskelidir.
Ayrıntı: Sigorta › Kişisel veri.
Kabul eden uçlar
| Uç | insuranceData |
|---|---|
POST /payments/intents basketItems[] | Kabul edilir. Şifreli saklanır; Checkout Form'da ve ödeme kimliğiyle (paymentIntentId) alınan teklifte kullanılır. |
POST /api/v1/insurance/products context.items[] | Kabul edilir. Saklanmaz; yanıtta teklif başına ön doldurma bilgisi döner: Uygunluk. |
POST /api/v1/insurance/quotes context.items[] | Kabul edilir. Saklanmaz; aynı istekte teklif gövdesiyle birleşir: Teklif › Ön veriyle teklif. |
POST /payments/direct/payment, POST /payments/marketplace/intents, /marketplace/2d, /marketplace/3d | Kabul edilmez; sigorta alanı gibi 400 ile reddedilir. |
POST /payments/links, PATCH /payments/links/{id} | Link kaleminde bu alan yoktur (aşağıya bakın). |
Birden çok kalem
Teklif birden çok kalemi kapsıyorsa kalemlerin ön verisi şöyle birleşir:
tickets: her kalemin nesnesi, kaleminid'siyle teklifteki bileti oluşturur.insured: kalemlerin listeleri kalem sırasıyla tek listede birleşir. AynıidentityTypeveidentityNumberikinci kez eklenmez; tipin sigortalı üst sınırı aşılmaz.policyholder: ön veride sigorta ettireni veren ilk kalemden alınır.- Tek nesneli tiplerde (
device,vehiclegibi) teklif tek bir kaleme bağlıdır. Teklif isteğindekibasketItemIdhangi kalemin bilgisinin kullanılacağını seçer; göndermezseniz bağlam ya da ön veri taşıyan ilk kalem kullanılır.
Örnekler
Değerler örnektir; açılı parantez içindeki değerlerin yerine alıcınızın bilgilerini, referans kodlarının yerine referans uçlarından aldığınız kodları yazın. Her örnek, kalemin teklif için gereken bütün bilgiyi taşıdığı durumu gösterir; bir kısmını göndermeniz de yeterlidir.
Otobüs bileti, TICKET_CANCELLATION. Sefer bilgisi bağlamda, yolcu ve bilet tutarı ön veridedir. tickets tek nesnedir ve basketItemId taşımaz.
"basketItems": [
{
"id": "ticket-1",
"name": "Ankara-İstanbul otobüs bileti",
"price": 50000,
"category1": "bilet",
"itemType": "VIRTUAL",
"insuranceCategory": "TICKET",
"insuranceTypes": ["TICKET_CANCELLATION"],
"insuranceContext": {
"transportMode": "BUS",
"carrier": "Örnek Taşıyıcı",
"departureAt": "2025-12-23T12:50:00+03:00",
"originCity": "Ankara",
"destinationCity": "İstanbul"
},
"insuranceData": {
"insured": [
{
"identityType": "PASSPORT",
"identityNumber": "<pasaport numarası>",
"birthDate": "<YYYY-MM-DD>",
"email": "<e-posta>",
"phone": "<E.164 telefon>"
}
],
"tickets": {
"priceAmount": 50000,
"pnr": "<rezervasyon kodu>",
"ticketNumber": "<bilet numarası>"
}
}
}
]İki biletli sepette her kalem kendi tickets nesnesini ve yolcusunu taşır; teklifte biletler tek tickets listesinde, yolcular tek insured listesinde birleşir.
Kişisel veri insuranceContext'te gönderilirse kalemin yolu hatada görünür; bu bilgiyi insuranceData ile gönderin:
{ "field": "basketItems.0.insuranceContext.pnr", "errors": ["property pnr should not exist"] }Ödeme linki kalemleri
Ödeme linki kalemleri (items[]) kendi biçimini kullanır: itemKey, name, unitPriceMinor, minQuantity, maxQuantity ve diğerleri; bkz. Link Oluşturma. Bu kalemlere de sigorta alanı ekleyebilirsiniz:
| Alan | Link kaleminde |
|---|---|
insuranceCategory | Var |
insuranceTypes | Var |
insuranceEligible | Var |
insuranceValueAmount | Var |
insuranceContext | Yok. Sefer ve rezervasyon bilgisi her alıcıya özeldir; link ise birden çok alıcıya satılır. |
insuranceData | Yok. Aynı sebeple: sigortalı ve teklif bilgisi her alıcıya özeldir. Bilgileri alıcı formda doldurur. |
- Alanların kuralları yukarıdakiyle aynıdır:
insuranceTypesya dainsuranceValueAmountgönderirsenizinsuranceCategoryzorunludur. - Alıcı bir kalemden 3 adet seçerse 3 birim ayrı ayrı sigortalanır; teminat bedeli birim fiyatıdır.
- Tanımlanmamış bir alan ya da yanlış tip
400 VALIDATION_ERRORdöner. Kural ihlali (ör. tür olmadan tip kodu)422 payment_link.validation.invaliddöner;details.errorshangi kalemin hangi alanının reddedildiğini gösterir.
Devamı
- Checkout Formu: kalemleri gönderdiğiniz ödeme isteği
- Sigorta: sigortanın nasıl çalıştığı
- Veri Biçimleri: zaman, tarih ve kod biçimleri