Card acquiring over Jaywan, Visa and Mastercard; account-to-account payments over Aani; settlement over UAEFTS; autopay over UAEDDS. Every surface below is live and runs against a rail simulator, so the whole flow can be demonstrated end to end without a sponsor bank connection.
The control plane: merchants, KYC, risk, routing, ledger, reconciliation, settlement, approvals, audit โ and the rail simulator.
Self-serve: take a payment, issue a refund, read a settlement report, rotate API keys, inspect webhook deliveries.
Onboarding with UAE PASS, device binding, bank linking, send money, scan & pay, requests to pay, autopay mandates.
The page a customer sees. Card details never reach the merchant's servers โ they are tokenised in the vault.
There are no demo accounts on this deployment. npm run seed was deliberately
not run: it creates businesses and people that all share one password published in the
package, which on a server anyone can reach is a server anyone can sign into.
Operators sign in at /admin/ with the address they were given. Merchants are onboarded from that console and sign in at /merchant/; until a merchant exists the platform cannot take a payment.
docs/UAE-REGULATORY.md.