ZUGFeRD E-InvoiceをZapierのAirtableから取得:行をフィルタリングし、JSONを作成し、ハイブリッドPDFをメールで送信する

PDF4meでZUGFeRD請求書を作成 これは、構造化された請求書データをハイブリッド形式のPDF/A3電子請求書に変換するZapierアクションです。Airtableの1行を読み込み、JSONオブジェクトを読み取り可能なPDFに埋め込まれたEN 16931 XMLに変換し、そのファイルをレコードに書き戻し、購入者にメールで送信します。
電子請求書の義務化は、ファイル形式の問題として現れ、調達の問題として解決されることが多い。つまり、プラットフォームを選び、文書ごとに料金を支払い、データを移行するというものだ。この解決策は大規模な運用には適しているが、既に運用しているデータベースから月に20件の請求書を発行するチームにとっては非現実的だ。代替案は、XMLを手作業で記述することではない。請求書をJSON形式で記述し、別のツールで準拠ファイルを生成するという方法だ。
Airtableの行には請求書の情報が格納されています。販売者、購入者、明細項目、合計金額です。ステータスを「新規」に設定すると、Zapがそれを取得し、該当フィールドをチェックして、PDF4meにJSONオブジェクトを渡します。すると、人間が読めて機械が解析できるPDF/A3サイズがレコードに添付され、購入者に送信されます。プラットフォームのサブスクリプションもXMLも不要で、データはベースから外部に出ることはありません。
なぜ?という問いに対する質疑応答
請求書をXMLではなくJSONで記述する理由は何ですか? クロスインダストリーインボイスの構文は長く、深くネストされており、各コードの配置場所が厳密に定められています。JSONオブジェクトは、ビジネス用語のようなキーを使用することで、同じことをはるかに少ないスペースで表現し、PDF4meはそこから準拠したXMLを生成します。間違いやすいのは、メンテナンスされていない部分です。
ハイブリッドファイルが重要な理由とは? 請求書には2つの対象者がいるからです。購入者のシステムは埋め込まれたXMLを読み取り、誰も何も入力せずに記録します。買掛金担当者は同じファイルを開いてページを確認します。1つの成果物が両方のニーズを満たすため、 フェルド XML単独ではなく、ハイブリッド形式を指定しました。
請求書作成ステップの前にフィルターを配置する理由は何ですか? 請求書の発行は取り消しのできない操作だからです。新しい行ごとに実行されるZapは、最終的に未完成の行でも実行され、空白の明細項目を含む文書を顧客にメールで送信してしまう可能性があります。フィルターを使用することで、発行は意図的な行為となります。つまり、担当者がステータスを「新規」に設定することが指示となります。
そもそもなぜ請求書データをAirtableに保存する必要があるのか? なぜなら、それは通常、既にそこで追跡されている作業(プロジェクト、顧客、合意された料金など)の副産物だからです。それを請求書作成製品に移行してファイル形式に準拠させるということは、同じ顧客情報を2つのシステムで永久に管理することになり、しかもその形式要件は実際にはそのようなことを求めていません。
得られるもの
入力: 請求書番号、日付、VAT ID を含む販売者ブロック、購入者ブロック、1 つの明細項目、および合計を含む Airtable の行で、ステータスは「新規」に設定されます。 出力: その記録と購入者の受信トレイに、ZUGFeRDのPDF/A-3ファイルが添付されています。

請求書1件につき1行。ここにある各列は、Zapが送信するJSONデータのキーになります。

購入者は請求書を見る。購入者の会計システムは、その請求書に含まれるXMLを認識する。
必要なもの
- Zapierアカウント 複数ステップのZapを可能にするプランで。 Zapierでフィルタリング 組み込み済みであり、1ステップとしてカウントされます。
- PDF4me APIキー。 APIキーを取得してください。
- Airtableベース占領された基地は
PDF4me Live Automationsテーブル名ZUGFeRD Requests請求書ヘッダー、VAT ID を含む販売者ブロック、購入者ブロック、明細項目フィールド、NetTotal、VATAmount、GrossTotal、Email 列、Status フィールド、添付ファイルフィールドが含まれています。Document。 - Gmailアカウント Zapierに接続済み。
- 販売者情報(VAT IDを含む)これらは列から生成されるため、1つのデータベースで複数の法人に対して請求書を発行できます。
ザップの概要
- 新記録 (Airtable)は、新しい行ごとに発火します。
ZUGFeRD Requests。 - フィルター条件 (Zapier によるフィルタリング) ステータスが正確に
New。 - ZUGFeRD請求書を作成する (PDF4me)はJSONをハイブリッドPDFに変換します。
- レコードの更新 (Airtableは)ファイル、ステータス、および行へのリンクを書き込みます。
- メールを送信する (Gmail)は電子請求書を買い手に配信します。
Zapの概要

Swiss QR Zapと同じ5段階の構成です。真ん中のPDF4meのステップだけが異なります。
ステップ1:Airtableの新しい行からZapをトリガーするにはどうすればよいですか?
これまでの流れ: まだ何も起きていない。これが引き金だ。
- Zapを作成して選択する エアテーブル > 新記録。
- 選択してください ベース
PDF4me Live Automationsそして テーブルZUGFeRD Requests。 - テスト。Zapierが報告します。 Airtableで新しいレコードが1件見つかりました そして、これらの列は下流工程で利用可能になる。
投票バッジにはこう書かれている 2分これは、この手順ではなく計画から来るものです。
ステップ2:Zapが未完了の行に対して請求書を発行しないようにするにはどうすればよいですか?
これまでの流れ: Airtableのトリガー。
- 追加 Zapierでフィルタリング > 以下の条件を満たす場合のみ続行してください。。
- ルールを一つ作る: 1. ステータス / (テキスト)完全に一致する /
New。 - 試してみてください。
フィルタ条件の設定

緑色の枠は、レコードを通過させたフィールドの名前を示しています。黄色の枠は、レコードを阻止したフィールドの名前を示しています。
ヒント。 完全に一致する 大文字と小文字を区別するため、 新しい そして 新しい 末尾にスペースがあると、どちらの場合もすべての行でエラーがサイレントに発生します。ステータスを自由記述テキストではなく単一選択式にすると、この問題は発生しなくなります。
ステップ3:行をZUGFeRD請求書に変換するにはどうすればよいですか?
これまでの流れ: トリガーとフィルター。
- 追加 PDF4me > ZUGFeRD請求書を作成する。
- 出力オプションを設定します。
- ファイル名:
ZUGFeRD_プラス 請求書番号 プラス.pdf - 入力形式:
JSON - 出力モード:
XmlWithPdf - ツークフェルト版:
2+ - 適合レベル:
EN16931 - PDF形式で請求書を作成する:
True - 離れる ファイル ご自身でレターヘッドページをご用意いただく場合を除き、空欄のままにしてください。
- ファイル名:
- オブジェクトを貼り付ける 請求書のJSONデータ そして、各Airtableフィールドをそれにマッピングします。
{
"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"
}
}
注目すべき点が3つあります。 TypeCode 380 これは商業請求書のコードであり、固定されています。 UnitCode C62 は「何かの1つ」を表すUN/ECEコードで、時間やサービス単位などに必要なものです。 PaymentReference で Payment block とは、購入者が支払い時に引用するテキストのことで、ここでは請求書番号のみです。
ZUGFeRD請求書構成を作成する

すべての値はAirtableトークンです。グリッド上では191と1196と表示されますが、VAT金額は190.95、総計は1195.95であることに注意してください。
各設定が決定する内容
| 分野 | ここで価値 | それが制御するもの |
|---|---|---|
| 入力形式 | JSON | 既製のXMLやCSV行ではなく、構造化されたオブジェクトを提供する。 |
| 出力モード | XmlWithPdf | ハイブリッドファイルを1つ返します。 XmlOnly 請求書のXMLのみを返します |
| ツークフェルト版 | 2+ | 2.x世代はEN 16931に準拠しています。従来の1.0は準拠していません。 |
| 適合レベル | EN16931 | 請求書が満たすべきプロファイル、したがってJSONで提供しなければならないキー |
| PDF形式で請求書を作成する | True | 同じデータから読みやすいページを作成します。ファイルが指定されていない場合、これがファイルに人間が理解できる部分を与えます。 |
| ファイル | 空の | レターヘッド付きのベースPDFを配置する場所 |
小数点以下の数値については、グリッドを信用しないでください。 AirtableにはVATAmountが表示されます 191 および総計 1196 数値フィールドの精度設定のためだが、トークンは 190.95 そして 1195.95そして、それが請求書に反映されます。誰かが列と発行済み文書を照合しようとする前に、精度を広げてください。
ステップ4:請求書を記録に書き戻すにはどうすればよいですか?
これまでの流れ: PDF4meの手順を経たすべてのこと。
- 追加 エアテーブル > レコードの更新。
- 設定する:
- ベース
PDF4me Live Automations、 テーブルZUGFeRD Requests - 記録: その ID トリガーから
- 添付ファイルを追加する:
False - 書類: その ファイルURL ステップ3から
- 状態:
Generated
- ベース
- 上書きされないように、他のフィールドはすべて空欄にしてください。
レコード構成の更新

一番上の警告文こそ読むべきものです。それより下は意図的に空欄になっています。
「ザップループの可能性を検出しました」は、ノイズではなく、実際の警告です。 このステップは、Zap がトリガーするテーブルに書き込みを行うため、その更新によって Zap が再び起動する可能性があります。ここでは、更新によって Status が設定されるため、起動しません。 Generated ステップ2のフィルターは、 Newフィルターと今回のアップデートは同一の仕組みです。どちらかを変更したら、両方とも再確認してください。
ステップ5:電子請求書をバイヤーに送信するにはどうすればよいでしょうか?
これまでの流れ: 記録更新を通じてすべて。
- 追加 Gmail > メールを送信する。
- 設定する:
- に: その メール トリガーからの列
- 主題:
Your e-invoiceプラス 請求書番号 - 体型:
Html - 体購入者名、請求書番号、合計金額を記載した短い挨拶
- 添付ファイル: その ファイルURL ステップ3から
メール送信設定

添付ファイルは、手順4でAirtableに書き込んだファイルURLと同じなので、レコードとメールには常に同じファイルが添付されます。
Zapを実行して検証する
- 公開 ザップ。
- 行を追加
ZUGFeRD Requests売り手、買い手、1行の商品、日付とステータスの両方を含むNew。 - 投票結果をお待ちください。5つのステップすべてが緑色になるはずです。
- 行を開く:
Document請求書番号と同じ名前のPDFファイルが含まれている必要があり、Status読むべきGenerated。 - 添付ファイルを開いてください。読みやすい請求書ページが表示され、ZUGFeRDバリデーターが同じファイル内にEN 16931 XMLを検出するはずです。
- ステータスの行を追加します
Generatedそして、ステップ2でZapが停止することを確認します。
キャプチャされた実行では、バージョン 1 は 2026 年 10 月 24 日午前 12 時 9 分 1 秒に正常に完了し、以下の結果を出力しました。 ZUGFeRD_RE-2026-0011.pdf ベルリンのMuster GmbHからミュンヘンのTest Kunde AGへの請求書には、コンサルティング10単位(100.50ユーロ)が含まれており、合計金額は1195.95ユーロです。
実際に何を作ったのですか? 既に運用しているデータベースから、わずか5ステップのZap操作で、法令遵守に準拠した電子請求書を作成できます。購入者のシステムには構造化データが送信され、貴社の記録には生成されたデータが保持され、ステータスフィールド1つで送信内容が決定されます。
再構築せずに追加できる一般的なバリエーション
他の電子請求書発行方法との比較
各行は代替案を示しています。最後の行はこのZapです。
| 比較 | 誰が運営しているのか | データの出所 | あなたが維持するもの |
|---|---|---|---|
| 電子請求書プラットフォームとこのZapの比較 | ポータルを通じて金融 | アップロードまたは統合 | 文書ごとの契約とそれとの関連性 |
| ERPモジュールとこのZapの比較 | ERPシステム内の財務 | ERP独自の台帳 | ライセンス、およびデータを移行するための |
| 開発者ライブラリとこのZapの比較 | アプリケーション内の開発者 | コードを通してデータベースを | コード、スキーマの更新、リリース |
| このザップ | Zapを編集できる人なら誰でも | チームが既に保持しているAirtableベース | 5つのステップと1つのJSONオブジェクト |
また、私たちは Makeにおける同一の流れ違いは小さいが、確かに存在する。Zapierが1ステップを費やすトリガー内でフィルターを無料で作成し、ニーズを満たす。 parseNumber Zapier が直接マッピングするすべての金額値の周りに、Make はファイルをバイトとしてアップロードし、Zapier はそれを Airtable に URL として渡します。
よくある質問
電子請求書とは何ですか?
電子請求書とは、請求書を紙の画像ではなく、機械が読み取れる構造化データとして発行することを意味します。購入者の会計システムがそれを解析し、誰も再入力することなく処理するため、コスト削減は購入者側で実現します。つまり、コスト削減のメリットは購入者側にあるのです。
現在、ビジネスや公共部門の取引において、ますます多くの管轄区域がこれを要求している。 欧州規格 EN 16931 これはコアとなるフィールドセットを定義し、ZUGFeRDのようなフォーマットはそれを実装する。
電子請求書とは何ですか?
どちらも同じ意味です。「電子請求書」は法律用語として使われる傾向があり、「e-請求書」は製品マーケティング用語として使われる傾向がありますが、どちらも電子メールに添付されたPDFファイルではなく、構造化された機械可読な請求書データを意味します。
何が電子請求書に該当しないのかを明確にしておくことが重要です。スキャンした紙の請求書は電子請求書ではありませんし、通常のPDFファイルも同様です。構造化データが埋め込まれていない場合、受信者はそれを読み取らなければなりません。
Airtableで請求書を作成できますか?
規格に準拠していません。Airtableはデータを保持し、インターフェースや印刷可能なビューにレイアウトできますが、規制で求められているEN 16931 XMLに準拠したPDF/A-3ファイルを作成することはできません。
このZapが使用する分割方法は実用的です。Airtableがレコードとなり、PDF4meが成果物を生成し、その成果物が添付ファイルとしてレコードに戻されます。
買掛金自動化はどのように機能するのですか?
3つの段階、すなわち取り込み、抽出、そして転記が行われる。取り込みでは文書を1か所に集約し、抽出ではそれらをフィールドに変換し、転記では承認ゲートを介してそれらのフィールドを台帳に書き込む。
ハイブリッド電子請求書は中間部分を省略します。XMLが既にファイル内に含まれている場合、抽出は認識ではなく解析となるため、規制当局はハイブリッド方式への移行を強く求めています。このZapは、その仕組みにおける送信側の役割を担います。
トラブルシューティング
Zap実行でステップの入力を開き、JSONとして読み込みます。Airtableの列が空の場合、キーが空になり、引用符で囲まれた金額が数値が期待される場所にテキストとして渡されます。どちらの場合も、見た目は問題ないオブジェクトが生成されますが、変換は失敗します。
適合レベルは、プロファイルに必要なフィールドを決定します。JSONファイルにプロファイルが期待するキーが欠落している状態でEN16931を主張すると、ファイルが正常に開いたとしても検証に失敗します。欠落しているキーを指定するか、より低いプロファイルに切り替えてください。
ステップ4では、ステータスが設定されていないか、フィルターが通過する値が設定されています。これは、Zapierがステップ4で警告しているループ、つまりZapが自身の出力を再処理している状態です。フィルターと更新を一緒に確認してください。
出力モードを確認してください XmlWithPdf そして、手順4と手順5はどちらも手順3のファイルURLを使用します。それ以外のものを添付すると、見た目は正しくても、ソフトウェアが読み取れる内容を含まないページが送信されます。
次のステップ
委任状はフォーマットの問題のように見えますが、実際はデータの問題です。請求書が既に行として存在する場合は、ほとんどの作業は完了しています。