İçeriğe geç
getnextpdf.com

Enterprise sürüm

Invoice — Derinlemesine başvuru

Invoice modülünün üç bağımsız yüzeyi vardır: gömme, doğrulama ve Schematron kural yürütme. ZugferdEmbedder ve PeppolEmbedder, çağıranın sağladığı fatura XML’ini bir PDF/A-4f veya PDF/A-3b taşıyıcısına ekler ve yapılandırılmış bir sonuç döndürür. InvoiceXmlValidator, seçilebilir COMPAT veya STRICT önem derecesiyle bir EN 16931 yapısal ön denetimi çalıştırır. SchematronValidator, önceden derlenmiş Schematron kural paketlerini süreç içinde yürütür ve SVRL bulgularını ayrıştırır. NextPDF, fatura XML’i üretmez; çağıran, yükü sağlar ve ona sahiptir.

Bu yetenek NextPDF Enterprise (nextpdf/enterprise) ile birlikte gelir ve bir Enterprise katmanı lisans zarfıyla etkinleşir. Bu yetkilendirmeye sahip olmayan bir dağıtım, yeteneğin sınıflarını yüklemez. Sürümleri karşılaştırın ve bir lisans edinin.

Katman bazında ayrım: e-fatura algılama ve doğrulama, Pro katmanı yüzeyidir (Pro Compliance modülü). Karma fatura gömme, XRechnung CIUS profili ve süreç içi Schematron motoru yalnızca Enterprise’a özgüdür. nextpdf/enterprise paket sınırının ötesinde, özellik başına ayrı bir yetenek kodu yoktur.

Terminal window
composer require nextpdf/enterprise:^3
SembolParametrelerVarsayılan davranışDöndürürŞununla oluşur veya başarısız olurNotlar
ZugferdEmbedder::basic()PdfAManager, FileAttachment, string $xmlDataBASIC profili CII XML’ini gömer: XmlGuard geçişi, yapısal doğrulama, XMP şema enjeksiyonu, ekZugferdEmbedResultInvalidArgumentException, ZugferdEmbeddingExceptionHızlı yol; önerilen başlangıç noktası
ZugferdEmbedder::minimum()PdfAManager, FileAttachment, string $xmlDataMINIMUM profilinde aynı işlem hattıZugferdEmbedResultInvalidArgumentException, ZugferdEmbeddingExceptionHızlı yol
ZugferdEmbedder::create()ZugferdProfile, string $xmlDataOluşturucu girişi; boş XML’i reddederselfInvalidArgumentExceptionwithoutValidation(), withDescription() ile yapılandırın
ZugferdEmbedder::withAfRelationship() / PeppolEmbedder::withAfRelationship()AFRelationship|stringVarsayılan /Alternative ilişkisini geçersiz kılar; ilişkili dosya kural kitabıyla kapılanırselfInvalidArgumentExceptionSchema, EncryptedPayload, FormData faturalar için reddedilir
ZugferdEmbedder::embed()PdfAManager, FileAttachmentSonlandırıcı oluşturucu çağrısı: XmlGuard, isteğe bağlı doğrulama, taşıyıcı denetimi, XMP, eklemeZugferdEmbedResultInvalidArgumentException, ZugferdEmbeddingExceptionDoğrulama başarısızlığı ilk hatayı adlandırır
ZugferdProfile (enum)Durumlar MINIMUM, BASIC_WL, BASIC, EN16931, EXTENDED, XRECHNUNGXRECHNUNG xrechnung.xml ekler; CII profilleri factur-x.xml ekler
ZugferdXmpSchema::apply()XmpMetadata, ZugferdProfileFactur-X RDF açıklamasını ve PDF/A uzantı şeması girdisini kaydederXmpMetadataYokembed() tarafından çağrılır; doğrudan da kullanılabilir
PeppolEmbedder::invoice() / ::creditNote()PdfAManager, FileAttachment, string $ublXmlPeppol BIS 3.0 UBL fatura veya alacak dekontu XML’ini gömerPeppolEmbedResultInvalidArgumentException, PeppolEmbeddingExceptionVarsayılan dosya adları invoice.xml / creditnote.xml
PeppolEmbedder::create()string $ublXml, string $filename = 'invoice.xml'Oluşturucu girişi; boş XML veya dosya adını reddederselfInvalidArgumentExceptionwithFilename(), withDescription(), withoutSanitization() ile yapılandırın
PeppolEmbedder::embed()PdfAManager, FileAttachmentXmlGuard geçişi, taşıyıcı denetimi, kural kitabı kapısı, eklemePeppolEmbedResultInvalidArgumentException, PeppolEmbeddingExceptionGömme sırasında taşıyıcı farkında kural kitabı yeniden denetimi
InvoiceXmlValidator::validate()string $xmlData, ZugferdProfile, ?InvoiceValidatorModeEN 16931 yapısal ön denetimi; varsayılan olarak COMPAT önem derecesiInvoiceValidationResultİstisna oluşturmaz; başarısızlıklar hata bulguları olarak ortaya çıkarMod önce argümanı, sonra ortamı, sonra COMPAT’ı çözer
InvoiceXmlValidator::isCrossIndustryInvoice()string $xmlDataCII yükleri için kök öğe ve ad alanı denetimiboolİstisna oluşturmaz; false döndürürUcuz algılama sondası
InvoiceValidatorMode (enum)COMPAT (varsayılan), BT-24 bulgularını uyarıda tutar; STRICT, bunları hataya yükseltirfromEnvironment(), ayarlanmamış veya tanınmayan değerlerde COMPAT’a geri döner
InvoiceValidationResult / InvoiceValidationFindingDeğişmez toplamlar: isValid, getErrors(), getWarnings(); bulgu başına düzey, kod, mesajInvoiceValidationResult::fail() tek bir hatayı sarmalar
SchematronValidator::validate()string $xsltPath, string $xmlDataÖnceden derlenmiş bir Schematron XSLT’sini yürütür; SVRL’yi bulgulara ayrıştırırSchematronResultEksik veya okunamayan bir XSLT için InvalidArgumentException; motor başarısızlıkları bir hata sonucu döndürürZamanlama durationMs içinde yakalanır
SchematronValidator::runRules()string $xslPath, string $xmlPayloadKatmanlar arası adaptör; hata bulgularını sözleşme RuleViolation nesnelerine eşlerlist<RuleViolation>validate() ile aynıBilgi düzeyi bulgular atlanır
SchematronResult / SchematronFindingKarar, bulgular, süre; getFailedAssertions(), getSuccessfulReports()SchematronResult::error(), motor başarısızlıklarını geçersiz olarak işaretler
SchematronCacheInterfaceKurcalama tespit eden önbellek sözleşmesi: getVerified(), set(), computeKey()Özet uyuşmazlığında kapalı başarısız olur
AtomicRenameSchematronCachestring $cacheDir, bool $atomicRename = true, LoggerInterfaceAtomik yeniden adlandırma yazmalı SHA-256 doğrulamalı dosya önbelleğiInvalidArgumentException, SchematronCacheExceptionDizin var olmalı veya oluşturulabilir olmalı ve yazılabilir olmalıdır
VersionPinRegistryarray $pins, ?string $sourcePathSHA-256 kilitli kural paketi sabitlemeleri: loadFromLockFile(), get(), verifyArtefact(), regenerateLockFile()Hatalı biçimli kilit JSON’unda VersionPinException, InvalidArgumentException, JsonExceptionBoş veya hatalı biçimli özetler kapalı başarısız olur
InvoiceContractValidator?SemanticValidatorKatmanlar arası ValidatorInterface adaptörü; yapısal ön denetim artı EN 16931 derin semantik kurallarıContractResultKapalı başarısız olur; motor hataları hata bulguları olarak ortaya çıkarnextpdf/premium kuruluyken framework yollarına bağlanır
ZugferdContractEmbedderFacturXContractEmbedderKatmanlar arası EmbedderInterface adaptörü; bayt-giriş / bayt-çıkış gömmestring (PDF baytları)Temsilci başarısızlıklarını yayarPro katmanı bayt yeniden yazma motoruna devreder
ZugferdEmbeddingException, PeppolEmbeddingException, SchematronCacheException, VersionPinExceptionModül başarısızlık taksonomisiTümü RuntimeException’ı genişletir
public static function basic(
PdfAManager $pdfAManager,
FileAttachment $fileAttachment,
string $xmlData,
): ZugferdEmbedResult
public function embed(
PdfAManager $pdfAManager,
FileAttachment $fileAttachment,
): ZugferdEmbedResult
public static function invoice(
PdfAManager $pdfAManager,
FileAttachment $fileAttachment,
string $ublXml,
): PeppolEmbedResult
public static function validate(
string $xmlData,
ZugferdProfile $profile,
?InvoiceValidatorMode $mode = null,
): InvoiceValidationResult
public function validate(string $xsltPath, string $xmlData): SchematronResult

Gömme. ZugferdEmbedder, çağıranın sağladığı bir ZUGFeRD 2.4 / Factur-X 1.08 UN/CEFACT CII XML yükünü bir PDF/A taşıyıcısına ekler. İki taşıyıcıyı destekler: tercih edilen modern taşıyıcı olan PDF/A-4f (ISO 19005-4:2020) ve geriye dönük uyumluluk için PDF/A-3b (ISO 19005-3:2012). embed(), her zaman önce bir XmlGuard güvenlik geçişi çalıştırır, ardından withoutValidation() ayarlanmadıysa yapısal doğrulama yapar, sonra taşıyıcının gömülü dosyaları desteklediğini doğrular, ZugferdXmpSchema aracılığıyla XMP uzantı şeması bildirimini enjekte eder ve XML’i ilişkili dosya olarak ekler. Ek ilişkisi, varsayılan olarak kural kitabı önerisi /Alternative’dir; geçersiz kılmalar, ISO 32000-2:2020 §14.13 ilişki kümesini ve EN 16931 fatura alt kümesini zorunlu kılan aynı kural kitabından geçer. PeppolEmbedder, çağıranın sağladığı Peppol BIS Billing 3.0 UBL 2.1 fatura veya alacak dekontu XML’i için eşdeğerini gerçekleştirir. İki gömücü de fatura XML’i üretmez.

Doğrulama. InvoiceXmlValidator, CII XML’ini EN 16931 yapısal beklentilerine göre denetler: kök öğe, gerekli bölümler, başlık kardinalitesi, profilin gerektirdiği yerlerde satır kalemleri ve BR-1 iş kuralı tarafından zorunlu kılınan BT-24 belirtim tanımlayıcısı. InvoiceValidatorMode, önem derecesini seçer. COMPAT (varsayılan), eksik veya uyumsuz bir BT-24’ü uyarı olarak raporlar; böylece boole bir geçerlilik kapısı gerilemez. STRICT, bunu bir sert hata yapar ve ayrıca harici KoSIT / Mustang doğrulayıcı semantiğini yansıtarak profil tutarlılığını bildirilen ZugferdProfile’a göre doğrular. Mod şu sırayla çözülür: açık argüman, ardından INVOICE_VALIDATOR_MODE ortam geçersiz kılması, ardından COMPAT. Sonuçlar, yapılandırılmış InvoiceValidationResult / InvoiceValidationFinding nesneleridir; doğrulayıcı, istisna oluşturmak yerine bulgular döndürür.

Schematron. SchematronValidator, önceden derlenmiş Schematron kural kümelerini — derleme zamanında XSLT’ye derlenmiş CEN EN 16931 .sch kuralları — süreç içi PHP XSLT işlemcisini kullanarak yürütür. SVRL raporunu SchematronFinding / SchematronResult nesnelerine ayrıştırır: başarısız savlar hata bulguları, başarılı raporlar bilgi bulguları olur. İsteğe bağlı bir önbellek (SchematronCacheInterface, atomik yeniden adlandırma dosya uygulamasıyla), içerik özeti artı derleyici sürümüyle anahtarlanan doğrulanmış stil sayfası baytlarını sunar. VersionPinRegistry, her harici kural paketini SHA-256 kilitli bir sürüme sabitler ve kayma veya hatalı biçimli özetlerde kapalı başarısız olur.

Bu modül, yapılandırılmış fatura verisi üretir ve denetler. Herhangi bir belgenin hukuken uyumlu bir fatura olduğunu, vergi otoritesince onaylandığını veya herhangi bir otorite tarafından kabul edileceğinin garanti olduğunu öne sürmez. Doğrulayıcı yalnızca EN 16931 semantik modelini ve ZUGFeRD / Factur-X / UBL kapsayıcısını denetler; ulusal uzantıları (örneğin İtalyan SDI, Fransız Chorus Pro, Alman XRechnung taşıması) dışında tutar. EN 16931-1’in belirttiği gibi, fatura düzenleyicisi ilgili mevzuat kurallarını karşılamaktan sorumludur; bu bir vergi otoritesi doğrulayıcısı değildir. Bir standart için destek, ona uygunluk anlamına gelmez.

  • Boş XML hızla başarısız olur: oluşturucular InvalidArgumentException oluşturur; InvoiceXmlValidator::validate(), başarısız bir sonuç döndürür.
  • XmlGuard, DOCTYPE bildirimlerini, varlık açmayı, aşırı büyük yükleri ve kontrol karakterlerini reddeder. Gömücüler bunu, neden korunarak ZugferdEmbeddingException veya PeppolEmbeddingException olarak ortaya çıkarır.
  • withoutValidation() ve withoutSanitization(), XmlGuard güvenlik geçişini asla atlamaz. Yalnızca yapısal iş terimi denetimleri atlanabilir.
  • Gömülü dosya desteği olmayan bir taşıyıcı (PDF/A-4f veya PDF/A-3b dışında herhangi bir şey), kabul edilen sürümleri adlandıran bir InvalidArgumentException oluşturur.
  • İzin verilmeyen bir AFRelationship değeri, oluşturucu sınırında reddedilir; embed() içinde taşıyıcı farkında bir kural kitabı yeniden denetimi tekrar çalışır.
  • COMPAT, eksik bir BT-24’ü uyarı önem derecesinde tutar; STRICT, eksik ve profille uyumsuz BT-24 değerlerini sert hata yapar.
  • SchematronValidator, yalnızca eksik veya okunamayan bir XSLT yolu için istisna oluşturur. Dönüşüm veya SVRL ayrıştırma başarısızlıkları, isValid false ile SchematronResult::error() döndürür.
  • Depolanan baytları özet doğrulamasında başarısız olan bir önbellek girdisi çıkarılır ve stil sayfası diskten yeniden okunur; zehirlenmiş baytlar asla döndürülmez.
  • XSLT işlemcisi, dosya ve ağ kaynağı yüklemesi engellenmiş olarak çalışır ve asla PHP işlevleri kaydetmez; document(), xsl:include, xsl:import ve result-document kaynak yükleyemez.
  • VersionPinRegistry, alım sırasında ve yeniden oluşturmada boş veya hatalı biçimli SHA-256 özetlerini reddeder; verifyArtefact(), doğrulanamayan bir sabitlemeyi geçirmek yerine false döndürür.
  • Bu modül hiçbir kriptografik imzalama gerçekleştirmez; FIPS modu davranışı burada kapsam dışıdır (Signature modülüne bakın).
DavranışBaşvuruDurum
Temel fatura semantik modeliEN 16931-1:2026 §4Karşı geliştirildi; düzenleyici sorumlu kalır
Belirtim tanımlayıcısı (BT-24)EN 16931-1:2026 BR-1COMPAT’ta uyarı, STRICT’te hata
UN/CEFACT CII söz dizimi bağlamasıCEN/TS 16931-3-3:2020Gömme destekleniyor
UBL 2.1 söz dizimi bağlamasıCEN/TS 16931-3-2:2020Gömme destekleniyor
PDF/A-3 ilişkili dosyaISO 19005-3:2012 §6.7.8Taşıyıcı destekleniyor
PDF/A-4f gömülü dosyaISO 19005-4:2020 Annex ATaşıyıcı destekleniyor
İlişkili dosya ilişki değerleriISO 32000-2:2020 §14.13Kural kitabıyla kapılanır
Schematron / SVRL rapor ayrıştırmaISO/IEC 19757-3Karşı geliştirildi (ürün temelli; standart atıf külliyatında değil)

Karşı geliştirilmiştir; bir sertifikasyon veya vergi otoritesi onayı değildir. NextPDF, bu standartların hiçbiri için sertifikasyon tutmaz. NextPDF, EN 16931 veri modeline uygun yapılandırılmış faturalar üretir ve kural bulgularını raporlar; hukuken uyumlu faturalar üretmez, vergi otoritesince onaylanmış çıktı sağlamaz veya kabulü garanti etmez. Vergi ve hukuk danışmanlarınıza başvurun.

  • Schematron motoru ext-xsl PHP uzantısını gerektirir; bunu sağlamak ve etkinleştirmek operatörün sorumluluğundadır.
  • İşleme, süreç içinde ve yereldir. Gömme veya doğrulama sırasında giden ağ çağrısı gerçekleşmez. Ulusal e-faturalama taşıması, takas platformları ve arşivleme sistemleri bu modülün dışındadır.
  • Kural paketleri, derleme zamanında .sch’den XSLT’ye derlenir; çalışma zamanı yalnızca önceden derlenmiş stil sayfalarını yürütür.
  • Önbellek anahtarları, derleyici sürümü tuzunu (şu anda nextpdf-schxslt-1.0) içerir; bunu artırmak, bir temizleme adımı olmadan dağıtılmış önbellekleri geçersiz kılar.
  • Kural paketi sabitlemeleri, enterprise/config/invoice-versions.lock konumundaki kilit dosyasında bulunur (VersionPinRegistry::DEFAULT_LOCK_PATH); CI, dağıtılmış yapıtları sabitlenmiş özetlere göre doğrular.
  • Katmanlar arası çağıranlar InvoiceContractValidator ve ZugferdContractEmbedder kullanır; katmana özgü Enterprise çağıranlar doğrudan ZugferdEmbedder ve InvoiceXmlValidator kullanır.

Bu sayfa yalnızca dışarıdan gözlemlenebilir davranışı ve desteklenen genel API yüzeyini belgeler. İç ad alanı yolları, yardımcı sınıflar, mekanizma tabloları, runbook dosya adları ve bilet önekleri kapsam dışıdır.