Lewati ke konten utama

Faktur Elektronik ZUGFeRD dari Daftar SharePoint: Ubah JSON menjadi XML EN 16931 dan PDF/A-3 di Power Automate dengan PDF4me

· Satu menit membaca
SEO and Content Writer

PDF4me Create ZUGFeRD Invoice adalah tindakan Power Automate yang mengubah data faktur menjadi faktur elektronik hybrid PDF/A-3. Dengan mengarahkannya ke daftar SharePoint, tindakan ini mengambil JSON yang dibuat oleh tindakan Compose dari setiap baris, menulis XML EN 16931 sendiri, menggambar faktur yang dapat dibaca ke PDF dasar Anda, menyimpan hasilnya, dan mengirimkannya melalui email kepada pembeli.

Cari ZUGFeRD dan Anda akan menemukan salah satu dari tiga hal berikut: penjelasan tentang formatnya, validator yang memberi tahu Anda apakah file yang sudah Anda miliki sudah benar, atau pustaka dalam PHP, Java, atau C# untuk pengembang yang membangun perangkat lunak faktur. Ketiganya mengasumsikan faktur sudah ada di suatu tempat. Pertanyaan yang tidak dijawab oleh ketiganya adalah pertanyaan yang sebenarnya dimiliki tim keuangan: data faktur tersimpan dalam daftar, dalam spreadsheet, dalam sistem apa pun yang mencatat penjualan, dan harus keluar sebagai faktur elektronik yang sesuai. Alur ini adalah solusi yang hilang tersebut, dalam tujuh langkah dan tanpa kode.

Alur secara sekilas
1. When an item is created
Trigger SharePoint pada daftar bernama ZUGFeRD Requests. Satu baris mewakili satu faktur.
2. Compose
Membuat satu objek JSON faktur dari baris: penjual, pembeli, item baris, total, pembayaran.
3. Get file content using path
Membaca BaseInvoice.pdf, halaman tempat faktur tersebut dibuat.
4. Create ZUGFeRD Invoice
PDF4me PDF. Format input 2.0-JSON, XmlWithPdf, kesesuaian EN16931, faktur dibuat.
5. Create file
Menyimpan PDF hibrida ke dalam pustaka ZUGFeRD Invoices.
6. Update item
Status Stempel Generated dan OutputLink kembali pada baris yang sama.
7. Send an email (V2)
Mengirimkan faktur ke alamat pembeli yang tertera pada baris tersebut.
Versi singkatnya

Sebuah baris masuk ke daftar SharePoint dengan data penjual, pembeli, satu item baris, dan tanggal. Empat detik kemudian, terdapat faktur PDF/A-3 di pustaka dokumen: halaman yang dapat dibaca oleh manusia, dengan XML EN 16931 yang tertanam di dalamnya untuk diproses oleh perangkat lunak pembeli. Anda tidak pernah menulis XML tersebut. Anda mendeskripsikan faktur sebagai objek JSON pendek dan PDF4me menghasilkan skemanya. Baris tersebut mendapatkan status dan tautan, dan pembeli mendapatkan file tersebut melalui email.

Tanya Jawab Berbasis Alasan​

Mengapa data faktur disimpan dalam daftar SharePoint? Karena itulah format data yang sudah digunakan oleh sebagian besar tim keuangan kecil: satu baris per faktur, diisi oleh seseorang. Kolom-kolom tersebut dipetakan satu per satu ke bidang yang diminta oleh standar, yang berarti pemetaan tersebut terlihat oleh siapa pun yang membuka daftar, dan faktur baru adalah baris baru, bukan file baru di folder yang dipantau.

Mengapa mendeskripsikan faktur sebagai JSON alih-alih menulis XML? Karena sintaks Cross Industry Invoice itu bertele-tele dan ketat: namespace bersarang, nama elemen yang sulit diingat, kode yang harus ditempatkan tepat di tempat yang benar. Objek JSON mengatakan hal yang sama dalam jumlah baris yang jauh lebih sedikit, dengan kunci yang terbaca seperti istilah bisnis yang diwakilinya. PDF4me mengonversinya ke skema, sehingga bagian yang mudah salah adalah bagian yang tidak perlu Anda kelola.

Mengapa faktur dicetak pada PDF dasar? Karena file ZUGFeRD memiliki dua bagian dan keduanya harus sesuai. XML ditujukan untuk perangkat lunak pembeli, sedangkan halaman cetak ditujukan untuk orang yang membukanya. Render Invoice on PDF menggambar faktur pada halaman dasar dari data yang sama yang menghasilkan XML, sehingga keduanya tidak akan pernah terpisah seperti yang terjadi ketika tata letak dikelola secara terpisah.

Mengapa PDF/A-3 dan bukan PDF biasa? Karena PDF/A-3 adalah wadah arsip yang diizinkan untuk membawa lampiran, dan XML yang tertanam di dalamnya adalah lampiran tersebut. Ini juga merupakan bagian yang membuat faktur tetap terbaca bertahun-tahun kemudian: font dan profil warna ikut terbawa di dalam file, yang penting untuk dokumen yang sebagian besar perusahaan wajib simpan selama satu dekade.


Apa yang Akan Anda Dapatkan​

Masukan: satu baris berisi nomor faktur, tanggal, mata uang, blok penjual, blok pembeli, dan satu item baris. Keluaran: faktur ZUGFeRD PDF/A-3 di pustaka ZUGFeRD Invoices, baris diperbarui dengan status dan tautannya, serta email kepada pembeli dengan faktur terlampir.

Item daftar SharePoint RE-2026-0007 di Permintaan ZUGFeRD menunjukkan Nomor Faktur RE-2026-0007, Tanggal Faktur 12.10.2026, Tanggal Jatuh Tempo 11.11.2026, Mata Uang EUR, Nama Penjual Muster GmbH, Alamat Penjual Hauptstrasse 1, Kode Pos Penjual 10115, Kota Penjual Berlin, Negara Penjual DE, ID PPN Penjual DE123456789, Nama Pembeli Test Kunde AG, Alamat Pembeli Bahnhofstrasse 5, Kode Pos Pembeli 80331, Kota Pembeli Muenchen, Negara Pembeli DE, Deskripsi Barang Konsultasi, Kuantitas 10,00, Harga Satuan 100,50, Tarif PPN 19, kolom Email, dan Status Dibuat

Satu baris per faktur. Setiap kolom di panel ini menjadi kunci dalam JSON yang dibuat oleh alur kerja.

Daftar pustaka Faktur SharePoint ZUGFeRD berisi ZUGFeRD_RE-2026-0001.pdf hingga ZUGFeRD_RE-2026-0004.pdf dan yang terbaru ZUGFeRD_RE-2026-0007.pdf, semuanya dimodifikasi oleh akun Pdf4me Flow.

Satu berkas untuk setiap nomor faktur, yang ditulis berdasarkan alur akun.

Outlook menampilkan email dengan lampiran ZUGFeRD_RE-2026-0007.pdf dan faktur berbahasa Jerman yang terbuka di panel pratinjau: penjual Muster GmbH di Berlin dengan ID PPN DE123456789, pelanggan Test Kunde AG di Muenchen, faktur RE-2026-0007 tertanggal 12.10.2026, jenis dokumen 380, satu baris Konsultasi dengan PPN 19 persen, bersih 1.005,00 euro dan total 1.195,95 euro

Bagian yang dapat dibaca dari file yang sama, sebagaimana dilihat oleh pembeli.


Apa yang Anda Butuhkan​

  • Power Automate. Buka Power Automate. Alur cloud otomatis pada konektor standar. SharePoint, Office 365 Outlook, dan PDF4me tidak memerlukan paket premium.
  • Kunci API PDF4me. Dapatkan kunci API Anda. Alur ini menggunakan satu koneksi PDF4me, PDF4me PDF.
  • Daftar SharePoint untuk permintaan. Daftar yang diambil disebut ZUGFeRD Requests, dengan InvoiceNumber, InvoiceDate, DueDate, Mata Uang, blok Seller (nama, jalan, kode pos, kota, negara, ID PPN), blok Buyer, ItemDescription, Kuantitas, UnitPrice, VATRate, kolom Email, kolom pilihan Status, dan kolom OutputLink tempat alur kerja menulis data.
  • Sebuah PDF faktur dasar. Alur yang terekam menyimpan BaseInvoice.pdf dalam pustaka bernama ZUGFeRD Templates. Ini adalah halaman tempat faktur dibuat, jadi kop surat Anda berada di sini.
  • Sebuah pustaka untuk faktur yang sudah selesai. Alur yang ditangkap akan ditulis ke dalam ZUGFeRD Invoices.
  • Rincian penjual Anda sendiri, termasuk ID PPN. Rincian tersebut dimasukkan ke dalam kolom daftar, sehingga alur yang sama dapat digunakan untuk menerbitkan faktur untuk lebih dari satu badan hukum.
Mulailah dari objek JSON yang berfungsi
Jika Anda lebih suka melihat bentuknya sebelum membuat Compose, ini adalah struktur ZUGFeRD 2.0 EN16931 lengkap dengan setiap kunci yang diterima profil. Tempelkan ke Compose dan ganti nilai dengan token Anda.
Unduh sample-invoice-zugferd-2.0-en16931.json

Gambaran Alur Secara Singkat​

  1. When an item is created (SharePoint), sistem akan memantau daftar bernama ZUGFeRD Requests.
  2. Compose membuat JSON faktur dari baris tersebut.
  3. Get file content using path baca /ZUGFeRD Templates/BaseInvoice.pdf.
  4. Create ZUGFeRD Invoice (PDF4me PDF) mengkonversi JSON ke XML EN 16931 dan mengembalikan PDF hibrida.
  5. Create file (SharePoint) dan simpan sebagai ZUGFeRD_<invoice number>.pdf.
  6. Update item (SharePoint) mengatur Status menjadi Generated dan mengisi OutputLink.
  7. Send an email (V2) (Office 365 Outlook) mengirimkan faktur kepada pembeli.

Gambaran alur lengkap​

Riwayat eksekusi Power Automate menunjukkan tujuh tindakan yang berhasil secara berurutan: Saat item dibuat pada 0,2 detik, Compose pada 0 detik, Dapatkan konten file menggunakan jalur pada 0,2 detik, Buat Faktur ZUGFeRD pada 1 detik, Buat file pada 2 detik, Perbarui item pada 0,4 detik dan Kirim email V2 pada 0,4 detik

Prosesnya memakan waktu sekitar empat detik lebih sedikit dari awal hingga akhir, dan pembuatan faktur elektronik itu sendiri membutuhkan waktu sekitar satu detik. Langkah paling lambat adalah saat SharePoint menulis file tersebut.


Langkah 1: Bagaimana cara Anda memicu pembuatan faktur elektronik saat ada permintaan masuk?​

Alur sejauh ini: belum ada apa-apa, ini pemicunya.

Menambahkan baris adalah cara faktur diminta, jadi itulah sinyalnya.

  1. Buat Automated cloud flow dan pilih SharePoint > When an item is created.
  2. Konfigurasi:
    • Site Address: PDF4me Support - https://ynoox1.sharepoint.com/sites/PDF4meSupport
    • List Name: ZUGFeRD Requests

When an item is created: konfigurasi​

SharePoint Saat item dibuat, picu dengan Alamat Situs PDF4me Support di ynoox1.sharepoint.com/sites/PDF4meSupport dan Nama Daftar ZUGFeRD Requests, tanpa parameter lanjutan yang ditetapkan.

Setiap kolom pada baris baru menjadi token yang dapat digunakan oleh enam tindakan berikutnya.


Langkah 2: Bagaimana cara membuat JSON faktur dari kolom daftar?​

Alur sejauh ini: pemicu SharePoint.

Satu tindakan Compose menjelaskan keseluruhan faktur. Di sinilah nama kolom Anda sesuai dengan nama yang diharapkan oleh standar, dan cukup singkat untuk dibaca dalam satu layar.

  1. Data Operation > Compose.
  2. Tempelkan objek di bawah ini ke dalam Input dan ganti setiap nilai dengan token yang sesuai.
{
"InvoiceId": "@{triggerBody()?['InvoiceNumber']}",
"TypeCode": "380",
"InvoiceType": "RECHNUNG",
"IssueDate": "@{triggerBody()?['InvoiceDate']}T00:00:00",
"DeliveryDate": "@{triggerBody()?['InvoiceDate']}T00:00:00",
"IsTest": false,
"Seller": {
"Name": "@{triggerBody()?['SellerName']}",
"VatId": "@{triggerBody()?['SellerVATID']}",
"Address": {
"Street": "@{triggerBody()?['SellerStreet']}",
"PostalCode": "@{triggerBody()?['SellerPostalCode']}",
"City": "@{triggerBody()?['SellerCity']}",
"Country": "@{triggerBody()?['SellerCountry']}"
}
},
"Buyer": {
"Name": "@{triggerBody()?['BuyerName']}",
"Address": {
"Street": "@{triggerBody()?['BuyerStreet']}",
"PostalCode": "@{triggerBody()?['BuyerPostalCode']}",
"City": "@{triggerBody()?['BuyerCity']}",
"Country": "@{triggerBody()?['BuyerCountry']}"
}
},
"LineItems": [
{
"ProductName": "@{triggerBody()?['ItemDescription']}",
"Quantity": @{triggerBody()?['Quantity']},
"UnitCode": "C62",
"UnitPrice": @{triggerBody()?['UnitPrice']},
"LineTotal": @{float(...)}
}
],
"Totals": {
"Currency": "@{triggerBody()?['Currency']?['Value']}",
"LineTotal": @{float(...)},
"TaxBasisTotal": @{float(...)},
"TaxPercent": @{triggerBody()?['VATRate']},
"TaxTotal": @{float(...)},
"GrandTotal": @{float(...)},
"ChargeTotal": 0,
"AllowanceTotal": 0
},
"Payment": {
"Currency": "@{triggerBody()?['Currency']?['Value']}",
"PaymentReference": "@{triggerBody()?['InvoiceNumber']}",
"DueDate": "@{triggerBody()?['DueDate']}T00:00:00"
}
}

Compose: konfigurasi​

Aksi Power Automate Compose yang berisi JSON faktur dengan InvoiceId, TypeCode 380, InvoiceType RECHNUNG, IssueDate dan DeliveryDate, objek Seller dengan VatId dan alamat, objek Buyer dengan alamat, array LineItems dengan ProductName, Quantity, UnitCode C62 dan UnitPrice, objek Totals dengan Currency, TaxPercent dan ekspresi float untuk nilai uang, dan objek Payment dengan referensi pembayaran dan tanggal jatuh tempo.

Nilai teks adalah token dalam tanda kutip. Uang dan kuantitas adalah angka mentah, itulah sebabnya keduanya diproses melalui float.

Dari mana setiap bagian faktur berasal?​

Kunci JSONApa yang dibawanyaSumber
InvoiceId, TypeCode, InvoiceTypeNomor faktur, kode jenis dokumen 380 untuk faktur komersial, dan label yang tercetak di halaman tersebutInvoiceNumber, lalu nilai tetap
IssueDate, DeliveryDateKapan faktur diterbitkan dan kapan layanan diberikan?InvoiceDate, diakhiri dengan T00:00:00
SellerNama, ID Pajak Pertambahan Nilai (PPN), dan alamat lengkapSellerName, SellerVATID, SellerStreet, SellerPostalCode, SellerCity, SellerCountry
BuyerNama dan alamat pelangganBuyerName, BuyerStreet, BuyerPostalCode, BuyerCity, BuyerCountry
LineItemsDeskripsi, kuantitas dengan kode unit C62, harga satuan, dan total barisItemDescription, Kuantitas, UnitPrice
TotalsMata uang, total bersih, dasar pajak, tarif dan jumlah PPN, total keseluruhanMata uang, VATRate dan jumlah yang dihitung
PaymentMata uang, kode referensi yang digunakan pembeli saat membayar, dan tanggal jatuh tempoMata Uang, InvoiceNumber, DueDate

Tip. Kunci uang adalah satu-satunya bagian yang membutuhkan perhitungan aritmatika, dan harus berupa angka mentah, bukan string yang dikutip, yang merupakan fungsi dari ekspresi float. LineTotal adalah kuantitas dikalikan harga satuan, TaxBasisTotal adalah jumlah total baris, TaxTotal adalah dasar pajak dikalikan tarif dibagi 100, dan GrandTotal adalah penjumlahan keduanya. Untuk baris yang diambil, nilainya adalah 1005, 1005, 190,95, dan 1195,95. Angka "1005" yang dikutip akan ditolak, sedangkan angka 1005 biasa akan diterima.


Langkah 3: Dari mana PDF dasar tersebut berasal?​

Alur sejauh ini: pemicu ditambah Compose.

Berkas ZUGFeRD memiliki halaman yang dapat dibaca, dan di sinilah halaman tersebut dimulai.

  1. Tambahkan SharePoint > Get file content using path.
  2. Konfigurasi:
    • Site Address: PDF4me Support - https://ynoox1.sharepoint.com/sites/PDF4meSupport
    • File Path: /ZUGFeRD Templates/BaseInvoice.pdf
    • Infer content type (lanjutan): Yes

Get file content using path: konfigurasi​

SharePoint Dapatkan konten file menggunakan tindakan jalur dengan Alamat Situs Dukungan PDF4me, Jalur File /ZUGFeRD Templates/BaseInvoice.pdf dan Tentukan tipe konten diatur ke Ya

Simpan kop surat Anda di dalam file ini. Kop surat ini dibaca ulang setiap kali diproses, jadi mengubahnya akan mengubah faktur berikutnya.


Langkah 4: Bagaimana cara mengubah JSON menjadi PDF/A-3 ZUGFeRD?​

Alur sejauh ini: pemicu, Compose dan Get file content using path.

Inilah proses yang menghasilkan faktur elektronik. Proses ini membaca JSON, menulis XML EN 16931 itu sendiri, dan mengembalikan satu file yang berisi kedua bagian tersebut.

  1. Tambahkan Create ZUGFeRD Invoice dari koneksi PDF4me PDF.
  2. Konfigurasi:
    • ZUGFeRD version and Input Format: 2.0-JSON
    • Output Mode: XmlWithPdf
    • Invoice JSON Data: ekspresi base64(outputs('Compose'))
    • Conformance Level: EN16931
    • Render Invoice on PDF: Yes
    • File Content: ekspresi base64() atas konten dari Get file content using path
    • File Name: BaseInvoice.pdf

Create ZUGFeRD Invoice: konfigurasi​

PDF4me Buat tindakan Faktur ZUGFeRD dengan versi ZUGFeRD dan Format Input diatur ke 2.0-JSON, Mode Output XmlWithPdf, bidang Data JSON Faktur berisi ekspresi base64 dari output Compose, Tingkat Kesesuaian EN16931, Render Faktur pada PDF Ya, Konten File berisi ekspresi base64 di atas PDF dasar dan Nama File BaseInvoice.pdf, terhubung ke PDF4me PDF

Format input menentukan kolom data mana yang muncul. Pilih 2.0-JSON dan tindakan tersebut akan meminta Invoice JSON Data, bukan Invoice XML Data.

Apa yang diputuskan oleh setiap pengaturan​

BidangNilai di siniApa yang dikendalikannya
ZUGFeRD version and Input Format2.0-JSONGenerasi ZUGFeRD mana yang digunakan untuk output, dan data yang diterima berformat JSON. Pilihan inilah yang menyebabkan kolom Invoice JSON Data muncul
Output ModeXmlWithPdfKembalikan satu file hibrida, yaitu PDF dengan XML yang tertanam di dalamnya, bukan XML saja
Invoice JSON Database64(outputs('Compose'))Objek faktur, dikodekan base64 saat masuk
Conformance LevelEN16931Profil yang diklaim dipenuhi oleh faktur, dan oleh karena itu kunci mana yang harus disediakan oleh JSON
Render Invoice on PDFYesGambarlah faktur yang mudah dibaca di atas PDF dasar, alih-alih membiarkan halaman tersebut apa adanya
File Content, File NamePDF dasarHalaman tempat faktur dibuat, dan nama yang dilaporkan oleh tindakan tersebut

Tip. Tindakan ini menampilkan Invoice XML Data, Invoice JSON Data, atau Invoice CSV Data tergantung pada format yang dipilih pada menu tarik-turun. Isi hanya yang sesuai dengan pilihan Anda. Mengisi dua kolom data dalam satu kali proses adalah penyebab paling umum kegagalan validasi pada tindakan ini.


Langkah 5: Di mana faktur tersebut disimpan?​

Alur sejauh ini: semuanya melalui Create ZUGFeRD Invoice.

Nomor faktur adalah nama file, yang membuat pustaka tetap dapat dicari.

  1. Tambahkan SharePoint > Create file.
  2. Konfigurasi:
    • Site Address: PDF4me Support - https://ynoox1.sharepoint.com/sites/PDF4meSupport
    • Folder Path: /ZUGFeRD Invoices
    • File Name: ZUGFeRD_ diikuti oleh token InvoiceNumber dan .pdf
    • File Content: Token Body dari Create ZUGFeRD Invoice

Create file: konfigurasi​

Tindakan Buat berkas SharePoint dengan Alamat Situs Dukungan PDF4me, Jalur Folder /ZUGFeRD Faktur, Nama Berkas ZUGFeRD_ diikuti oleh token Nomor Faktur dan .pdf, dan Konten Berkas diatur ke token Isi dari tindakan PDF4me.

Untuk RE-2026-0007 ini menulis ZUGFeRD_RE-2026-0007.pdf.


Langkah 6: Bagaimana cara Anda mencatat hasilnya pada permintaan tersebut?​

Alur sejauh ini: semuanya melalui Create file.

Baris yang meminta faktur juga harus menjelaskan apa yang terjadi dengan faktur tersebut.

  1. Tambahkan SharePoint > Update item.
  2. Konfigurasi:
    • Site Address: PDF4me Support - https://ynoox1.sharepoint.com/sites/PDF4meSupport
    • List Name: ZUGFeRD Requests
    • Id: token ID dari pemicu
    • Title: token Title dari pemicu
    • Status Value (lanjutan): Generated
    • OutputLink (lanjutan): URL perpustakaan diikuti oleh ZUGFeRD_, token InvoiceNumber dan .pdf

Update item: konfigurasi​

Aksi pembaruan item SharePoint dengan Alamat Situs PDF4me Support, Nama Daftar ZUGFeRD Requests, Id dan Judul dari pemicu, Nilai Status diatur ke Generated dan OutputLink dibuat dari URL pustaka Faktur ZUGFeRD ditambah nomor faktur.

Tautan tersebut disusun dari URL perpustakaan dan pola nama yang sama yang digunakan Create file, dengan spasi dalam nama perpustakaan sudah dikodekan sebagai %20.


Langkah 7: Bagaimana cara Anda mengirimkan faktur kepada pembeli?​

Alur sejauh ini: semuanya melalui Update item.

Faktur elektronik yang tersimpan di perpustakaan belum diterbitkan, jadi tindakan terakhir akan mengirimkannya.

  1. Tambahkan Office 365 Outlook > Send an email (V2).
  2. Konfigurasi:
    • Kepada: token Email dari pemicu
    • Subjek: Your ZUGFeRD e-invoice diikuti dengan token InvoiceNumber
    • Body: satu baris yang menyebutkan nama pembeli dan faktur, serta menyatakan bahwa file tersebut adalah PDF/A-3 dengan XML EN 16931 yang tertanam di dalamnya
  3. Buka Advanced parameters dan tambahkan lampiran:
    • Nama Attachments - 1: ZUGFeRD_ ditambah token InvoiceNumber ditambah .pdf
    • Konten Attachments - 1: Token File Content dari Create ZUGFeRD Invoice
    • Importance: Normal

Send an email (V2): konfigurasi​

Tindakan Kirim email V2 di Office 365 Outlook dengan penerima diambil dari kolom Email, subjek yang diakhiri dengan nomor faktur, isi yang menyebutkan nama pembeli dan menjelaskan PDF/A-3 dengan XML EN 16931 yang tertanam, lampiran bernama ZUGFeRD_ ditambah nomor faktur dan .pdf yang isinya adalah token Konten File PDF4me, dan Tingkat Kepentingan Normal.

Lampiran tersebut mengambil byte-nya dari tindakan yang menghasilkannya, sehingga SharePoint tidak pernah dibaca ulang.


Jalankan Alur dan Verifikasi​

  1. Save alurnya.
  2. Tambahkan baris ke ZUGFeRD Requests dengan pembeli, satu item baris, kedua tanggal, dan alamat yang dapat Anda periksa.
  3. Buka riwayat eksekusi. Ketujuh tindakan tersebut seharusnya berwarna hijau, dan seluruh proses eksekusi seharusnya hanya memakan waktu beberapa detik.
  4. Buka pustaka ZUGFeRD Invoices dan periksa apakah file tersebut ada di bawah nomor faktur.
  5. Kembali ke baris tersebut: Status seharusnya bertuliskan Generated dan OutputLink seharusnya membuka faktur.
  6. Buka lampiran dari email dan periksa kedua bagiannya: halaman tersebut harus menampilkan jumlah yang benar, dan file tersebut harus berisi XML di dalamnya.

Proses perekaman data memakan waktu sekitar empat detik secara total, dengan faktur elektronik itu sendiri dihasilkan dalam salah satu detik tersebut. Hasilnya, ZUGFeRD_RE-2026-0007.pdf, berukuran sekitar 331 KB dan ditampilkan sebagai faktur Jerman: penjual Muster GmbH di Berlin dengan ID PPN DE123456789, pelanggan Test Kunde AG di Muenchen, jenis dokumen 380, satu baris Consulting dengan PPN 19 persen, bersih 1.005,00 EUR, PPN 190,95 EUR dan total 1.195,95 EUR.

Apa yang sebenarnya Anda bangun? Sebuah alur kerja faktur elektronik yang dimulai dari catatan Anda sendiri. Data tetap berada di tempat penyimpanan data keuangan, standar dipenuhi oleh XML yang tidak perlu Anda tulis, pembeli menerima file yang dapat dibaca secara otomatis oleh perangkat lunak mereka dan dapat dibaca oleh staf mereka di layar, dan baris permintaan mencatat bahwa faktur telah dikirim.


Variasi Umum yang Dapat Anda Tambahkan Tanpa Membangun Ulang​

Faktur lebih dari satu baris
LineItems sudah berupa array, jadi ini adalah perubahan termudah dalam alur kerja. Simpan baris-baris tersebut dalam daftar kedua yang dihubungkan berdasarkan nomor faktur, ambil data tersebut dengan Get items, dan buat array dengan Select sebelum Compose.
Periksa output sebelum dikirim
Jalankan beberapa faktur pertama melalui validator ZUGFeRD dan bandingkan hasilnya dengan Conformance Level yang telah Anda tetapkan. Ini adalah cara tercepat untuk mendeteksi kesalahan pemetaan saat alur kerja masih baru.
Simpan XML tersebut secara terpisah juga
Beberapa pembeli menginginkan file terstruktur secara terpisah. Lakukan tindakan tersebut untuk kedua kalinya dengan Output Mode diatur ke XmlOnly dan simpan hasilnya ke dalam pustaka di samping PDF.
Masalah bagi beberapa badan hukum
Objek Seller sudah berasal dari kolom, sehingga satu daftar dapat diterbitkan untuk dua perusahaan. Arahkan PDF dasar ke kop surat yang dipilih dari kolom yang sama dan halaman yang dicetak akan muncul.

Bagaimana perbandingannya dengan cara lain dalam membuat faktur ZUGFeRD​

Setiap baris menjelaskan alternatifnya. Baris terakhir adalah alur ini.

PerbandinganSiapa yang menjalankannya?Dari mana data tersebut berasal?Apa yang Anda pertahankan
Perangkat lunak pembuatan faktur dengan ekspor ZUGFeRD vs alur iniSiapa pun, yang berada di dalam produk ituCatatan produk itu sendiriLangganan, dan apa pun yang didukung oleh produk tersebut
Platform e-invoicing vs alur iniKeuangan, melalui sebuah portalUnggahan atau integrasiKontrak per dokumen dan keterkaitannya dengan kontrak tersebut
Pustaka pengembang vs alur iniSeorang pengembang, di dalam sebuah aplikasiBasis data Anda, melalui kodeKode, pembaruan skema, dan rilisnya
Alur iniSiapa pun yang dapat menambahkan baris daftarDaftar SharePoint yang dikelola timSatu objek JSON dan PDF dasar

Pertanyaan umum​

Apa itu faktur ZUGFeRD?​

Faktur ZUGFeRD adalah satu file yang berfungsi dua arah. Ini adalah PDF biasa yang dapat dibuka dan dibaca oleh seseorang, dan di dalamnya terdapat lampiran XML yang berisi faktur yang sama sebagai data terstruktur. Sistem akuntansi pembeli membaca XML dan mencatat faktur tanpa perlu diketik, sementara petugas di bagian hutang usaha masih melihat halaman faktur.

Format ini berasal dari FeRD, forum Jerman untuk faktur elektronik, dan padanannya di Prancis adalah Factur-X, yang merupakan ide yang sama dengan nama lain.

Apa format ZUGFeRD itu?​

Secara teknis, ini adalah wadah PDF/A-3 dengan file XML tertanam dalam sintaks Cross Industry Invoice, dan profil yang menunjukkan seberapa lengkap data tersebut. Profil yang digunakan di sini adalah EN16931, yang sesuai dengan standar semantik Eropa untuk faktur elektronik: kumpulan bidang yang didefinisikan EN 16931 sebagai inti dari sebuah faktur.

Konsekuensi praktis dari otomatisasi adalah bahwa output dinilai berdasarkan XML, bukan berdasarkan halaman. Berikan data yang diminta oleh profil dan file akan lolos; buat halaman lebih menarik dan tidak ada yang berubah.

Bagaimana cara membuat faktur ZUGFeRD?​

Anda membutuhkan tiga hal: data faktur dalam bentuk terstruktur, satu halaman untuk bagian yang diisi manusia, dan sesuatu yang menulis XML ke dalam PDF sebagai lampiran PDF/A-3.

Dalam alur ini, data berupa baris SharePoint yang diubah menjadi JSON, halaman yang digunakan adalah BaseInvoice.pdf, dan Create ZUGFeRD Invoice melakukan bagian ketiga dengan Output Mode XmlWithPdf. Jika data Anda sudah ada sebagai Cross Industry Invoice XML atau sebagai baris CSV, ubah format input dan masukkan data tersebut. Bagian alur lainnya tidak berubah.

Apa perbedaan antara ZUGFeRD dan XRechnung?​

Keduanya memenuhi standar Eropa yang sama, dan perbedaannya terletak pada kemasannya. ZUGFeRD bersifat hibrida: PDF yang dapat dibaca dengan XML di dalamnya, yang cocok untuk faktur yang dikirim ke pelanggan yang mungkin membukanya secara manual. XRechnung hanya berupa XML, dan ini adalah format yang diminta oleh pembeli sektor publik Jerman.

Jika Anda mengirim ke bisnis, file hibrida biasanya merupakan pilihan yang lebih aman, karena dapat dibaca oleh siapa pun yang membukanya. Jika Anda membuat faktur untuk otoritas publik, periksa format apa yang dibutuhkan otoritas tersebut sebelum Anda mengirimnya.


Penyelesaian Masalah​

Tindakan tersebut menolak data faktur

Buka output Compose di riwayat eksekusi dan baca sebagai JSON sebelum melakukan hal lain. Kolom kosong menyebabkan kunci kosong, dan nilai uang yang mempertahankan tanda kutipnya muncul sebagai teks di tempat yang seharusnya berupa angka. Keduanya menghasilkan objek yang terlihat baik tetapi tetap gagal dikonversi.

Validator menolak tingkat kesesuaian

Conformance Level menentukan bidang mana yang dibutuhkan profil. Mengklaim EN16931 sementara JSON menghilangkan kunci yang diharapkan profil akan menyebabkan validasi gagal, meskipun file terbuka secara normal. Berikan kunci yang hilang atau turunkan ke profil yang lebih rendah.

File PDF terlihat kosong atau masih menampilkan templat kosong

Render Invoice on PDF diatur ke Tidak, sehingga XML disematkan tanpa menggambar apa pun. File tersebut tetap merupakan faktur elektronik yang valid, tetapi bagian yang dibaca manusia adalah apa pun yang terdapat dalam PDF dasar.

Pembeli mengatakan faktur tersebut tidak memiliki XML

Periksa isi lampiran pada langkah email dan File Content pada Create file. Keduanya harus berasal dari Create ZUGFeRD Invoice. Melampirkan PDF dasar akan mengirimkan halaman yang terlihat benar tetapi tidak berisi apa pun yang dapat dibaca oleh perangkat lunak mereka.


Langkah Selanjutnya​

Pola tujuh langkah yang sama (satu baris data tiba, faktur dijelaskan sebagai data, sebuah file dibuat, diarsipkan, dicatat, dan dikirim) adalah apa yang sebenarnya diminta oleh setiap mandat faktur elektronik, apa pun format yang akhirnya dibutuhkan pembeli Anda.