Zum Inhalt springen

Dokumentation

Online-Zahlung

Gäste können online über SumUp Online Checkout bezahlen. Das SumUp-Zahlungsformular (Card Widget) ist auf der Bestätigungsseite eingebettet, der Gast verlässt den Shop also nicht. Karten und weitere Zahlarten bietet SumUp je nach Land an.

Einrichtung

  1. Im SumUp-Dashboard (me.sumup.com) unter Einstellungen → Für Entwickler → API Keys einen API-Key anlegen (sup_sk_…) und den Merchant Code aus dem Profil notieren (z. B. MCXXXXXX).
  2. In GratOrder → Konfiguration → Bezahlung Merchant Code und API-Key eintragen und je Bestellart wählen: Nur bar, Nur online (SumUp) oder Bar oder online (SumUp).

Ohne Merchant Code und API-Key ist nur Barzahlung möglich. Der Webhook für Statusänderungen (/_gratorder/sumup/webhook) wird bei jedem Checkout automatisch an SumUp übergeben; dafür muss die Seite per HTTPS öffentlich erreichbar sein. Verwendet die Seite eine Content Security Policy, müssen gateway.sumup.com (Script, Frames) und api.sumup.com erlaubt sein.

Apple Pay zeigt das Widget nur, wenn alles davon erfüllt ist:

  • SumUp hat das Händlerkonto für Apple Pay freigeschaltet (Anfrage über das Kontaktformular für Entwickler).
  • Die Domain des Shops ist im SumUp-Dashboard unter Einstellungen → Für Entwickler → Payment wallets → Apple Pay registriert, bei Sandbox-Schlüsseln im Sandbox-Konto.
  • Die Datei von Apple liegt unter public/.well-known/apple-developer-merchantid-domain-association und ist unter https://<domain>/.well-known/… abrufbar.
  • Der Gast nutzt Safari auf einem Apple-Gerät mit Karte im Wallet. In Chrome, Firefox oder unter Windows erscheint nur die Kartenzahlung.

Ablauf

PLAINTEXT
Kasse ─► Wartet auf Zahlung ─► (bezahlt) ─► Neu / In Arbeit ─► …
              │
              └─► Nicht bezahlt (abgebrochen oder nach 30 Minuten)
  • Nach „Zahlungspflichtig bestellen“ legt der Shop einen SumUp-Checkout an und zeigt auf der Bestätigungsseite das Zahlungsformular. Die Bestellung reserviert den Zeitpunkt, erscheint aber noch nicht im Terminal; es gehen keine Mails raus und es wird kein Bon gedruckt.
  • Ob bezahlt wurde, fragt der Shop immer selbst bei SumUp ab (nach der Zahlung im Formular, alle 10 Sekunden auf der Bestätigungsseite und beim Webhook). Erst dann gilt die Bestellung als eingegangen: Mail an Restaurant und Gast, Terminal, bei automatischer Annahme der Bon.
  • Schlägt eine Zahlung fehl oder bricht der Gast ab, kann er es erneut versuchen (neuer Checkout) oder über Zurück zur Kasse die Bestellung ändern; der Warenkorb bleibt bis zur Zahlung erhalten. Eine neue Bestellung aus demselben Warenkorb verwirft die alte, unbezahlte.
  • Unbezahlte Bestellungen setzt der Cron nach 30 Minuten auf Nicht bezahlt; der SumUp-Checkout wird deaktiviert. Sie erscheinen nicht im Terminal und belegen keine Kapazität mehr.
  • Terminal, Bon und Mails zeigen „Online bezahlt (SumUp)“, damit an der Theke nicht kassiert wird.

Erstattung

Wird eine bezahlte Bestellung im Terminal abgelehnt oder läuft ihre Annahmefrist ab, erstattet der Shop den vollen Betrag automatisch über die SumUp-API. Die Ablehnungsmail enthält dann den Hinweis aus ##order_refund_info## (bei Neuinstallationen bereits im Standardtext, bestehende Standardtexte ergänzt die Migration). Scheitert die Erstattung, zeigt das Terminal „Erstattung fehlgeschlagen“, der Fehler steht im Contao-Systemlog – dann im SumUp-Dashboard manuell erstatten. Spätere Teilerstattungen (z. B. bei fehlendem Artikel) laufen ebenfalls über das SumUp-Dashboard.

Testen

SumUp bietet Sandbox-Händlerkonten (Dashboard → Für Entwickler → Sandboxes) ohne echte Zahlungen. Mit API-Key und Merchant Code des Sandbox-Kontos funktionieren die Testkarten; Beträge von 11,00 €, 42,01 €, 42,76 € und 42,91 € erzeugen eine fehlgeschlagene Zahlung.