Internal Tools Β· Asiyen Dashboard

Sign in to continue

Sign in with your Asiyen admin phone number. A one-time code will be sent by SMS.

Invalid credentials. Please try again.

This tool is for Asiyen internal use only.

Asiyen Dashboard

Overview Β· Money Β· People Β· Stock

πŸ’š Taxi Payment Ratio & Dynamic P2P Fee
β€”
of merchant/agent volume is sticker payments
CURRENT P2P FEE
β€”
β€”
0% Β· R12 critical20% Β· R8 alert40% Β· R5 watch60%+ Β· R3 healthy
β€”
Customers
β€”
Merchants
β€”
Agents
β€”
Frozen Agents
πŸ“± Airtime & Data Operations

Generate vouchers

Create a new batch and assign it to an agent.

🎟️ Generate New Batch

Allocate stock to an agent

Hand existing unassigned vouchers to an agent. They stay inert until sold.

πŸ“¦ Allocate Vouchers

Comma or space separated. Only unassigned stock can be allocated β€” anything already with an agent, sold or redeemed is reported back as skipped.

All vouchers

Every voucher issued, with status and redemption detail.

πŸ“‹ All Vouchers
Code Value Status Agent Redeemed By Created Action
Loading...

Voucher statistics

Where every voucher is: in stock, with an agent, sold, redeemed. Cancelled codes are left out.

β€”
Issued
β€”
In stock (unassigned)
β€”
With agents, unsold
β€”
Sold, not yet redeemed
β€”
Redeemed
β€”
Redemption fees earned
πŸ“Š Redemption by Value

Sticker batches

Generate and track printed batches.

🏷️ Generate New Sticker Batch

Mints new sticker serials in the database. After generating, copy the command below and run it on your computer to produce the print-ready PDF.

πŸ“‹ Recent Batches
Batch # Quantity Serial Range Print Shop Created
Loading...

Sticker inventory

Where every sticker sits in its lifecycle.

Sticker Inventory

Where every sticker sits in its lifecycle β€” raw stock through to activated or retired.

β€”
Total Stickers
β€”
In Inventory
β€”
Sold (by agents)
β€”
Activated
β€”
Deactivated
πŸ” A note on "Sold"

A sticker's lifecycle status doesn't change the moment an agent sells it in the field β€” only when it's later activated by a merchant. So "Sold" here is counted separately, from sticker_sales records, and won't necessarily match "Activated." A sticker can be sold but not yet activated; that's expected, not a bug.

🚫 Deactivate a Dormant Sticker

Deactivating blocks any future payment to this sticker. Use for lost, damaged, or long-dormant stickers you want to retire.

Withdrawals to pay out

Each Submit sends real money through Ozow (RTC). Check the float on the Treasury tab first.

Loading…

Bank list

Compare Ozow's current payout bank list with the copy the app uses. Read-only.

Account closures

Customers' balances, returned within 14 days of verification and bank details. Payouts are then sent from the Payouts tab.

Open a case

Only once you have confirmed the request came from the account holder (for example by calling their registered number).

Loading…

Float Coverage

Can the Ozow payout float cover what merchants and agents could withdraw?

β€”
Payout float
β€”
Could be withdrawn
β€”
Queued withdrawals
β€”
Coverage ratio
β€”
Agent cash in transit
β€”
Agent exposure ceiling
β€”
Passenger balances (cannot withdraw)

Record the float balance

The balance lives at Ozow, not in this database. Update it whenever you check or top up.

🏦 Float Reading

Owed to Ozow

Processing charges accrue outside the float and are invoiced separately.

🧾 Estimated Payable
β€”
Payout fees
β€”
Deposit fees (est.)
β€”
Invoiced to date
β€”
Outstanding (est.)

Record an Ozow invoice

The invoice is the truth. A large gap against the estimate means the assumed rates are wrong.

πŸ“„ Invoice Received

Wallet reconciliation

Do the wallet balances match the transactions that produced them?

βš–οΈ Balance Check

Company Ledger & Revenue

Every rand Asiyen has earned and paid out β€” straight from the company ledger.

β€”
Money In (fees earned)
β€”
Money Out (payouts)
β€”
Net Position
β€”
Ledger Entries
πŸ“ˆ Where the Money Comes From
Click Refresh to load.
🧾 Ledger Entries
Date What happened Note Amount
Click Refresh to load the ledger.
πŸ” Account switch requests
Loading…

Identity verification queue

Users who submitted ID documents to lift their Tier 1 limits. Approve to unlock Tier 2.

β€”
Awaiting review
β€”
Approved (Tier 2)
β€”
Rejected
Tap Refresh to load the queue.

Sticker mail orders

Orders from merchants too far from an agent. Confirm payment, ship, then activate once receipt is confirmed.

β€”
Awaiting review
β€”
Confirmed, to ship
β€”
Shipped, awaiting activation
β€”
Activated
Tap Refresh to load orders.

Airtime review

Purchases where the customer was charged but the outcome is unknown. Check SIMcloud, then settle each one.

Weekly Agent Reconciliation

Run every Friday to verify agent settlements.

β€”
Active Agents
β€”
Cash to Collect This Week
β€”
Commission to Pay Out
πŸ‘₯ Agent Settlement Status
Agent Phone Assigned Sold Unsold Cash to Collect Last Settled Commission Owed Status
Click Refresh to load reconciliation data.
πŸ’Έ Pay Commissions to Wallet

Pays all unpaid commissions directly into the agent's Asiyen wallet β€” credits the wallet, marks commissions settled, and logs to the company ledger in one atomic step.

Settle agent cash

Record cash received from an agent. This frees their float to sell again.

πŸ’° Record Settlement
⚠️ Agent Demerit Watchlist
Loading…
πŸ›‘οΈ Transaction Monitoring
Loading…

Admin security

A second factor so that taking over your phone number is not enough to sign in as you.

πŸ›‘οΈ This session
πŸ“± Authenticator apps
Loading…
🚧 Safety limits

Rolling 24-hour ceilings on what an admin can move or approve, and how recent your authenticator code must be for money actions. Change them only in the Supabase console (SQL editor), never from here.

Loading…
🧯 If you lose your authenticator

Keep a second authenticator on the phone in the safe. If every authenticator is lost, sign in to the Supabase console (supabase.com, protected by its own authenticator) and remove the factor in the SQL editor: delete from auth.mfa_factors where user_id = '<your user id>'; Then sign in here with SMS and add a new one.