Für Entwickler:innen
Mangoe als
Payment Provider.
Wie Stripe Checkout: Session per API anlegen, Kund:in zum gehosteten Checkout schicken, Abschluss per Webhook oder Status-Abfrage erfahren. Inklusive Rückleitung in deinen Shop mit ?session_id=…&order=….
{
"id": "cs_9f2…",
"checkoutUrl": "…/c/cs_9f2…",
"status": "PENDING"
}In vier Schritten
Von Shop zu
bezahlt.
API-Key holen
Im Dashboard unter „Website-Einbindung“ einen Key erstellen. Er gehört in dein Backend – nie ins Frontend.
↗Checkout-Session anlegen
Dein Server ruft POST /api/v1/checkout/sessions auf und erhält eine checkoutUrl plus Session-ID.
↗Kund:in bezahlen lassen
Leite auf die checkoutUrl weiter (oder MangoePay.redirect). Der Checkout läuft auf deiner Mangoe-Domain.
↗Abschluss erfahren
Per Webhook (sofort, empfohlen) oder per GET /api/v1/checkout/sessions/:id bis paid: true. Danach Bestellung erfüllen.
↗Events & Endpunkte
Was deine Website
wissen muss.
/api/v1/checkout/sessions
Auth: Authorization: Bearer mng_live_… · Body: paymentLinkSlug (oder paymentLinkId), bei „Pay what you want“ zusätzlich amountCents, optional externalReference, customerEmail, successUrl, cancelUrl, metadata. Antwort enthält checkoutUrl.
/api/v1/checkout/sessions/:id
Polling für dein Backend: Antwort mit paid, orderNumber, orderStatus, externalReference. Solange abfragen, bis paid: true oder Status ≠ PENDING.
/api/v1/orders/:orderNumber
Einzelne Bestellung abgleichen: status, paid, amountCents, paymentMethod, sessionId.
checkout.session.completed
Wir POSTen JSON an deine Webhook-URL (pro Payment Link im Dashboard): orderNumber, externalReference, amountCents, customerEmail, metadata. Signatur in X-Mangoe-Signature (HMAC-SHA256 mit deinem Webhook-Secret prüfen). Fehler schlagen im Dashboard unter „Letzte Webhooks“ auf; dort kannst du erneut senden.
mangoe.js + Rückleitung
<script src="/mangoe.js">, dann MangoePay.redirect(session.checkoutUrl) oder Button mit data-mangoe-checkout. Nach Zahlung landet die Kund:in auf deiner successUrl?session_id=…&order=… – dort Abschluss per Status-Abfrage verifizieren, nie allein der URL vertrauen.
Checkout im Iframe
Der Kunde muss den Shop nie verlassen: MangoePay.embed("#pay-box", session.checkoutUrl) lädt den Checkout ins Iframe (kein X-Frame-Options, keine Cookies nötig). Tippie- und FLIZpay-Zahlungen öffnen sich automatisch in einem neuen Tab (im Iframe funktionieren sie nicht) – das Embed wechselt solange auf die Warte-Seite und erkennt die Bestätigung automatisch, der Rücksprung zum Shop bricht danach auf Top-Level aus. Auf Abschluss ohne Redirect hören: message-Event mit data.type === "mangoe:payment.succeeded" (sessionId, order) – danach serverseitig per Status-Abfrage verifizieren und Bestellung erfüllen.