Product Documentation · v{{V}}

Build, launch, and operate DigiKash {{V}} with confidence.

A Laravel 11 wallet, merchant gateway, P2P marketplace, virtual-card platform, and payment-operations suite. This guide walks you from a blank server to a live, production-grade installation — and covers every module you will use day to day.

Version {{V}}
Framework Laravel 11
Runtime PHP 8.3+
Support Email Us
Release Highlights

What's New in DigiKash {{V}}

Version {{V}} headlines an International Remittance engine, P2P order chat, a second Golden site theme with custom brand colors, and full RTL multi-language support — on top of the unified marketplace, multi-provider virtual cards, feature flags, mobile recharge, subscriptions, wallet staking, agent operations, and OTA updater introduced in 2.0. All on Laravel 11 with PHP 8.3+.

International Remittance New in {{V}}

Cross-border money transfer with beneficiaries, currency corridors, live quotes, payout routing, compliance screening, and a versioned REST API.

P2P Order Chat New in {{V}}

In-escrow buyer/seller messaging with live polling, unread tracking, and a dedicated rate-limit bucket — plus a demo-trading seeder to preview the marketplace.

Golden Theme & Brand Colors New in {{V}}

A second site-wide theme — luxury obsidian + gold — selectable alongside Classic, with admin-controlled accent colors from Site Settings.

RTL Multi-language Improved

Full right-to-left support and a redesigned Language Manager — add locales, edit strings inline, and reposition the switcher.

P2P Marketplace New

Peer-to-peer trading rooms with offer ads, escrow orders, payment-method directory, disputes, promotions, and trader profiles.

Multi-provider Virtual Cards Improved

Stripe Issuing, StroWallet, and Bitnob in a single abstraction. Per-provider capabilities for issuance, top-up, withdraw, freeze, and limits.

Feature Controls New

Toggle every revenue module per panel (user / merchant / agent), set KYC and phone-verification gates, and control country allow-lists.

Agent Operations New

Dedicated agent panel, commission rule engine, and operations workflow for cash-in / cash-out agents.

Wallet Earn New

Stake wallet balances in configurable plans and pay scheduled rewards through background jobs.

Subscriptions New

Tier-based plans with pricing cycles, feature limits, renewals, cancellations, and subscription transactions.

Mobile Recharge New

Recharge mobile numbers from wallet balance through pluggable providers — Sandbox, Reloadly, or any HTTP API.

Project Updater Improved

Signed OTA releases, SHA-256 verification, recovery backups, and automatic migrations — all from the admin panel.

Redesigned Control Panel Improved

Searchable, categorized shortcuts to every admin tool — built on top of the live feature catalog.

PHP 8.3+ & Laravel 11 Upgraded

Streamlined bootstrap, attribute-based middleware, and modern PHP performance across the stack.

Security Hardening Improved

Account-status checks, IP block lists, login activity logs, throttled phone verification, and 2FA across panels.


Hosting

Server Requirements

Prepare the server before opening the installer. The wizard checks your PHP version, required extensions, and writable paths — and refuses to continue until everything turns green.

Minimum Software
PHP 8.3 or higher

PHP 8.4 is recommended where available. Keep the CLI and web-server PHP versions identical.

MySQL, MariaDB, or SQLite

MySQL / MariaDB installs import DB/digikash.sql. SQLite installs run migrations + seeders instead.

Apache or Nginx

Document root must point to public/. Apache must allow .htaccess rewrite rules.

HTTPS

A valid SSL certificate is mandatory before going live — payment callbacks, PWA features, and push will not work otherwise.

Required PHP Extensions
ExtensionPurpose
bcmathHigh-precision money arithmetic across wallet, fees, and exchange.
ctype, tokenizer, mbstringCore Laravel string handling.
dom, libxml, xmlQR codes, PDF receipts, and XML payloads.
fileinfoFile upload validation (KYC docs, logos, page assets).
jsonSettings, feature catalog, API payloads.
opensslSessions, tokens, signed updater verification.
pdo, pdo_mysqlDatabase connection.
zipProject Updater package extraction and recovery backups.
curl + allow_url_fopenRecommended for outbound gateway, license, and updater requests.
Writable Directories
  • .env — the installer writes app and DB settings here.
  • storage/ — logs, uploads, sessions, cache, backups, generated PDFs.
  • bootstrap/cache/ — optimized framework cache files.
Production needs background workers.

A queue worker is required for email, notifications, payment-jobs, virtual-card syncing, and updater steps.

Useful Commands
Queue WorkerBackground jobsphp artisan queue:work --tries=3 --timeout=90
Storage LinkPublic uploadsphp artisan storage:link
Clear CacheAfter env changesphp artisan optimize:clear

Setup

Installation Wizard

DigiKash ships with a web installer at /install. Use the wizard for every fresh deployment — it removes any need to edit .env by hand or import SQL through phpMyAdmin.

How to access
Browser yourdomain.com/install
What's inside your CodeCanyon download

After extracting the main digikash.zip from your Envato downloads, you will see two items:

  • documentation/ — this docs package (open index.html locally for reference).
  • core-v{{V}}.zip — the actual Laravel application package. This is the file you upload to your server.
Recommended path

Upload core-v{{V}}.zip to your hosting, extract it, point your domain to public/, then open https://yourdomain.com/install. Until the app is installed, every public URL redirects back to the installer.

1
Download & Extract Locally

Download digikash.zip from your Envato Downloads page and extract it on your computer. You'll see documentation/ and core-v{{V}}.zip side by side.

2
Upload core-v{{V}}.zip to Server

Upload only core-v{{V}}.zip to your hosting account — into public_html/ (or the directory matching your domain). Use cPanel File Manager, FTP, or SSH.

3
Extract on Server

Right-click core-v{{V}}.zipExtract in cPanel, or run unzip core-v{{V}}.zip via SSH. The project root will contain app/, bootstrap/, config/, DB/, public/, resources/, routes/, storage/, and vendor/.

4
Point Domain to public/

Set the domain document root to the Laravel public/ folder. This keeps .env, source files, logs, and backups outside web reach.

5
Set File Permissions

Make .env, storage/, and bootstrap/cache/ writable by the PHP user. On Linux, 775 is usually enough when ownership is correct.

6
Create Database

Create a MySQL/MariaDB database and a user with CREATE, ALTER, INDEX, INSERT, UPDATE, DELETE, and SELECT privileges. Keep the database empty — the installer imports the schema.

7
Get Your Envato Purchase Code

From Envato DownloadsLicense certificate & purchase code (text), copy the purchase code — you'll paste it into the installer in the next step.

8
Open the Installer

Visit https://yourdomain.com/install in a browser. The wizard runs server & license checks, asks for your DB credentials, tests the connection, then collects the app name, app URL, and first super-admin account.

9
Press Install & Sign In

Click Install. The wizard writes .env, imports the schema, seeds defaults, creates the admin account, and redirects to /admin/login. Sign in with the credentials you just created.

10
Finish Production Setup

From the admin panel: configure SMTP mail, payment gateway credentials, start the queue worker, add the scheduler cron entry, and review Feature Controls to enable only the modules you need.

Envato License Verification
  • The license is verified before the database step and re-checked during final installation.
  • The installer posts the purchase code, domain, product slug, and Envato item ID to the official Coevs update server.
  • No author Envato personal token is ever stored on the client website.
  • After installation, your license is saved securely so future updates can be delivered to this site.
  • If verification fails, confirm the purchase code, product match, domain, and outbound HTTPS access from the host.
What Happens When You Press Install
  • Validates server requirements (PHP version, extensions, writable paths) before continuing.
  • Verifies the Envato purchase code through /install/license-test against the Coevs update server.
  • Tests the database connection through /install/database-test.
  • Writes APP_NAME, APP_URL, APP_KEY, DB credentials, updater values, debug settings, and SESSION_DRIVER=file into .env.
  • For MySQL / MariaDB — imports DB/digikash.sql into your empty database.
  • For SQLite — runs Laravel migrations followed by the configured seeders.
  • Saves your verified license so the Project Updater is already linked to this installation.
  • Creates the first super-admin account from the wizard form. There is no shared default email or password.
  • Writes the install lock file storage/app/installed, clears Laravel caches, and redirects you to /admin/login.
cPanel-specific Notes
  • Upload core-v{{V}}.zip with File ManagerUpload, then right-click it and choose Extract.
  • Use MySQL Databases to create the DB, add a user, and assign all privileges to the user on that DB.
  • Use the Domains screen to set the document root to the public/ folder inside the extracted project.
  • If your host blocks document-root changes, contact hosting support before relocating Laravel files.
  • Use cPanel Terminal (or SSH) for cache, queue, storage-link, and recovery commands.
  • After install, you can safely delete the original core-v{{V}}.zip from your server to free up space.

Go Live

Post-install Checklist

After pressing Install, you'll land on the admin login. Work through this list before sending real traffic to the site.

  • Sign in at /admin/login with the super-admin account you created in the wizard.
  • Configure SMTP from Settings → Site Settings → Mail and send a test email.
  • Add payment gateway credentials under Finance & Wallet → Payment Gateways and run a live test transaction on HTTPS.
  • Start a queue worker (php artisan queue:work) so notifications, payment jobs, and updater steps actually fire.
  • Add a system cron entry: * * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1
  • Keep APP_DEBUG=false in production. Never expose .env or storage/ publicly.
  • Enable Two-Factor Authentication for every admin and high-privilege staff account.
  • Review Feature Controls and disable modules you don't plan to expose to users.
  • Set the platform branding: logo, favicon, brand colors, and SEO defaults.
  • Delete the uploaded core-v{{V}}.zip from your server once everything works.

Upgrades

Updating DigiKash Safely

DigiKash includes an admin Project Updater at Settings → Project Updater. New installations are linked automatically when the installer verifies and stores the Envato license token.

1
Confirm License

Fresh installs are already verified during setup. Existing sites can still enter the Envato purchase code here to link the domain.

2
Check for Updates

The updater pings the private release server and records the latest version, changelog, package URL, checksum, and install status.

3
Download Recovery Backup

Generate a recovery ZIP before installing. It packages database.sql, storage.zip, and a restore note.

4
Install Release

Confirm the backup notices and install. The updater verifies the SHA-256 checksum (optionally the signature), backs up touched files, runs migrations, clears caches, and exits maintenance mode.

Protected paths the updater never touches

.env, storage/, vendor/, node_modules/, and .git/. Keep a local backup even though the updater also creates server-side ones.

Manual Update Fallback
  • Put the app in maintenance mode: php artisan down.
  • Back up the database, .env, and storage/ locally before swapping files.
  • Replace application files only — never overwrite .env, storage/, or uploaded user content.
  • Run php artisan migrate --force followed by php artisan optimize:clear.
  • Bring the app back: php artisan up. Verify login, payments, notifications, and API checkout.

Architecture

Tech Stack

DigiKash is built on a modern Laravel stack with clearly separated concerns for backend, frontend, payments, and integrations.

LayerTechnologyNotes
RuntimePHP 8.3+PHP 8.4 supported. CLI and web-server versions must match.
FrameworkLaravel 11Streamlined bootstrap, attribute middleware.
AuthenticationLaravel Sanctum 4Personal-access tokens for the Merchant API.
Roles & PermissionsSpatie Laravel Permission 6Powers staff roles and granular admin permissions.
2FApragmarx/google2fa 8TOTP-based two-factor authentication.
UI FrameworkBootstrap 5 + jQuery 3.7Pre-built assets served from public/frontend and public/backend.
TypographyInter + JetBrains MonoSelf-hosted Google Fonts for UI & code.
IconsFont Awesome + IcoMoonMixed icon set across admin and dashboard.
ChartsChart.js + ApexChartsUsed in admin dashboard and analytics widgets.
Rich textSummernote LiteInline WYSIWYG for blog posts and page content.
Code editorCodeMirrorUsed in Style Manager and custom landing-page editor.
Date pickerDaterangepicker + Moment.jsDate-range filters across reports and transaction tables.
Image processingIntervention Image 3Uploads, resizing, format conversion.
QR codesbacon/bacon-qr-codeWallet QR, merchant pay QR, 2FA setup.
PDF receiptsbarryvdh/laravel-dompdfTransaction receipts and payment-link confirmations.
HTML purifiermews/purifierSanitises rich-text content before save.
PaymentsStripe, Mollie, Cryptomus, Bitnob, StroWalletMulti-provider abstraction for cards, deposits, and webhooks.
NotificationsMail (SMTP), Twilio SMS, Push, In-app inboxThree configurable channels (Email/SMS/Push) per template, plus a built-in database inbox.
Translationjoedixon/laravel-translationMulti-language UI managed from the admin panel.
Device detectionjenssegers/agentBrowser / device parsing for login activity logs.
Syntax highlightingPrism.jsUsed inside the Merchant API documentation.
DatabaseMySQL, MariaDB, or SQLiteBundled DB/digikash.sql for MySQL installs.

Project Layout

Folder Structure

DigiKash keeps Laravel's default structure and adds product-specific folders for payments, the installer, the project updater, and the bundled database import.

Core Folders
  • app/ — application logic, services, jobs, events, support classes.
    • Http/Controllers/Backend/ — admin-panel controllers (60+ modules).
    • Http/Controllers/Frontend/ — user, merchant, agent surfaces.
    • Http/Controllers/Api/ — merchant checkout API.
    • Http/Controllers/Webhook/ — incoming provider callbacks.
    • Http/Middleware/ — installer guard, feature flags, IP block, 2FA, account status.
    • Http/Requests/ — Form Request validators for every action.
    • Models/ — Eloquent models for accounts, wallets, transactions, P2P, cards, licenses.
    • Services/ — provider abstractions for payments, virtual cards, recharge, phone verification.
    • Payment/ — gateway-specific payment integrations (classmap autoloaded).
    • Support/ — installer manager, helpers, infrastructure utilities.
  • routes/web.php, admin.php, api.php, auth.php, install.php, channels.php, console.php.
  • resources/views/ — Blade templates: backend/, frontend/, installer/, emails/, pwa/, components/.
  • config/ — Laravel + product config: installer.php, project_updater.php, feature_catalog.php, admin_menus.php, control_panel.php, virtual_card.php, mobile_services.php.
  • DB/ — bundled digikash.sql used by MySQL / MariaDB installs.
  • database/ — migrations, factories, seeders (used by tests and SQLite).
  • public/ — web entry point. Your domain points here. Pre-built CSS / JS assets live under public/general, public/backend, and public/frontend.
  • storage/ — logs, cache, sessions, uploads, update packages, recovery backups.
  • documentation/ — this docs package.
  • vendor/ — Composer dependencies shipped with the release.
Important Files
PathPurpose
.envEnvironment values. Written by the installer. Never publish this file.
composer.jsonPHP dependencies and Laravel package scripts.
package.jsonNode dependency manifest (optional — the shipped UI uses pre-built assets under public/).
artisanLaravel command-line entry point.
bootstrap/app.phpMiddleware, routing, and exception registration (Laravel 11 style).
storage/app/installedInstaller lock file. Removing it re-opens the installer.

Config

Configuration Files

Most product behavior is configured from the admin UI, but these files drive what the UI can do.

FileWhat it controls
config/installer.phpRequired extensions, writable paths, license requirement, core / demo seeders.
config/project_updater.phpUpdate server URL, product slug, Envato item ID, signed-package public key, protected paths.
config/feature_catalog.phpMaster list of every toggleable feature (deposit, withdraw, P2P, cards, ranks, vouchers, subscriptions...).
config/admin_menus.phpSidebar layout for the admin panel.
config/control_panel.phpCategorized shortcuts used by the Control Panel screen.
config/virtual_card.phpCard provider registry (Stripe, StroWallet, Bitnob) and per-provider capabilities.
config/mobile_services.phpPhone-verification and mobile-recharge provider registry.
config/permission.phpSpatie Permission setup for staff roles.

.env

Environment Variables

Most values are written by the installer and edited from the admin UI. These are the ones you may need to touch by hand.

VariableDescription
APP_NAMEPublic-facing platform name.
APP_ENVUse production in live deployments.
APP_DEBUGMust stay false in production.
APP_URLCanonical HTTPS URL of the site.
DB_*Database connection details written by the installer.
SESSION_DRIVERDefault is file. Use database or redis at scale.
QUEUE_CONNECTIONUse database by default. Switch to redis for high throughput.
MAIL_*SMTP credentials for transactional email.
PROJECT_UPDATER_SERVER_URLOverride the default release server when self-hosting.
PROJECT_UPDATER_PRODUCT_SLUGProduct slug — defaults to digikash.
PROJECT_UPDATER_ENVATO_ITEM_IDEnvato item ID — defaults to 58275561.
MOBILE_RECHARGE_PROVIDERsandbox, reloadly, or http.
PHONE_VERIFICATION_PROVIDERlog (dev) or twilio (production).

Authentication

Admin Login

The admin panel is the control center for accounts, transactions, content, settings, and maintenance. Access is gated by a separate auth guard.

How to access
Browser /admin/login page
Login URL

https://yourdomain.com/admin/login

Credentials

The first super-admin is created during installation. There is no shared default password.

Security tips

Use a unique strong admin password, enable Two-Factor Authentication, limit staff permissions, and consider changing the admin URL prefix from Settings → Site Settings → Security.


Authentication

User, Merchant, & Agent Login

Each audience has a dedicated entry point. Login accepts the registered email or username with the account password.

How to access
Public site Header Login / Sign in
Forgot password Login page Forgot Password link
Login URLs
AudienceURLNotes
User/user/loginDefault end-user panel.
Merchant/merchant/loginBusiness dashboard for receiving payments.
Agent/agent/loginCash-in / cash-out operations panel. Hidden when the Agent feature is disabled.
Shared Login Features
  • Email or username + password.
  • Password visibility toggle.
  • Remember Me for trusted devices.
  • Forgot Password — sends a reset link to the registered email.
  • Sign Up link to the matching registration form.
  • Protected pages redirect guests to the correct login page based on the requested area.
  • Account-status checks block suspended accounts at the auth layer.
  • Two-Factor Authentication is enforced when enabled on the account.

Authentication

Two-Factor Authentication

TOTP-based 2FA is available for every panel and strongly recommended for admins.

How to access
Profile Settings Security Two-Factor Authentication
  • Enable from Profile → Security on any panel.
  • Scan the QR code with any authenticator app (Google Authenticator, Authy, 1Password).
  • Disable from the same Security screen — requires re-entering the account password.
  • Every subsequent login is interrupted by a 2FA verification prompt when the feature is active.

Authentication

Wallet PIN

Sensitive money operations can be gated by a secondary numeric PIN.

How to access
Profile Settings Security Wallet PIN
  • Users set the PIN from Profile → Security → Wallet PIN.
  • Prompted before transfers, withdrawals, and other high-risk actions when enabled.
  • Resetting the PIN requires verifying the account password (and 2FA if active).

User Panel

User Dashboard

After login, every user lands on a dashboard that summarizes wallet balances, recent activity, and quick actions for the most-used features.

How to access
Login User Dashboard (default landing)
Sidebar Dashboard
Sidebar Wallet My Wallets / My QR Code
Multi-currency Wallets

Each enabled currency gets its own balance card with available, pending, and locked amounts.

Quick Actions

One-tap shortcuts for Deposit, Withdraw, Send, Request, Exchange, and Pay Merchant.

Activity Snapshot

Recent transactions, pending requests, KYC status, and rank progress shown above the fold.

Notifications Inbox

In-app inbox for payments, transfers, KYC decisions, and support replies.

Sidebar Navigation
  • Wallet — balances, deposits, withdrawals, transfers, exchange, transaction history.
  • Pay — merchant checkout, payment links, vouchers, mobile recharge.
  • Earn — wallet staking plans, referral tree, ranking progress.
  • Cards — virtual card requests, active cards, top-ups, withdrawals.
  • P2P — marketplace offers, my orders, advertise, payment accounts.
  • Account — profile, KYC, security (2FA, PIN), subscriptions, notification preferences.

User Panel

Deposit Money

Top up the wallet using any active automatic gateway (card, crypto, mobile money) or a manual deposit method with proof-of-payment upload.

How to access
Sidebar Wallet Deposit
Sidebar Wallet Deposit History
1
Pick a Method

Choose between automatic gateways (instant credit) or manual methods (admin review). Each method shows its min, max, fees, and supported currencies.

2
Enter Amount

The form previews the fee, the net you receive, and the final wallet credit before submitting.

3
Complete Payment

For automatic methods you are redirected to the gateway checkout. For manual methods you upload proof and wait for admin approval.

4
Wallet Credited

Auto deposits credit instantly on successful callback. Manual deposits credit after admin approval — both trigger a notification and an entry in transaction history.

  • Supports any currency the admin has enabled for users.
  • Per-gateway fee preview before confirmation — no surprise charges.
  • Manual proof uploads accept image / PDF receipts.
  • Deposit history shows status, method, gateway reference, fee, and net amount.
  • Failed gateway callbacks reverse pending entries automatically.

User Panel

Withdraw Money

Cash out wallet balance to a linked bank account, crypto address, or mobile-money number. Automatic methods process instantly through the gateway; manual methods queue for admin review.

How to access
Sidebar Wallet Withdraw
Sidebar Wallet Withdraw Accounts
1
Add a Withdraw Account

Save bank, crypto, or mobile-money payout details under Withdraw Accounts for fast reuse.

2
Pick a Method

Automatic methods send the payout straight from the gateway. Manual methods require admin approval and finance processing.

3
Enter Amount & Confirm

The form previews the fee, payable amount, and wallet deduction. Wallet PIN and 2FA prompt if enabled.

4
Track Status

Withdraw history shows the request status — Pending, Processing, Completed, or Rejected — with admin notes when applicable.

KYC required

Withdraw is KYC-gated by default. Users see a clear prompt to complete KYC before the first payout.

Scheduled Withdrawals

Admins can restrict withdrawal submissions to specific windows (e.g. Monday + Thursday). Outside the window, users see the next available time slot.


User Panel

Send & Request Money

Instant wallet-to-wallet transfers between platform accounts, plus payment requests another user can approve and pay from their wallet.

How to access
Sidebar Wallet Send Money
Sidebar Wallet Request Money
Send Money
  • Find the recipient by username, email, or phone number.
  • Same-currency transfers settle instantly with zero conversion.
  • Cross-currency transfers use the live exchange rate with a confirmed preview.
  • Add a private note and an optional memo visible only to the recipient.
  • Wallet PIN + 2FA enforced when configured.
Request Money
  • Send a payment request to any platform user.
  • Recipient sees the request in their inbox with one-tap approve / reject.
  • Approved requests transfer the balance instantly and notify both parties.
  • Track outstanding, approved, and rejected requests under Money Requests.

User Panel

Exchange Currencies

Convert wallet balance from one supported currency to another using the live exchange-rate engine — instantly and without leaving the wallet.

How to access
Sidebar Wallet Exchange Money
  • Pick source and destination currencies from your enabled wallets.
  • Preview the rate, fee, and amount-you-receive before submitting.
  • Conversion is instant — both wallets update immediately on confirmation.
  • Every exchange is recorded as a single transaction with FX details for receipts.
  • Admin can configure per-currency exchange fees and minimum trade amount.

User Panel

Wallet Earn — Staking New in 2.0

Lock part of your wallet balance into an admin-defined earning plan and receive rewards automatically on a fixed schedule. The platform handles every payout and the principal return for you — there is nothing to claim manually.

How to access
Sidebar Wallet Earn Dashboard / Plans / My Stakes
How it works
1
Pick a Plan

Each plan shows its reward (a fixed amount or a percentage of your stake per payout), payout cycle (daily / weekly / monthly / end of term), lock term, currency, min/max stake, and whether your principal is returned at maturity.

2
Stake from Wallet

Choose the wallet and amount (within the plan's min/max). The amount is immediately debited and locked from your wallet, and a stake record is created.

3
Goes Active

If the plan is auto-approved the stake activates instantly; otherwise it stays Pending until an admin approves it. Once active, the maturity date and first payout date are set.

4
Earn Automatically

On every payout cycle the system credits the reward straight to your wallet and logs a transaction — no action needed. My Stakes shows paid vs. expected profit, payouts completed, and the next payout date.

5
Matures & Closes

When the term ends (or all scheduled payouts are made) the stake is marked Completed. If the plan returns principal, your original stake is automatically credited back to your wallet.

The My Stakes dashboard

Track every stake's status, principal, rewards paid so far, expected total profit, payouts completed, and the next payout date — all from one screen. Each payout and the principal return also appear in your normal transaction history.

Stake statuses & your principal

A stake moves through Pending → Active → Completed. If a pending stake is Rejected, or an active stake is Canceled by an admin, your full principal is returned to your wallet right away. There is no self-service early unstake — an active stake runs to its maturity date.

KYC may be required

By default Wallet Earn requires a verified account. If staking is hidden for you, complete KYC first — the requirement can be changed by the admin under Feature Controls.


User Panel

Mobile Recharge New in 2.0

Top up any mobile number from wallet balance — for yourself or anyone else — through the platform's configured recharge provider.

How to access
Sidebar Mobile Recharge
1
Enter Number & Operator

Pick the country and operator from the admin-configured list, then enter the destination phone number.

2
Choose Amount

Pick from suggested packages or enter a custom amount within the configured min/max.

3
Confirm & Pay

Fee preview, final cost, and wallet PIN prompt before submission.

4
Receive Status

Status update — Completed, Pending, or Failed — with a notification + transaction record.

  • Supported drivers: Sandbox (testing), Reloadly (global airtime), generic HTTP API.
  • Recharge history shows every top-up with operator, amount, fee, and provider reference.
  • Failed recharges automatically refund the wallet.

User Panel

Pay Merchants

Three ways to pay registered merchants — scan a QR code, open a payment link, or apply a voucher at checkout.

How to access
QR Code Open merchant's QR with camera Checkout page loads
Payment Link Open shared link Pay from wallet or gateway
Voucher Merchant checkout Apply Voucher Code
QR Code

Merchants display their unique payment QR; customers open it from a camera or QR app to load the checkout page directly.

Payment Link

Open a merchant's payment link from chat, email, or social — sign in or pay as guest with a supported gateway.

Voucher Code

Apply a redeemable voucher at checkout to reduce the payable amount or pay in full.

Digital Receipt

Every merchant payment generates a downloadable PDF receipt with order reference and tax breakdown.



User Panel

P2P Trading New in 2.0

Buy or sell currency directly with other platform users through escrow-protected peer-to-peer trades.

How to access
Sidebar P2P Marketplace / Offers
Sidebar P2P My Orders
Sidebar P2P Payment Accounts
As a Buyer / Seller
  • Browse the marketplace — filter offers by currency, payment method, country, and price.
  • Open an order: the seller's funds are locked in escrow immediately.
  • Pay (or receive payment) through the agreed off-platform method.
  • Mark as paid / confirm receipt — escrow releases automatically.
  • Rate the counterparty after the trade closes.
As an Advertiser
  • Post offer ads with your own price, min/max trade limits, payment methods, and terms.
  • Save reusable Payment Accounts (bank, mobile money, cash) for fast offer creation.
  • Promote offers with paid Promotion Packages for featured placement.
  • Built-in trader profile with completion rate, response time, and rating.
Disputes & Safety
  • Open a dispute from inside the trade chat with proof attachments.
  • Platform admins review history and rule on the verdict.
  • Escrow only releases on mutual confirmation or admin verdict — funds are never at risk in transit.

User Panel

Virtual Cards

Apply for a virtual card, top it up from your wallet, and use it for online payments anywhere Visa or Mastercard is accepted.

How to access
Sidebar Virtual Cards My Cards
Sidebar Virtual Cards Request New Card
Sidebar Virtual Cards Cardholders
1
Apply

Submit a card-issuance request. Some providers require additional KYC fields (name on card, address, DOB).

2
Wait for Approval

Admin reviews and approves the request. The issuance fee is auto-deducted on approval.

3
Top Up

Transfer wallet balance onto the card to set its spending limit. Reverse anytime via Withdraw.

4
Use the Card

View masked card number, expiry, and CVV inside the secure card panel. Freeze / unfreeze instantly if supported by the provider.

  • Supports Stripe Issuing, StroWallet, and Bitnob in a single user experience.
  • Per-card transaction history shows every authorization and settlement.
  • Freeze a lost card in one tap (provider-dependent).
  • Card top-up and withdraw fees configured per provider by admin.

User Panel

Subscriptions New in 2.0

Browse available plans, subscribe to unlock platform features and quota upgrades, and manage billing from a single screen.

How to access
Sidebar Subscription Browse Plans
Sidebar Subscription My Subscription / History
  • Plan cards show price, billing cycle, included features, and quota limits.
  • Subscribe in one tap — pays from wallet or any active gateway.
  • Switch tiers anytime — proration applied automatically.
  • Cancel anytime from My Subscription. Plan stays active until the period ends.
  • Full transaction history with downloadable invoices.

User Panel

Referral Program & Vouchers

How to access
Sidebar Referral Program
Sidebar Rank Showcase
Sidebar Vouchers My Vouchers / Create / Redeem
Referral Program
  • Get a unique referral code and shareable link from your profile.
  • Earn configurable rewards when a referred friend signs up, completes KYC, or makes their first deposit.
  • See your referral tree with each referred user, their status, and reward earned.
  • Rewards credit directly to your wallet — no separate withdrawal step.
User Rankings
  • Progress through ranks (Bronze → Silver → Gold → Platinum or admin-defined tiers).
  • Each rank unlocks higher wallet limits, deeper referral tree depth, and reward multipliers.
  • Promotion happens automatically as you cross the activity threshold.
Vouchers
  • Redeem voucher codes from Wallet → Redeem Voucher.
  • Codes credit the wallet instantly or apply as a discount at merchant checkout.
  • Per-voucher expiry, amount, and usage limit enforced automatically.

User Panel

KYC Verification

Submit identity documents to unlock KYC-gated features like withdrawals, virtual cards, P2P trading, and send-money limits.

How to access
Profile Settings KYC Verification
Dashboard banner Verify your account
1
Open KYC Form

The admin-configured KYC template lists the exact fields required for your account type.

2
Upload Documents

Upload required ID images / PDFs (e.g. national ID, passport, address proof, selfie).

3
Submit for Review

Submission queues for admin review. Status visible on the dashboard banner.

4
Decision Notification

The admin approves or rejects (with optional remarks). All KYC-gated features unlock immediately on approval; if rejected you can resubmit after fixing the flagged fields.

Resubmission supported

If a submission is rejected, you can fix the flagged fields and resubmit without losing previous data.


User Panel

Profile & Security

Control your personal information, account security, and notification preferences from one place.

How to access
Top-right avatar Profile / My Account
Profile Settings Edit Profile
Profile Settings Security (2FA · Wallet PIN · Password)
Profile Settings Verify Email / Verify Phone
Profile

Name, username, email, phone, avatar, language, and country preferences.

Password

Change password anytime — strong password rules enforced (length, mixed case, numbers).

Two-Factor Auth

TOTP-based 2FA via any authenticator app. Disable requires password re-entry.

Wallet PIN

Numeric PIN required for transfers, withdrawals, and other money actions.

Phone Verification

Verify your phone via SMS code (Twilio) to unlock SMS notifications and mobile recharge.

Login Activity

View recent sign-ins with IP, country, browser, device, and platform. Sign out all other sessions in one click (password re-entry required).


User Panel

Notifications & Support

How to access
Top bar Bell icon (Notifications)
Sidebar Support My Tickets / Create Ticket
Sidebar Transaction History
Notification Inbox
  • In-app inbox for payments, transfers, KYC, P2P, support, and system alerts.
  • Channel preferences — opt in/out of email, SMS, push, and in-app per event type.
  • Mark all as read or filter by unread / category.
Support Tickets
  • Open a ticket from Support → New Ticket with category, subject, and message.
  • Attach files (screenshots, receipts) to the ticket body.
  • Reply thread shows admin responses with timestamps.
  • Ticket categories drive auto-routing to the right staff role.
  • Close a ticket when resolved — re-open if the issue returns.

Admin Panel

Dashboard & Control Panel

The dashboard summarizes user growth, merchant activity, transaction totals, wallet balances, and recent movement. The Control Panel surface adds searchable shortcuts to every admin module.

How to access
Admin Sidebar Dashboard (top)
Sidebar Footer Activity / Settings / Tickets / Optimize
Overview Widgets

Live counts for users, merchants, agents, KYC queues, transactions, virtual cards, and payment links.

Control Panel

Categorized shortcuts: Overview, Account Operations, Compliance, Wallet & Payments, Communication, Site Content, Platform Configuration.

Quick Search

Permission-aware search across menu items, settings, and reports — driven by control_panel.php.

Sidebar Footer Shortcuts

Activity log, Settings, In-Progress Tickets, and Site Optimize — always one click away.


Admin Panel

Accounts & KYC

Manage users, merchants, agents, KYC submissions, account status, and support conversations with a consistent review workflow.

How to access
Sidebar Account Management User Accounts All / Active / Suspended / Unverified / KYC Pending
Sidebar Account Management Business Profiles Merchants / Pending Merchants / Agents / Commission Rules
Sidebar Account Management KYC Verification Pending Reviews / Records / Templates
User Accounts
  • List, filter, and search every registered user.
  • Dedicated views for Active, Suspended, Unverified, and KYC-Pending users.
  • Manage profile, wallet balance, features, password, and status from a single screen.
  • "Login as user" for safe support sessions (audit logged).
  • Bulk mail to all users from the admin panel.
Merchants & Agents
  • Approve or reject merchant and agent applications after reviewing profile + documents.
  • Manage active/inactive status, business profiles, and commission rules (agents).
  • Convert user accounts to merchants when needed.
KYC Verification
  • Define required fields per audience using KYC Templates.
  • Process submissions from a Pending Reviews queue.
  • Approve or reject with optional admin remarks — the user is notified automatically.
  • Rejected users can resubmit a fresh KYC after correcting the flagged fields.
  • Features gated by KYC (withdraw, send money, virtual cards, P2P) automatically unlock on approval.

Admin Panel

Finance & Wallet

Configure supported currencies, manage exchange rates, and use the transactions ledger as the source of truth for money movement.

How to access
Sidebar Finance & Wallet Currency Management
Sidebar Finance & Wallet Transactions
Currency Management
  • Add, edit, or disable currencies with code, symbol, exchange rate, and per-role availability.
  • Connect to an exchange API for live rates, or manage rates manually.
  • Tag currencies as user-facing, merchant-facing, agent-facing, or all three.
Transactions Ledger
  • Single, searchable list of every deposit, withdrawal, transfer, exchange, reward, voucher, and payment link transaction.
  • Filter by user, type, status, date range, gateway, and currency.
  • Export to CSV for finance reconciliation.

Admin Panel

Payment Gateways

DigiKash ships with first-class integrations for 25+ payment providers covering cards, mobile money, crypto, and African / Asian regional gateways — all behind a single provider-agnostic abstraction.

Bundled providers
CategoryProviders
Cards / globalStripe, PayPal, 2Checkout, Mollie
African gatewaysFlutterwave, Paystack, Moneroo, Paymob, Voguepay, MTN, Airtel, Cashmaal
Indian gatewaysRazorpay, Instamojo
CryptoCryptomus, Coinbase Commerce, CoinGate, CoinPayments, NowPayments, Binance Pay, Blockchain, Block.io, BitPay Server
ManualBank transfer / cash / any custom method via the Manual Payment System
How to access
Sidebar Finance & Wallet Payment Gateways
  • Stripe, Mollie, Cryptomus, and additional gateways available out of the box.
  • Enable per currency and set per-gateway minimums, maximums, fees, and surcharges.
  • Test in sandbox mode before flipping to live credentials.
  • Webhook callback URLs are auto-generated — copy them into the provider dashboard.
  • Disabled gateways automatically hide dependent deposit / withdraw methods.
Always test on HTTPS

Most providers refuse to deliver webhooks to non-HTTPS endpoints. Use ngrok or a staging subdomain with a valid certificate when testing locally.


Admin Panel

Deposits & Withdrawals

Each side of money movement supports both Automatic (gateway) and Manual (bank/cash) methods with separate review queues.

How to access
Sidebar Finance & Wallet Deposits Manual Requests / Auto Methods / Manual Methods / History
Sidebar Finance & Wallet Withdrawals Manual Requests / Auto Methods / Manual Methods / Scheduled / History
Deposit Methods

Configure automatic gateway methods or manual deposit instructions. Per-method fee, limit, and currency rules.

Manual Deposit Requests

Review proof-of-payment uploads, approve to credit the wallet, or reject with a reason.

Withdraw Methods

Set up automatic payouts (crypto, gateway-based) and manual bank/cash methods with per-method limits.

Scheduled Withdrawals

Cap withdrawal processing to defined windows so finance teams can batch payouts.

Separate User & Merchant Fees

Configure deposit and withdrawal fees independently for users and merchants.

Deposit & Withdraw History

Dedicated historical views with status, gateway, fee, and net-amount columns.


Admin Panel

Payment Links, Merchant Payments & Mobile Recharge

Money-out products users and merchants can issue, share, and collect on.

How to access
Sidebar Finance & Wallet Payment Links
Sidebar Finance & Wallet Mobile Recharge
Payment Links
  • Generate shareable links that customers can pay from a wallet or supported gateway.
  • Configurable amount (fixed or buyer-defined), currency, expiry, and reuse policy.
  • Track payments, refunds, and link status from the admin list.
Merchant Payments
  • Customers pay merchants from their wallet or any active payment gateway.
  • Merchants share a unique payment QR code (printed in-store or shown on screen); customers open it to load the checkout.
  • Voucher redemption is supported at the checkout step.
  • WooCommerce plugin ships pre-built at public/general/woocommerce-gateway-v2.8.0/ for eCommerce integration.
  • Sanctum-authenticated Merchant API with HMAC-signed webhooks (see /api-docs).
Mobile Recharge
  • Top up mobile numbers from wallet balance through pluggable providers.
  • Supported drivers: sandbox (testing), reloadly (global airtime), http (generic HTTP API).
  • Configurable minimum, maximum, fixed fee, and percentage fee from config/mobile_services.php.
  • Per-provider operator catalog managed under Mobile Recharge → Providers.

Admin Panel

P2P Marketplace New in 2.0

Peer-to-peer trading rooms with offer ads, escrow orders, dispute handling, payment-method directory, promotions, and trader profiles.

How to access
Sidebar Finance & Wallet P2P Marketplace P2P Dashboard / Settings / Payment Methods / Traders / Disputes / Promotions
P2P Dashboard

Monitor live offers, open orders, dispute counts, and platform fees in one place.

Settings

Default fees, minimum trade size, escrow duration, dispute timer, and KYC gating.

Payment Methods

Curate the directory of payment methods traders can advertise (banks, mobile money, cash).

Traders

Browse, suspend, or verify advertisers. Review completion rate, response time, and dispute ratio.

Disputes

Handle escalated orders with chat history, attached proof, and a verdict workflow.

Promotions

Sell promotion packages that boost offer visibility — featured slots, badge highlights, search-rank uplift.


Admin Panel

Virtual Cards

Issue and manage virtual cards on top of multiple providers — Stripe Issuing, StroWallet, and Bitnob — with a single, provider-agnostic admin experience.

How to access
Sidebar Finance & Wallet Virtual Cards Awaiting Requests / Cardholders / All Requests / All Cards / Fee Settings / Provider Settings
Provider Capabilities
ProviderIssueTop-upWithdrawFreezeLimitsControls
Stripe Issuing✓ (via spending limit)
StroWallet
Bitnob
Admin Workflows
  • Awaiting Requests — review new card-issuance applications.
  • Cardholders — manage issued cardholder records.
  • All Requests — historical request log with status filters.
  • All Cards — every issued card with provider, status, balance, and last sync.
  • Fee Settings — set issuance fees per-currency and per-card-type (multi-fee: percentage + fixed).
  • Provider Settings — credentials, capabilities, and provider-specific overrides.

Admin Panel

Wallet Earn (Staking) New in 2.0

Create earning plans, let users stake their wallet balance into them, and let the platform pay rewards and return principal automatically. You stay in control of approvals and can intervene on any individual stake.

How to access
Sidebar Finance & Wallet Wallet Earn Earn Dashboard / Plans / Stakes
1. Build an Earning Plan

A plan is the template users stake into. Every field below is configurable per plan:

FieldWhat it controls
CurrencyA specific currency, or All Currencies to let users stake any wallet.
Minimum / Maximum stakeThe amount range a single stake must fall within (maximum is optional).
Profit typeFixed — a flat reward amount per payout; or Percentage — a % of the staked principal per payout.
Profit rateThe value used by the profit type (the flat amount, or the percentage).
DurationThe lock term — a value plus a unit of hours, days, or months.
Payout frequencyDaily, Weekly, Monthly, or End of Term (a single payout at maturity).
Return principalWhether the original stake is credited back to the user at maturity.
Auto-approveOn — stakes activate instantly. Off — stakes stay Pending for your review.
PresentationDescription, icon, badge text, featured flag, and active/inactive status.
How rewards are calculated

Reward per payout = Fixed: the flat rate, or Percentage: principal × rate ÷ 100. The number of payouts is derived from the duration and payout frequency, and the user's expected profit = reward per payout × number of payouts. With End of Term, the whole profit is paid once at maturity.

2. Automatic Payouts
  • The wallet-earn:process command runs every minute via the scheduler — it credits any due payouts and returns matured principal. Keep the scheduler cron entry active.
  • Each due payout credits the user's wallet, writes a reward transaction, and advances the next payout date until the term completes.
  • Payouts are idempotent — each numbered payout is paid exactly once, even if the command overlaps or retries.
  • When the final payout is made (or maturity is reached) the stake is marked Completed, and the principal is returned if the plan allows it.
3. Manage Stakes

The Stakes screen lists every user stake with its principal, paid vs. expected profit, payouts made / total, next payout, and maturity date. Per stake you can:

  • Approve a pending stake — activates it and sets the payout schedule.
  • Reject a pending stake — returns the full principal to the user's wallet.
  • Cancel an active stake — stops future payouts and returns the principal.
  • Complete an active stake — settles any due payouts immediately and closes it (returning principal if configured).
Everything is traceable

Each action writes a wallet transaction — a debit when the stake is created, a credit for every reward payout, and a credit when principal is returned. The Earn Dashboard rolls these up into total staked balance per currency, the upcoming payout pipeline, and rewards paid to date. Users are notified at each step (stake created, approved, rejected, canceled, each reward paid, and completion) via notification templates.

Access & requirements

Wallet Earn requires KYC by default — adjust this, or turn the whole module on/off per panel, under Feature Controls. The principal is locked from the user's wallet the moment they stake, so balances always reconcile.


Admin Panel

Subscriptions New in 2.0

Tier-based subscription plans with features, pricing cycles, and per-user lifecycle tracking.

How to access
Sidebar Finance & Wallet Subscriptions Plans / User Plans / Transactions
  • Plans — define tiers, features, and per-cycle prices (monthly, quarterly, yearly).
  • Plan Features — bind plans to platform features with quantity/limit overrides.
  • User Plans — view active and historical subscriptions, with manual override controls.
  • Transactions — every subscription payment with status, plan, and renewal info.
  • Users can subscribe, cancel, change tier, and view receipts from their dashboard.

Admin Panel

Referral Program & User Rankings

Growth tooling for retention and acquisition.

How to access
Sidebar Finance & Wallet Referral Program
Sidebar System Config Settings User Rankings
Referral Program
  • Unique referral codes and shareable links per user.
  • Configurable reward per signup, KYC completion, first deposit, or specific event.
  • Per-currency reward caps and minimum referrer requirements.
  • Referral tree view in the user dashboard.
User Rankings
  • Define ranks (e.g. Bronze, Silver, Gold, Platinum) with progression criteria.
  • Per-rank wallet limits, referral level depth, and reward multipliers.
  • Automatic rank promotion based on user activity.
Vouchers
  • Single-use or multi-use redeemable vouchers for wallet balance.
  • Per-voucher currency, amount, expiry, and redemption limit.
  • Redeemable from the user wallet or at merchant checkout.

Admin Panel

Notifications & Support

Reach users quickly and run a structured support backlog.

How to access
Sidebar Communication Center Notifications Send Notification / Logs / Templates
Sidebar Communication Center Email Subscribers
Sidebar Communication Center Support Tickets New / In Progress / Closed / History / Categories
Notifications
  • Send Notification — push custom notifications to all users or filtered audiences.
  • Notification Logs — searchable record of every notification with channel and status.
  • Templates — per-event templates with three configurable channels: Email, SMS, and Push.
  • Each channel has an independent on/off toggle per template — enable email but disable SMS for low-impact events.
  • An in-app inbox also receives every notification via Laravel's database notification table — independent of the channel switches above.
Email Subscribers
  • Newsletter signup form on the public site captures subscribers.
  • Export to CSV or send bulk announcements directly.
Support Tickets
  • Status tabs: New, In Progress, Closed, History.
  • Per-ticket reply thread with attachments.
  • Configurable Ticket Categories with auto-routing.
  • Internal notes visible only to staff.

Admin Panel

Site Builder & CMS

Control public-facing content without touching code.

How to access
Sidebar Content Management Site Builder Landing Page / All Pages / Components / Navigation / Style Manager / Footer Sections
Sidebar Content Management SEO & Social SEO Settings / Social Links
Sidebar Content Management Blog Blog Posts / Blog Categories
Pages & Components
  • Landing Page — upload a custom HTML/CSS landing page, or use the built-in builder.
  • All Pages — manage every static page with rich content.
  • Page Components — reusable building blocks (heroes, feature lists, CTAs, FAQs).
  • Site Navigation — header menu structure with multi-level dropdowns.
  • Footer Sections — manage footer columns and links.
  • Style Manager — inject custom CSS for fine-tuning the public theme.
SEO & Social
  • SEO Settings — per-page title, meta description, Open Graph, and Twitter cards.
  • Social Links — manage the social network footer/header icons.
Blog
  • Blog Posts — title, slug, cover image, rich body, SEO fields.
  • Blog Categories — taxonomy for filtering posts.

Admin Panel

System Configuration

Platform-wide settings, integrations, languages, and background jobs.

How to access
Sidebar System Config Settings Site Settings / Integration Center / Languages / Background Jobs
Sidebar Footer Settings / Optimize shortcut
Site Settings
  • Brand, logo, favicon, login banner, currency display, time zone.
  • Mail (SMTP), Security, Maintenance Mode, Cookie Consent, Captcha.
  • Visitor landing behavior — redirect to login page or default landing.
  • Admin URL prefix override for security through obscurity.
Integration Center
  • Enable / disable plugin integrations (WooCommerce, Google Analytics, etc.).
  • Each plugin exposes its own credential form.
Languages
  • Manage installed languages, add new locales, edit translation strings inline.
  • Set the default language and toggle the language switcher visibility.
Background Jobs
  • Live view of running, failed, and recent jobs.
  • Re-run failed jobs from the UI.
  • Pair with a real queue worker process (queue:work) for reliable delivery.

Admin Panel

Feature Controls New in 2.0

Toggle every revenue feature per panel (user / merchant / agent), set KYC and phone gates, and control country allow-lists. Drives the entire UI from a single screen.

How to access
Sidebar System Config Settings Feature Controls
CategoryFeatures
Money MovementDeposit, Withdraw, Send, Request, Exchange, Wallet Earn, Mobile Recharge, Bank Transfer Payouts
Business & MerchantPayment Links, Merchant Payment, Agent Program, Subscription System
P2P MarketplaceP2P Marketplace
Virtual CardsVirtual Cards
Engagement & GrowthReferral Program, User Ranks, Vouchers
Core features warn before disabling

Features marked Core (like Deposit and Withdraw) can be toggled, but the UI warns first — disabling them typically breaks business flows that depend on them.


Admin Panel

Staff & Roles

Use least-privilege access for everything except the super-admin.

How to access
Sidebar Staff Management Team Members
Sidebar Staff Management Roles & Permissions
  • Team Members — create staff accounts with assigned roles.
  • Roles & Permissions — define granular permissions per role (powered by Spatie Permission).
  • Every admin menu item declares the permission it requires; menu links are hidden when missing.
  • Disable a staff account immediately if a member leaves the team.

Operations

Production Setup

A production-grade DigiKash install needs a queue worker, a cron entry, HTTPS, and SMTP for mail.

Cron — Laravel Scheduler

Run the scheduler every minute. It dispatches background tasks for rewards, withdraw schedules, recurring jobs, and cleanup.

* * * * * php /path/to/digikash/artisan schedule:run >> /dev/null 2>&1
Queue Worker — Supervisor

Keep a queue worker alive. Supervisor is the recommended way to auto-restart it.

[program:digikash-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /path/to/digikash/artisan queue:work --tries=3 --timeout=90
autostart=true
autorestart=true
user=www-data
numprocs=2
redirect_stderr=true
stdout_logfile=/path/to/digikash/storage/logs/worker.log
Storage Symlink
php artisan storage:link
HTTPS
  • Install a valid SSL certificate (Let's Encrypt is free and well-supported).
  • Force HTTPS in your web server config.
  • Set APP_URL to the HTTPS variant in .env.
Mail (SMTP)
  • Configure SMTP under Settings → Site Settings → Mail.
  • Send a test mail before enabling notification channels.
  • Use a reputable transactional mail provider (Postmark, SES, Mailgun, Resend) in production.

Operations

Progressive Web App

DigiKash can be installed as a Progressive Web App on mobile and desktop, giving users a native-feeling shortcut to the wallet.

How to access
Mobile/Desktop browser Browser menu Install App / Add to Home Screen
  • Manifest and service worker are served by the PwaController.
  • Users can install the app to the home screen on mobile and desktop browsers that support PWA.
  • Customize the install banner, theme color, and icons from Settings → Site Settings → PWA.

Operations

Security & Maintenance

Keep production stable with least-privilege access, 2FA, backups, cache tools, activity logs, and the Project Updater.

How to access
Sidebar Footer Activity (Activity Log)
Sidebar Footer Optimize (Site Optimize)
Before changing live payment settings

Take a backup, confirm queue workers are running, test one small transaction, then monitor logs and callbacks.

  • Enable 2FA for admins and staff with sensitive permissions.
  • Review Activity Logs when investigating login, device, or suspicious access issues.
  • Use the IP Block list to ban abusive addresses.
  • Run Optimize App and Clear Cache after updates or environment changes.
  • Download a recovery backup before installing updates from the Project Updater.
  • Rotate API keys (Stripe, Twilio, virtual-card providers) on a regular schedule.
Safe Recovery Commands
Clear cachesAfter env or route changesphp artisan optimize:clear
Storage symlinkUploaded filesphp artisan storage:link
Run migrationsManual update fallbackphp artisan migrate --force

Operations

Project Updater

Install signed releases over the air with checksum verification, recovery backups, and migration automation.

How to access
Sidebar System Config Settings Project Updater
  • Lives at Admin → Settings → Project Updater.
  • Packages must be signed; verification uses the public key in config/project_updater.php.
  • Update server URL defaults to https://updates.coevs.com — override with PROJECT_UPDATER_SERVER_URL.
  • Storage paths are configurable: PROJECT_UPDATER_PACKAGES_PATH, PROJECT_UPDATER_EXTRACT_PATH, PROJECT_UPDATER_BACKUPS_PATH.
  • Protected paths the updater never touches: .env, storage/, vendor/, node_modules/, .git/.
  • Disable in-app installs entirely by setting PROJECT_UPDATER_INSTALL_ENABLED=false.

Operations

Troubleshooting

Use these checks when installation, assets, the database import, or updates do not behave as expected.

Installer redirects every page

The app is not installed yet. Complete /install. The wizard then writes storage/app/installed and routes unlock.

Database test fails

Confirm host, port, username, password, and privileges. On cPanel, assign the DB user to the DB with all required privileges.

SQL import stops

The MySQL / MariaDB installer protects existing data. Use a new empty database before importing DB/digikash.sql.

Images do not load

Run php artisan storage:link. If a broken public/storage folder exists, remove it first via file manager or SSH.

Blank page after upload

Run php artisan optimize:clear and confirm the domain points to public/, not the project root.

Updater cannot install

Enable the PHP zip extension, make storage/app writable, set PROJECT_UPDATER_SERVER_URL, and activate the license.

Notifications not sending

Confirm SMTP credentials, then make sure a queue worker is running — mail goes through the queue by default.

Webhooks not firing

Use HTTPS, confirm the callback URL in the provider dashboard, and check storage/logs/laravel.log for inbound errors.


Release Notes

Changelog

v2.0.1 – 11 June 2026
[Added] - International Remittance module — cross-border money transfer with beneficiaries, country/currency corridors, live quotes, payout routing, compliance screening, and a versioned REST API
[Added] - P2P Order Chat — in-escrow buyer/seller messaging with live polling, unread tracking, and a dedicated rate-limit bucket
[Added] - P2P Demo Trading seeder — sample offers, orders, and trader profiles to preview the marketplace immediately after install
[Added] - Golden theme — a second site-wide visual theme (luxury obsidian + gold) selectable alongside Classic, each with its own layouts and asset bundle
[Added] - Theme Color customizer — override accent / brand colors with validated hex values from Site Settings
[Added] - MercadoPago payment gateway added to the gateway factory
[Added] - Payment-method seeder and automatic method-code generator for consistent deposit / withdraw provisioning
[Added] - Multiple manual deposit methods per currency
[Added] - Storage Link tool — create or repair the public/storage symlink from the admin Settings page, no SSH required
[Improved] - Multi-language UI with full RTL support and a redesigned Language Manager (add locales, inline translate, reposition the switcher)
[Improved] - Saved Withdraw Accounts with stricter validation and reusable payout details
[Improved] - Subscription plan feature types — richer per-feature limits / flags and cascade-safe plan deletion
[Improved] - StroWallet provider response handling hardened (dispatch and response-shape normalization)
[Improved] - Installer — smarter database-host parsing, extra feature checks, and a refreshed installer UI
[Improved] - Wallet service refactor for staking / earn balance operations
[Improved] - Admin payment-gateway and virtual-card management UIs
[Fixed] - Updater license card now follows the current host instead of the newest row
[Fixed] - Manual deposit transaction currency handling
[Fixed] - Notification feed now tolerant of malformed data
[Fixed] - Deposit-method compatibility and conversion-rate layout issues
[Fixed] - Numerous bug fixes and UI polish across admin, P2P, subscriptions, and withdrawals
v2.0 – 17 May 2026
[Added] - P2P Marketplace with offer ads, escrow orders, disputes, promotions, payment-method directory, and trader profiles
[Added] - Subscription System with tier plans, pricing cycles, proration math, renewals, cancellations, and transactions
[Added] - Wallet Earn (Staking) with configurable plans, lock periods, APY, and scheduled rewards
[Added] - Mobile Recharge module with Sandbox, Reloadly, and generic HTTP API drivers
[Added] - Agent Program with dedicated panel, commission rule engine, QR cash-out, and operations workflow
[Added] - Feature Controls to toggle every revenue module per panel with KYC and phone-verification gates
[Added] - Project Updater with signed OTA releases, SHA-256 verification, recovery backups, and automatic migrations
[Added] - Redesigned Control Panel with searchable, categorized, permission-aware shortcuts
[Added] - PWA support with installable manifest, service worker, and configurable theme color and icons
[Added] - Wallet PIN as a secondary numeric PIN for transfers, withdrawals, and other high-risk actions
[Added] - Phone Verification via Twilio with rate-limited send and verify endpoints
[Added] - KYC Templates per audience (user / merchant / agent) with resubmission flow on rejection
[Added] - Login Activity tracking (IP, country, browser, device, platform) with one-click logout of all other sessions
[Added] - IP Block list to ban abusive addresses at the middleware layer
[Added] - Admin Lock Screen for quick session lock without full sign-out
[Added] - Background Jobs dashboard with task registry, scheduler view, retry, and retry-all for failed jobs
[Added] - User-to-merchant and user-to-agent account conversion from the admin user manager
[Added] - Bulk email send to all users directly from the admin panel
[Added] - "Login as user" support sessions with full audit logging
[Added] - Scheduled Withdrawals to cap payout submissions to defined day-of-week windows
[Added] - Saved Withdraw Accounts so users can reuse bank / crypto / mobile-money payout details
[Added] - Notification Templates with three configurable channels (Email, SMS, Push) and per-template on/off toggle
[Added] - In-app notification inbox via Laravel database notifications
[Added] - Style Manager to inject custom CSS without touching source code
[Added] - Currency role-based visibility (user / merchant / agent) for per-audience wallet enablement
[Added] - Expanded to 25+ payment gateways including Stripe, PayPal, Mollie, Cryptomus, Razorpay, Paystack, Flutterwave, Paymob, Coinbase Commerce, NowPayments, Binance Pay, Bitnob, StroWallet, and more
[Added] - Merchant API with Sanctum personal-access tokens and HMAC-signed webhook delivery
[Added] - Live Merchant API documentation page at /api-docs with Prism syntax highlighting
[Improved] - Multi-provider Virtual Cards now span Stripe Issuing, StroWallet, and Bitnob with per-provider capability flags (issue, top-up, withdraw, freeze, limits, controls)
[Improved] - WooCommerce gateway plugin bundled at public/general/woocommerce-gateway-v2.8.0/ for eCommerce checkout
[Improved] - Account management with KYC status flows and suspended / unverified / KYC-pending filtered views
[Improved] - Notification system with per-channel toggles and channel-specific templates
[Improved] - Security hardening across panels — account-status middleware, IP block, throttled phone verification, 2FA on User / Merchant / Agent / Admin
[Improved] - Multi-language UI with admin-managed translation strings via joedixon/laravel-translation
[Improved] - PDF receipts via barryvdh/laravel-dompdf for transactions, payment links, and subscription invoices
[Improved] - Voucher system with single-use / multi-use codes, per-currency limits, and merchant checkout redemption
[Improved] - Payment Links with fixed or buyer-defined amount, expiry, max uses, and guest checkout
[Upgraded] - Laravel framework to v11 with streamlined bootstrap and attribute-based middleware
[Upgraded] - PHP requirement to 8.3+ (PHP 8.4 supported)
[Upgraded] - Laravel Sanctum to v4 for Merchant API token authentication
[Upgraded] - Spatie Laravel Permission to v6 for staff roles and granular admin permissions
[Upgraded] - pragmarx/google2fa to v8 for TOTP-based two-factor authentication
[Upgraded] - Stripe PHP SDK to v17 with the latest Issuing API for virtual cards
[Upgraded] - Intervention Image to v3 for upload, resize, and format conversion
[Fixed] - Carry-over deposit, withdrawal, and gateway integration issues reported during v1.x
[Fixed] - Query optimization, N+1 reductions, and general performance improvements across admin and dashboard
[Removed] - Bundled development-only dependencies (Vite / Tailwind / Alpine) from the shipped runtime; the production UI uses pre-built assets in public/
Previous Releases (v1.x)
v1.0.6 – 30 August 2025
[Added] - Merchant disable feature
[Added] - Additional currencies for the StroWallet payment gateway
[Added] - Multi-fee option (Percentage + Fixed) for the StroWallet virtual card
[Improved] - Payment gateway list now displays all supported currencies
[Fixed] - Deposit issue with StroWallet
v1.0.5 – 30 July 2025
[Added] - Initial Control Panel for improved backend management
[Added] - Advanced search system in the admin panel
[Added] - WooCommerce plugin integration
[Upgraded] - Merchant API to enterprise-grade structure
[Fixed] - Payment gateway integration issues
[Fixed] - Various bugs and overall site performance optimization
v1.0.4 – 20 July 2025
[Added] - User and merchant account delete functionality
[Added] - Option to redirect visitors to login page instead of default landing
[Added] - User-to-merchant account conversion
[Added] - Separate withdrawal and deposit fee settings for users and merchants
[Fixed] - Currency management API
[Fixed] - Activity log display issues
v1.0.3 – 14 July 2025
[Added] - Custom landing page uploader
[Added] - Exchange API config in the admin currency section
[Added] - Site preloader management
[Improved] - Currency exchange error UI redesigned
[Improved] - Auto-disable deposit / withdraw methods when the underlying gateway is disabled
v1.0.2 – 6 July 2025
[Added] - New payment methods
[Added] - Initial multi-provider virtual card support
[Added] - Virtual card placeholder application flow
[Added] - Card top-up and withdrawal endpoints
[Improved] - Replaced static values with dynamic config options
v1.1.0 – 20 June 2025
[Added] - Merchant payment via QR code
[Added] - Payment using merchant payment link
[Added] - Voucher payment at checkout
[Added] - Advanced virtual card system (multi-provider support)
[Fixed] - Google reCAPTCHA integration issues
[Fixed] - General bug fixes and performance improvements

Resources

Support

Need help? Reach out — we read every message.

Email Support

contact.coevs@gmail.com — bug reports, sales questions, custom-work enquiries.

Website

coevs.com — product news and additional resources.

Before contacting support

Share your PHP version, Laravel version, database engine, and the latest entries from storage/logs/laravel.log. It speeds up triage massively.