Zum Hauptinhalt springen

Accounting API

Base URL: https://api.fwv-raura.ch

Buchhaltung mit Kontenplan, Buchungen, Rechnungen und Finanzberichten.

Authentifizierung erforderlich

Alle Endpoints erfordern einen gültigen Bearer Token (Vorstand).

Kontenplan

Alle Konten abrufen

GET /accounts
Authorization: Bearer <token>

Response:

[
{
"id": 1,
"number": "1000",
"name": "Kasse",
"type": "asset",
"balance": 1250.00
},
{
"id": 2,
"number": "3000",
"name": "Mitgliederbeiträge",
"type": "revenue",
"balance": 5000.00
}
]

Konto erstellen

POST /accounts
Authorization: Bearer <token>
Content-Type: application/json

{
"number": "1020",
"name": "Bankkonto",
"type": "asset"
}

Buchungen

Buchungen abrufen

GET /transactions
Authorization: Bearer <token>

Query Parameter:

  • account_id - Filter nach Konto
  • from - Startdatum (YYYY-MM-DD)
  • to - Enddatum (YYYY-MM-DD)

Response:

[
{
"id": 1,
"date": "2026-01-15",
"description": "Mitgliederbeitrag Max Muster",
"debit_account_id": 1,
"credit_account_id": 2,
"amount": 50.00,
"created_at": "2026-01-15T10:30:00Z"
}
]

Buchung erstellen

POST /transactions
Authorization: Bearer <token>
Content-Type: application/json

{
"date": "2026-01-15",
"description": "Mitgliederbeitrag Max Muster",
"debit_account_id": 1,
"credit_account_id": 2,
"amount": 50.00
}

Rechnungen

Alle Rechnungen

GET /invoices
Authorization: Bearer <token>

Response:

[
{
"id": 1,
"member_id": "<uuid>",
"member_name": "Max Muster",
"amount": 50.00,
"description": "Jahresbeitrag 2026",
"status": "open",
"created_at": "2026-01-01T00:00:00Z",
"paid_at": null
}
]

Rechnungs-Details

GET /invoices/:id
Authorization: Bearer <token>

Rechnung erstellen

POST /invoices
Authorization: Bearer <token>
Content-Type: application/json

{
"member_id": "<uuid>",
"amount": 50.00,
"description": "Jahresbeitrag 2026"
}

Rechnung als bezahlt markieren

PATCH /invoices/:id/pay
Authorization: Bearer <token>

Setzt den Status auf paid und das paid_at Datum.

Berichte

Bilanz-Bericht

GET /reports/balance
Authorization: Bearer <token>

Query Parameter:

  • date - Stichtag (YYYY-MM-DD, Standard: heute)

Gibt die Bilanz mit allen Konten und deren Saldo zurück.

Cashflow-Bericht

GET /reports/cashflow
Authorization: Bearer <token>

Query Parameter:

  • from - Startdatum (YYYY-MM-DD)
  • to - Enddatum (YYYY-MM-DD)

Gibt eine Übersicht der Ein- und Ausgaben im gewählten Zeitraum zurück.

Health Check

GET /health

Response:

{
"status": "ok",
"service": "api-accounting"
}

Hinweise

  • Die Accounting API kommuniziert intern mit der Members API (http://api-members:3000) für Mitglieder-Informationen auf Rechnungen.
  • QR-Rechnungen (Swiss QR-Bill) und Massen-Rechnungen werden über die Dispatch API generiert, da diese die PDF-Generierung übernimmt.
  • Traefik-Pfade: /invoices, /payments, /reports, /accounts