Airtable Integration
Route A – no codeGenerate 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:
Trigger: Airtable record
A new or updated record in your Airtable base triggers the workflow.
Action: call invoice-api.xhub
The record fields (invoice number, buyer, amount, …) are passed to invoice-api.xhub's Generate, Parse, or Validate operation.
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}/generateParse
Reads an existing e-invoice (XML or PDF) and returns structured data – e.g. to import incoming invoices into Airtable.
POST /api/v1/invoice/parseValidate
Checks invoice data against country-specific KoSIT schemas (free, no quota). Write the result back as a status field.
POST /api/v1/invoice/{countryCode}/validate14 EU countries, 3 formats
invoice-api.xhub supports PDF (all 14 countries), XRechnung and ZUGFeRD (Germany), and other country-specific formats.
Available for all 14 EU countries. Standard invoice in PDF format.
German B2G/B2B mandate. XML format per EN-16931 and KoSIT standard.
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:
1# Header für alle invoice-api.xhub-Requests2Authorization: Bearer sk_live_xxxxxxxxxxxxxxxxxxxx3 4# In Zapier: "Custom Request" → Headers-Feld5# In Make.com: HTTP-Modul → "Add a header"6# In n8n: HTTP Request Node → Authentication = "Header Auth"Choose your automation platform
Zapier
5,000+ app connections, drag-and-drop editor, no code. Perfect for simple Airtable → e-invoice workflows.
- 1
Create Zap: Trigger "Airtable – New Record" or "Updated Record"
- 2
Action: "Webhooks by Zapier" → POST to invoice-api.xhub Generate endpoint
- 3
Action: "Airtable – Update Record" – write PDF/XML back as attachment
1# Zapier Workflow: Airtable → XRechnung generieren2 3# 1. Trigger: Airtable – New Record (oder Updated Record)4# Base: "Aufträge" | Table: "Rechnungen"5 6# 2. Action: Webhooks by Zapier – Custom Request7# Method: POST8# URL: https://service.invoice-api.xhub.io/api/v1/invoice/de/xrechnung/generate9# Headers: Authorization: Bearer {{your_api_key}}10# Content-Type: application/json11# 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 Record55# Field "XRechnung_URL": {{zapier_step2_filename}}56# Field "Status": "Rechnung erstellt"Make.com
Visual workflow builder with EU data centers. Ideal for complex scenarios with routers, error handlers, and data stores.
- 1
Create scenario: Airtable module "Watch Records" as trigger
- 2
HTTP module: POST to invoice-api.xhub (Authorization: Bearer …)
- 3
Airtable module "Update a Record" – write result back
1// Make.com Szenario: Airtable → ZUGFeRD generieren2 3// Modul 1: Airtable – Watch Records4// Base: "Aufträge"5// Table: "Rechnungen"6// Filter: {Status} = "Abgeschlossen"7 8// Modul 2: HTTP – Make a request9{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 Record50// Record-ID: {{1.id}}51// ZUGFeRD_PDF: {{2.filename}}52// Status: "Rechnung erstellt"n8n
Open-source, self-hostable, native invoice-api.xhub community node. Ideal for teams with their own infrastructure and complex logic.
- 1
Workflow: Airtable trigger "On Record Created/Updated"
- 2
Node: Invoice-api.xhub (Community Node) – select operation
- 3
Airtable node: Update record with result
1# n8n Workflow: Airtable → E-Rechnung validieren2 3# Node 1: Airtable Trigger4# Operation: On Record Created5# Base: "Eingangsrechnungen"6# Table: "Rechnungen"7 8# Node 2: Invoice-api.xhub (Community Node)9# Operation: Validate10# Country: de11# Invoice JSON: {{ $json.rechnungsdaten }}12 13# Node 3: IF (valid === true)14# True → Airtable Node: Update "Validiert" = true15# False → Airtable Node: Update "Fehler" = {{ $json.errors }}16 17# Installation des Community Node:18# Settings → Community Nodes → Install → n8n-nodes-invoice-api-xhubTypical 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.
- 1Trigger: Airtable – Record status changed to "Completed"
- 2Action: invoice-api.xhub → Generate (XRechnung / ZUGFeRD)
- 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.
- 1Trigger: Airtable – new attachment in "Inbox" base
- 2Action: invoice-api.xhub → Validate
- 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.
- 1Trigger: Email attachment received (Zapier / Make)
- 2Action: invoice-api.xhub → Parse (auto-detect format)
- 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.