Der Warenkorb wird auf dem Server vom selben Resolver bepreist, den die Zahlungsprüfung nutzt, sodass Warenkorb und Bank sich nicht widersprechen können. Beim Öffnen wird der Warenkorb anhand des Live-Katalogs neu berechnet: In der Produktion enthielten 4 von 15 offenen Warenkörben eine veraltete Summe. Die Rechnung zeigt Listenpreis, Produktrabatte und Gutschein als getrennte Zeilen.
Der Checkout ist eine einzige Seite. Auf dem Smartphone steht die Bestellübersicht zuerst. Nicht angemeldete Kunden melden sich mit Mobilnummer und sechsstelligem Code an, ohne die Seite zu verlassen, und für eine neue Nummer wird ein Konto angelegt. Die erste gespeicherte Adresse ist vorausgewählt. Es werden nur die Zahlungsarten angezeigt, für die die Bestellung infrage kommt, und der Button nennt den Betrag: «پرداخت … تومان». Was noch nicht nutzbar ist, wird in einem Satz erklärt statt mit einem ausgegrauten Element, etwa ein Wallet-Guthaben, dem ein genannter Betrag fehlt.
Die Zahlung läuft für jedes iranische Gateway über einen einzigen Adapter: Zarinpal, Zibal, Torob Pay, SnappPay und DigiPay, dazu die Wallet des Shops. Bevor jemand zu einer Bank weitergeleitet wird, berechnet der Server die Summe neu und verweigert die Belastung, wenn sie nicht auf den Rial genau mit dem Warenkorb übereinstimmt. Die Bestellung wird erst angelegt, nachdem das Gateway die Zahlung bestätigt hat. Ein wiederholter Callback kann keine zweite Bestellung erzeugen, und ein Job, der alle zehn Minuten läuft, übernimmt Zahlungen, deren Callback nie ankam.
Die Form des Adapters stammt aus echten Fehlern. Innerhalb von zwei Tagen im September brauchte DigiPay sieben Fixes: eine leere Endpoint-Einstellung, die den Checkout lahmlegte, ein Anfrageformat, durch das gültige Zugangsdaten ungültig wirkten, eine Rückleitung vom Gateway, die auf eine fehlende Route traf, und eine Betragseinheit, die bei einer Live-Zahlung als Rial bestätigt werden musste. Aus jedem Fehler wurde eine Regel: Der Endpoint von DigiPay ist eine Pflichteinstellung, deren leerer Wert das Gateway ausblendet, jedes Gateway akzeptiert beide Arten von Rückleitungsanfragen, und eine Betragseinheit wird nie geraten.