What is an End-of-Day Report?
An EOD report summarizes all transactions processed through your NetPOS terminal within a 24-hour period, typically from midnight to midnight.Report Contents
Transaction Counts
Total, approved, and declined transaction counts
Transaction Amounts
Sum of all approved transaction amounts
Transaction List
Detailed list of all transactions for the day
Settlement Info
Information for bank reconciliation and settlement
Accessing End-of-Day Reports
EOD reports can be accessed from the Dashboard.Navigate to EOD
From the Dashboard, tap the View EOD tile (represented by a calendar/print icon).This is implemented at
DashboardFragment.kt:249, 275, 400 and calls showCalendarDialog().Select date
A date picker dialog appears allowing you to select which day to generate the report for:The calendar defaults to the current date but allows navigation to any past date.
- Today
- Previous Days
Select today’s date to view current day’s transactions.Most common use case for end-of-business reconciliation.
Wait for data fetch
After selecting a date, NetPOS fetches transactions:A progress dialog appears showing “Please wait…” with a Cancel button.
The fetch process is implemented at
Data Fetch Process
Data Fetch Process
NetPOS uses a multi-source approach for reliability:
- Primary: Fetch from backend server via API (
getTransactionsFromNewService()) - Fallback: Retrieve from local device database if server unavailable
- Retry: Automatic retry up to 2 times on network errors
- Error Handling: Graceful degradation to local data
DashboardFragment.kt:440-523 and DashboardFragment.kt:718-824.Report Summary Screen
The EOD summary bottom sheet (LayoutPrintEndOfDayBinding at DashboardFragment.kt:600-680) displays:
Key Metrics
Total count of all transactions (approved + declined) for the selected date.Example: “Total Transactions: 45”
Number of transactions with response code “00” (successful).Calculated by filtering transactions where
responseCode == "00".Number of transactions that were not approved (response code != “00”).Includes all failure reasons: insufficient funds, incorrect PIN, issuer unavailable, etc.
Sum of all approved transaction amounts in Naira.Calculated as:
approvedList.sumOf { it.amount }.div(100).formatCurrencyAmount()Only approved transactions are included in this total.Filter Options
The report summary includes chip group filters (DashboardFragment.kt:623-625):
- All Transactions
- Print Approved
- Print Declined
Default view showing metrics for all transactions (approved + declined).Select this when you want complete transaction visibility.
Printing EOD Reports
From the EOD summary screen, you can print transaction reports.Select filter
Choose which transactions to print:
- All Transactions
- Approved Only
- Declined Only
Tap Print button
Press the PRINT button on the EOD summary dialog.If no transactions exist for the selected filter, you’ll see: “No transactions to print”.
Wait for printing
NetPOS sends the transaction list to the thermal printer.The printing process:
- Formats transaction data for thermal receipt
- Sends print commands via Bluetooth/USB to printer
- Prints header with date and report type
- Prints each transaction in the filtered list
- Prints summary totals at the end
printEndOfDay() extension function at DashboardFragment.kt:636.Receipt produced
The thermal printer produces an EOD report receipt containing:
- Header: “END OF DAY REPORT” with date
- Terminal Info: Terminal ID, Merchant ID, Business Name
- Transaction List: Each transaction with:
- Masked PAN
- Amount
- Status (Approved/Declined)
- Response code
- Time
- Summary: Total count, approved count, declined count, total amount
- Footer: Report generated timestamp
Printing Error Handling
If printing fails:- Toast message shows the error (e.g., “Printer not connected”)
- Error details are logged for troubleshooting
- You can retry printing after resolving the issue
- Alternative: View detailed transaction list and export/share digitally
Viewing Transaction Details
From the EOD summary, you can view the full transaction list.Tap View button
On the EOD summary dialog, tap the VIEW button or the transactions count area.This is handled at
DashboardFragment.kt:661-675.Transaction History opens
The Transaction History screen opens with the EOD transaction list.The action is set to
HISTORY_ACTION_EOD which:- Hides the History/Search tabs (not needed for EOD view)
- Uses
EODAdapterinstead of regularTransactionsAdapter - Shows all transactions for the selected date
Review transactions
Scroll through the transaction list. Each transaction shows:
- Masked card number (e.g., 506099******1234)
- Transaction amount
- Status indicator (green for approved, red for declined)
- Transaction date and time
- Transaction type
The EOD transaction list is marked with a special identifier (
PDF_REPRINT_IDENTIFIER appended to localDate_13 at DashboardFragment.kt:666) to distinguish EOD reprints from regular reprints.Date Range Selection
The EOD report uses a precise 24-hour window for transaction filtering.Time Calculation
When you select a date, NetPOS calculates:-
Beginning of Day: Selected date at 00:00:00 (midnight)
- Calculated using
getBeginningOfDay(timestamp)atDashboardFragment.kt:442, 720
- Calculated using
-
End of Day: Selected date at 23:59:59
- Calculated as beginning + 86400 seconds (24 hours)
Timestamp.from(Instant.ofEpochMilli(be).plusSeconds(86400)).timeatDashboardFragment.kt:443, 721
-
Date Formatting: Dates are formatted for both local database and server API
- Local format: Milliseconds timestamp
- Server format: “dd:MM:yyyy hh:mm:ss” converted to server-expected format
- Implemented at
DashboardFragment.kt:444-461, 722-739
Data Source Priority
NetPOS uses a smart data fetching strategy for EOD reports:Backend Server (Primary)
- Most up-to-date transaction data
- Includes transactions synced from other sources
- Requires network connectivity
- Paginated results (up to 1000 transactions per request)
Local Database (Fallback)
- Available offline
- Contains all locally processed transactions
- May not include transactions from other terminals (for multi-terminal merchants)
- Immediate response (no network delay)
Automatic Fallback Logic
Implemented atDashboardFragment.kt:490-495 and DashboardFragment.kt:767-786:
- Try backend server first
- If server returns empty results, try local database
- On network error, automatically fall back to local database
- If both sources have data, prefer backend (more authoritative)
Report Reconciliation
Use EOD reports for daily business reconciliation.Reconciliation Process
Generate EOD at close of business
At the end of your business day, generate the EOD report for today’s date.
Print approved transactions report
Filter to “Print Approved” and print the report. This shows all successful transactions that will be settled.
Verify totals
Check that:
- Total approved amount matches your expected revenue
- Transaction count aligns with your records
- All transactions are legitimate and authorized
Review declined transactions
Print the declined transactions report and review:
- Patterns in decline reasons
- Any transactions that should have succeeded but didn’t
- Customer service follow-ups needed
Compare with bank settlement
Your bank will settle the approved transactions (typically next business day):
- Settlement amount should match EOD approved total
- Account for any fees or chargebacks
- Investigate any discrepancies
Common Reconciliation Issues
EOD total doesn't match bank settlement
EOD total doesn't match bank settlement
Causes:
- Transactions still pending settlement
- Chargebacks or refunds not yet processed
- Transactions from previous day settled today
- Processing fees deducted
- Check settlement date vs transaction date
- Review refunds processed during the period
- Contact payment processor for settlement details
- Compare transaction RRNs with settlement report
Missing transactions in EOD report
Missing transactions in EOD report
Causes:
- Transactions processed after generating report
- Transactions not synced to backend
- Date filter excludes edge cases (around midnight)
- Regenerate report to include latest transactions
- Check local database for unsynced transactions
- Verify transaction timestamps
- Ensure background sync worker completed
Declined transactions in settlement
Declined transactions in settlement
Issue: Declined transactions should not be settledInvestigation:
- Verify response codes in EOD report
- Check if transaction was reversed and retried as approved
- Contact processor if declined transaction was charged
Duplicate transactions in report
Duplicate transactions in report
Causes:
- Customer retry after timeout (created separate transactions)
- Technical issue in transaction logging
- Check RRNs - duplicates will have different RRNs
- Review timestamps - true duplicates will be milliseconds apart
- Verify with customer if both were charged
- Refund if necessary
Amount Formatting
All amounts in EOD reports are handled in kobo (smallest currency unit) and converted for display:- Internal storage: Amount in kobo (e.g., 500000 for ₦5,000.00)
- Display: Amount divided by 100 and formatted with currency symbol
- Calculation: Sum performed on kobo values, then converted
DashboardFragment.kt:611:
- No floating-point rounding errors
- Accurate penny-level accounting
- Consistent amount representation
No Transactions Handling
If no transactions exist for the selected date:- EOD summary shows all counts as 0
- Total amount shows ₦0.00
- Print button shows toast: “No transactions to print”
- View button shows toast: “No transactions to view”
- Days when terminal was not used
- New terminals without transaction history
- Future dates (obviously)
Best Practices for EOD Reports
Daily Routine
Generate EOD reports at the same time each day (e.g., close of business) for consistent accounting.
Print and Archive
Print physical copies of EOD reports and store securely for audit trail and compliance.
Verify Before Closing
Review EOD totals before closing your till to catch any discrepancies while fresh.
Investigate Anomalies
If EOD totals seem unusual, investigate immediately rather than waiting for bank settlement.
Tips and Tricks
Quick Current Day Report
Quick Current Day Report
Simply tap View EOD and accept the default (today’s) date for fastest access to current day’s report.
Weekly Summary
Weekly Summary
Generate EOD reports for each day of the week and sum the approved totals for weekly revenue tracking.
Month-End Reporting
Month-End Reporting
Run EOD reports for all days in the month to prepare monthly financial statements and tax filings.
Offline Reconciliation
Offline Reconciliation
If internet is down, you can still generate EOD reports from local database. Sync to server when connection restored.
Dispute Resolution
Dispute Resolution
When customers dispute charges, use EOD reports to quickly locate and verify the transaction details.
Troubleshooting
EOD Report Not Loading
- Check internet connection for server fetch
- Verify date selected is not in the future
- Ensure terminal ID is configured correctly
- Check local database has transactions for that date
Printer Won’t Print EOD
- Verify printer is connected and powered
- Check thermal paper is loaded
- Ensure printer battery is charged
- Test with a single transaction reprint first
EOD Totals Seem Wrong
- Verify the date selected is correct
- Check you’re filtering approved transactions only for revenue
- Review transaction list for any unexpected entries
- Compare backend vs local database results
Can’t Cancel Data Fetch
If the progress dialog Cancel button doesn’t work:- Wait for fetch timeout (typically 30 seconds)
- Check network connectivity
- Restart NetPOS app if completely stuck
Next Steps
Back to Dashboard
Return to Dashboard overview
Transaction Processing
Learn about processing transactions
Refunds & Reprints
Process refunds and reprint receipts