IbnKhafagah for Development SINCE 2018
ERP & Business Systems

Cashify POS — Multi‑Tenant SaaS

Point of sale sold as a service: every customer gets a fully separate database and subdomain, and subscribes to a plan that decides which features unlock. The product is API-first — the dashboard and the mobile app are both clients of the same API.

  • Delivered 2025
  • Our role Product build: tenant isolation, the subscription engine, and the complete API

Overview

Multi‑tenant POS sold by subscription plans: stock and transfers, quotations, sale and purchase returns, multi‑currency and multi‑language, plus a full mobile API.

01The challenge

Selling the system by subscription changes the architecture at the root. One store’s data must never touch another’s — not through a forgotten filter, not through a direct query — and the plan has to genuinely gate what a subscriber can do, rather than being a label on a pricing page.

At the same time, onboarding a new subscriber has to be instant: database, domain, seed data and an admin account, with no manual step.

02What we built

We used database-per-tenant isolation via stancl/tenancy, so separation is structural rather than logical: no query can cross a tenant boundary even if a filter is forgotten. Routes are split into tenant routes and platform-admin routes, each with its own middleware.

Plans are modelled as features attached to a plan and checked at the point of use, not only at the point of display. New-subscriber signup runs a provisioning path that creates the database, domain and seed data in a single step.

The product itself was built API-first over a repository pattern, so every dashboard screen and every app screen consumes the same endpoints — a feature is built once and reaches both.

03The outcome

The platform became sellable with no per-customer operational cost: a subscription ends in a working store within seconds instead of a manually deployed copy per subscriber.

Multi-currency and multi-language are built into the core, so the same product sells into more than one market without a separate build per market.

◆

What the system does

The modules that were delivered and put into daily use.

  • 01

    Full per-tenant isolation with a separate database and subdomain, provisioned automatically at signup.

  • 02

    Subscription plans with features gated at the point of use, plus subscription billing and payments.

  • 03

    Stock across warehouses and stores: transfers, adjustments, units and base units, and product variations.

  • 04

    A complete sale and purchase cycle with returns on both sides, quotations, held invoices and partial payments.

  • 05

    Multi-currency, multi-language and multi-tax, with coupons tied to specific products.

  • 06

    A platform-admin console: plans, features, subscribers, currencies, languages and marketing-site content.

  • 07

    A complete Sanctum-secured API (36 modules) serving the dashboard and the app from the same endpoints.

  • 08

    Multiple payment gateways: Stripe, PayPal, Razorpay and Paystack, plus SMS notifications with editable templates.

◇

Technologies used

What this system is actually built on — not a generic list.

Core

Laravel 10 PHP 8.1 MySQL Sanctum

SaaS Architecture

stancl/tenancy Repository Pattern Spatie Permission Spatie Query Builder

Payments

Stripe PayPal Razorpay Paystack

Operations

Spatie Media Library Maatwebsite Excel DomPDF mPDF Barcode