Airtable

Airtable Integration

Route A – no code

Generate e-invoices directly from Airtable records – without your own server infrastructure. Connect Airtable to invoice-api.xhub via Zapier, Make.com, or n8n.

Route A: Automation Platform (available)

Airtable is a native connector on Zapier, Make.com, and n8n – all three platforms already have an invoice-api.xhub integration. Link them in minutes, no code required.

How does the integration work?

You use one of the three automation platforms as middleware between Airtable and invoice-api.xhub. The workflow always follows the same pattern:

1

Trigger: Airtable record

A new or updated record in your Airtable base triggers the workflow.

2

Action: call invoice-api.xhub

The record fields (invoice number, buyer, amount, …) are passed to invoice-api.xhub's Generate, Parse, or Validate operation.

3

Result: write back

The generated document (XML, PDF) or validation result is written back to the Airtable record as an attachment or status field.

3 available operations

invoice-api.xhub offers three operations you can call via the automation connector.

Generate

Creates a compliant e-invoice (PDF, XRechnung, ZUGFeRD) from the invoice data in the Airtable record.

POST /api/v1/invoice/{countryCode}/{format}/generate

Parse

Reads an existing e-invoice (XML or PDF) and returns structured data – e.g. to import incoming invoices into Airtable.

POST /api/v1/invoice/parse

Validate

Checks invoice data against country-specific KoSIT schemas (free, no quota). Write the result back as a status field.

POST /api/v1/invoice/{countryCode}/validate

14 EU countries, 3 formats

invoice-api.xhub supports PDF (all 14 countries), XRechnung and ZUGFeRD (Germany), and other country-specific formats.

PDF

Available for all 14 EU countries. Standard invoice in PDF format.

XRechnung

German B2G/B2B mandate. XML format per EN-16931 and KoSIT standard.

ZUGFeRD

PDF with embedded XML (hybrid format). Compatible with Factur-X.

Authentication

All invoice-api.xhub endpoints are authenticated via Bearer API key. Create the key in the console and set it as a header:

bash
1# Header für alle invoice-api.xhub-Requests
2Authorization: Bearer sk_live_xxxxxxxxxxxxxxxxxxxx
3 
4# In Zapier: "Custom Request" Headers-Feld
5# In Make.com: HTTP-Modul "Add a header"
6# In n8n: HTTP Request Node Authentication = "Header Auth"

Choose your automation platform

Zapier

Zapier

5,000+ app connections, drag-and-drop editor, no code. Perfect for simple Airtable → e-invoice workflows.

  1. 1

    Create Zap: Trigger "Airtable – New Record" or "Updated Record"

  2. 2

    Action: "Webhooks by Zapier" → POST to invoice-api.xhub Generate endpoint

  3. 3

    Action: "Airtable – Update Record" – write PDF/XML back as attachment

json
1# Zapier Workflow: Airtable XRechnung generieren
2 
3# 1. Trigger: Airtable New Record (oder Updated Record)
4# Base: "Aufträge" | Table: "Rechnungen"
5 
6# 2. Action: Webhooks by Zapier Custom Request
7# Method: POST
8# URL: https://service.invoice-api.xhub.io/api/v1/invoice/de/xrechnung/generate
9# Headers: Authorization: Bearer {{your_api_key}}
10# Content-Type: application/json
11# Body:
12{
13 "invoice": {
14 "invoiceNumber": "{{airtable_invoice_number}}",
15 "type": "invoice",
16 "issueDate": "{{airtable_issue_date}}",
17 "dueDate": "{{airtable_due_date}}",
18 "currency": "EUR",
19 "seller": {
20 "name": "{{airtable_seller_name}}",
21 "vatId": "{{airtable_seller_vat_id}}",
22 "street": "{{airtable_seller_street}}",
23 "city": "{{airtable_seller_city}}",
24 "postalCode": "{{airtable_seller_zip}}",
25 "countryCode": "DE"
26 },
27 "buyer": {
28 "name": "{{airtable_buyer_name}}",
29 "vatId": "{{airtable_buyer_vat_id}}",
30 "street": "{{airtable_buyer_street}}",
31 "city": "{{airtable_buyer_city}}",
32 "postalCode": "{{airtable_buyer_zip}}",
33 "countryCode": "DE"
34 },
35 "countrySpecific": { "buyerReference": "{{airtable_buyer_ref}}" },
36 "items": [{
37 "position": 1,
38 "description": "{{airtable_item_desc}}",
39 "quantity": {{airtable_quantity}},
40 "unit": "C62",
41 "unitPrice": {{airtable_unit_price}},
42 "taxRate": 19,
43 "netAmount": {{airtable_net}},
44 "taxAmount": {{airtable_tax}},
45 "grossAmount": {{airtable_gross}}
46 }],
47 "subtotal": {{airtable_subtotal}},
48 "total": {{airtable_total}},
49 "taxSummary": [{ "taxRate": 19, "netAmount": {{airtable_subtotal}}, "taxAmount": {{airtable_tax_sum}} }],
50 "paymentTerms": { "dueDays": 30 }
51 }
52}
53 
54# 3. Action: Airtable Update Record
55# Field "XRechnung_URL": {{zapier_step2_filename}}
56# Field "Status": "Rechnung erstellt"
Make.com

Make.com

Visual workflow builder with EU data centers. Ideal for complex scenarios with routers, error handlers, and data stores.

  1. 1

    Create scenario: Airtable module "Watch Records" as trigger

  2. 2

    HTTP module: POST to invoice-api.xhub (Authorization: Bearer …)

  3. 3

    Airtable module "Update a Record" – write result back

json
1// Make.com Szenario: Airtable → ZUGFeRD generieren
2 
3// Modul 1: Airtable – Watch Records
4// Base: "Aufträge"
5// Table: "Rechnungen"
6// Filter: {Status} = "Abgeschlossen"
7 
8// Modul 2: HTTP – Make a request
9{
10 "url": "https://service.invoice-api.xhub.io/api/v1/invoice/de/zugferd/generate",
11 "method": "POST",
12 "headers": [
13 { "name": "Authorization", "value": "Bearer {{connection.apiKey}}" },
14 { "name": "Content-Type", "value": "application/json" }
15 ],
16 "body": {
17 "invoice": {
18 "invoiceNumber": "{{1.invoiceNumber}}",
19 "type": "invoice",
20 "issueDate": "{{1.issueDate}}",
21 "seller": {
22 "name": "{{1.sellerName}}",
23 "vatId": "{{1.sellerVatId}}",
24 "street": "{{1.sellerStreet}}",
25 "city": "{{1.sellerCity}}",
26 "postalCode": "{{1.sellerZip}}",
27 "countryCode": "DE"
28 },
29 "buyer": {
30 "name": "{{1.buyerName}}",
31 "vatId": "{{1.buyerVatId}}",
32 "street": "{{1.buyerStreet}}",
33 "city": "{{1.buyerCity}}",
34 "postalCode": "{{1.buyerZip}}",
35 "countryCode": "DE"
36 },
37 "items": [{ "position": 1, "description": "{{1.itemDesc}}",
38 "quantity": "{{1.qty}}", "unit": "C62", "unitPrice": "{{1.price}}",
39 "taxRate": 19, "netAmount": "{{1.net}}", "taxAmount": "{{1.tax}}",
40 "grossAmount": "{{1.gross}}" }],
41 "subtotal": "{{1.subtotal}}",
42 "total": "{{1.total}}",
43 "taxSummary": [{ "taxRate": 19, "netAmount": "{{1.subtotal}}", "taxAmount": "{{1.taxSum}}" }],
44 "paymentTerms": { "dueDays": 30 }
45 }
46 }
47}
48 
49// Modul 3: Airtable – Update a Record
50// Record-ID: {{1.id}}
51// ZUGFeRD_PDF: {{2.filename}}
52// Status: "Rechnung erstellt"
n8n

n8n

Open-source, self-hostable, native invoice-api.xhub community node. Ideal for teams with their own infrastructure and complex logic.

  1. 1

    Workflow: Airtable trigger "On Record Created/Updated"

  2. 2

    Node: Invoice-api.xhub (Community Node) – select operation

  3. 3

    Airtable node: Update record with result

bash
1# n8n Workflow: Airtable E-Rechnung validieren
2 
3# Node 1: Airtable Trigger
4# Operation: On Record Created
5# Base: "Eingangsrechnungen"
6# Table: "Rechnungen"
7 
8# Node 2: Invoice-api.xhub (Community Node)
9# Operation: Validate
10# Country: de
11# Invoice JSON: {{ $json.rechnungsdaten }}
12 
13# Node 3: IF (valid === true)
14# True Airtable Node: Update "Validiert" = true
15# False Airtable Node: Update "Fehler" = {{ $json.errors }}
16 
17# Installation des Community Node:
18# Settings Community Nodes Install n8n-nodes-invoice-api-xhub

Typical use cases

Invoice after job completion

When a record in the Airtable base gets the status "Completed", an XRechnung is automatically generated and stored as an attachment.

  1. 1Trigger: Airtable – Record status changed to "Completed"
  2. 2Action: invoice-api.xhub → Generate (XRechnung / ZUGFeRD)
  3. 3Action: Airtable – Add attachment (PDF/XML) to the record

Validate incoming invoices

Upload incoming e-invoices (XML) to an Airtable base and automatically validate them against KoSIT schemas.

  1. 1Trigger: Airtable – new attachment in "Inbox" base
  2. 2Action: invoice-api.xhub → Validate
  3. 3Action: Airtable – Update "Validated" checkbox and error field

Structure incoming invoices

Parse incoming PDF invoices or XML files and automatically import all fields into your Airtable vendor table.

  1. 1Trigger: Email attachment received (Zapier / Make)
  2. 2Action: invoice-api.xhub → Parse (auto-detect format)
  3. 3Action: Airtable – Create new record with parsed fields

Airtable Scripting (optional)

If you prefer to stay inside Airtable: you can also call invoice-api.xhub via the Airtable Scripting Extension – a JavaScript snippet is enough for a simple Generate call. For production workflows we still recommend the automation route (Zapier/Make/n8n) for better error handling and monitoring.

Get started now

Get a free API key and test your first Airtable workflow in 5 minutes. No credit card, no subscription.