Uygulama
Platform Sorumlulukları
Platformun otomatik işlemleri, validasyon kuralları, hata yanıtları ve iptal ön koşulları.
Otomatik İşlemler
Platform, entegratörün gönderdiği request'i doğruladıktan sonra e-Müstahsil Makbuzu'na özgü UBL XML üretimi, imza kuyruğu, GİB raporu ve belge görüntüleme adımlarını yönetir. Entegratör belge içeriğini sağlar; platform teknik yaşam döngüsünü işletir.
| # | İşlem | Açıklama |
|---|---|---|
| 1 | Validasyon | Alan zorunluluk, format, kombinasyon kontrolleri |
| 2 | UBL XML Üretimi | UBL 2.1 CreditNote standardında XML |
| 3 | Numara/UUID Atama | Entegratör göndermezse otomatik |
| 4 | İmzalamaya Hazırlama | CreditNoteAndXmlCreated durumuna kaydedilir |
| 5 | e-İmzalama | Belge imzalama akışına alınır; işlem tamamlandığında durum Signed'e geçer. |
| 6 | DB Kayıt | Kalıcı saklama |
| 7 | GİB Rapor | Periyodik toplu XML |
| 8 | GİB Gönderim | Rapor iletimi + yanıt işleme |
| 9 | İptal Raporu | Sonraki döngüde bildirim |
| 10 | Yazdırılabilir çıktı | |
| 11 | E-posta | Bildirim (yapılandırıldıysa) |
Validasyon Kuralları
Validasyonlar, e-Müstahsil Makbuzu request'inin teknik olarak üretilebilir ve GİB raporuna taşınabilir olmasını kontrol eder; ana odak çiftçi/alıcı tarafları, ürün kalemleri ve stopaj hesaplarıdır.
| Kontrol | Kod | Açıklama |
|---|---|---|
| CreditNoteExternalId dolu | EMM0020 | Her belgede zorunlu |
| CreditNoteExternalId tekil | EMM0028 | Mükerrer engeli |
| UUId geçerli GUID | COM0017 | Gönderilirse format kontrolü |
| UUId tekil | EMM0035 | Mükerrer engeli |
| CreditNoteNumber formatı | — | 16 karakter, Seri+Sıra regex'i |
| IssueDate gelecek olamaz | — | UBL kardinalite kontrolü |
| IssueDate saat bileşeni dolu | — | Zaman damgası zorunlu |
| En az bir CreditNoteLine | — | Makbuz satırsız oluşturulamaz |
| Vergi/kesinti toplam uyumu | — | TaxTotal, WithholdingTaxTotal ve PayableAmount aynı ekonomik hesabı yansıtmalı |
Hata Yanıtı
Hata yanıtı, tüm Müstahsil endpointlerinde aynı temel şekli izler. MessageCode alanı, validasyon tablosundaki hata koduyla eşleştirilir.
{
"IsSuccess": false,
"Message": "Açıklama",
"MessageCode": "EMM0020",
"Data": null
}
| Alan | Anlamı |
|---|---|
IsSuccess | İşlemin başarılı olup olmadığını gösterir |
Message | Kullanıcıya veya log'a yazılabilecek açıklama |
MessageCode | Validasyon veya iş kuralı hata kodu |
Data | Başarılı işlemlerde response modeli; hatada çoğu durumda boş |
İptal Ön-Koşulları
İptal isteği, yalnızca belge durumu uygun olduğunda ilerler; bu koşullar çağrı öncesi beklenen teknik zemini belirler.
- Belge Signed durumunda olmalı (
CreditNoteAndXmlCreateddurumunda iptal edilemez —EMM0024) - Daha önce iptal edilmiş bir belge tekrar iptal edilemez (
EMM0025)