Zapier Airtable ZUGFeRD E-Faturası: Satırları Filtrele, JSON Oluştur, Hibrit PDF'i E-posta ile Gönder

PDF4me Create ZUGFeRD Invoice, yapılandırılmış fatura verilerini hibrit PDF/A-3 e-faturaya dönüştüren bir Zapier eylemidir. Bir Airtable satırını okuyarak, bir JSON nesnesini okunabilir bir PDF'ye gömülü EN 16931 XML'e dönüştürür, dosyayı kayda geri yazar ve alıcıya e-posta ile gönderir.
E-fatura zorunlulukları bir dosya formatı sorunu olarak ortaya çıkıyor ve bir tedarik sorunu olarak yanıtlanıyor: bir platform seçin, belge başına ödeme yapın, verilerinizi ona taşıyın. Bu yanıt, büyük ölçekte mantıklı olsa da, halihazırda kullandıkları bir veritabanından ayda yirmi fatura düzenleyen bir ekip için absürt. Alternatif, XML'i elle yazmamaktır. Faturayı JSON olarak tanımlamak ve uyumlu dosyayı başka bir şeyin üretmesine izin vermektir.
Bir Airtable satırı faturayı içerir: satıcı, alıcı, tek bir kalem ve toplamlar. Status New olarak ayarlayın ve Zap bunu algılar, o tek alanı kontrol eder ve PDF4me bir JSON nesnesi gönderir. Geri dönüş olarak, bir kişinin okuyabileceği ve bir makinenin ayrıştırabileceği bir PDF/A-3 dosyası kayda eklenir ve alıcıya gönderilir. Platform aboneliği yok, XML yok ve veriler asla veritabanından ayrılmaz.
Neden Odaklı Soru-Cevap
Why describe the invoice as JSON rather than XML?Çünkü sektörler arası fatura sözdizimi uzun, derinlemesine iç içe geçmiş ve her kodun nerede yer alacağı konusunda katıdır. JSON nesnesi aynı şeyi çok daha az yer kaplayarak, iş terimleri gibi okunan anahtarlarla ifade eder ve PDF4me bundan uyumlu XML'i üretir. Yanlış yapılması kolay olan kısım, bakımını yapmadığınız kısımdır.
Why does the hybrid file matter?Çünkü bir faturanın iki hedef kitlesi vardır. Alıcının sistemi, içine yerleştirilmiş XML dosyasını okur ve kimse bir şey yazmadan faturayı kaydeder; muhasebe departmanındaki kişi aynı dosyayı açar ve bir sayfa görür. Tek bir belge her iki tarafı da tatmin eder, bu yüzdenFeRD Yalnızca XML yerine hibrit bir yapı belirtildi.
Why put a Filter in front of the invoice step?Çünkü fatura kesmek geri alınabilir bir işlem değildir. Her yeni satırda tetiklenen bir Zap, sonunda yarım kalmış bir satırda da tetiklenecek ve müşteriye boş bir satır içeren bir belge e-posta olarak gönderecektir. Filtre, fatura kesmeyi kasıtlı bir eylem haline getirir: kişi Status New olarak ayarlar ve bu da verilen talimattır.
Why keep the invoice data in Airtable at all?Çünkü bu genellikle zaten orada takip edilen çalışmaların bir yan ürünüdür: proje, müşteri, kararlaştırılan fiyat. Bunu bir dosya formatına uymak için faturalama ürününe taşımak, aynı müşteriyi iki sistemde sonsuza dek tutmak anlamına gelir ve format gereksinimi aslında sizden bunu yapmanızı istemez.
Neler Alacaksınız?
Girdi: Fatura numarası, tarihler, KDV kimlik numarası içeren satıcı bloğu, alıcı bloğu, tek bir kalem ve toplamları içeren ve Status " New olarak ayarlanmış bir Airtable satırı. Çıktı: Bu kayda ait ve alıcının gelen kutusunda bulunan bir ZUGFeRD PDF/A-3.

Fatura başına bir satır. Buradaki her sütun, Zap'in gönderdiği JSON'da bir anahtar haline gelir.

Alıcı bir fatura görür. Muhasebe sistemi ise faturanın içindeki XML dosyasını görür.
İhtiyacınız Olanlar
- A Zapier accountÇok adımlı Zap'lara izin veren bir plan üzerinde.Filter by Zapier Dahili olarak yer almaktadır ve bir adım olarak sayılır.
- PDF4me API anahtarı. API anahtarınızı alın.
- An Airtable baseYakalanan veri tabanı, fatura başlığını, KDV kimlik numarasını içeren satıcı bloğunu, alıcı bloğunu, kalem alanlarını (NetTotal, VATAmount ve GrossTotal, bir E-posta sütununu, bir Status alanını ve
Documentadlı bir ek alanını içerenPDF4me Live AutomationsZUGFeRD Requestsadlı bir tabloya sahip PDF4me Live Automations'tır. - A Gmail accountZapier bağlı.
- Your seller details including a VAT IDBunlar sütunlardan gelir, bu nedenle bir baz istasyon birden fazla tüzel kişilik için fatura kesebilir.
Zap'e Genel Bakış
ZUGFeRD Requestsher yeni satır için New Record (Airtable) tetiklenir.- Filter conditions (Filter by Zapier) yalnızca Status tam olarak
Newolduğunda devam eder. - Create ZUGFeRD Invoice (PDF4me), JSON'u hibrit bir PDF'ye dönüştürür.
- Update Record (Airtable) işlemi dosyayı, durumu ve ilgili satıra geri bağlantıyı yazar.
- Send Email (Gmail), elektronik faturayı alıcıya iletir.
Zap'e genel bakış

İsviçre QR Zap ile aynı beş adımlı şekle sahip. Sadece ortadaki PDF4me adımı farklı.
Adım 1: Yeni bir Airtable satırından Zap'ı nasıl tetiklersiniz?
Şu ana kadar olan süreç: henüz hiçbir şey olmadı, bu tetikleyici.
- Bir Zap oluşturun ve Airtable > New Record seçin.
PDF4me Live AutomationsBase veZUGFeRD RequestsTable seçin.- Test. Zapier , Airtable 1 yeni kayıt bulunduğunu bildiriyor ve sütunlar aşağı akışta kullanılabilir hale geliyor.
Oy verme rozetinde 2 dakika yazıyor, bu da bu aşamadan değil, plandan geliyor.
Adım 2: Zap'in yarım kalmış bir satır için fatura kesmesini nasıl durdurursunuz?
Şu ana kadarki akış: Airtable tetikleyicisi.
- Filter by Zapier Ekle > Only continue if...
- Tek bir kural oluşturun: 1. Status / (Metin) Exactly matches /
New. - Deneyin.
Filter conditions yapılandırması

Yeşil kutu, kaydın geçmesine izin veren alanı belirtir. Eşdeğer sarı kutu ise kaydın durdurulduğu alanı belirtir.
Tip.Exactly matches Büyük/küçük harf ve boşluk duyarlıdır, bu nedenlenew VeNew Sonunda boşluk olması durumunda her iki ifade de her satırda sessizce hata veriyor. Status serbest metin yerine tek seçimli bir alan Make bu sorun oluşmaz.
3. Adım: Bu satırı ZUGFeRD faturasına nasıl dönüştürürsünüz?
Şu ana kadarki akış: tetikleyici ve filtre.
- PDF4me ekleyin > Create ZUGFeRD Invoice.
- Çıkış seçeneklerini ayarlayın:
- File Name:
ZUGFeRD_artı Invoice Number artı.pdf - Input Format:
JSON - Output Mode:
XmlWithPdf - Zugferd Version:
2+ - Conformance Level:
EN16931 - Render Invoice On Pdf:
True - Kendi antetli kağıdınızı eklemediğiniz sürece File boş bırakın.
- File Name:
- Nesneyi Invoice Json Data yapıştırın ve her bir Airtable alanını ona eşleştirin:
{
"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"
}
}
Üç noktaya değinmekte fayda var. TypeCode 380, ticari fatura kodudur ve sabittir. UnitCode C62, "bir şeyin bir örneği" anlamına gelen UN/ECE kodudur ve saat veya hizmet birimi için kullanmanız gereken koddur. Payment bloğundaki PaymentReference ise alıcının ödeme yaparken belirttiği metindir ve burada sadece fatura numarasıdır.
Create ZUGFeRD Invoice

Her değer bir Airtable token'ıdır. Tabloda 191 ve 1196 olarak gösterilse de, VAT Amount 190,95 ve Gross Total 1195,95 olduğuna dikkat edin.
Her ayarın neye karar verdiği
| Alan | Buradaki değer | Kontrol ettiği şeyler |
|---|---|---|
| Input Format | JSON | Hazır XML veya CSV satırı yerine yapılandırılmış bir nesne sağlamanız gerekiyor. |
| Output Mode | XmlWithPdf | Tek bir hibrit dosya döndürün. XmlOnly yalnızca fatura XML dosyasını döndürür. |
| Zugferd Version | 2+ | EN 16931 ile uyumlu olan 2.x nesli. Eski 1.0 nesli ise uyumlu değil. |
| Conformance Level | EN16931 | Faturanın karşılamayı iddia ettiği profil ve dolayısıyla JSON'un sağlaması gereken anahtarlar. |
| Render Invoice On Pdf | True | Aynı verilerden okunabilir bir sayfa çizin. Dosya sağlanmadığında, dosyanın insan tarafından okunabilirliğini sağlayan şey budur. |
| Dosya | boş | Antetli kağıdınızın yer alacağı temel PDF dosyasının yerleştirileceği yer. |
Do not trust the grid for decimals.Airtable sayı alanının hassasiyet ayarı nedeniyle VATAmount 191 ve GrossTotal 1196 olarak gösteriyor, ancak token'lar 190.95 ve 1195.95 değerlerini taşıyor ve faturaya da bu değerler yansıyor. Herhangi birinin bir sütunu düzenlenmiş bir belgeyle karşılaştırmaya çalışmadan önce hassasiyeti genişletin.
Adım 4: Faturayı kayda nasıl geri yazarsınız?
Şu ana kadarki süreç: PDF4me adımından geçen her şey.
- Airtable ekle > Update Record.
- Yapılandır:
- Temel
PDF4me Live Automations, MasaZUGFeRD Requests - Record: Tetikleyiciden gelen kimlik numarası
- Append attachments:
False - Document: 3. adımdaki File Url
- Status:
Generated
- Temel
- Hiçbir şeyin üzerine yazılmaması için diğer tüm alanları boş bırakın.
Update Record

En üstteki uyarı okunmaya değer olanıdır. Ondan sonraki her şey bilerek boş bırakılmıştır.
"Possible Zap loop detected" is a real warning, not noise.Bu adım, Zap'in tetiklendiği tabloya yazar, bu nedenle kendi güncellemesi Zap'i tekrar uyandırabilir. Burada uyandırmaz, çünkü güncelleme Status Generated olarak ayarlar ve 2. adımdaki filtre yalnızca New yi geçirir. Filtre ve bu güncelleme tek bir mekanizmadır; ikisinden birini değiştirin ve ikisini de tekrar kontrol edin.
Adım 5: Elektronik faturayı alıcıya nasıl gönderirsiniz?
Şu ana kadarki süreç: kayıt güncellemesine kadar her şey.
- Gmail ekle > Send Email.
- Yapılandır:
- To: Tetikleyiciden gelen Email sütunu
- Subject:
Your e-invoiceve Invoice Number - Body type:
Html - Body: Alıcının adını, fatura numarasını ve toplam tutarı içeren kısa bir selamlama.
- Attachments: 3. adımdaki File Url
Send Email yapılandırması

Ekteki dosya, 4. adımda Airtable yazılan File Url aynıdır, bu nedenle kayıt ve e-posta her zaman aynı dosyayı içerir.
Zap'ı çalıştırın ve doğrulayın.
- Zap'ı Publish.
ZUGFeRD Requestssatıcı, alıcı, tek kalem, her iki tarih veNewStatus bir satır ekleyin.- Anketi bekleyin. Beş adımın da yeşil olması gerekiyor.
- Satırı açın:
Document, fatura numarasıyla adlandırılmış bir PDF dosyası içermeli veStatusGeneratedolarak görünmelidir. - Ekteki dosyayı açın. Okunabilir bir fatura sayfası görmelisiniz ve ZUGFeRD doğrulayıcısı aynı dosya içinde EN 16931 XML'i bulmalıdır.
- Status
Generatedolan bir satır ekleyin ve Zap'ın 2. adımda durduğunu doğrulayın.
Kaydedilen çalıştırmada, 1. sürüm 24 Ekim 2026 tarihinde saat 00:09:01'de başarıyla tamamlanmış ve Berlin Muster GmbH Muenchen Test Kunde AG, her biri 100,50 birim değerinde on adet Consulting için toplam 1195,95 EUR tutarında ZUGFeRD_RE-2026-0011.pdf faturası oluşturulmuştur.
What did you actually build?Mevcut veritabanınızdan uyumlu e-fatura oluşturma, sadece beş Zap adımı maliyetiyle mümkün. Alıcının sistemi yapılandırılmış veri alır, kaydınız ürettiği ürünü saklar ve tek bir Status alanı neyin gönderileceğine karar verir.
Yeniden derlemeye gerek kalmadan ekleyebileceğiniz yaygın varyasyonlar
Bu, e-fatura düzenlemenin diğer yöntemleriyle nasıl karşılaştırılır?
Her satır alternatifi açıklıyor. Son satır ise bu Zap'ı temsil ediyor.
| Karşılaştırmak | Kim yönetiyor? | Verilerin kaynağı | Bakımını yaptığınız şeyler |
|---|---|---|---|
| E-fatura platformu ile bu Zap karşılaştırması | Finans, bir portal aracılığıyla | Yüklemeler veya entegrasyon | Belge bazlı bir sözleşme ve ona ilişkin bağlantı |
| ERP modülü ile bu Zap karşılaştırması | ERP sistemi içindeki Finans | ERP'nin kendi defteri | Lisanslar ve verilerinizi aktarmak için bir geçiş işlemi. |
| Geliştirici kütüphanesi ile bu Zap karşılaştırması | Bir uygulama geliştiricisi, uygulama içinde | Veritabanınız, kod aracılığıyla | Kod, şema güncellemeleri ve sürümler |
| Bu Zap | Zap'ı düzenleyebilen herkes | Ekibin halihazırda kullandığı Airtable veritabanı | Beş adım ve bir JSON nesnesi |
Biz de inşa ettik.the identical flow in Make Farklar küçük ama gerçek: Make tetikleyici içindeki filtreleri ücretsiz olarak oluştururken Zapier bir adım harcıyor; Make, her para değerinin etrafında parseNumber ihtiyaç duyarken Zapier bunları doğrudan eşleştiriyor; ve Make dosyayı bayt olarak yüklerken Zapier Airtable bir URL veriyor.
Sıkça sorulan sorular
Elektronik faturalama nedir?
E-fatura, bir sayfanın resmi yerine, bir makinenin okuyabileceği yapılandırılmış veri olarak fatura düzenlemek anlamına gelir. Alıcının muhasebe sistemi bunu ayrıştırır ve kimsenin yeniden yazmasına gerek kalmadan kaydeder; asıl nokta da budur: tasarruf sizin değil, alıcının tarafındadır.
Günümüzde giderek artan sayıda yargı bölgesi, ticari ve kamu sektörü işlemleri için bunu zorunlu hale getiriyor.European standard EN 16931 Temel alan kümesini tanımlar ve ZUGFeRD gibi formatlar bunu uygular.
Elektronik faturalama nedir?
Aynı şey. Mevzuatta genellikle "elektronik faturalama" terimi, ürün pazarlamasında ise "e-faturalama" terimi kullanılır ve her ikisi de e-postaya eklenmiş bir PDF dosyası yerine yapılandırılmış, makine tarafından okunabilir fatura verilerini ifade eder.
Nelerin elektronik fatura olarak sayılmadığını açıkça belirtmekte fayda var: Taranmış bir kağıt fatura elektronik faturalama sayılmaz, sıradan bir PDF dosyası da öyle. Gömülü yapılandırılmış veri içermediği için alıcının yine de onu okuması gerekir.
Airtable fatura oluşturabilir mi?
Uyumlu olmayanlar. Airtable verileri tutar ve bir arayüzde veya yazdırılabilir bir görünümde düzenleyebilir, ancak bir zorunluluk gereği istenen EN 16931 standardına uygun XML içeren bir PDF/A-3 dosyası üretemez.
Bu Zap'in kullandığı bölme işlemi pratik bir yöntemdir: Airtable kayıttır, PDF4me çıktıyı üretir ve çıktı dosya ek olarak kayda geri döner.
Borçlar muhasebesi otomasyonu nasıl çalışır?
Üç bölümden oluşur: alım, çıkarma ve kayıt. Alım, belgeleri bir araya getirir; çıkarma, bunları alanlara dönüştürür; kayıt ise bu alanları, önünde bir onay kapısı bulunan deftere yazar.
Hibrit e-faturalar orta kısmı ortadan kaldırır. XML zaten dosyanın içinde olduğunda, çıkarma işlemi tanıma değil, ayrıştırma işlemidir ve bu nedenle düzenlemeler sürekli olarak bu yöne doğru ilerlemektedir. Bu Zap, bu düzenlemenin gönderen tarafıdır.
Sorun giderme
Zap çalıştırmasındaki adımın girişini açın ve JSON olarak okuyun. Boş bir Airtable sütunu, anahtarı boş bırakır ve tırnak içinde gelen para değeri, sayı beklenirken metin olarak gelir. Her ikisi de düzgün görünen ancak yine de dönüştürmede başarısız olan bir nesne üretir.
Conformance Level profilin hangi alanları gerektirdiğini belirler. JSON dosyasında profilin beklediği anahtarlar eksik olsa bile EN16931 iddiasında bulunmak, dosya normal şekilde açılsa bile doğrulamayı başarısız kılar. Eksik anahtarları sağlayın veya daha düşük bir profile geçin.
4. adımda Status ayarlanmıyor veya filtrenin hala geçirdiği bir değer ayarlanıyor. Zapier 4. adımda uyardığı döngü de tam olarak bu: Zap kendi çıktısını yeniden işliyor. Filtreyi ve güncellemeyi birlikte kontrol edin.
Output Mode Kontrol EtXmlWithPdf 4. ve 5. adımların her ikisi de 3. adımdaki File Url kullanıyor. Başka bir şey eklemek, doğru görünen ancak yazılımlarının okuyamayacağı hiçbir şey içermeyen bir sayfa gönderiyor.
Sonraki Adımlar
Bir talimat, biçim sorunu gibi görünse de aslında bir veri sorunudur. Fatura zaten satırlar halinde mevcutsa, işin büyük kısmı tamamlanmıştır.