Use Cases

Billomat API Integration: Buchhaltung automatisieren mit n8n und Make.com

So verbinden Sie Billomat mit Ihren anderen Business-Tools.

12 min Lesezeit

Billomat ist eine beliebte Cloud-Buchhaltungssoftware für Freelancer und kleine Unternehmen in Deutschland. Mit der Billomat API können Sie Rechnungen automatisch erstellen, Zahlungen tracken und Ihre Buchhaltung automatisieren. In diesem Guide zeigen wir die wichtigsten Automatisierungen.

Warum Billomat automatisieren?

Typische manuelle Aufgaben:
AufgabeManueller AufwandAutomatisiert
Rechnung aus Bestellung erstellen10 Min/RechnungAutomatisch
Mahnungen versenden30 Min/WocheAutomatisch
Zahlungseingänge prüfen20 Min/TagEchtzeit
Kundendaten synchronisieren5 Min/KundeAutomatisch
Monatsabschluss vorbereiten2h/Monat1 Klick

Billomat API Grundlagen

API-Zugang einrichten

  • Billomat → Einstellungen → Schnittstellen
  • API aktivieren
  • API-Schlüssel generieren
  • Schlüssel sicher speichern
  • API-Authentifizierung

    // Alle Requests brauchen diesen Header
    

    {

    "headers": {

    "X-BillomatApiKey": "YOUR_API_KEY",

    "Content-Type": "application/json"

    }

    }

    Basis-URL

    https://IHRE_BILLOMAT_ID.billomat.net/api/

    Verfügbare Endpunkte

    EndpunktFunktion
    /clientsKunden verwalten
    /invoicesRechnungen
    /offersAngebote
    /credit-notesGutschriften
    /recurringWiederkehrende Rechnungen
    /paymentsZahlungen
    /articlesArtikel/Produkte

    Workflow 1: Automatische Rechnungserstellung

    Der Workflow

    Shopify/WooCommerce (Neue Bestellung)
    

    Kunde in Billomat suchen/anlegen

    Rechnung erstellen

    PDF generieren

    Per E-Mail versenden

    n8n Implementation

    Node 1: Webhook von Shop Node 2: Kunde suchen
    // Node: HTTP Request
    

    {

    "method": "GET",

    "url": "https://IHRE_ID.billomat.net/api/clients",

    "qs": {

    "email": "{{ $json.customer.email }}"

    },

    "headers": {

    "X-BillomatApiKey": "{{ $env.BILLOMAT_API_KEY }}"

    }

    }

    Node 3: Kunde anlegen (falls neu)
    // Node: HTTP Request
    

    {

    "method": "POST",

    "url": "https://IHRE_ID.billomat.net/api/clients",

    "headers": {

    "X-BillomatApiKey": "{{ $env.BILLOMAT_API_KEY }}",

    "Content-Type": "application/json"

    },

    "body": {

    "client": {

    "name": "{{ $json.customer.name }}",

    "email": "{{ $json.customer.email }}",

    "street": "{{ $json.shipping.address }}",

    "zip": "{{ $json.shipping.zip }}",

    "city": "{{ $json.shipping.city }}",

    "country_code": "DE"

    }

    }

    }

    Node 4: Rechnung erstellen
    // Node: HTTP Request
    

    {

    "method": "POST",

    "url": "https://IHRE_ID.billomat.net/api/invoices",

    "headers": {

    "X-BillomatApiKey": "{{ $env.BILLOMAT_API_KEY }}",

    "Content-Type": "application/json"

    },

    "body": {

    "invoice": {

    "client_id": "{{ $json.clientId }}",

    "date": "{{ $now.format('yyyy-MM-dd') }}",

    "due_days": 14,

    "invoice-items": {

    "invoice-item": $json.items.map(item => ({

    "title": item.name,

    "quantity": item.quantity,

    "unit_price": item.price,

    "tax_rate": 19

    }))

    }

    }

    }

    }

    Node 5: Rechnung finalisieren & senden
    // Rechnung abschließen
    

    {

    "method": "PUT",

    "url": "https://IHRE_ID.billomat.net/api/invoices/{{ $json.invoice.id }}/complete",

    "headers": { "X-BillomatApiKey": "{{ $env.BILLOMAT_API_KEY }}" }

    }

    // Per E-Mail senden

    {

    "method": "POST",

    "url": "https://IHRE_ID.billomat.net/api/invoices/{{ $json.invoice.id }}/email",

    "body": {

    "email": {

    "recipients": { "to": "{{ $json.customer.email }}" },

    "subject": "Ihre Rechnung {{ $json.invoice.invoice_number }}",

    "body": "Anbei erhalten Sie Ihre Rechnung..."

    }

    }

    }

    Workflow 2: Automatisches Mahnwesen

    Der Workflow

    Schedule (täglich 9:00)
    

    Billomat: Überfällige Rechnungen

    Für jede Rechnung:

    - Mahnstufe prüfen

    - Entsprechende Mahnung senden

    Bericht an Buchhaltung

    Implementation

    // Node: HTTP Request - Überfällige Rechnungen
    

    {

    "method": "GET",

    "url": "https://IHRE_ID.billomat.net/api/invoices",

    "qs": {

    "status": "OPEN",

    "due_date_to": "{{ $now.minus(1, 'day').format('yyyy-MM-dd') }}"

    }

    }

    // Node: Code - Mahnstufe bestimmen
    

    const invoice = $json;

    const dueDate = new Date(invoice.due_date);

    const today = new Date();

    const daysOverdue = Math.floor((today - dueDate) / (1000 <em> 60 </em> 60 * 24));

    let dunningLevel, action;

    if (daysOverdue <= 7) {

    dunningLevel = 1;

    action = 'friendly_reminder';

    } else if (daysOverdue <= 14) {

    dunningLevel = 2;

    action = 'first_dunning';

    } else if (daysOverdue <= 21) {

    dunningLevel = 3;

    action = 'second_dunning';

    } else {

    dunningLevel = 4;

    action = 'final_warning';

    }

    return { dunningLevel, action, daysOverdue };

    // Node: Mahnung erstellen
    

    {

    "method": "POST",

    "url": "https://IHRE_ID.billomat.net/api/reminders",

    "body": {

    "reminder": {

    "invoice_id": "{{ $json.invoice.id }}",

    "date": "{{ $now.format('yyyy-MM-dd') }}",

    "due_days": 7,

    "level": {{ $json.dunningLevel }}

    }

    }

    }

    Workflow 3: Zahlungsabgleich

    Der Workflow

    Bank (neuer Umsatz)
    

    Verwendungszweck analysieren

    Passende Rechnung finden

    Zahlung in Billomat buchen

    Rechnung als bezahlt markieren

    Implementation

    // Node: Code - Rechnungsnummer aus Verwendungszweck
    

    const reference = $json.bankTransaction.reference;

    // Typische Muster für Rechnungsnummern

    const patterns = [

    /RE-?\d{4,}/i,

    /RG-?\d{4,}/i,

    /INV-?\d{4,}/i,

    /\d{6,}/ // Fallback: längere Zahlen

    ];

    let invoiceNumber = null;

    for (const pattern of patterns) {

    const match = reference.match(pattern);

    if (match) {

    invoiceNumber = match[0];

    break;

    }

    }

    return { invoiceNumber };

    // Node: Rechnung suchen
    

    {

    "method": "GET",

    "url": "https://IHRE_ID.billomat.net/api/invoices",

    "qs": {

    "invoice_number": "{{ $json.invoiceNumber }}"

    }

    }

    // Node: Zahlung buchen
    

    {

    "method": "POST",

    "url": "https://IHRE_ID.billomat.net/api/incoming-payments",

    "body": {

    "incoming-payment": {

    "invoice_id": "{{ $json.invoice.id }}",

    "date": "{{ $json.bankTransaction.date }}",

    "amount": {{ $json.bankTransaction.amount }},

    "comment": "Automatisch zugeordnet"

    }

    }

    }

    Workflow 4: Wiederkehrende Rechnungen

    Der Workflow

    Schedule (1. des Monats)
    

    Billomat: Fällige Recurring Invoices

    Rechnungen generieren

    Versenden

    Recurring Invoice abrufen

    // Alle wiederkehrenden Rechnungen
    

    {

    "method": "GET",

    "url": "https://IHRE_ID.billomat.net/api/recurrings"

    }

    Rechnung aus Template erstellen

    // Rechnung aus Recurring generieren
    

    {

    "method": "POST",

    "url": "https://IHRE_ID.billomat.net/api/recurrings/{{ $json.recurring.id }}/create"

    }

    Workflow 5: CRM-Synchronisation

    Der Workflow

    HubSpot (Neuer Deal gewonnen)
    

    Kunde in Billomat anlegen

    Angebot erstellen

    In Rechnung umwandeln

    Implementation

    // Node: HubSpot Deal Daten
    

    // Kunde in Billomat anlegen

    {

    "client": {

    "name": "{{ $json.deal.company_name }}",

    "email": "{{ $json.deal.contact_email }}",

    "note": "HubSpot Deal: {{ $json.deal.id }}"

    }

    }

    // Node: Angebot erstellen
    

    {

    "offer": {

    "client_id": "{{ $json.clientId }}",

    "date": "{{ $now.format('yyyy-MM-dd') }}",

    "validity": 30,

    "offer-items": {

    "offer-item": [{

    "title": "{{ $json.deal.product_name }}",

    "quantity": 1,

    "unit_price": {{ $json.deal.amount }}

    }]

    }

    }

    }

    Make.com Integration

    HTTP Module nutzen

    Da Make.com kein natives Billomat-Modul hat:

  • HTTP → Make a request
  • URL: Billomat API Endpoint
  • Headers: API Key
  • Body: JSON Payload
  • Beispiel-Szenario

    WooCommerce (New Order)
    

    HTTP: Billomat - Search Client

    Router:

    ├─ Client exists → Get ID

    └─ Client missing → HTTP: Create Client

    HTTP: Create Invoice

    HTTP: Complete Invoice

    HTTP: Send Invoice Email

    Artikel-Verwaltung

    Artikel synchronisieren

    // Artikel aus Shop in Billomat importieren
    

    {

    "method": "POST",

    "url": "https://IHRE_ID.billomat.net/api/articles",

    "body": {

    "article": {

    "number": "{{ $json.sku }}",

    "title": "{{ $json.name }}",

    "description": "{{ $json.description }}",

    "sales_price": {{ $json.price }},

    "tax_rate": 19

    }

    }

    }

    Artikel in Rechnung verwenden

    // Rechnung mit Artikel-Referenz
    

    {

    "invoice-items": {

    "invoice-item": [{

    "article_id": "{{ $json.articleId }}",

    "quantity": 2

    }]

    }

    }

    PDF-Dokumente

    Rechnung als PDF abrufen

    // PDF URL abrufen
    

    {

    "method": "GET",

    "url": "https://IHRE_ID.billomat.net/api/invoices/{{ $json.invoiceId }}/pdf"

    }

    // Response enthält PDF URL

    // Download via HTTP Request (Binary)

    PDF per E-Mail senden

    // Über Billomat E-Mail-Funktion
    

    {

    "method": "POST",

    "url": "https://IHRE_ID.billomat.net/api/invoices/{{ $json.invoiceId }}/email",

    "body": {

    "email": {

    "recipients": {

    "to": "kunde@example.com",

    "cc": "buchhaltung@firma.de"

    },

    "subject": "Ihre Rechnung Nr. {{ $json.invoiceNumber }}",

    "body": "Sehr geehrte Damen und Herren,\n\nanbei erhalten Sie Ihre Rechnung.\n\nMit freundlichen Grüßen",

    "attach_pdf": true

    }

    }

    }

    Reporting

    Umsatz-Statistiken

    // Offene Rechnungen
    

    {

    "method": "GET",

    "url": "https://IHRE_ID.billomat.net/api/invoices",

    "qs": {

    "status": "OPEN"

    }

    }

    // Bezahlte Rechnungen (Zeitraum)

    {

    "method": "GET",

    "url": "https://IHRE_ID.billomat.net/api/invoices",

    "qs": {

    "status": "PAID",

    "from": "2024-01-01",

    "to": "2024-01-31"

    }

    }

    Automatischer Monatsreport

    // Node: Code - Statistiken berechnen
    

    const invoices = $json.invoices.invoice;

    const stats = {

    total: invoices.length,

    paid: invoices.filter(i => i.status === 'PAID').length,

    open: invoices.filter(i => i.status === 'OPEN').length,

    overdue: invoices.filter(i => i.status === 'OVERDUE').length,

    revenue: invoices

    .filter(i => i.status === 'PAID')

    .reduce((sum, i) => sum + parseFloat(i.total_gross), 0)

    };

    return stats;

    Best Practices

    1. Rate Limits beachten

    // Maximal 60 Requests pro Minute
    

    // Bei Batch-Operationen: Delays einbauen

    await wait(1000); // 1 Sekunde zwischen Requests

    2. Fehlerbehandlung

    try {
    

    await createInvoice(data);

    } catch (error) {

    if (error.status === 401) {

    // API Key ungültig

    await alertAdmin('Billomat API Key prüfen!');

    } else if (error.status === 422) {

    // Validierungsfehler

    console.log('Fehler:', error.body.errors);

    }

    }

    3. Idempotenz

    // Externe Referenz nutzen um Duplikate zu vermeiden
    

    {

    "invoice": {

    "client_id": "123",

    "number": "SHOP-{{ $json.orderId }}", // Eindeutig

    // ...

    }

    }

    Kosten

    KomponenteKosten
    BillomatAb 6€/Monat
    n8n CloudAb 20€/Monat
    Make.comAb 9€/Monat

    Fazit

    Billomat-Automatisierung spart Zeit bei:

    • Rechnungserstellung aus Shop-Systemen
    • Automatischem Mahnwesen
    • Zahlungsabgleich
    • Reporting

    Nächste Schritte

  • API-Schlüssel generieren
  • Ersten Workflow erstellen (z.B. Rechnungserstellung)
  • Mahnwesen automatisieren
  • Reporting einrichten
  • Wir unterstützen Sie bei der Billomat-Automatisierung – von der Einrichtung bis zum produktiven Einsatz.

    Sie haben Fragen zur Automatisierung?

    Unsere Experten helfen Ihnen, die richtigen Entscheidungen für Ihr Unternehmen zu treffen.