Make.com Integration
Erstelle EU-konforme E-Rechnungen automatisch mit Make.com (ehemals Integromat) und thelawin.dev. Das HTTP-Modul verbindet sich direkt mit der thelawin.dev API.
Voraussetzungen
- Make.com Account (Free: 1.000 Ops/Monat)
- thelawin.dev API Key (zum Testen:
env_sandbox_demo)
Szenario erstellen
1. Trigger-Modul
Waehle einen Trigger fuer dein Szenario:
| Modul | Use Case |
|---|---|
| Webhook — Custom webhook | Empfange Daten von deiner App |
| Google Sheets — Watch Rows | Neue Tabellenzeile = Rechnung |
| Airtable — Watch Records | Neuer Datensatz = Rechnung |
| Schedule | Wiederkehrende Rechnungen (woechentlich, monatlich) |
2. HTTP-Modul konfigurieren
Fuege das Modul HTTP → Make a request hinzu:
| Feld | Wert |
|---|---|
| URL | https://api.thelawin.dev/v1/generate |
| Method | POST |
| Body type | Raw |
| Content type | JSON (application/json) |
| Request content | (JSON, siehe unten) |
Headers hinzufuegen:
| Key | Value |
|---|---|
X-API-Key | env_sandbox_demo |
Request content (JSON):
json
{
"format": "zugferd",
"template": "minimal",
"locale": "de",
"invoice": {
"number": "RE-2026-001",
"date": "2026-01-15",
"currency": "EUR",
"seller": {
"name": "Deine Firma GmbH",
"street": "Musterstrasse 1",
"city": "Berlin",
"postal_code": "10115",
"country": "DE",
"vat_id": "DE123456789"
},
"buyer": {
"name": "Kunde AG",
"city": "Muenchen",
"country": "DE"
},
"items": [
{
"description": "Beratungsleistung",
"quantity": 8,
"unit": "HUR",
"unit_price": 150.00,
"vat_rate": 19
}
]
}
}Parse response: Aktivieren, damit Make die JSON-Response automatisch in Felder aufteilt.
3. PDF verarbeiten
Die Response enthaelt pdf_base64 und filename. Nutze weitere Module:
Base64 → Datei konvertieren:
Fuege Tools → Set variable hinzu:
- Variable:
pdf_binary - Wert:
{{base64decode(HTTP.body.pdf_base64)}}
Dann Google Drive → Upload a File oder Email → Send an Email mit dem PDF als Anhang.
4. Fehlerbehandlung
Fuege einen Error Handler an das HTTP-Modul an:
- Bei
422: Validierungsfehler — Route zum Logging - Bei
402: Quota erschoepft — Route zur Benachrichtigung - Bei
5xx: Server-Fehler — Retry nach 60 Sekunden
Szenario: Airtable → ZUGFeRD → Google Drive
- Airtable — Watch Records (Tabelle "Rechnungen", Filter: Status = "Neu")
- HTTP — POST an
api.thelawin.dev/v1/generatemit Airtable-Daten - Google Drive — Upload File (Base64 → PDF)
- Airtable — Update Record (Status = "Erstellt", PDF-Link eintragen)
Dynamische Werte aus Airtable:
json
{
"invoice": {
"number": "{{1.Rechnungsnummer}}",
"date": "{{formatDate(now; 'YYYY-MM-DD')}}",
"buyer": {
"name": "{{1.Kundenname}}",
"city": "{{1.Stadt}}"
},
"items": [
{
"description": "{{1.Leistung}}",
"quantity": {{1.Menge}},
"unit_price": {{1.Einzelpreis}}
}
]
}
}Szenario: Webhook → XRechnung (B2G)
Fuer Behoerden-Rechnungen mit Leitweg-ID:
json
{
"format": "xrechnung",
"invoice": {
"leitweg_id": "{{1.leitweg_id}}",
"buyer_reference": "{{1.bestellnummer}}",
"number": "{{1.rechnungsnummer}}",
"date": "{{formatDate(now; 'YYYY-MM-DD')}}",
"seller": {
"name": "{{1.firma}}",
"vat_id": "{{1.ust_id}}"
},
"buyer": {
"name": "{{1.behoerde}}"
},
"items": {{1.positionen}}
}
}Haeufige Fehler
| Fehler | Ursache | Loesung |
|---|---|---|
401 Unauthorized | API Key fehlt oder falsch | Header X-API-Key pruefen |
422 Validation | Pflichtfelder fehlen | errors[].path in der Response pruefen |
| "Parse error" | JSON-Syntax ungueltig | JSON in einem Validator pruefen |
| Leere PDF-Datei | Base64 nicht korrekt dekodiert | base64decode() Funktion verwenden |
Naechste Schritte
- Invoice Formats — Alle 9 Formate
- Zapier Guide — Alternative No-Code-Plattform
- n8n Guide — Self-Hosted-Alternative