Ana içeriğe geç

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

· 21 dakikalık okuma
SEO and Content Writer

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.

Zap'e genel bakış
1. New Record
Airtable, her 2 dakikada bir sorgulama yapıyor. Tabloya eklenen her satırı görüyor.
2. Filter conditions
Filter by Zapier. Yalnızca Status tam olarak New olduğunda devam eder.
3. Create ZUGFeRD Invoice
PDF4me. JSON girdisi, gömülü EN 16931 XML içeren PDF/A-3 çıktısı.
4. Update Record
Airtable. Dosyayı, durumu ve aynı satıra geri bağlantı içeren bir dosyayı yazar.
5. Send Email
Gmail. Alıcıya ilgili satırda e-faturayı gönderir.
kısa versiyon

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.

Airtable base PDF4me Live Automations with the ZUGFeRD Requests table open, showing rows RE-2026-0007 to RE-2026-0011 with Currency EUR, SellerName Muster GmbH at Hauptstrasse 1, 10115 Berlin DE with SellerVATID DE123456789, BuyerName Test Kunde AG at Bahnhofstrasse 5, 80331 Muenchen DE, ItemDescription Consulting, Quantity 10.00, UnitPrice 100.50, VATRate 19.00 and a Status column reading Generated

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

Gmail showing the received message with subject Your e-invoice RE-2026-0011, a body greeting Test Kunde AG and stating a total of 1195.95 EUR, and one PDF attachment whose thumbnail shows the rendered German invoice

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 Document adlı bir ek alanını içeren PDF4me Live Automations ZUGFeRD Requests adlı 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.
Önce tamamlanmış makaleyi görün.
Bu, yakalanan Zap'ın RE-2026-0011 satırı için ürettiği dosyanın aynısıdır. Sayfayı görmek için bir okuyucuda, gömülü XML'i görmek için ise bir ZUGFeRD doğrulayıcısında açın.
sample-output-zugferd-re-2026-0011.pdf dosyasını indirin

Zap'e Genel Bakış​

  1. ZUGFeRD Requests her yeni satır için New Record (Airtable) tetiklenir.
  2. Filter conditions (Filter by Zapier) yalnızca Status tam olarak New olduğunda devam eder.
  3. Create ZUGFeRD Invoice (PDF4me), JSON'u hibrit bir PDF'ye dönüştürür.
  4. Update Record (Airtable) işlemi dosyayı, durumu ve ilgili satıra geri bağlantıyı yazar.
  5. Send Email (Gmail), elektronik faturayı alıcıya iletir.

Zap'e genel bakış​

Zapier run detail showing version 1 and a successful run on Oct 24 2026 at 12:09:01 am, with five steps each marked with a green tick: Airtable New Record on a 2 min schedule reporting Found 1 new Record, Filter by Zapier reporting the run passed the rules, PDF4me Create ZUGFeRD Invoice reporting Sent 1 new Create ZUGFeRD Invoice, Airtable Update Record reporting Sent 1 new Record, and Gmail Send Email reporting Sent 1 new Message

İ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.

  1. Bir Zap oluşturun ve Airtable > New Record seçin.
  2. PDF4me Live Automations Base ve ZUGFeRD Requests Table seçin.
  3. 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.

  1. Filter by Zapier Ekle > Only continue if...
  2. Tek bir kural oluşturun: 1. Status / (Metin) Exactly matches / New.
  3. Deneyin.

Filter conditions yapılandırması​

Filter by Zapier step 2 Configure and test panel showing the rule Only continue if 1. Status Text Exactly matches New, and below it a green result box reading Your zap would have continued, with a test record created 2026-10-23 20:38:52 and Matched items listing Status: New

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.

  1. PDF4me ekleyin > Create ZUGFeRD Invoice.
  2. Çı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.
  3. 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​

PDF4me Create ZUGFeRD Invoice step showing an empty File field, File Name ZUGFeRD_ plus the Invoice Number RE-2026-0011 plus .pdf, Input Format JSON, an Invoice Json Data block with Airtable tokens mapped into every key including Seller Muster GmbH, Buyer Test Kunde AG, Quantity 10, Unit Price 100.5, Net Total 1005, VAT Rate 19, VAT Amount 190.95 and Gross Total 1195.95, then Output Mode XmlWithPdf, Zugferd Version 2 plus, Conformance Level EN16931 and Render Invoice On Pdf set to True

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​

AlanBuradaki değerKontrol ettiği şeyler
Input FormatJSONHazır XML veya CSV satırı yerine yapılandırılmış bir nesne sağlamanız gerekiyor.
Output ModeXmlWithPdfTek bir hibrit dosya döndürün. XmlOnly yalnızca fatura XML dosyasını döndürür.
Zugferd Version2+EN 16931 ile uyumlu olan 2.x nesli. Eski 1.0 nesli ise uyumlu değil.
Conformance LevelEN16931Faturanın karşılamayı iddia ettiği profil ve dolayısıyla JSON'un sağlaması gereken anahtarlar.
Render Invoice On PdfTrueAynı verilerden okunabilir bir sayfa çizin. Dosya sağlanmadığında, dosyanın insan tarafından okunabilirliğini sağlayan şey budur.
Dosyaboş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.

  1. Airtable ekle > Update Record.
  2. Yapılandır:
    • Temel PDF4me Live Automations, Masa ZUGFeRD Requests
    • Record: Tetikleyiciden gelen kimlik numarası
    • Append attachments: False
    • Document: 3. adımdaki File Url
    • Status: Generated
  3. Hiçbir şeyin üzerine yazılmaması için diğer tüm alanları boş bırakın.

Update Record​

Airtable Update Record step showing a yellow warning banner reading Possible Zap loop detected, this step may cause a loop in your Zap because it acts similarly to the trigger event, above Base PDF4me Live Automations, Table ZUGFeRD Requests, Record mapped to the trigger ID, Append attachments set to False, and a list of empty optional fields beginning with Title, InvoiceNumber, InvoiceDate, DueDate and Currency

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.

  1. Gmail ekle > Send Email.
  2. Yapılandır:
    • To: Tetikleyiciden gelen Email sütunu
    • Subject: Your e-invoice ve 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ı​

Gmail Send Email step showing the To field holding a mapped Email value from the Airtable trigger

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.​

  1. Zap'ı Publish.
  2. ZUGFeRD Requests satıcı, alıcı, tek kalem, her iki tarih ve New Status bir satır ekleyin.
  3. Anketi bekleyin. Beş adımın da yeşil olması gerekiyor.
  4. Satırı açın: Document, fatura numarasıyla adlandırılmış bir PDF dosyası içermeli ve Status Generated olarak görünmelidir.
  5. 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.
  6. Status Generated olan 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​

Birden fazla satırdan oluşan fatura
LineItems bir dizidir. Satırları bağlantılı bir tabloda tutun, Find Records adımıyla bunları alın ve 3. adımdan önce Formatter veya Code by Zapier ile diziyi oluşturun.
Antetli kağıdınıza yazın.
Dosya alanı temel bir PDF dosyası alır. Markalı bir sayfa girin ve Render Invoice On Pdf faturayı boş bir sayfa yerine bu sayfanın üzerine çizer.
XML dosyasını da ayrı tutun.
Bazı alıcılar yapılandırılmış dosyayı tek başına istiyor. İşlemi Output Mode XmlOnly olarak ayarlayarak tekrar çalıştırın ve sonucu PDF'nin yanına ekleyin.
Alıcıya göre formatı değiştir
Bir format sütunu ve bir Yol adımı ekleyin. Alman kamu sektörü alıcıları genellikle hibrit dosya yerine XRechnung ister ve bu bir yeniden oluşturma değil, yönlendirme kararıdır.

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ırmakKim 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ığıylaYüklemeler veya entegrasyonBelge 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 FinansERP'nin kendi defteriLisanslar 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çindeVeritabanınız, kod aracılığıylaKod, şema güncellemeleri ve sürümler
Bu ZapZap'ı düzenleyebilen herkesEkibin 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​

Bu işlem fatura JSON dosyasını reddeder.

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.

Doğrulayıcı uygunluk düzeyini reddediyor.

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.

Aynı fatura iki kez düzenlendi.

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.

Alıcı, dosyada XML bulunmadığını söylüyor.

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.