Faktur Elektronik ZUGFeRD dari Airtable di Zapier: Saring Baris, Buat JSON, Kirim PDF Hibrida melalui Email

PDF4me Create ZUGFeRD Invoice adalah aksi Zapier yang mengubah data faktur terstruktur menjadi faktur elektronik hibrida PDF/A-3. Dengan membaca satu baris Airtable, aksi ini mengubah objek JSON menjadi XML EN 16931 yang disematkan dalam PDF yang dapat dibaca, menulis kembali file tersebut ke dalam catatan, dan mengirimkannya melalui email kepada pembeli.
Mandat faktur elektronik muncul sebagai masalah format file dan dijawab sebagai masalah pengadaan: pilih platform, bayar per dokumen, migrasikan data Anda ke dalamnya. Jawaban itu masuk akal dalam skala besar dan tidak masuk akal untuk tim yang menerbitkan dua puluh faktur per bulan dari basis data yang sudah mereka jalankan. Alternatifnya bukanlah menulis XML secara manual. Alternatifnya adalah mendeskripsikan faktur sebagai JSON dan membiarkan sesuatu yang lain menghasilkan file yang sesuai.
Satu baris Airtable berisi faktur: penjual, pembeli, satu item baris, dan totalnya. Atur Status ke New dan Zap akan mengambilnya, memeriksa satu kolom tersebut, dan memberikan objek JSON kepada PDF4me. Hasilnya berupa PDF/A-3 yang dapat dibaca oleh manusia dan diuraikan oleh mesin, dilampirkan ke catatan dan dikirim ke pembeli. Tidak ada langganan platform, tidak ada XML, dan data tidak pernah meninggalkan basis data.
Tanya Jawab Berbasis Alasan
Why describe the invoice as JSON rather than XML?Karena sintaks Faktur Lintas Industri itu panjang, sangat bertingkat, dan ketat tentang di mana setiap kode ditempatkan. Objek JSON mengatakan hal yang sama dalam sebagian kecil ruang dengan kunci yang terbaca seperti istilah bisnis, dan PDF4me menghasilkan XML yang sesuai darinya. Bagian yang mudah salah adalah bagian yang tidak Anda kelola.
Why does the hybrid file matter?Karena sebuah faktur memiliki dua audiens. Sistem pembeli membaca XML yang tertanam dan mencatatnya tanpa ada yang memasukkan data apa pun; orang di bagian hutang usaha membuka file yang sama dan melihat sebuah halaman. Satu artefak memenuhi kebutuhan keduanya, itulah sebabnyaFeRD menentukan penggunaan hibrida, bukan hanya XML saja.
Why put a Filter in front of the invoice step?Karena menerbitkan faktur bukanlah tindakan yang dapat dibatalkan. Zap yang dijalankan setiap kali ada baris baru pada akhirnya akan dijalankan pada baris yang belum selesai dan mengirimkan dokumen kepada pelanggan melalui email dengan item baris kosong. Filter tersebut menjadikan penerbitan sebagai tindakan yang disengaja: seseorang mengatur Status menjadi New dan itulah instruksinya.
Why keep the invoice data in Airtable at all?Karena biasanya itu adalah produk sampingan dari pekerjaan yang sudah tercatat di sana: proyek, klien, tarif yang disepakati. Memindahkannya ke produk penagihan untuk memenuhi format file berarti mempertahankan pelanggan yang sama di dua sistem selamanya, dan persyaratan format sebenarnya tidak meminta Anda untuk melakukan itu.
Apa yang Akan Anda Dapatkan
Input: sebuah baris Airtable berisi nomor faktur, tanggal, blok penjual dengan ID PPN, blok pembeli, satu item baris, dan total, dengan Status diatur ke New. Output: sebuah PDF/A-3 ZUGFeRD pada catatan tersebut dan di kotak masuk pembeli.

Satu baris per faktur. Setiap kolom di sini menjadi kunci dalam JSON yang dikirim oleh Zap.

Pembeli melihat faktur. Sistem akuntansi mereka melihat XML di dalamnya.
Apa yang Anda Butuhkan
- A Zapier accountpada rencana yang memungkinkan Zap multi-langkah.Filter by Zapier sudah terintegrasi dan dihitung sebagai satu langkah.
- Kunci API PDF4me. Dapatkan kunci API Anda.
- An Airtable baseBasis data yang digunakan adalah
PDF4me Live Automationsdengan tabel bernamaZUGFeRD Requests, yang memuat header faktur, blok penjual termasuk ID PPN, blok pembeli, kolom item baris, NetTotal, VATAmount dan GrossTotal, kolom Email, kolom Status, dan kolom lampiran bernamaDocument. - A Gmail accountterhubung ke Zapier.
- Your seller details including a VAT ID. Tagihan tersebut berasal dari kolom, sehingga satu basis data dapat digunakan untuk membuat faktur bagi beberapa badan hukum.
Sekilas tentang Zap
- New Record (Airtable) dijalankan setiap kali ada baris baru dalam
ZUGFeRD Requests. - Filter conditions (Filter by Zapier) hanya berlanjut jika Status persisnya adalah
New. - Create ZUGFeRD Invoice (PDF4me) mengkonversi JSON menjadi PDF hibrida.
- Update Record (Airtable) menulis file, status, dan tautan kembali ke baris tersebut.
- Send Email (Gmail) mengirimkan faktur elektronik kepada pembeli.
Gambaran umum Zap secara lengkap

Bentuknya sama seperti QR Zap Swiss yang terdiri dari lima langkah. Hanya langkah PDF4me di tengah yang berbeda.
Langkah 1: Bagaimana cara memicu Zap dari baris Airtable baru?
Alur sejauh ini: belum ada apa-apa, ini pemicunya.
- Buat Zap dan pilih Airtable > New Record.
- Pilih
PDF4me Live AutomationsBase dan TableZUGFeRD Requests. - Tes. Zapier melaporkan " Ditemukan 1 catatan baru di Airtable dan kolom-kolom tersebut tersedia di hilir.
Label jajak pendapat bertuliskan 2 menit, yang berasal dari rencana dan bukan dari langkah ini.
Langkah 2: Bagaimana cara menghentikan Zap dalam membuat faktur untuk baris yang belum selesai?
Alur sejauh ini: pemicu Airtable.
- Tambahkan Filter by Zapier > Only continue if....
- Buat satu aturan: 1. Status / (Teks) Exactly matches /
New. - Cobalah.
Konfigurasi Filter conditions

Kotak hijau menunjukkan kolom yang meloloskan rekaman tersebut. Kotak kuning yang setara menunjukkan kolom yang menghentikannya.
Tip.Exactly matches peka terhadap huruf besar dan kecil serta spasi, jadinew DanNew Dengan spasi di akhir, keduanya akan gagal tanpa menampilkan pesan kesalahan di setiap baris. Make Status sebagai pilihan tunggal (single select) daripada teks bebas (free text) dan masalah ini tidak akan terjadi.
Langkah 3: Bagaimana cara mengubah baris tersebut menjadi faktur ZUGFeRD?
Alur sejauh ini: pemicu dan filter.
- Tambahkan PDF4me > Create ZUGFeRD Invoice.
- Atur opsi output:
- File Name:
ZUGFeRD_ditambah Invoice Number ditambah.pdf - Input Format:
JSON - Output Mode:
XmlWithPdf - Zugferd Version:
2+ - Conformance Level:
EN16931 - Render Invoice On Pdf:
True - Biarkan File kosong kecuali Anda menyediakan halaman kop surat sendiri.
- File Name:
- Tempelkan objek tersebut ke dalam Invoice Json Data dan petakan setiap kolom Airtable ke dalamnya:
{
"InvoiceId": "{{Invoice Number}}",
"TypeCode": "380",
"InvoiceType": "RECHNUNG",
"IssueDate": "{{Invoice Date}}T00:00:00",
"DeliveryDate": "{{Invoice Date}}T00:00:00",
"IsTest": false,
"Seller": {
"Name": "{{Seller Name}}",
"VatId": "{{Seller VATID}}",
"Address": {
"Street": "{{Seller Street}}",
"PostalCode": "{{Seller Postal Code}}",
"City": "{{Seller City}}",
"Country": "{{Seller Country}}"
}
},
"Buyer": {
"Name": "{{Buyer Name}}",
"Address": {
"Street": "{{Buyer Street}}",
"PostalCode": "{{Buyer Postal Code}}",
"City": "{{Buyer City}}",
"Country": "{{Buyer Country}}"
}
},
"LineItems": [
{
"ProductName": "{{Item Description}}",
"Quantity": {{Quantity}},
"UnitCode": "C62",
"UnitPrice": {{Unit Price}},
"LineTotal": {{Net Total}}
}
],
"Totals": {
"Currency": "{{Currency}}",
"LineTotal": {{Net Total}},
"TaxBasisTotal": {{Net Total}},
"TaxPercent": {{VAT Rate}},
"TaxTotal": {{VAT Amount}},
"GrandTotal": {{Gross Total}},
"ChargeTotal": 0,
"AllowanceTotal": 0
},
"Payment": {
"Currency": "{{Currency}}",
"PaymentReference": "{{Invoice Number}}",
"DueDate": "{{Due Date}}T00:00:00"
}
}
Ada tiga bagian yang perlu diperhatikan. TypeCode 380 adalah kode untuk faktur komersial dan bersifat tetap. UnitCode C62 adalah kode UN/ECE untuk "satu dari sesuatu", yang Anda butuhkan untuk jam atau unit layanan. Dan PaymentReference di blok Payment adalah teks yang dikutip pembeli saat membayar, yang di sini hanyalah nomor faktur.
Create ZUGFeRD Invoice

Setiap nilai adalah token Airtable. Perhatikan VAT Amount 190,95 dan Gross Total 1195,95, meskipun tabel menampilkannya sebagai 191 dan 1196.
Apa yang diputuskan oleh setiap pengaturan
| Bidang | Nilai di sini | Apa yang dikendalikannya |
|---|---|---|
| Input Format | JSON | Bahwa Anda menyediakan objek terstruktur, bukan XML atau baris CSV yang sudah jadi. |
| Output Mode | XmlWithPdf | Mengembalikan satu file hibrida. XmlOnly hanya mengembalikan XML faktur. |
| Zugferd Version | 2+ | Generasi 2.x, yang sesuai dengan EN 16931 Versi lama 1.0 tidak sesuai. |
| Conformance Level | EN16931 | Profil yang diklaim dipenuhi oleh faktur, dan oleh karena itu kunci mana yang harus disediakan oleh JSON. |
| Render Invoice On Pdf | True | Buatlah halaman yang mudah dibaca dari data yang sama. Tanpa file yang disediakan, inilah yang memberikan file tersebut sisi manusiawinya. |
| Mengajukan | kosong | Di sinilah file PDF dasar dengan kop surat Anda akan ditempatkan. |
Do not trust the grid for decimals.Airtable menampilkan VATAmount 191 dan GrossTotal 1196 karena pengaturan presisi kolom angka, tetapi token yang sebenarnya berisi 190.95 dan 1195.95, dan itulah yang sampai ke faktur. Perluas presisi sebelum ada yang mencoba mencocokkan kolom dengan dokumen yang diterbitkan.
Langkah 4: Bagaimana cara Anda mencatat faktur ke dalam arsip?
Alur sejauh ini: semuanya melalui langkah PDF4me.
- Tambahkan Airtable > Update Record.
- Konfigurasi:
- Basis
PDF4me Live Automations, MejaZUGFeRD Requests - Record: ID dari pemicu
- Append attachments:
False - Document: File Url dari langkah 3
- Status:
Generated
- Basis
- Biarkan setiap kolom kedua kosong agar tidak ada yang tertimpa.
Konfigurasi Update Record

Peringatan di bagian atas adalah yang paling penting untuk dibaca. Semua yang ada di bawahnya sengaja dikosongkan.
"Possible Zap loop detected" is a real warning, not noise.Langkah ini menulis ke tabel yang memicu Zap, sehingga pembaruannya sendiri dapat membangunkan Zap lagi. Namun, hal itu tidak terjadi di sini, karena pembaruan tersebut mengatur Status menjadi Generated dan filter pada langkah 2 hanya meneruskan New. Filter dan pembaruan ini merupakan satu mekanisme; ubah salah satunya dan periksa kembali keduanya.
Langkah 5: Bagaimana cara Anda mengirimkan faktur elektronik kepada pembeli?
Alur sejauh ini: semuanya melalui pembaruan catatan.
- Tambahkan Gmail > Send Email.
- Konfigurasi:
- To: kolom Email dari pemicu
- Subject:
Your e-invoicebeserta Invoice Number - Body type:
Html - Body: salam singkat yang menyebutkan nama pembeli, nomor faktur, dan total.
- Attachments: File Url dari langkah 3
Konfigurasi Send Email

Lampiran tersebut adalah File Url yang sama yang ditulis pada langkah 4 ke Airtable, sehingga catatan dan email selalu membawa file yang sama.
Jalankan Zap dan Verifikasi
- Publish Zap tersebut.
- Tambahkan baris ke
ZUGFeRD Requestsdengan penjual, pembeli, satu item baris, kedua tanggal, dan StatusNew. - Tunggu hasil jajak pendapat. Kelima langkah tersebut seharusnya berwarna hijau.
- Buka baris tersebut:
Documentharus berisi PDF yang diberi nama sesuai nomor faktur, danStatusharus bertuliskanGenerated. - Buka lampirannya. Anda akan melihat halaman faktur yang dapat dibaca, dan validator ZUGFeRD akan menemukan XML EN 16931 di dalam file yang sama.
- Tambahkan baris dengan Status
Generateddan konfirmasikan bahwa Zap berhenti di langkah 2.
Dalam proses yang terekam, versi 1 berhasil diselesaikan pada 24 Oktober 2026 pukul 00:09:01, menghasilkan ZUGFeRD_RE-2026-0011.pdf untuk faktur dari Muster GmbH di Berlin kepada Test Kunde AG di Muenchen, sepuluh unit Consulting dengan harga 100,50, total 1195,95 EUR.
What did you actually build?Pembuatan faktur elektronik yang sesuai standar dari basis data yang sudah Anda jalankan, hanya dengan lima langkah Zap. Sistem pembeli mendapatkan data terstruktur, catatan Anda menyimpan artefak yang dihasilkannya, dan satu kolom Status menentukan apa yang akan dikirim.
Variasi Umum yang Dapat Anda Tambahkan Tanpa Membangun Ulang
Bagaimana perbandingannya dengan cara lain dalam menerbitkan faktur elektronik?
Setiap baris menjelaskan alternatifnya. Baris terakhir adalah Zap ini.
| Perbandingan | Siapa yang menjalankannya? | Dari mana data tersebut berasal? | Apa yang Anda pertahankan |
|---|---|---|---|
| Platform e-invoicing vs Zap ini | Keuangan, melalui sebuah portal | Unggahan atau integrasi | Kontrak per dokumen dan keterkaitannya dengan kontrak tersebut. |
| Modul ERP vs Zap ini | Keuangan, di dalam ERP | Buku besar internal ERP | Lisensi, dan migrasi untuk memasukkan data Anda. |
| Pustaka pengembang vs Zap ini | Seorang pengembang, di dalam sebuah aplikasi. | Basis data Anda, melalui kode. | Kode, pembaruan skema, dan rilisnya |
| Zap ini | Siapa pun yang dapat mengedit Zap | Basis data Airtable yang sudah dimiliki tim. | Lima langkah dan satu objek JSON |
Kami juga membangunthe identical flow in Make Perbedaannya kecil namun nyata: Make memfilter di dalam pemicu secara gratis sedangkan Zapier menghabiskan satu langkah, Make membutuhkan parseNumber di sekitar setiap nilai uang sedangkan Zapier memetakannya langsung, dan Make mengunggah file sebagai byte sedangkan Zapier memberikan URL Airtable.
Pertanyaan umum
Apa itu e-invoicing?
E-invoicing berarti menerbitkan faktur sebagai data terstruktur yang dapat dibaca oleh mesin, bukan sebagai gambar halaman. Sistem akuntansi pembeli akan menguraikannya dan mencatatnya tanpa perlu diketik ulang oleh siapa pun, dan itulah intinya: penghematan ada di pihak penerima, bukan di pihak Anda.
Semakin banyak yurisdiksi yang kini mewajibkannya untuk perdagangan bisnis dan sektor publik.European standard EN 16931 mendefinisikan kumpulan bidang inti, dan format seperti ZUGFeRD mengimplementasikannya.
Apa itu faktur elektronik?
Intinya sama. Istilah "faktur elektronik" cenderung digunakan dalam perundang-undangan, sedangkan "e-invoicing" digunakan dalam pemasaran produk, dan keduanya merujuk pada data faktur yang terstruktur dan dapat dibaca mesin, bukan PDF yang dilampirkan pada email.
Penting untuk memperjelas apa yang tidak termasuk: faktur kertas yang dipindai bukanlah faktur elektronik, dan PDF biasa juga bukan. Tanpa data terstruktur yang tertanam, penerima masih harus membacanya.
Bisakah Airtable membuat faktur?
Yang tidak sesuai standar. Airtable menyimpan data dan dapat menampilkannya dalam antarmuka atau tampilan yang dapat dicetak, tetapi tidak dapat menghasilkan PDF/A-3 yang memuat XML sesuai standar EN 16931, yang merupakan persyaratan yang diminta.
Pembagian yang digunakan Zap ini adalah pembagian yang praktis: Airtable adalah rekaman, PDF4me menghasilkan artefak, dan artefak tersebut dikembalikan ke rekaman sebagai lampiran.
Bagaimana cara kerja otomatisasi pembayaran hutang?
Tiga bagian: penerimaan, ekstraksi, dan posting. Penerimaan mengumpulkan dokumen di satu tempat, ekstraksi mengubahnya menjadi kolom, posting menulis kolom-kolom tersebut ke dalam buku besar dengan gerbang persetujuan di depannya.
Faktur elektronik hibrida menghilangkan bagian tengah. Ketika XML sudah ada di dalam file, ekstraksi menjadi penguraian (parsing) dan bukan pengenalan (recognition), dan itulah mengapa peraturan terus mendorong ke arah ini. Zap ini adalah bagian pengiriman dari pengaturan tersebut.
Penyelesaian Masalah
Buka input langkah di Zap run dan baca sebagai JSON. Kolom Airtable yang kosong menyebabkan kunci kosong, dan nilai uang yang seharusnya diberi tanda kutip malah muncul sebagai teks padahal seharusnya angka. Keduanya menghasilkan objek yang terlihat baik tetapi tetap gagal dikonversi.
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 turun ke profil yang lebih rendah.
Langkah 4 tidak mengatur Status, atau mengatur nilai yang masih dilewatkan oleh filter. Itulah juga yang diperingatkan Zapier pada langkah 4: Zap memproses ulang outputnya sendiri. Periksa filter dan pembaruan secara bersamaan.
Periksa Output Mode adalahXmlWithPdf dan bahwa langkah 4 dan 5 sama-sama mengambil File Url dari langkah 3. Melampirkan hal lain akan mengirimkan halaman yang terlihat benar tetapi tidak berisi apa pun yang dapat dibaca oleh perangkat lunak mereka.
Langkah Selanjutnya
Mandat tampak seperti masalah format, padahal sebenarnya masalah data. Jika faktur sudah ada sebagai baris data, sebagian besar pekerjaan sudah selesai.