Sorumluluklar
Platform Sorumlulukları
Portal doğrulama akışları, kullanıcı durumları, gerçek kişi cari seçimi, validasyon ve iptal davranışları.
Portal UI Geliştiricisi — Uçtan Uca Belge Akışı
- Alıcı ve varsa vekil PersonParty endpointleriyle aranır. Kayıt bulunursa response içindeki cari
IdileUpdate, bulunamazsaAddçağrılır. - Kullanıcının seçtiği tek TCKN veya PASAPORTNO belge request'ine yazılır. Alıcı cari Id'si
AccountingCustomerParty.Party.Id, vekil cari Id'siDelegateReceiver.PartyIdalanında taşınır. - Belge,
AddOutgoingExpenseVoucherveyaUpdateOutgoingExpenseVoucherile kaydedilir. Portal yalnız SMS senaryosunda iki doğrulama modelini tamamen boş bırakabilir; İADEKODU seçildiyseVerificationProviderveVerificationInfoaynı requestte eksiksiz gönderilir. - Boş SMS verisiyle kabul edilen unsigned belgede
WaitingForVerificationdöner ve SMS ekranı açılır. Geçerli İADEKODU verisi bekleme state'ine girmeden belgeyi imza kuyruğuna taşır. - SMS için Send ve Complete çağrılır. İADEKODU için ayrı Submit endpointi yoktur. Başarılı yanıttan sonra belge detayı yeniden sorgulanır.
ExpenseVoucherAndXmlCreatedveyaSigneddurumunda doğrulama ekranı kapatılır; hata kodu varsa kullanıcıya düzeltilebilir alan gösterilir.
Otomatik İşlemler
Request kabul edildiğinde platform; cari yönetimi, içerik kontrolü, doğrulama, belge üretimi, imza, saklama, GİB bildirimi ve kullanıcı çıktısını bu sırayla yönetir. Aşağıdaki bölümler bu tablonun sırasını izler.
| # | İşlem | Açıklama |
|---|---|---|
| 1 | Cari Yönetimi | Alıcı/vekil gerçek kişi cari arama, oluşturma veya güncelleme |
| 2 | Validasyon | Alan zorunluluk, format, kombinasyon kontrolleri |
| 3 | Doğrulama | SMS, Portal Send/Complete adımlarıyla; İADEKODU, Add/Update içindeki tam modelle doğrulanır |
| 4 | UBL XML Üretimi | UBL 2.1 CreditNote standardında XML |
| 5 | e-İmzalama | Belge kesinleştirme |
| 6 | Numara/UUID Atama | Entegratör göndermezse otomatik |
| 7 | Belge Kaydı | Kalıcı saklama |
| 8 | GİB Raporu | Dönemsel toplu bildirim |
| 9 | GİB Gönderim | Rapor iletimi + yanıt işleme |
| 10 | İptal Raporu | Sonraki döngüde bildirim |
| 11 | Yazdırılabilir çıktı | |
| 12 | E-posta | Bildirim (yapılandırıldıysa) |
Gerçek Kişi Cari Seçimi
Alıcı ve yalnız IADE senaryosunda kullanılabilen vekil, aynı gerçek kişi cari kaynağından aranır. Cari bulunursa arama response'undaki Id korunur; yalnız bulunamazsa yeni cari oluşturulur. Birden fazla kimliği varsa belgede kullanılacak TCKN veya PASAPORTNO açıkça seçilir.
Belgeye aktarılan kişi bilgileri oluşturma veya güncelleme anında kaydedilir. Cari kartında daha sonra yapılan değişiklikler mevcut belgeyi değiştirmez. Endpoint sözleşmeleri için API Endpoint Referansı kullanılmalıdır.
Validasyon Kuralları
Validasyon katmanı, belge üretimine geçmeden önce senaryo, doğrulama, kimlik ve kargo bilgilerinin tutarlı bir bütün oluşturmasını bekler.
| Kontrol | Kod | Açıklama |
|---|---|---|
| VerificationMethod ve sağlayıcı bilgisi | EGP0037 / EGP0078 | SMS veya IADEKODU; sağlayıcı adı ve 10 haneli VKN |
| VerificationInfo biçimi | EGP0039 / EGP0072 | Geçerli kod ve telefon |
| IADE → ReturnedDocumentReference | EGP0038 / EGP0047 / EGP0048 / EGP0051 | İade edilen belgenin türü ve tarihi; belge varsa numarası |
| BELGESIZ → gerçek kişi kimliği | EGP0050 / EGP0085 | T.C. vatandaşı için TCKN, yabancı uyruklu kişi için PASAPORTNO |
| Kargo → iade kodu ve kargo eşleşmesi | EGP0049 / EGP0087 | IADEKODU ve aktif kargo şirketi kaydı |
| SATIS → VerificationMethod=SMS | EGP0046 | Satışta yalnız SMS doğrulaması kullanılabilir |
| SATIS → DelegateReceiver yok | EGP0053 | Vekalet kullanılamaz |
| DelegateReceiver → kimlik tipi, kimlik değeri ve ad | EGP0054 / EGP0084 | Doluysa üç iş alanı zorunlu ve geçerli olmalıdır |
| Alıcı tam olarak bir TCKN/PASAPORTNO taşır | EGP0080 / EGP0081 / EGP0085 | VKN ve tüzel kişi reddedilir |
| ExternalId mevcut ve tekil | EGP0020 / EGP0028 | Boş veya aynı firmada daha önce kullanılmış değer reddedilir |
Hata Yanıtı
Hata yanıtı, entegrasyon tarafının problemi kod üzerinden ayırt edebilmesi için aynı response iskeletini korur.
{
"IsSuccess": false,
"Message": "Açıklama",
"MessageCode": "EGP0055",
"Data": null
}
Portal Doğrulama Akışı
Portal, SMS senaryosunda gönderim ve kod doğrulama adımlarını hazır sunar. İADEKODU seçildiğinde kod, telefon ve sağlayıcı alanları belge Add/Update isteğinin parçasıdır.
| Senaryo | Portal davranışı | Sonuç |
|---|---|---|
SATIS | SMS gönderme ve kod giriş ekranı gösterilir. | Kod doğrulandığında belge imza akışına alınır. |
Yüz yüze IADE | SMS veya iade kodu yöntemi seçilir. SMS seçilirse belge boş doğrulama verisiyle kaydedilir; İADEKODU seçilirse tam model aynı Add/Update isteğine eklenir. | SMS Complete veya başarılı direct Add/Update sonrasında belge imza akışına alınır. |
Kargolu IADE | İade kodu, telefon ve sağlayıcı bilgileri belge kaydedilmeden önce istenir. | Kargo ve tam İADEKODU verisi aynı Add/Update isteğinde doğrulanır; SMS bekleme akışına girilmez. |
Vekaletli IADE | Asıl alıcı korunur; vekil aynı gerçek kişi cari kaynağından seçilir. | Doğrulama bilgisi vekille ilişkilendirilir. |
Portal Durumları
| Teknik değer | Portal açıklaması | Kullanıcı aksiyonu |
|---|---|---|
WaitingForVerification | SMS gönderimi bekleniyor. | Telefon kontrol edilerek SMS gönderilir. |
WaitingForSmsCode | SMS onayı bekleniyor. | Telefona gelen kod girilir; gerekirse telefon düzeltilerek yeniden gönderim yapılır. |
ExpenseVoucherAndXmlCreated | e-Gider Pusulası oluşturuldu. | Belge durumu takip edilir. |
Signed | GİB'e gönderime hazır. | Ek doğrulama işlemi yapılmaz. |
WaitingForVerification durumunda kalır ve önceki kod geçersizleştirilir. Tam SMS veya İADEKODU modeliyle başarılı Update belgeyi ExpenseVoucherAndXmlCreated durumuna ilerletir.Doğrulama ve İmza Durum Makinesi
OutgoingExpenseVoucherStatusForUser, entegratörün izlediği ortak durum kümesidir. Add/Update isteğinde tam SMS doğrulama verisi gönderilirse belge bekleme durumlarına girmeden ExpenseVoucherAndXmlCreated durumuna ilerler. Doğrulama verisi boş başlayan Portal SMS akışında belge önce WaitingForVerification, kod gönderildikten sonra WaitingForSmsCode durumunda izlenir; kod başarıyla tamamlandığında aynı ExpenseVoucherAndXmlCreated durumunda birleşir. İADEKODU ise Add/Update isteğinde eksiksiz gönderilir; ayrı bir bekleme durumu veya Complete çağrısı yoktur.
IADE ve kargolu vekâletli IADE SMS ile doğrulanamaz; bu senaryolarda İADEKODU zorunludur, dolayısıyla her zaman üst (doğrudan) koldan geçer.SATIS için İADEKODU geçersizdir.Doğrulama Yöntemi Senaryo Matrisi
| Senaryo | SMS | İADEKODU |
|---|---|---|
SATIS | Kullanılabilir | Geçersiz |
Yüz yüze IADE | Kullanılabilir | Kullanılabilir |
Kargolu IADE | Kullanılamaz | Zorunlu |
Kargosuz vekâletli IADE | Kullanılabilir | Kullanılabilir |
Kargolu vekâletli IADE | Kullanılamaz | Zorunlu |
SMS ve İADEKODU validasyonları birbirinden ayrıdır. SMS'in boş başlayabilmesi yalnız unsigned Portal akışına aittir. İADEKODU feature flag'den bağımsız olarak tam model ister; signed UBL ise sonradan SMS tamamlayamayacağı için boş doğrulama verisiyle kabul edilmez.
Excel ve İptal Davranışı
Excel ile oluşturulan belgelerde doğrulama her belge için ayrı tamamlanır; tek kodla toplu doğrulama yapılmaz. WaitingForVerification ve WaitingForSmsCode durumundaki belgeler iptal edilebilir. Portal iptal işlemini başlattığında belge iptal edilir. SMS gönderilmişse kayıtlı telefona bildirim gönderilmeye çalışılır; bildirim hatası iptal işlemini geri almaz.
İptal Ön Koşulları
İptal edilebilirlik belgenin kullanıcı durumu ve platformda kayıtlı e-Arşiv durumu üzerinden değerlendirilir.
WaitingForVerificationdurumundaki belge, Portal iptal işlemini başlattığında bildirim gönderilmeden iptal edilir.WaitingForSmsCodedurumundaki belge iptal edilir; kayıtlı telefona iptal bildirimi gönderilmeye çalışılır.- İmzalama aşamasında olup henüz imzalanmamış belge iptal edilemez.
- İmzalanmış ve raporlanmamış belge doğrudan; raporlanmış belge ise iptal raporuyla iptal edilir.
- Kayıtlı e-Arşiv durumu
Validolmayan belge için iptal işlemi başlatılmaz.