XCRETCH Business ERP
A complete, double-entry accounting system designed for modern businesses that handle both traditional banking and cryptocurrency. This guide covers every feature, workflow, and screen in the system.
This ERP system manages your complete business lifecycle:
Track clients, generate invoices, record payments
Manage multiple bank accounts in different currencies
Track crypto wallets, transactions, and conversions
Categorize and track all business expenses
Manage employees and process monthly salaries
Full general ledger with journal entries
P&L, Balance Sheet, Cash Flow, and more
PKR, USD, EUR, GBP, AED, USDC, USDT supported
Role-based access control with 35+ permissions
Complete tracking of every system action
| Password | Role | |
|---|---|---|
admin@xcretch.com | password | Super Admin (full access) |
Login & Access
How to Login
http://localhost/x_erpLogging Out
Click your name in the top-right corner and select Logout. Always log out when using shared computers.
Dashboard
The Dashboard is your business command center. It shows real-time financial data at a glance.
Widgets Explained
| Widget | What It Shows |
|---|---|
| Total Balance | Combined balance across all bank accounts and crypto wallets in base currency (PKR) |
| Monthly Revenue | Total invoiced amount for the current month |
| Outstanding | Total unpaid amount across all issued invoices |
| Monthly Expenses | Total expenses recorded for the current month |
| Recent Invoices | Last 5 invoices with status badges |
| Recent Payments | Last 5 client payments received |
| Expenses by Category | Top expense categories for the month |
| Revenue Chart | Monthly revenue vs expenses bar chart (last 12 months) |
Navigation Guide
The left sidebar organizes all modules into sections:
| Section | Modules |
|---|---|
| Dashboard | Main overview screen |
| Accounting | Chart of Accounts, Journal Entries, General Ledger |
| Audit & Logs | Audit Trail |
| Clients | Client list, Invoices, Payments |
| Banking | Bank Accounts, Transfers, Reconciliation |
| Crypto | Wallets, Transactions |
| Expenses | Expenses, Categories, Salaries |
| Employees | Employee directory |
| Reports | 10 financial reports |
| Administration | Settings, Users, Roles, Currencies |
Clients
Manage all your business clients. Every client can have invoices, payments, and balances tracked in their preferred currency.
Viewing Clients
Navigate to Clients in the sidebar. The list shows:
- Client code (auto-generated:
CLT-001,CLT-002, etc.) - Company name and contact person
- Email and phone
- Currency
- Status (Active/Inactive)
- Outstanding balance
Creating a New Client
Client Detail Page
Click any client row to see their detail page with:
- Client Info — Full profile, contact details, address
- Outstanding Balance — Total unpaid invoices in their currency
- Invoice History — All invoices for this client with status
- Payment History — All payments received from this client
Editing a Client
Click Edit on the client detail page. Change any field and click Update.
Deactivating a Client
Set status to Inactive to hide them from dropdowns while preserving all historical data.
Client Payments
Record payments received from clients against their invoices.
Recording a Payment
Debit: Bank Account (money comes in)
Credit: Accounts Receivable (client's outstanding decreases)
Invoices
Create professional invoices for your clients with full line-item detail, tax, and discount support.
Invoice Lifecycle
Can be cancelled at DRAFT or ISSUED stage. OVERDUE status auto-applies after due date.
Creating an Invoice
Issuing an Invoice
When the invoice is ready to send to the client, click Issue on the invoice detail page. This:
- Changes status from DRAFT → ISSUED
- Automatically creates a journal entry (Debit: Accounts Receivable, Credit: Revenue)
- The invoice now appears in the client's outstanding balance
Downloading Invoice PDF
Click the red PDF button on any invoice to download a professional PDF with:
- Company header with logo area
- Invoice number, date, due date, status badge
- Bill-to client details
- Itemized table with quantities, rates, amounts
- Subtotal, discount, tax, total, paid, outstanding
- Notes and terms
Cancelling an Invoice
Click Cancel on the invoice detail page. This reverses the journal entry and sets status to CANCELLED.
Invoice Payments
When a client pays an invoice (partially or fully), record it through the Payment system.
Partial Payments
You can record multiple partial payments against one invoice. The system tracks:
- Paid Amount — Total received
- Outstanding Amount — Remaining balance
- Status — Automatically changes to PARTIALLY_PAID or PAID
Bank Accounts
Track all your bank accounts with real-time balances in any currency.
Creating a Bank Account
Understanding Balances
Each bank account shows three balance types:
- Book Balance — What the system calculates based on all transactions
- Statement Balance — What you manually enter from your bank statement
- Difference — Gap between book and statement (should be zero)
Reconciling an Account
Click Reconcile on any bank account to match your records with the bank statement:
Transfers
Move money between your accounts (bank-to-bank, bank-to-crypto, crypto-to-crypto).
Creating a Transfer
Debit: Destination Account (increases)
Credit: Source Account (decreases)
No income is double-counted.
Currency Conversion
When transferring between different currencies (e.g., PKR → USD), the system handles the exchange rate and records any gain/loss automatically.
Crypto Wallets
Track your cryptocurrency holdings across multiple wallets and chains.
Supported Coins
USDC and USDT are pre-configured. You can add any coin through the currency system.
Creating a Crypto Wallet
Portfolio View
The crypto dashboard shows:
- Total portfolio value in base currency (PKR)
- Individual wallet balances with current value
- Recent transactions
Crypto Transactions
Record all crypto activity: buys, sells, conversions, and transfers.
Transaction Types
| Type | Description | Accounting Impact |
|---|---|---|
| BUY | Purchased crypto with fiat | Debit: Crypto Wallet, Credit: Bank Account |
| SELL | Sold crypto for fiat | Debit: Bank Account, Credit: Crypto Wallet |
| CONVERT | Swapped one crypto for another | Debit: New Wallet, Credit: Old Wallet |
| TRANSFER | Moved between wallets | Debit: Destination, Credit: Source |
Recording a Crypto Transaction
Expenses
Track all business spending with categories, attachments, and accounting integration.
Recording an Expense
Expense Categories
Pre-configured categories include:
| Category | COA Account |
|---|---|
| Office Rent | Rent Expense |
| Utilities | Utilities Expense |
| Office Supplies | Office Supplies |
| Salaries | Salary Expense |
| Marketing | Marketing Expense |
| Travel | Travel Expense |
| Professional Fees | Professional Fees |
| Software & Tools | Software Expense |
| Insurance | Insurance Expense |
| Maintenance | Maintenance Expense |
| Communication | Communication Expense |
| Bank Charges | Bank Charges |
| Miscellaneous | Miscellaneous Expense |
Custom Categories
Go to Expenses → Categories to add your own. Each category maps to a Chart of Accounts entry for proper accounting.
Expense Categories
Create and manage expense categories. Each category links to a Chart of Accounts entry.
Adding a Category
Employees
Maintain your employee directory with designations, departments, and salary info.
Adding an Employee
EMP-001, EMP-002, etc. Cannot be changed after creation.Employee Detail Page
Shows complete employee profile, salary history, and all salary slips.
Salaries & Payslips
Process monthly payroll with automatic accounting entries and PDF payslip generation.
Salary Processing Workflow
Creating a Salary Record (Single)
Bulk Salary Processing
Process multiple employees at once:
Marking a Salary as Paid
Debit: Salary Expense
Credit: Bank Account
Downloading Salary Slip PDF
Click the red PDF Slip button on any salary record to download a professional payslip showing:
- Company header and employee details
- Earnings section: Basic Salary, Bonus
- Deductions section
- Net Salary highlight
- Payment date and status
Chart of Accounts (COA)
The backbone of your accounting system. Every financial transaction maps to accounts here.
Account Types
| Type | Description | Examples |
|---|---|---|
| ASSET | What you own | Cash, Bank Accounts, Receivables, Crypto |
| LIABILITY | What you owe | Payables, Loans, Credit Cards |
| EQUITY | Owner's stake | Capital, Retained Earnings |
| REVENUE | Income earned | Service Revenue, Sales |
| EXPENSE | Costs incurred | Rent, Salaries, Utilities |
| OTHER_INCOME | Non-operating income | Interest Income, Gain on Sale |
| OTHER_LOSS | Non-operating losses | Loss on Sale, Penalties |
Default Accounts (Pre-configured)
1000— Assets (parent)1100— Cash in Hand1110— Bank Accounts1120— Petty Cash1200— Accounts Receivable1300— Prepaid Expenses2000— Liabilities (parent)2100— Accounts Payable2200— Salary Payable3000— Owner's Equity4000— Revenue5000— Cost of Goods Sold6000— Salary Expense6100— Rent Expense6200— Utilities Expense6300— Office Supplies
Creating a New Account
6400), Name, Type, Sub-TypeAccount Sub-Types
Each account can be a Header (grouping only) or Detail (used in transactions). Only Detail accounts can be used in journal entries.
Journal Entries
The heart of double-entry accounting. Every financial transaction creates a journal entry.
Understanding Journal Entries
Every journal entry has:
- Entry Number — Auto-generated:
JV-2026-000001 - Date — Transaction date
- Description — What this entry is for
- Lines — At least 2 lines (debit + credit)
- Status — DRAFT, POSTED, CANCELLED, REVERSED
Golden Rule: Total Debits MUST equal Total Credits. The system enforces this.
Creating a Manual Journal Entry
Posting a Journal Entry
Click Post on a DRAFT entry. This:
- Changes status to POSTED
- Updates account balances in the
account_balancestable - Makes the entry permanent (cannot be edited, only reversed)
Automatic Journal Entries
The system creates journal entries automatically for:
| Action | Journal Entry |
|---|---|
| Issue Invoice | Dr: Accounts Receivable → Cr: Revenue |
| Record Client Payment | Dr: Bank Account → Cr: Accounts Receivable |
| Record Expense | Dr: Expense Account → Cr: Bank Account |
| Pay Salary | Dr: Salary Expense → Cr: Bank Account |
| Bank Transfer | Dr: Destination Bank → Cr: Source Bank |
| Crypto Buy | Dr: Crypto Wallet → Cr: Bank Account |
| Crypto Sell | Dr: Bank Account → Cr: Crypto Wallet |
General Ledger
View the complete transaction history for any account.
Using the General Ledger
Reading the Ledger
| Column | Meaning |
|---|---|
| Date | Transaction date |
| Entry # | Journal entry reference |
| Description | Transaction description |
| Debit | Amount debited to this account |
| Credit | Amount credited to this account |
| Balance | Running balance after this transaction |
Trial Balance
A snapshot of all account balances at a specific date. Total debits must equal total credits.
Using the Trial Balance
What It Shows
- Every account with a non-zero balance
- Debit and Credit columns
- Total row at the bottom — both sides MUST match
- If they don't match, there's an accounting error that needs investigation
Reports
The system includes 10 comprehensive financial reports. All support date filtering and CSV export.
Profit & Loss Statement
Shows your revenue, expenses, and net profit for a period.
- Revenue Section — All revenue accounts with totals
- Expense Section — All expense accounts grouped and totalled
- Net Profit/Loss — Revenue minus Expenses
- Set From Date and To Date to filter
Balance Sheet
A snapshot of your financial position at a specific date:
- Assets — What you own (bank, crypto, receivables)
- Liabilities — What you owe (payables, loans)
- Equity — Owner's stake
- Balance Check: Assets = Liabilities + Equity
Cash Flow Statement
Tracks where your cash came from and where it went:
- Operating Activities — Revenue, expenses, payments
- Investing Activities — Asset purchases/sales
- Financing Activities — Loans, capital contributions
Accounts Receivable
Shows all outstanding invoices grouped by client with aging buckets.
Aging Report
Categorizes outstanding receivables by age:
| Bucket | Meaning |
|---|---|
| Current | Not yet due |
| 1–30 Days | Overdue by 1–30 days |
| 31–60 Days | Overdue by 31–60 days |
| 61–90 Days | Overdue by 61–90 days |
| 90+ Days | Severely overdue |
Expense by Category
Bar chart and table showing expenses broken down by category. Helps identify where money is going.
General Ledger Report
Detailed transaction listing for any account with date filtering. Shows every journal entry affecting the selected account.
Revenue by Client
Shows how much revenue each client has generated. Useful for identifying your most valuable clients.
Currency Position
Shows your asset balances broken down by currency. Useful for multi-currency businesses to monitor FX exposure.
Currencies
Manage the currencies your business operates in.
Pre-configured Currencies
| Code | Name | Symbol | Type |
|---|---|---|---|
| PKR | Pakistani Rupee | Rs. | Fiat (Base) |
| USD | US Dollar | $ | Fiat |
| EUR | Euro | € | Fiat |
| GBP | British Pound | £ | Fiat |
| AED | UAE Dirham | د.إ | Fiat |
| USDC | USD Coin | $ | Crypto |
| USDT | Tether | $ | Crypto |
Adding a Currency
Exchange Rates
Manage exchange rates for currency conversions.
Setting Exchange Rates
Example: If 1 USD = 278.50 PKR, enter rate 278.50 for USD.
Users
Manage who can access the system and what they can do.
Creating a User
User Detail Page
Shows user profile, assigned roles, and activity. You can:
- Edit user details
- Change role assignment
- Deactivate the user
- Reset password
Roles & Permissions
Define what each user can see and do in the system.
Default Roles
| Role | Description | Key Permissions |
|---|---|---|
| Super Admin | Full system access | Everything |
| Admin | Administrative access | Most operations except user/role management |
| Accountant | Financial operations | Journal entries, reports, invoices, expenses |
| Manager | Team management | View reports, manage employees, approve expenses |
| Staff | Basic operations | View-only for most modules, create expenses |
| Viewer | Read-only access | View everything, cannot edit |
Available Permissions (35+)
Permissions are grouped by module:
- Clients: clients.view, clients.create, clients.edit, clients.delete
- Invoices: invoices.view, invoices.create, invoices.edit, invoices.delete
- Payments: payments.view, payments.create, payments.edit, payments.delete
- Banking: bank-accounts.view, bank-accounts.manage, transfers.view, transfers.create
- Crypto: crypto.view, crypto.manage
- Expenses: expenses.view, expenses.create, expenses.edit, expenses.delete
- Employees: employees.view, employees.manage
- Salaries: salaries.view, salaries.manage
- Journal: journal.view, journal.create
- Reports: reports.view
- Settings: settings.manage
- Users: users.view, users.manage
- Roles: roles.view, roles.manage
- Currencies: currencies.view, currencies.manage
- Audit: audit.view
Creating a Custom Role
System Settings
Configure your company profile, system preferences, and invoicing defaults.
Company Profile Tab
| Setting | Current Value | Used In |
|---|---|---|
| Company Name | XCRETCH Business ERP | PDF headers, reports, footer |
| Address | Karachi, Pakistan | PDF headers |
| Phone | +92-300-1234567 | PDF headers |
| info@xcretch.com | PDF headers | |
| Website | https://xcretch.com | PDF footers |
| Tax Number | NTN-1234567 | Invoice PDFs |
System Tab
- Base Currency — PKR (all reports convert to this)
- Fiscal Year Start — January (month 1)
Invoicing Tab
- Invoice Prefix — INV (invoices numbered INV-2026-000001)
- Default Payment Terms — Net 30
- Default Invoice Notes — Thank you for your business!
Audit Trail
Every action in the system is logged for security and compliance.
What Gets Logged
- User logins and logouts
- Record creation, updates, and deletions
- Invoice issuing and cancelling
- Salary processing and payments
- Journal entry posting
- Settings changes
- User and role changes
Viewing the Audit Trail
Filter Options
| Filter | Values |
|---|---|
| Module | clients, invoices, payments, transfers, bank_accounts, crypto_wallets, expenses, salaries, employees, journal_entries, users, roles, settings |
| Action | create, update, delete, post, cancel, login |
Notifications
System alerts and updates appear in the bell icon on the top bar.
Notification Types
- info — General information
- success — Successful operations
- warning — Attention needed
- error — Failed operations
Managing Notifications
- Click the bell icon in the top bar to see recent notifications
- Click View All to go to the full notifications page
- Click the checkmark to mark individual notifications as read
- Click Mark All Read to clear all unread notifications
- Click the trash icon to delete notifications
My Profile
Manage your personal account settings.
Editing Your Profile
Changing Your Password
Keyboard Shortcuts
| Action | How |
|---|---|
| Navigate sidebar | Click any section link |
| Search/Filter | Use filter bars on list pages |
| Export CSV | Click CSV button on any report or list |
| Click Print button or use Ctrl+P | |
| Download PDF | Click PDF button on invoices and salary slips |
| Pagination | Use page numbers at bottom of lists |
Frequently Asked Questions
Q: Can I edit a posted journal entry?
A: No. Posted entries are immutable. To correct one, create a reversing entry (DR→CR, CR→DR) with the same amounts, then create the correct entry.
Q: What happens when I delete an invoice?
A: The invoice is cancelled (not truly deleted). The journal entry is reversed and the client's outstanding balance updates.
Q: Can I change the base currency?
A: No. The base currency is set once and cannot be changed. All reports are in base currency.
Q: How do multi-currency transfers work?
A: When transferring between different currencies, you enter the exchange rate. The system calculates the equivalent amount and may record a forex gain/loss.
Q: Can I delete an employee with salary records?
A: You can deactivate an employee, but you cannot delete one with existing salary records.
Q: How are PDFs generated?
A: The system uses Dompdf library. Click the PDF button on any invoice or salary slip to download a professional A4 PDF.
Q: What if my trial balance doesn't balance?
A: Check the General Ledger for the period. Look for missing entries, duplicate entries, or incorrect amounts. The audit trail can help identify when the discrepancy was introduced.
Troubleshooting
Common Issues
| Issue | Solution |
|---|---|
| Page shows 404 | Check the URL matches the sidebar link exactly |
| "Permission denied" error | Ask your admin to grant the required permission for your role |
| PDF not downloading | Check your browser's popup blocker — PDFs open in a new tab |
| Dashboard shows zero balances | Ensure journal entries are POSTED, not just DRAFT |
| Client balance wrong | Check if all invoices are properly linked to payments |
| Transfer not appearing | Ensure both accounts exist and the amount is valid |
| CSV export empty | Check if filters are hiding data — click Clear to reset |