KelanaPay POS
Fintech 2023

KelanaPay POS

Point-of-sale and payments app for small merchants: QRIS and card acceptance, inventory, daily settlement and a merchant portal with real-time reports.

Client

KelanaPay

Role

Product Owner

Year

2023

Duration

10 months

Stack

  • Flutter
  • Laravel
  • PostgreSQL
  • Redis
  • Midtrans

KelanaPay wanted a POS that a warung owner could set up in ten minutes and that an accountant could trust at month end. The product sits between the two and had to keep both happy.

The brief

Accept QRIS and cards, track stock, settle daily and give merchants a portal that explains every rupiah — on low-end Android tablets with unreliable connectivity.

Key points

  • Offline-first ordering with conflict-free sync.
  • Idempotent payment and refund flows.
  • Daily settlement with downloadable reports.
  • Merchant onboarding with document verification.

What we built

A Flutter POS with an offline-first order queue, a Laravel API with idempotent payment handling through Midtrans, and a merchant portal with settlement reports that reconcile to the cent.

KelanaPay POS
Illustration for “KelanaPay POS”

Example in code

<?php

namespace App\Models;

use App\Support\Enums\PostStatus;
use Illuminate\Database\Eloquent\Builder;

class Post extends Model
{
    public function scopePublished(Builder $query): Builder
    {
        return $query
            ->where('status', PostStatus::Published)
            ->where('published_at', '<=', now());
    }
}

Outcome

Three thousand active merchants after the first year and a settlement dispute rate low enough that the finance team stopped asking for a daily call.

We measured before we optimised, which saved us from rewriting the wrong module.

Takeaways

Payments are mostly about what happens when something fails; the happy path was the easy part.