Developers

GloryPay QR API

Zeige einen SEPA-QR-Code für einen Artikel und einen Preis. Dein Kunde scannt ihn mit seiner Banking-App und zahlt per Überweisung, direkt auf das GloryPay-Konto des Verkäufers.

Möglichkeiten, GloryPay QR zu nutzen

Wähle, was zu deinem Shop passt. Jede Möglichkeit erstellt denselben SEPA-QR-Code, und das Geld geht direkt auf das GloryPay-Konto des Verkäufers.

API für deine eigene Software

Java, PHP, Node.js, Python oder jede Website mit eigenem Backend (auch hinter nginx). Ein Aufruf: POST /api/v1/qr mit dem Artikel und dem Preis.

API-Dokumentation lesen

WooCommerce-Plugin

Für WordPress-Shops. Fügt die Zahlungsart GloryPay QR zum Checkout hinzu und zeigt den QR-Code auf der Dankeseite.

glorypay-qr.zip herunterladen

PrestaShop-Modul im Test

Für PrestaShop 1.7.7, 8 und 9. Die Bestellung erhält den Status "Wartet auf GloryPay-QR-Zahlung" und die Bestätigungsseite zeigt den QR-Code.

glorypayqr.zip herunterladen

Demo-Shop

Sieh dir den Checkout aus Kundensicht an: Produkt wählen, per QR zahlen und sehen, was dein Kunde sieht.

Demo-Shop öffnen

Zugang: Verkäufercode

GloryPay erstellt einen Verkäufercode, nachdem Name und IBAN des Verkäufers geprüft wurden. Verwende ihn nur auf deinem Server, nie in einer Webseite oder App.

Verkäufercode anfragen

Entwickler-Bereich

Von einem Verkäufer eingeladen? Melde dich an und sieh seinen Verkäufercode und Testcode, das Protokoll deiner API-Anfragen, die Plugins und welche Banking-Apps den QR-Code lesen.

Entwickler-Bereich öffnen

Welche Banking-Apps lesen den QR-Code?

Der GloryPay-QR folgt dem europäischen EPC-Standard (SEPA-Überweisung). So weit sind die Banking-Apps heute. (Stand 19/10/2026)

Kamera: scannt den QR von einem anderen Bildschirm oder Papier. Gleiches Handy: liest den QR aus einem PDF oder Bild auf dem Handy selbst.

BankKameraGleiches Handy
Belgien
KBC / KBC Brussels
PDF an KBC Mobile teilen (SmartPaste)
JaJa
BNP Paribas Fortis (Easy Banking App)JaNicht angegeben
BelfiusJaNicht angegeben
ING BelgiëUnbekanntUnbekannt
ArgentaUnbekanntUnbekannt
Deutschland · dort "GiroCode" genannt
Sparkasse
Fotoüberweisung > Importieren (PDF, PNG, JPEG)
JaJa
DKB
Import von PDF oder Foto (Nutzerberichte)
JaWahrscheinlich
Deutsche Bank
vorhandene Fotos
JaJa
ING DeutschlandJaNicht angegeben
CommerzbankJaNicht angegeben
Volksbank / Raiffeisenbank (VR Banking)JaNicht angegeben
N26JaNicht angegeben
Niederlande
INGJaNicht angegeben
bunqJaNicht angegeben
KnabJaNicht angegeben
ASN Bank, SNS, RegioBankJaNicht angegeben
RabobankNeinNein
ABN AMRONeinNein
TriodosNeinNein
Frankreich
BNP Paribas, Société Générale, Crédit Agricole und BPCE führen den QR noch ein. Noch nicht zuverlässig.
Revolut
von GloryPay getestet (französisches Konto): Foto vom Bildschirm und PDF-Upload funktionieren
JaJa

Quelle: Hilfeseiten der Banken, nicht von uns pro App getestet.

Tipp für deinen Kunden am Handy

  1. Die Kopier-Buttons (IBAN, Betrag, Verwendungszweck) funktionieren bei jeder Bank.
  2. "Zahlungsauftrag herunterladen (PDF)" funktioniert bei KBC, Revolut, Sparkasse, Deutsche Bank und wahrscheinlich DKB.
  3. Der QR-Code ist zum Bezahlen mit einem zweiten Gerät oder am Computer.

1. Verkäufercode anfragen

Jeder Verkäufer mit einem GloryPay-Konto erhält von GloryPay einen Verkäufercode. Frag ihn über den Support an. Name und IBAN des Verkäufers werden von GloryPay mit dem Code verknüpft und können nie über die API geändert werden.

Bewahre den Code auf deinem Server auf. Setze ihn nie in eine Webseite, eine App oder JavaScript, das Kunden lesen können.

Testcode. Neben dem Verkäufercode gibt es einen Testcode (er beginnt mit gps_test_). Der Verkäufer erstellt ihn im Mitgliederbereich (Webshop & Entwickler), oder du erstellst ihn im Entwickler-Bereich. Mit einem Testcode antwortet die API genau gleich, mit "test": true, aber der QR-Code enthält keinen Zahlungsauftrag, die Zahlungsseite zeigt "TEST · nicht bezahlen" und die Anforderung läuft nach höchstens 1 Stunde ab. Nutze ihn, um deine Integration zu bauen und zu testen, und wechsle dann zum Verkäufercode.

2. QR-Code erstellen

POST https://glorypay.com/api/v1/qr
Authorization: Bearer <Verkäufercode>
Content-Type: application/json

{
  "article": "Fotoserie Sommer",
  "price": 24.99,
  "order": "WC-10452",
  "return_url": "https://shop.example/thanks",
  "valid_minutes": 1440
}
FeldPflichtBeschreibung
articlejaWas der Kunde kauft, max. 140 Zeichen.
pricejaBetrag in EUR, von 0.01 bis 100000.
orderneinDeine Bestellnummer, max. 60 Zeichen. Wird auf der Zahlungsseite angezeigt.
return_urlneinhttps-Link zurück zu deinem Shop, wird auf der Zahlungsseite angezeigt.
valid_minutesneinVon 5 bis 10080 (7 Tage). Standard 1440 (24 Stunden).

Antwort 201:

{
  "id": "Hk7pQ2xZra",
  "test": false,
  "status": "open",
  "article": "Fotoserie Sommer",
  "order": "WC-10452",
  "amount": "24.99",
  "currency": "EUR",
  "merchant": "Seller name",
  "iban": "BE68539007547034",
  "reference": "+++123/4567/89002+++",
  "epc": "BCD\n002\n1\nSCT\n...",
  "qr_svg": "<svg ...>",
  "qr_svg_url": "https://glorypay.com/api/v1/qr/Hk7pQ2xZra/svg",
  "payment_url": "https://glorypay.com/p/Hk7pQ2xZra",
  "expires_at": "2026-10-19T14:40:00.000Z"
}

3. Dem Kunden zeigen

Der QR-Code folgt dem europäischen EPC-Standard (SEPA-Überweisung). Banking-Apps füllen Empfänger, IBAN, Betrag und den strukturierten Verwendungszweck automatisch aus.

4. Zahlung prüfen

Das Geld kommt direkt auf das GloryPay-Konto des Verkäufers. Der Verkäufer findet die Zahlung in der GloryPay-App anhand des strukturierten Verwendungszwecks (reference). Eine automatische Zahlungsbestätigung gibt es noch nicht.

GET https://glorypay.com/api/v1/qr/{id} gibt die Anforderung mit ihrem status zurück: open, expired oder cancelled. Nach Ablauf antwortet das Bild mit 410.

Fehler

Statuserror
401missing_seller_code, invalid_seller_code
400missing_article, invalid_price, invalid_return_url, invalid_valid_minutes
500db_error, try_again
503not_configured

Beispiele

curl

curl -X POST https://glorypay.com/api/v1/qr \
  -H "Authorization: Bearer $GLORYPAY_SELLER_CODE" \
  -H "Content-Type: application/json" \
  -d '{"article":"Fotoserie Sommer","price":24.99,"order":"WC-10452"}'

PHP (WordPress / WooCommerce)

$r = wp_remote_post('https://glorypay.com/api/v1/qr', [
  'headers' => [
    'Authorization' => 'Bearer ' . GLORYPAY_SELLER_CODE,
    'Content-Type'  => 'application/json',
  ],
  'body' => wp_json_encode([
    'article'    => $product_name,
    'price'      => $order_total,
    'order'      => $order_id,
    'return_url' => $thank_you_url,
  ]),
]);
$qr = json_decode(wp_remote_retrieve_body($r), true);
echo '<img src="' . esc_url($qr['qr_svg_url']) . '" width="280" alt="SEPA QR code">';
echo '<a href="' . esc_url($qr['payment_url']) . '">Mit deiner Banking-App zahlen</a>';

Node.js

const res = await fetch("https://glorypay.com/api/v1/qr", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.GLORYPAY_SELLER_CODE}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ article: "Fotoserie Sommer", price: 24.99, order: "WC-10452" }),
});
const qr = await res.json(); // qr.qr_svg_url, qr.payment_url, qr.reference

Java (11+)

var body = """
    {"article":"Fotoserie Sommer","price":24.99,"order":"WC-10452"}""";
var req = HttpRequest.newBuilder(URI.create("https://glorypay.com/api/v1/qr"))
    .header("Authorization", "Bearer " + System.getenv("GLORYPAY_SELLER_CODE"))
    .header("Content-Type", "application/json")
    .POST(HttpRequest.BodyPublishers.ofString(body))
    .build();
var res = HttpClient.newHttpClient().send(req, HttpResponse.BodyHandlers.ofString());
// res.statusCode() == 201, res.body() enthält qr_svg_url, payment_url und reference

Python

import os, requests

r = requests.post(
    "https://glorypay.com/api/v1/qr",
    headers={"Authorization": f"Bearer {os.environ['GLORYPAY_SELLER_CODE']}"},
    json={"article": "Fotoserie Sommer", "price": 24.99, "order": "WC-10452"},
    timeout=20,
)
qr = r.json()  # qr["qr_svg_url"], qr["payment_url"], qr["reference"]