Finance Lendv2.0 Documentation
Support

Finance Lend documentation

Everything you need to install, set up and run your lending business: loans and repayments, approvals, collections, the customer portal, your own website, the Android and iPhone apps, and the AI tools.

LaravelMulti-lender SaaSCustomer appsAI tools

Install in minutes   Explore the features

Getting started

Overview

Finance Lend is a complete loan management system. You can run it for your own lending business, or as a SaaS: lenders sign up, pick a plan and manage everything in one place, with their data kept completely separate.

How the pieces fit together

PartWhat it isWho uses it
Admin panelThe back office: customers, loans, approvals, collections, accounts, reports and settings.Super admin, lender (owner) and staff
Customer portalThe same login, with a customer's own view: loans, payments, documents, requests and statements.Customers
Lender websiteA public website for each lender with loan products, a calculator, enquiries, online sign-up and the Get our app page.Visitors and customers
Mobile appsFlutter apps for Android and iPhone, one app serving every lender; customers find their lender by search, code or QR.Customers
APIA read-only REST API for lenders' own tools, and a customer API that powers the apps.Developers

Quick-start checklist

  1. InstallCheck the requirements, create the database, upload the files and run the installer.
  2. Log in and secure the accountsUse the default logins once, then change every password.
  3. Switch on the background workAdd the cron line so reminders, collections and the queue run.
  4. Email and company detailsIn Settings fill in the company and email (SMTP) tabs. See Settings.
  5. Describe what you lendAdd branches, loan types, document types and, if you want, approval rules.
  6. Add customers and loansOr switch on online sign-up on the website.
Getting started

Server requirements

Finance Lend is built with Laravel. Make sure your hosting meets the following before you start.

PHP
8.1 or newer (8.2 or 8.3 is fine)
Database
MySQL 5.7+ or MariaDB 10.3+
Web server
Apache (with mod_rewrite) or Nginx
HTTPS
Strongly recommended. Required for the mobile apps, online payments and push notifications.
Cron
One cron line, see Background work

Required PHP extensions

BCMathCtypecURLDOMFileinfoFilterHashJSONMbstringOpenSSLPCREPDO (MySQL)SessionTokenizerXML
Note
The installer checks all of this for you in step 2 and shows a green tick next to everything that is fine.

Folders that must be writable

storage, bootstrap/cache and the upload folders under public. The installer checks these too. For a live server, lock everything else down.

Getting started

Create the database

The steps below use cPanel. Other hosting panels offer the same options under similar names.

  1. Open the database toolIn your hosting panel go to Databases and click MySQL® Databases. This tool creates databases and database users.
    The Databases section of cPanel
  2. Create the databaseType a name and click Create Database. Your host adds a prefix to the name; write the full name down.
    Creating a database
  3. Create a database userIn Add New User enter a user name and a strong password (use the generator) and click Create User.
    Creating a database user
  4. Add the user to the databaseIn Add User To Database choose the user and the database, then click Add.
  5. Give all privilegesTick ALL PRIVILEGES and click Make Changes.
    Giving the user all privileges
Keep these
Note the database host (usually localhost), database name, user name and password. The installer asks for them in step 5.
Getting started

Upload the files

Upload the contents of the main_file folder from your download to your web root.

  1. Open the File ManagerLog in to cPanel and open File Manager under Files.
    Opening the File Manager
  2. Go to the right folderFor your main domain this is public_html. For a sub-domain or sub-folder, open that folder instead.
    The public_html folder
  3. Upload and extractClick Upload, choose the zip file, wait for 100%, then right-click it and choose Extract. Make sure the files from main_file (including the hidden .htaccess) end up directly in the folder.
  4. CheckYou should see app, bootstrap, config, public, storage, artisan and the other Laravel folders.
Important
Do not upload the documentation or mobile_app folders to the web root. They are for you, not for visitors.
Getting started

Run the installer

A web installer sets up the application in a few minutes.

  1. StartOpen https://yourdomain.com/install in your browser. This starts the App Installation Process.
    The installer welcome page
  2. Check the serverClick Click to Check Your Server Requirements. Everything should be ticked.
    Server requirements check
  3. Check permissionsThe installer checks the folder permissions. When all are fine, click Click to Configure Your App Environment.
    Folder permissions check
  4. Choose the setup typeSelect Using Form Wizard Setup.
    Choosing the form wizard
  5. Enter the app and database detailsFill in the database host, name, user and password from the previous step, plus an application name and the application URL. Click Click to Install.
    Entering the app and database details
  6. FinishWhen you see Application has been successfully installed, click Click here to exit.
    Installation finished
Tip
Before you install, add DEFAULT_USER_PASSWORD=a-long-secret to the .env file if it already exists. The installer then gives the default accounts that password instead of 123456. See Default logins.
Getting started

After installation

A few minutes of setup now saves problems later.

  1. Log inOpen your site and sign in with a default account.
  2. Change the passwordsOpen Settings → Password for each default account. Passwords need at least 8 characters with a letter and a number.
  3. Add the cron lineSee Background work. Without it reminders and queued messages do not go out.
  4. Set up emailSettings → Email SMTP, then send a test message. Customer invitations, sign-in codes and reminders all use it.
  5. Fill in the company detailsName, logo, address, currency and date format under the General and Company tabs.
  6. Turn debug offIn .env set APP_ENV=production and APP_DEBUG=false. See Going live.
Getting started

Background work (cron job)

Finance Lend does some work on its own: payment reminders, assigning collectors to overdue instalments, mobile reminders and queued messages. A single cron line makes it all run.

Option 1: the scheduler (recommended)

In cPanel open Cron Jobs and add this line to run every minute. Replace the path with the folder that contains artisan.

* * * * * cd /home/youraccount/public_html && php artisan schedule:run >> /dev/null 2>&1
TaskWhenWhat it does
Repayment schedulesEvery minute checkSends due and overdue reminders to customers and assigns collectors to late instalments.
Mobile remindersDaily at 08:00Sends app push and inbox reminders for upcoming and late instalments.
Queue workerContinuously, when QUEUE_CONNECTION is not syncSends emails and other queued jobs in the background.

Option 2: a web cron

If your host cannot run schedule:run, use a URL cron instead. As super admin open Settings → Cronjob, generate the key, and add a cron that opens the URL shown there:

https://yourdomain.com/cronjob?key=YOUR_KEY

This runs the reminders and collector assignment. The last run time is shown on the same page.

Reminder timing
Reminders go out at REMINDER_SEND_HOUR on the days set by REMINDER_BEFORE_DAYS (default 7, 1, 0) and REMINDER_AFTER_DAYS (default 1, 3, 7, 14, 30). See Environment variables.
Getting started

Default logins

The installer creates three accounts so you can look around straight away.

RoleEmailPassword
Super adminsuperadmin@gmail.com123456
Owner (lender)owner@gmail.com123456
Manager (staff)manager@gmail.com123456
Change these
These are public. Change every password before you put real data in, or set DEFAULT_USER_PASSWORD in .env before installing.
Lending features

Roles and how it fits together

There are four kinds of people in the system, and everyone sees only what belongs to them.

RoleWhat they can do
Super adminRuns the platform: lenders, plans, coupons, payments and the platform website. Cannot see a lender's customers' loans.
OwnerThe lender. Has the full admin panel for their own business and their own data only.
StaffManagers, collectors and others the owner creates. Permissions come from the role the owner gives them.
CustomerThe borrower. Uses the portal, the lender's website or the app.

The owner's menu

GroupContains
DashboardPortfolio figures, charts and the AI brief. Staff Management (users, roles) sits right below it.
LendingCustomer, Loan, Approvals, Collections, Requests, Loan Payment
MoneyFinance (accounts and transactions), Expense, Report
CommunicationContact Diary, Notice Board, Website
AI & AppsAI Assistant, AI Usage, Mobile Apps, API Tokens, N8N
System ConfigurationBranch, Loan Type, Document Type, Account Type, Expense Type, Approval Rules, Email Notification, Accounting Export, Audit Log
System SettingsSettings (the super admin also sees CMS, Pricing and Coupons)
The owner dashboard
The owner dashboard: portfolio, collections and what needs attention.
Data separation
Each lender's data is kept apart in the same database. A staff member or customer can only reach the records of their own lender.
Lending features

Setting up your business

Describe what you lend and how, once, under System Configuration. Everything else builds on this.

FeatureWhat it does
BranchOffices or regions. Customers and loans belong to a branch, and you can filter and report by it.
Loan TypeYour products: minimum and maximum amount, interest rate, term, interest method, penalty and grace rules.
Document TypeThe documents customers must supply (ID, address proof, income proof). Used for KYC and as loan requirements.
Account TypeKinds of bank or cash accounts your business keeps.
Expense TypeCategories for your business expenses.
Email NotificationSwitch on or off, and edit, the emails the system sends. See Messages.
Approval RulesWho must approve a loan before it is paid out. See Approvals.

Where: System Configuration in the left menu.

Loan types
Loan types: each product has its own limits, rate and term.

Interest methods

Each loan type uses one method. The instalment schedule is built from it automatically.

MethodHow the interest is worked out
Fixed rateA fixed percentage of the original principal is charged in every instalment.
Flat rateThe total interest is worked out once and spread evenly across the instalments.
Reducing amountEqual principal each instalment, with interest charged on the balance that remains.
Mortgage amortizationEqual instalments (EMI) that mix principal and interest, with interest falling over time.
One-time paymentPrincipal and interest are repaid together in a single payment at the end.
Lending features

Customers and staff

Keep a record of every borrower, with their documents, and give your team the access they need and no more.

FeatureWhat it does
Customer listSearch, filter by branch, create, edit and open any customer.
Customer pageProfile, loans, repayments, documents and notes in one place.
InvitationA customer created by staff gets an email invitation to choose their own password. If you type a password for them they must change it at first sign-in.
KYC documentsCustomers upload documents (PDF, JPG, PNG up to 5 MB). Staff approve or reject each one with a note, and the customer is told.
Contact DiaryLog calls, visits and promises to pay against a customer.
Staff ManagementCreate users and roles, and choose exactly which permissions each role has.

Where: Lending → Customer, Communication → Contact Diary, Staff Management.

The customer list
The customer list.
One email, several lenders
The same email address can be a customer of different lenders. In the app and on the website a customer signs in to one lender at a time and can switch.
Lending features

Loans and schedules

Create a loan, and the system builds the repayment schedule, tracks every payment and works out what is late.

FeatureWhat it does
Create a loanChoose the customer and loan type, enter amount, term and start date. The schedule is generated for you.
StatusesDraft, submitted, approved, disbursed, rejected, closed. Only approved and disbursed loans count as owed and payable.
Repayment scheduleEvery instalment with its date, principal, interest, penalty and paid status.
Penalties and graceLate fees start after the grace days you set on the loan type.
Partial paymentsRecord any amount. It is applied to the oldest unpaid instalment first.
Early closureSettle a loan before the end of its term from the loan page.
Restructure and top-upChange the terms of a running loan, or add more money to it. These can have their own approval rules.
Loan pageSummary, schedule, payments, receipts, documents, collateral, agreement and the AI brief.

Where: Lending → Loan.

The loan list
The loan list with status and balance.
A loan page
A loan page: schedule, payments and the credit profile.
Draft loans stay private
Customers never see a loan that is still a draft, and it is not counted in what they owe.
Lending features

Approvals and credit profile

Decide who must say yes before money moves, and see a customer's track record before you decide.

FeatureWhat it does
Approval rulesRequire one or more approvers, depending on the loan amount. Applies to new loans, restructures and top-ups.
Approvals queueEach approver sees the loans waiting for them and approves or rejects, with a comment.
Credit profileOn the loan page: past loans, on-time record, current arrears and documents, so you can decide quickly.
NotificationsThe customer is told when their loan is approved or rejected.

Where: Lending → Approvals and System Configuration → Approval Rules.

The approvals queue
The approvals queue.
Approval rules
Approval rules.
Lending features

Payments and receipts

Take money in by hand or online, and give the customer a receipt every time.

FeatureWhat it does
Loan PaymentRecord a payment against a loan: amount, date, method and account. The schedule updates at once.
ReceiptsPrintable receipts for every payment, available to staff and to the customer.
Online paymentCustomers pay from the portal, a reminder link or the app using the gateways you have switched on in Settings.
Pay linksReminder emails and messages carry a secure link that opens the payment page directly.
RequestsCustomers' loan requests and payment requests arrive here for review.

Where: Lending → Loan Payment and Lending → Requests.

Lending features

Collections and reminders

Know who is late, who is chasing them and what was promised.

FeatureWhat it does
Collections boardEvery late instalment, grouped by how overdue it is, with the collector assigned.
Auto-assignThe scheduler gives late instalments to collectors automatically.
Follow-up notesRecord calls, visits and promises to pay, with the next follow-up date.
RemindersEmails (and app notifications) before and after the due date, with a pay link.
Portfolio at riskA report of how much of the portfolio is overdue by 1, 30, 60 and 90 days.

Where: Lending → Collections, Money → Report.

Collections
The collections board.
Portfolio at risk
Portfolio at risk.
Lending features

Collateral and agreements

Record what backs a loan and keep the signed paperwork with it.

FeatureWhat it does
Security tabOn the loan page: collateral items and guarantors with description and value.
AgreementA printable loan agreement filled in with the loan's details.
DocumentsAttach files to the loan and to the customer.
Lending features

Accounts and expenses

Keep the business money side next to the loans.

FeatureWhat it does
AccountsBank and cash accounts with their balance.
TransactionsDeposits and withdrawals per account. Loan payments and disbursements post here.
ExpensesRecord business costs by expense type, with date and notes.

Where: Money → Finance and Money → Expense.

Lending features

Reports and accounting export

Answer questions from your accountant, your bank or yourself.

ReportWhat it shows
LoanAll loans with status, amount and balance.
Loan paymentPayments received in a period.
CollectionsCollected against expected.
DisbursementsMoney lent out in a period.
OverdueLate instalments and how much is owed.
Portfolio at riskOverdue share of the portfolio by age.
Account and TransactionBalances and money movements.
ExpenseCosts by type.

Reports can be downloaded as PDF, Excel or CSV. The Accounting Export page produces files for accounting software (including QuickBooks and Tally formats).

Where: Money → Report and System Configuration → Accounting Export.

Accounting export
Accounting export.
Lending features

Audit log

A record of who changed what and when, so nothing important happens unseen.

Changes to loans, payments, approvals, customers and settings are recorded with the person, the time and the before and after values.

Where: System Configuration → Audit Log.

Audit log
The audit log.
Customers

Customer portal

After signing in, a customer gets their own view: what they owe, what is late, and how to pay.

FeatureWhat it does
DashboardSummary tiles (outstanding, next payment, overdue), an overdue alert listing each late loan with a Pay oldest button, and the lender's notices.
My loansOne card per loan with filters. Open a loan for its summary, schedule, payments and receipts.
Apply for a loanChoose a loan type, amount and term and send the request to the lender.
Documents (KYC)Upload identity and address documents and see whether each is pending, approved or rejected.
NoticesAnnouncements the lender chose to show to customers (set in Notice Board).
Profile and securityChange the password and see where the account was signed in.
Customer dashboard
The customer dashboard.
Customer loans
My loans: a card for each loan.
A customer's loan page
A loan, with its schedule, payments and receipts.
Customer documents
Documents and their review status.
Customers

Online sign-up and login

Customers can register themselves on your website and sign in on a page that carries your branding.

FeatureWhat it does
Self sign-upA customer registers on your site, confirms their email and carries on to documents and a loan application.
Branded loginYour logo and colours on the sign-in page of your website.
Password ruleOne rule everywhere: at least 8 characters, with a letter and a number.
Remember meKeeps the customer signed in on their device.
Security emailsThe customer is emailed when the password changes or a new device signs in. Every sign-in is recorded.
Resend confirmationOne click to send the confirmation email again.
Branded login
A lender-branded login page.
Location lookup
The sign-in history can show a rough location. This is off by default; set LOGIN_GEO_LOOKUP=true to turn it on.
Website & mobile

Lender website

Every lender can publish a website with their loan products, a calculator and a sign-up, without any design work.

FeatureWhat it does
Website builderPages, texts, images, colours and contact details.
AddressesA free address on the platform, plus the lender's own domain if you connect one.
My website menuA world icon in the top bar of the admin shows the live addresses with copy and open buttons, and whether the site is live.
Loan products and calculatorVisitors see your loan types and can work out repayments.
EnquiriesThe contact form sends messages to you.
Get our appA page at /site/{code}/app with a QR code, store buttons and the company code.

Where: Communication → Website.

Website builder
Managing the website.
A lender website
A lender's public website.
Website & mobile

Mobile apps

One Android app and one iPhone app serve every lender. The customer finds their lender, signs in and sees their own loans.

Finding the lender

Way inHow it works
Company codeThe customer types the lender's short code.
SearchThe customer searches by company name.
QR codeScan the QR on the lender's website. The app opens on that lender, ready to sign in.
LinkA link opens the app straight on the lender.
The Get our app page
The Get our app page on the lender's website.

In the app

FeatureWhat it does
HomeWhat is owed, what is late and the next payment.
LoansEvery loan with schedule, payments and receipts.
PayOpens the lender's secure payment page.
ApplySend a loan request.
DocumentsUpload KYC documents from the camera or files.
Inbox and pushReminders and updates, in the app and as push notifications.
AssistantAsk questions about loans, if the lender has switched on AI.
Switch companyCustomers of several lenders move between them without signing in again.
Biometric lockFingerprint or face unlock for the app.
App screens
Company, sign-in, home and loan detail.
More app screens
Documents, inbox, more and switch company.

Signing in and security

  • Sign in with email and password, or with a one-time emailed code (needs SMTP).
  • Changing the password signs the app out everywhere. Sign out of all devices is in the app.
  • An app that is not used for MOBILE_TOKEN_IDLE_DAYS days (default 90) is signed out.
  • A customer created by staff with a typed password must change it at first sign-in.

Where (owner): AI & Apps → Mobile Apps shows the QR, the company code and lets you add the store links.

Mobile Apps page
The owner's Mobile Apps page.
Website & mobile

Build and publish the apps

The two apps are in mobile_app/android_app and mobile_app/iphone_app. They are built with Flutter and are separate projects.

  1. Install FlutterInstall the Flutter SDK, plus Android Studio for Android, or Xcode on a Mac for iPhone.
  2. Point the app at your serverPass your server address when you build: --dart-define=API_BASE_URL=https://yourdomain.com. Optionally add --dart-define=COMPANY=your-code to lock the app to one lender.
  3. Run itIn the project folder run flutter pub get and then flutter run --dart-define=API_BASE_URL=https://yourdomain.com.
  4. Build for the storeAndroid: flutter build appbundle --dart-define=API_BASE_URL=.... iPhone: flutter build ipa --dart-define=API_BASE_URL=....
  5. PublishUpload to Google Play and the App Store, then paste both links into Mobile Apps so the website shows the store buttons.

Push notifications (optional)

Create a Firebase project, add the Android and iPhone apps, and download a service-account key. Put the path in .env as FCM_CREDENTIALS. Without it, reminders still arrive in the app inbox.

Before you publish
Replace the app icons, name and bundle id with your own, and read the README inside each app folder.

Controls

SettingMeaning
MOBILE_MIN_APP_VERSIONApps older than this are asked to update.
MOBILE_MAINTENANCEPut the apps into maintenance mode.
MOBILE_REMINDER_DAYSDays before and after the due date to send app reminders.
MOBILE_TOKEN_IDLE_DAYSIdle days before an app is signed out.
AI & automation

AI tools

Finance Lend uses Anthropic's Claude to save time. Every tool is optional and each lender can use their own key.

ToolWhat it does
AI AssistantAsk about your portfolio in plain words: who is late, what was collected, loan details.
Dashboard briefA short written summary of the portfolio at the top of the dashboard.
Loan briefOn the loan page, a plain summary of the loan and the customer's record.
WriterDrafts collection reminders, notices and messages in the tone you choose.
Slip readerReads a payment slip photo and fills in the payment details.
Document reviewOptional pre-check of uploaded customer documents.
Customer assistantLets customers ask about their own loans in the portal and app.
AI SettingsYour own key, the optional switches, and how much each tool has used against your monthly limit.

Where: AI & Apps → AI Assistant and AI Settings (key, switches and usage).

Plans and each lender's own settings

  • By plan: when you sell plans, the plan form has an Include AI tools switch. A lender on a plan without it sees an upgrade notice on AI Settings and the AI tools stay hidden. Existing plans keep AI when you upgrade; a lender with no plan assigned is not restricted.
  • By lender: on AI Settings each lender can add their own Anthropic key (billed to them, no platform allowance) and switch the Customer assistant and Document review on or off for their own business.
AI Assistant
The AI Assistant.

Keys and limits

Setting in .envMeaning
ANTHROPIC_API_KEYThe platform key used when a lender has not added their own.
ANTHROPIC_DOCUMENT_REVIEWSwitch the document pre-check on or off.
ANTHROPIC_CUSTOMER_ASSISTANTSwitch the customer assistant on or off.
ANTHROPIC_MONTHLY_TOKEN_LIMITMonthly usage cap per lender.
Privacy
Keys are stored encrypted. AI only sees the data of the lender asking, and nothing is sent unless a tool is used.
AI & automation

Messages and automation

Decide what the system tells customers and staff, and connect it to your other tools.

Email templates

Edit the wording and switch each on or off under Email Notification.

TemplateSent when
User createdA staff user is added.
Customer createdA customer is added (the invitation).
Loan createdA loan is created.
Loan status updateA loan is approved, rejected or changes status.
Repayment createdA payment is recorded.
Account createdAn account is added.
Transaction createdA transaction is posted.
Payment reminderAn instalment is coming up or late.

N8N and webhooks

Send events to n8n (or any webhook) to start your own workflows. Events: create customer, create user, new loan, loan status update, new account, new repayment and payment reminder. Set the webhook under AI & Apps → N8N. Passwords are never sent.

Notice Board

Post announcements for staff, and choose which ones customers can also see.

Administration

Settings and integrations

Everything that is set once and rarely touched lives in Settings.

TabWhat it does
User ProfileYour name, email and picture.
PasswordChange your password.
GeneralLogo, favicon, title, footer, date and currency format, language.
CompanyCompany name, address and contact details used on documents.
Email SMTPThe mail server for all emails, with a test button.
PaymentThe payment gateways customers pay with.
Site SEOTitle, description and keywords for search engines.
Google reCAPTCHAProtects sign-up and login forms from bots.
2FATwo-factor sign-in with an authenticator app.
Cloud StorageKeep uploads locally, or on S3 or Wasabi.
TwilioSMS messages.
CronjobThe web cron key and last run (super admin).
Settings
Settings.
Email first
Set up and test SMTP before anything else. Invitations, confirmation emails, emailed app codes and reminders all depend on it.
Administration

Languages and themes

Twelve languages are included: Arabic, Danish, Dutch, English, French, German, Italian, Japanese, Polish, Portuguese, Russian and Spanish.

  • Each user picks a language from the language icon in the top bar.
  • Translation files are in resources/lang as JSON. Edit a file, or copy one to add a new language.
  • Owners and the super admin can change layout, sidebar and colours from the settings icon in the top bar.
On upgrade
Language files are replaced by the new ones, so keep a copy of any changes you made.
Administration

API

Two APIs are included.

APIForNotes
Owner REST API (v1)Your own tools and reportsRead-only. Create a token under AI & Apps → API Tokens and send it as a bearer token.
Customer mobile APIThe Android and iPhone appsUnder /api/mobile/v1, for customers only, with rate limits.

The mobile endpoints are described in main_file/MOBILE_API.md.

Administration

SaaS administration

For the platform owner (super admin): sell the system to many lenders.

FeatureWhat it does
Lenders (owners)Create, edit and disable lenders, and sign in as one to help them.
Plans (Pricing)Limits on users, customers and loans, and the price.
CouponsDiscount codes for sign-ups.
PaymentsSubscription payments from lenders.
CMSThe platform's own website pages.
SettingsEmail, payment gateways, storage and the cron key for the whole platform.
Operations

Upgrading

Always back up first.

  1. Back upDownload your .env file, .htaccess and the storage folder, and export the database.
  2. Replace the filesDelete the old files and upload the new main_file contents.
  3. RestorePut your .env, .htaccess and storage back.
  4. Allow the updaterSet INSTALLER_UPDATER_ENABLED=true in .env and open /update to run the update wizard, or run php artisan migrate on the command line.
  5. Clear cachesRun php artisan optimize:clear (or delete the files in bootstrap/cache and storage/framework/views).
  6. Lock the updater againSet INSTALLER_UPDATER_ENABLED=false.
Language files
Upgrading overwrites the language files. Keep your own changes.
Operations

Going live checklist

  • APP_ENV=production and APP_DEBUG=false, and the correct APP_URL (with https).
  • Change all default passwords.
  • Use QUEUE_CONNECTION=database and the cron line so emails are sent in the background.
  • Set up SMTP and send a test email.
  • Lock down file permissions with deploy/harden-permissions.sh (run with --dry-run first to see what it will do).
  • Run the web server and the cron job as the same user, so cached views are shared.
  • Run php artisan migrate and php artisan optimize:clear after every update.
  • Take regular database and storage backups.
Operations

Troubleshooting and FAQ

ProblemTry this
A blank page or 500 errorCheck storage/logs/laravel.log. Make sure storage and bootstrap/cache are writable, then run php artisan optimize:clear.
Emails are not arrivingTest SMTP in Settings. Check the cron line is running and, if you use a queue, that the worker is running.
Reminders are not sentCheck the cron line, the email template is switched on, and the send hour.
Page looks old after an updateRun php artisan optimize:clear and hard-refresh the browser.
Cannot write to cache after an updateMake sure the web server and CLI run as the same user, or reset ownership of storage.
The app cannot find my companyCheck the company code, that the website is published, and that your server uses https.
The QR code does not open the appThe app must be installed first. Check the store links are saved in Mobile Apps.
AI says it is not availableAdd an API key and check the monthly limit in AI Usage.
Operations

Environment variables

Set in the .env file. Run php artisan optimize:clear after changing it.

KeyDefaultPurpose
APP_ENV / APP_DEBUG / APP_URL-Environment, debug output and the public address.
QUEUE_CONNECTIONsyncUse database in production.
DEFAULT_USER_PASSWORD123456Password given to the default accounts at install.
INSTALLER_UPDATER_ENABLEDfalseTurn on only while upgrading.
REMINDER_SEND_HOUR-Hour of day reminders go out.
REMINDER_BEFORE_DAYS7,1,0Days before the due date.
REMINDER_AFTER_DAYS1,3,7,14,30Days after the due date.
REMINDER_PAY_LINK_DAYS30How long a pay link stays valid.
ANTHROPIC_*-See AI tools.
FCM_CREDENTIALS-Firebase key for push.
MOBILE_*-See Mobile apps.
LOGIN_GEO_LOOKUPoffShow a rough location in the sign-in history.
Operations

Change log

Version 2.0 – 17 October 2026

  • Customer mobile apps for Android and iPhone, with company code, search, QR and links, push and an inbox.
  • AI tools: assistant, dashboard and loan briefs, writer, slip reader and usage limits.
  • Customer portal redesign, branded customer login and stronger sign-in security.
  • Lender websites with a Get our app page and a My website menu.
  • Regrouped menu with Staff Management under the dashboard.
  • Approval rules, collections board, portfolio at risk, accounting export and audit log.
Operations

Support

Stuck? We are happy to help.

Open a ticket at support.smartwebinfotech.com. Please include your purchase code, the page you were on, what you expected, and the last lines of storage/logs/laravel.log.