JSON gövde ile e-Bilet gönderir. Gönderilen biletler, izibiz tarafından aylık e-Bilet Raporu olarak GİB'e raporlanır; bu nedenle aşağıdaki alanların eksiksiz ve tutarlı doldurulması gerekir.
Sürüm: Yalnızca {{v2}} altında çalışır; {{v1}} ile "Servis kullanılmamaktadır" döner.
Benzersizlik: Her gönderimde content.documentNo ve content.uuid benzersiz olmalıdır. Senaryolardaki değerler örnektir; tekrar gönderirken bu iki alanı değiştirin.
Gönderici (supplierParty): content.supplierParty.identifier alanı, token alınan (oturum açan) hesabın VKN/TCKN değeri ile aynı olmalıdır; aksi halde 10013 hatası döner. Senaryolarda test hesabının VKN'si (4840847211) kullanılmıştır, kendi hesabınızla gönderirken bu alana kendi VKN/TCKN'nizi yazın.
Belge numarası (documentNo): 16 karakter — 3 haneli birim kodu + 4 haneli yıl + 9 haneli müteselsil sıra no (ör. BLT2026000000101). Sıra no her yıl başında 1'den başlar.
Zorunlu alanlar:
content.legalMonetaryTotal—lineExtensionAmount(KDV hariç) vepayableAmount(KDV dahil). Boş bırakılamaz.content.taxTotal.taxAmountvetaxTotal.taxSubTotal[].taxableAmount— hem belge hem satır seviyesinde.content.customerParty—firstName,lastName,identifierveaddress. Yabancı yolcudaidentifieralanına pasaport no yazılır.content.travel.routeFrom,routeTo(güzergâh başlangıç/bitiş) vecar(taşıt/vagon no).content.lines[].typeOfService.typevedescription.
Değer listeleri (GİB e-Bilet şeması):
paymentMeans[].paymentCode:BANKAKARTI,BEDELSIZ,KREDIKARTI,PUAN,MAHSUP,MAHSUPPUAN,NAKIT,PASS,PROMOSYON,ULASIMKARTI,DIGER. Birden fazla ödeme şeklinde ya en yüksek tutarlı ödeme şekli yazılır ya daDIGERseçilip duruminstructionNotealanında açıklanır.lines[].typeOfService.type:SEYAHAT,BAGAJ,YEMEK,KOLTUKSECIMI,IPTALDEGISIKLIKTAZMINATI,CEZA,DIGER.DIGERseçilirsedescriptionboş bırakılamaz.travel.travelType:YUTRICI(yurtiçi — API'deki değer bu şekildedir) veyaYURTDISI.lines[].seat.passengerGender:KADIN,ERKEK,DIGER.seat.tarifftarife ayrımı (ör. ÖĞRETMEN, 65+ Yaş),seat.classsınıflandırma içindir.
Gider gösterme: Bilet bedelini gider/indirim olarak gösterecek firma content.buyerCustomerParty (name, identifier, address) ile gönderilir. Bilet gönderildikten sonra eklemek/güncellemek için "Gider Gösterme Bilgisi Ekleme/Güncelleme" endpoint'ini kullanın.
Senaryolar: Karayolu satış, ek hizmet, tazminat ve ceza senaryoları ile hatalı istek örnekleri aşağıdaki listededir. "Hatalı istek" senaryoları bilinçli olarak eksik gönderilir ve doğrulama hatası döner.
Sık karşılaşılan hata kodları:
| Kod | HTTP | Açıklama | Çözüm |
|---|---|---|---|
10009 |
400 | Bu belge daha önce yüklenmiş bir belge ile eşleşmektedir (mesajda eşleşen belgenin Belge No ve ETTN değeri yer alır). | content.documentNo ve content.uuid alanlarını daha önce kullanılmamış yeni değerlerle gönderin. Senaryolardaki örnek numaralar test ortamında kullanılmış olabilir. |
10013 |
400 | Geçersiz istek (NOT_VALID_REQUEST). Zorunlu bir alan eksik ya da hatalı olduğunda döner; hangi alanın sorunlu olduğu error.message içinde belirtilir. |
Mesajdaki alanı düzeltin. Örnek mesajlar: "Belge gönderen ile oturum açan hesaba ait VKN/TCKN değerleri uyuşmamaktadır" (supplierParty.identifier oturumdaki hesabın VKN/TCKN'si olmalı), "Alıcının Soyadı (lastName) Boş Bırakılamaz" (customerParty.lastName), "Vergi Toplamı (taxTotal) ve Vergi Alt Toplamı (taxSubTotal) bilgileri boş bırakılamaz" (taxTotal.taxSubTotal). |
Header Parameters
| Name | Type | Required | Description |
|---|---|---|---|
Authorization |
text |
Yes | v1/auth/token endpointten alınan token |
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
xsltName |
text |
No | Görüntüleme şablonu adı |
documentAction |
text |
No | SEND: gönder, DRAFT: taslak olarak kaydet |
content |
object |
Yes | Bilet içeriği: profile (EBILET), documentTypeCode, documentNo, issueDate, reservationNo, expeditionTime, supplierParty, customerParty, paymentMeans, taxTotal, expenseIssuer, travel, lines |
└ documentTypeCode |
text |
Yes | E-Bilet belge tipi. ETKINLIK değeri etkinlik biletleri için kullanılır. |
└ profile |
text |
Yes | E-Bilet profil bilgisi. |
└ issueDate |
date |
Yes | Biletin düzenlenme tarihi. yyyy-MM-dd formatında gönderilir. |
└ issueTime |
text |
Yes | Biletin düzenlenme zamanı. HH:mm:ss formatında gönderilir. |
└ reservationNo |
text |
Yes | Rezervasyon numarası. |
└ currencyCode |
text |
Yes | Belge para birimi. |
event |
object |
Yes | Etkinlik bilgileri. ETKINLIK belge tipinde kullanılır. |
└ event.name |
text |
Yes | Etkinliğin adı. |
└ event.type |
text |
Yes | Etkinlik türü. Örnek: KONSER, TIYATRO, SINEMA, SPOR. |
└ event.eventDate |
text |
Yes | Etkinlik tarihi. yyyy-MM-dd formatında gönderilir. |
└ event.eventTime |
text |
No | Etkinlik saati. HH:mm:ss formatında gönderilir. |
└ event.organizerIdentifier |
text |
No | Etkinliği düzenleyen tarafın VKN/TCKN bilgisi. VKN 10, TCKN 11 hanelidir. |
└ event.venue |
object |
No | Etkinliğin gerçekleştirileceği mekân bilgileri. |
└ provinceCode |
text |
No | |
└ district |
text |
No | |
└ municipality |
text |
No | |
└ name |
text |
No | |
└ supplierParty |
object |
Yes | Bileti düzenleyen/hizmeti sağlayan taraf bilgileri. |
└ identifier |
text |
No | |
└ name |
text |
No | |
└ taxOffice |
text |
No | |
└ address |
object |
No | |
└ city |
text |
No | |
└ city |
text |
No | |
└ country |
text |
No | |
customerParty |
object |
Yes | |
└ identifier |
text |
No | |
└ firstName |
text |
No | |
└ lastName |
text |
No | |
paymentMeans |
array |
Yes | Ödeme yöntemi bilgileri. |
└ paymentCode |
object |
No | |
└ paymentDate |
object |
No | |
└ #1 |
object |
No | |
└ paymentCode |
text |
Yes | Ödeme yöntemi. Geçerli değerler: BANKAKARTI, BEDELSIZ, KREDIKARTI, PUAN, MAHSUP, MAHSUPPUAN, NAKIT, PASS, PROMOSYON, ULASIMKARTI, COKLU, DIGER. |
└ paymentDate |
text |
No | Ödeme tarihi. yyyy-MM-dd formatında gönderilir. |
Response Codes
| Code | Description |
|---|---|
200 |