Yourbank

Install, connect providers and brand Yourbank: wallets, bank transfers, cards, bills, savings, loans, a payment gateway for businesses and an admin console, for any country.

Laravel · PHP 8.3About 20 minutes to install9 min read
01

What you get#

A banking platform for any country. Customers and businesses use one app; the owner runs everything from an administrator console. Every rule is enforced on the server.

Personal banking

Wallets in several currencies, bank transfers with name check, international transfers, beneficiaries, virtual and physical cards, bills and airtime, fixed deposits, loans, statements and premium receipts.

Business banking

Everything a customer gets, plus a payment gateway (hosted checkout, payment links, API, signed webhooks, refunds), bulk payments, invoices, team roles and approvals, and business loans.

Administrator console

Customers, identity review, transfer review, ledger, fees and pricing, provider integrations, broadcast notifications, audit log, and a switch between test and live mode.

Country packs

Nigeria, Ghana, Kenya, South Africa, United Kingdom, United States and the euro area. One setting picks the currency, account number format, bills catalogue, identity levels and provider shortlist.

02

Requirements#

ItemNeeded
PHP8.3 or newer
PHP extensionsbcmath, ctype, curl, dom, fileinfo, gd, json, mbstring, openssl, pdo_mysql (or pdo_sqlite), tokenizer, xml, zip
DatabaseMySQL 8 / MariaDB 10.6 or SQLite
OtherHTTPS on the domain and one cron job
03

Install#

The same files work on a domain, a subdomain or a folder. The installer starts by itself the first time you open the address.

Choose where it lives

  • Domain or subdomain (best). Point the domain or a subdomain such as bank.yourdomain.com at the public folder, then open the address.
  • Subfolder (yourdomain.com/bank). Upload the whole folder next to your site and make https://yourdomain.com/bank serve the public folder (a symlink or an alias). Open /bank/install; the app detects the folder by itself.
  • cPanel without access to the document root. Upload the project above public_html (for example /home/user/bank), put the contents of public into public_html/bank, and edit the two paths in public_html/bank/index.php so they point to ../../bank/vendor/autoload.php and ../../bank/bootstrap/app.php.

Run the installer

  1. Upload and extract

    In cPanel File Manager, upload the zip and press Extract.

  2. Set the PHP version

    cPanel, MultiPHP Manager: choose PHP 8.3 or newer. Then Select PHP Version and enable the extensions listed above.

  3. Make folders writable

    Give storage and bootstrap/cache write permission.

  4. Open the address

    The installer checks the server, then asks for the database, bank name, country, brand colour and the administrator login. It writes .env for you, including APP_KEY and a separate SECRETS_KEY that encrypts provider keys.

  5. Add the cron job

    Every minute. The installer shows the exact line; use the ea-php83 path if your host requires it.

    BASH
    * * * * * /usr/local/bin/php /home/CPANEL-USER/bank/artisan schedule:run >> /dev/null 2>&1
  6. Sign in

    Sign in with the administrator you just created.

04

Country and currency#

BANK_COUNTRY in .env selects a country pack: NG, GH, KE, ZA, GB, US or DE (euro area). It sets the base currency, account number format, bills catalogue, identity levels and provider shortlist. Add your own pack by copying one in config/countries.php. Customers can also hold wallets in other currencies.

05

Connect providers#

Every part works by itself in test mode. For real money, connect providers under Administrator, Integrations.

PartChoices
Card and bank-transfer checkout, account numbersPayment processors such as Paystack or Flutterwave
Payouts to other banksFlutterwave, Paystack, Wise
Bills (airtime, data, electricity, TV)Flutterwave, VTpass
CardsStripe Issuing, Lithic
International account details (USD, GBP, EUR)Wise
Identity checksManual review by your team (default), Smile ID, Sumsub
EmailBrevo or any SMTP server

Keys are stored encrypted and never shown again. Customers never see which provider you use.

06

Test mode and live mode#

Switch in Settings, Go live when your provider keys are live and your company details are filled in. You can switch back at any time and existing data is never touched. Test API keys work only in test mode, live keys only in live mode; they can never mix.

07

Payment gateway and API#

A business creates a checkout, sends the customer to the hosted page, and is told by a signed webhook when it is paid. Money lands in the business account at once, minus the gateway fee you set. Keys are created in Developers, API keys; writes need an Idempotency-Key; webhooks are HMAC-SHA256 signed and retried with back-off. The full reference ships with the script in docs/gateway-api.md, and the partner API for fintechs in docs/partner-api.md.

08

Make it yours#

  • Bank name, country and brand colour are set during installation. The app runs in light or dark mode.
  • Fees and pricing rules are in the administrator console; the gateway fee is under Settings, Payments and fees.
  • Identity review is manual by default; connect Smile ID or Sumsub to automate it.
  • Need a matching public website, extra providers or new products? Request a quote.
09

Scheduled tasks#

One cron job drives everything. If it stops, webhooks stop retrying and deposits stop maturing.

The scheduler retries webhooks, collects loan instalments, matures deposits and runs the nightly integrity check.

10

Backups and updates#

Two habits keep a live site safe: backups before every change, and updates from your own dashboard only.

What to back up

Back up the database, the .env file and your APP_KEY and SECRETS_KEY regularly. Keep a copy of the storage folder as well. To update, upload the new files over the old ones, then run php artisan migrate --force.

Installing a new version

  1. Back up first

    Copy the files and database as described above. Keep the copy somewhere other than the server.

  2. Download the new release

    Sign in to Biply Market, open My licences and download the latest signed zip. Releases are only available to licence holders.

  3. Upload and overwrite

    Extract the zip over your existing files. Do not delete your data folder or .env file: they hold your settings and customers.

  4. Check the release notes

    Each release says whether the database changes. If you have no terminal access, email [email protected] and we will apply it for you.

  5. Open the site and test

    Sign in as an administrator and check one normal action before you tell customers.

11

Security#

No software is 100% secure. What is built in, and what you must still do, is written out in docs/security.md.

  • Every movement is one balanced, immutable double-entry journal entry. Amounts are whole numbers in minor units.
  • Payments, refunds, loan repayments and transfers are idempotent: a webhook delivered twice never moves money twice.
  • Provider keys are encrypted at rest and removed from logs. Webhooks are signature-checked and re-checked with the provider before money is credited.
  • Two-step sign-in (TOTP), per-account lockout, login history, and a strict Content-Security-Policy.
12

Troubleshooting#

SymptomLikely cause and fix
A blank page or error 500Check storage/logs (sensitive values are removed from them). Confirm PHP 8.3 and the required extensions.
The installer does not appearstorage/app/installed.json means it already ran. Delete it only on a fresh server.
"Session expired" loopsAPP_URL must match the address you open, and the storage folder must be writable.
Webhooks do not retry or deposits do not matureThe cron job is missing or uses the wrong PHP path. Re-add the line the installer showed.
Customers get no emailsConnect and test Integrations, Email. Check spam folders and your SMTP password.
13

Getting help and customisation#

You are never on your own with a Biply script.

Free installation

After you buy, tell us and we install Yourbank on your hosting at no extra cost.

Professional support

Email [email protected] with your domain and a description or screenshot of the problem.

Customisation

Need your own features, integrations or branding? Hire Biply Agency for a written quote.

Chat on WhatsApp