SepaQX · SEPA EPC · API

SEPA-EPC-QR-Codes für Rechnungen — in Sekunden.

Leichter HTTP/HTTPS-Server, der EPC-konforme SEPA-QR-Codes als PNG erzeugt. Für Rechnungen, Billing-Systeme, Web-Apps und interne Tools. Public-Modus oder API-Key-Zugriff mit Anpassung pro Kunde.

SepaQX logo

PNG-Output · EPC-konform · HTTP API

Schnelles Beispiel
curl -X POST http://127.0.0.1:8089/sepa-qr \
  -H 'Content-Type: application/json' \
  -d '{...}' --output sepa-qr.png
PNG-Output, bereit für Rechnungen, Billing-Portale und automatisierte Workflows.

Vorteile

EPC069-12-konforme Payloads

SEPA Credit Transfer (SCT) QR-Codes, sauber validiert.

Für Rechnungs-Pipelines gebaut

Schneller PNG-Output für PDFs, Billing-Portale und interne Tools.

Public- oder API-Key-Modus

Offen oder pro Kunde kontrolliert.

Branding pro Kunde

Logo, Farben, Gradients und Modul-Stile pro API-Key.

Abgesicherter Servermodus

Reqüst-Limits, Rate-Limiting, Caching und klare Fehler.

Was ist SepaQX?

SepaQX ist ein selbst gehosteter SEPA-QR-Generator, der EPC-konforme Zahlungs-Payloads erzeugt und als PNG-QR-Code rendert. Beim Scannen ist das Zahlungsformular vorbefüllt.

Key Features

Production-first

Abgesicherter HTTP-Server mit Limits, Timeouts, Rate-Limiting und Reverse-Proxy-aware Client-IP-Handling.

Für sicheren Public-Betrieb ausgelegt.

Invoice-ready

Liefert fertige PNGs für Rechnungen, PDFs und Billing-Portale.

Ein Endpoint, ein PNG.

Branding pro Kunde

API-Key-Konfiguration unterstützt Logos, Farben, Gradients und QR-Modul-Stile pro Kunde.

Optionale Anpassung pro Key.

API-Nutzung

POST wird für Produktion empfohlen. GET ist für einfache Integrationen verfügbar, und /sepa-qr/validate gibt nur JSON zurück.

POST /sepa-qr

POST /sepa-qr
Content-Type: application/json
X-API-Key: <optional>

{
  "name": "Receiver Name",
  "iban": "DE12345678901234567890",
  "bic": "BANKDEFFXXX",
  "amount": "12.34",
  "purpose": "SALA",
  "remittance_reference": "RF18539007547034",
  "remittance_text": "Invoice 123",
  "information": "Sample EPC QR code"
}

Wenn purpose fehlt, ist der Standardwert GDDS.

Weitere Endpoints

GET /sepa-qr?... (query params)
POST /sepa-qr/validate

GET /healthz
GET /readyz
GET /version

Im Public-Modus liefert HEAD /sepa-qr PNG-Header für Health-Checks.

Fehler und Formate

Bei ungültigen Eingaben liefert der Server standardmässig ein statisches PNG-Fehlerbild. Mit format=json oder Accept: application/json gibt es JSON-Fehler. Das Bild kann mit ERROR_PNG_PATH ersetzt werden.

Validierungs-Limits

  • name: max. 70 Zeichen
  • purpose: max. 4 Zeichen (Grossschreibung)
  • remittance_reference max. 25 oder remittance_text max. 140 (gegenseitig ausschliessend)
  • information: max. 70 Zeichen
  • amount: > 0 und <= 99999999999 Cent
  • IBANs werden via MOD97-10 validiert

Security-Hinweise

  • REQUIRE_API_KEY deaktiviert Public-Access
  • ALLOW_QüRY_API_KEY leakt Keys über URLs; deaktiviert lassen
  • Trusted Proxies über TRUSTED_PROXY_CIDRS
  • Keine Zahlungsausführung und kein Datenspeicher

Installation

Nutzen Sie unser APT-Repository oder baün Sie aus dem Qüllcode.

Voraussetzungen: Linux mit systemd. Build aus Source benoetigt Go 1.24+.

Installation via APT

curl -fsSL https://install.safe-cap.com/linux/apt/pubkey.gpg | \
  sudo gpg --dearmor -o /usr/share/keyrings/safe-cap.gpg
echo "deb [signed-by=/usr/share/keyrings/safe-cap.gpg] https://install.safe-cap.com/linux/apt stable main" | \
  sudo tee /etc/apt/sources.list.d/safe-cap.list
sudo apt update
sudo apt install sepaqx

Aus dem Qüllcode baün

git clone https://github.com/safe-cap/sepaqx sepaqx
cd sepaqx
go build -o sepaqx .
sudo install -m 0755 sepaqx /usr/bin/sepaqx
sudo install -d /etc/sepaqx /etc/sepaqx/tls
sudo cp examples/.env.example /etc/sepaqx/.env

Projekt unterstützen

SepaQX ist frei und Open Source. Wenn es Ihnen Zeit bei der Integration von SEPA-QR-Zahlungen spart oder Rechnungsfehler reduziert, hilft Unterstützung bei langfristiger Wartung und Weiterentwicklung.

Kommerzieller Support und individülle Integrationen verfügbar — Hilfe passend zu Ihrem Stack.

Starten

In wenigen Minuten lokal installieren oder per HTTP/HTTPS-API integrieren.