The complete NexPay Q&A
All 62 questions from the NexPay Mobile App UX & Functional Specification — how the world's first offline transaction software should look, feel and behave.
Showing 62 of 62 questions
Product & Vision
Q1What is NexPay?
NexPay is an offline-first digital payment application that allows verified users to send and receive digital value even when internet connectivity is unavailable.
The user experience should remain simple:
Select recipient → Enter amount → Authenticate → Confirm → Payment completed locally.
The complexity of cryptographic verification, Secure Transaction Packages, Chain of Custody, synchronization, risk analysis, and server settlement must remain mostly invisible to ordinary users.
Q2Should users need to understand the offline payment protocol?
No. Users should NOT need to understand:
- STPs
- hashes
- digital signatures
- transaction graphs
- public/private keys
- Chain of Custody
- Two-Phase Commit
- synchronization internals
These belong in advanced transaction details and developer/security documentation. The normal user should experience NexPay like a conventional payment app.
Q58What should the entire NexPay experience feel like?
For a normal user:
OPEN APP → SEE BALANCE → SEND / RECEIVE → SELECT PERSON → ENTER AMOUNT → AUTHENTICATE → CONFIRM → ✓ DONE
For the backend:
Authentication → Device Trust → Offline Reserve Validation → Transaction Construction → STP Generation → Hash → Digital Signature → Peer Verification → Two-Phase Commit → Local Storage → Pending Synchronization → Server Upload → Graph Reconstruction → Cryptographic Verification → Risk Analysis → Conflict Detection → Settlement
The first flow is what the user sees. The second flow is what NexPay does.
Q59What is the core product principle?
NexPay must follow this rule:
Q60What are the final implementation requirements?
- Do not invent contradictory behavior.
- Follow this specification as the UX source of truth.
- Follow the NexPay Offline Payment Protocol specification for protocol behavior.
- Keep business logic separate from UI.
- Never implement financial logic only on the client.
- Never treat client-side data as inherently trustworthy.
- Implement proper cryptographic libraries rather than custom cryptography.
- Write unit, integration, and end-to-end tests.
- Handle every loading, success, failure, offline, synchronization, and conflict state.
- Never use fake payment success in production logic.
- Clearly distinguish Locally Verified, Pending Synchronization, Server Verified and Settled.
- Make every critical financial operation idempotent.
- Maintain complete auditability.
- Protect private cryptographic keys using platform secure storage where available.
- Make the system modular so the offline protocol can evolve without rewriting the UI.
Q61What is the definition of done?
The NexPay app is not considered complete merely because the screens exist. A feature is complete only when:
- UI exists.
- Backend exists where required.
- Database behavior exists where required.
- Security validation exists.
- Offline behavior is handled.
- Online behavior is handled.
- Error states are handled.
- Loading states are handled.
- Authentication is handled.
- Synchronization is handled.
- Tests exist.
- Accessibility is considered.
- Logging exists.
- Auditability exists.
- Documentation exists.
- The feature works on a real device where applicable.
Q62What is the golden rule of traceability?
When a user performs Send Rs. 500, the system must always be able to answer:
- Who sent it?
- Who received it?
- How much was transferred?
- When was it created?
- Which device created it?
- Was the sender authenticated?
- Was the receiver verified?
- Was the transaction cryptographically signed?
- Was the transaction locally committed?
- Has it synchronized?
- Has it been server-verified?
- Has it settled?
- What transaction came before it?
- What transaction came after it?
- Is there any conflicting evidence?
This traceability is fundamental to NexPay.
Home & Wallet
Q3What should the home screen contain?
The home screen must immediately show:
- Total wallet balance
- Available balance
- Offline Reserve
- Current connectivity state
- Send button
- Receive button
- Scan QR button
- Recent transactions
- Synchronization status
- Security/device status when relevant
NexPay 🔔 👤
Total Balance
Rs. 12,500.00
Available
Rs. 10,000.00
Offline Reserve
Rs. 2,500.00
━━━━━━━━━━━━━━━━━━
50% maximum
SEND RECEIVE
[ SCAN QR ]
Recent Activity
────────────────────────
↓ Rahul - Rs. 500
↑ Suman + Rs. 1,000
Home Activity Wallet Profile
Q4How should NexPay communicate connectivity?
Show a small status indicator.
Online:
🟢 Connected
Offline:
🟠 Offline Mode
When offline, display:
Offline Mode You can continue making eligible payments using your Offline Reserve. Available Offline: Rs. 2,000
Q24How should the Offline Reserve be presented?
The wallet must clearly separate:
Total Balance Rs. 12,500 Online Balance Rs. 10,000 Offline Reserve Rs. 2,500
Q25Can users manually change the reserve?
Yes.
Offline Reserve Current Rs. 2,500 Maximum Rs. 6,250 Amount to Reserve Rs. [ 4,000 ] [ Update Reserve ]
This operation requires synchronization with the server.
Q26Can the reserve automatically refresh?
Yes. Users can choose:
Offline Reserve Auto Refresh ON Target: ○ Fixed Amount ● Percentage Target: 50%
Q42What should the Wallet page contain?
Wallet Total Balance Rs. 12,500 Online Rs. 10,000 Offline Reserve Rs. 2,500 ──────────────── Offline Reserve Current: Rs. 2,500 Maximum: Rs. 6,250 [ Manage ] ──────────────── [ Add Money ] [ Withdraw ] [ Bank Accounts ]
Q43What should Profile contain?
Profile Jitesh @nexpay_user ✓ Verified Account Account Security Devices KYC Notifications Privacy Limits Help & Support About NexPay
Q51Which actions should be immediately accessible?
Primary:
SEND RECEIVE SCAN
Secondary:
Wallet Activity
Sending Money
Q5How does a user send money?
The primary flow is:
Home ↓ Send ↓ Select recipient ↓ Enter amount ↓ Select/confirm payment method ↓ Review ↓ Authenticate ↓ Local verification ↓ Payment confirmation
Q6How can the sender select a recipient?
Support four methods:
Method A — QR: Sender taps Scan QR and scans the recipient's NexPay QR.
Method B — Nearby Device: Sender taps Nearby. NexPay searches for nearby compatible NexPay devices.
Method C — Contacts: For online transactions, the sender can select a registered contact.
Method D — NexPay ID: The sender can manually enter a NexPay username/ID where online connectivity allows verification.
Q7What happens when both users are physically nearby but offline?
Example: Alice wants to pay Bob. Both phones have no internet.
Send ↓ Nearby ↓ Searching...
The app displays:
Nearby NexPay Users 👤 Bob Verified NexPay User Nearby [ Connect ]
The implementation may use an appropriate supported local communication mechanism such as Bluetooth Low Energy, NFC, Wi-Fi Direct, or QR-assisted pairing. The final transport must be determined according to platform capabilities and security requirements.
Q8How should the sender know the correct person was selected?
Before payment, show:
Pay Bob ✓ Verified NexPay Account ✓ Trusted Device Bob @bob123 [ Continue ]
Q9What happens after selecting the recipient?
Pay Bob Rs. [ 500.00 ] Available: Rs. 2,000.00 Payment Mode: Automatic [ Continue ]
The amount must be validated before proceeding. Reject:
- Zero
- Negative values
- Values exceeding available offline funds
- Values exceeding transaction limits
- Invalid currency amounts
Q10Should users manually select online/offline?
Normally, no. Use Payment Mode: Automatic. NexPay determines whether the transaction should use the online or offline pathway.
If internet is available:
Online Payment
If internet is unavailable and the transaction satisfies all offline conditions:
Offline Payment
Advanced users may optionally view the selected mode.
Q11When can an offline payment proceed?
The application must verify locally that:
- User is authenticated.
- Device is trusted.
- Offline Reserve is available.
- Requested amount is within offline limits.
- Offline Reserve has not expired.
- Device security requirements are satisfied.
- Sender's offline funds are valid.
- Required transaction history/proofs are available.
- Receiver is compatible.
- Protocol version is supported.
- Transaction has not already been committed.
If any critical condition fails:
Payment unavailable offline. Please connect to the internet to synchronize your wallet.
Q12What should the payment confirmation screen look like?
Confirm Payment Rs. 500.00 To Bob Payment Method OFFLINE Available Offline Rs. 2,000.00 After Payment Rs. 1,500.00 ──────────────── [ Confirm & Pay ]
Q13How is the user authenticated?
Use adaptive authentication.
- Low-risk transactions: Fingerprint, Face authentication, or NexPay PIN fallback.
- Higher-risk transactions: Biometrics or NexPay PIN.
- Very high-risk transactions: Require online verification according to configured policy.
Q14What happens technically after the user confirms payment?
The UI can show:
Securing Payment... ✓ Sender authenticated ✓ Receiver verified ✓ Funds verified ✓ Transaction secured ✓ Payment committed
Internally:
- Create transaction.
- Generate Transaction ID.
- Construct Secure Transaction Package.
- Attach relevant transaction references.
- Generate cryptographic hash.
- Sign the transaction.
- Exchange required proof with receiver.
- Receiver verifies the transaction.
- Execute Two-Phase Commit.
- Update sender state.
- Update receiver state.
- Store transaction locally.
- Mark transaction as Pending Synchronization.
Q15What does the sender see after successful offline payment?
✓
Payment Sent
Rs. 500
to
Bob
────────────────────
Offline Payment
Status:
Pending Synchronization
Transaction ID:
NPX-7F82...A91C
────────────────────
[ Done ]
[ View Details ]
Receiving Money
Q16How does a user receive money?
Home → [ RECEIVE ] opens:
Receive Money
Your NexPay ID
@jitesh
[ QR CODE ]
[ Request Amount ]
[ Show QR ]
[ Nearby ]
Q17How does QR receiving work?
The receiver displays a NexPay QR. The QR should contain only the information required for secure identification/payment initiation.
┌────────────────────┐ │ QR CODE │ │ JITESH │ └────────────────────┘ Jitesh @nexpay_user [ Share ]
Q18Can a receiver request a specific amount?
Yes.
Request Money Amount Rs. [ 500 ] Optional Note [ Lunch ] [ Generate Request ]
The app generates a payment request/QR. The sender scans it.
Q19What does the receiver see when someone sends money?
Payment Incoming Bob is sending you Rs. 500.00 ✓ Sender verified ✓ Transaction verified ✓ Cryptographic proof verified [ Accept ] [ Decline ]
Q20What happens after accepting?
✓
Payment Received
+ Rs. 500
From
Bob
────────────────────
Offline Payment
Pending Synchronization
[ Done ]
[ View Details ]
Q48What is the ideal receiver flow?
Receive ↓ Show QR ↓ Sender scans ↓ Incoming payment ↓ Verify sender ↓ Accept ↓ Authentication if required ↓ Payment received ↓ Pending synchronization
Activity & Transactions
Q21What transaction statuses should exist?
Preparing Awaiting Acceptance Committing Pending Synchronization Synchronizing Verified Settled Archived
The user-facing labels may be simplified — e.g. Pending Synchronization rather than STP awaiting server reconciliation.
Q22What should Activity show?
Activity Today ↓ Bob Sent -Rs. 500 Offline • Pending Sync ↑ Suman Received +Rs. 1,000 Online • Settled Yesterday ↓ Rahul Sent -Rs. 250 Online • Settled
Filters:
All · Sent · Received · Online · Offline · Pending · Settled · Failed
Q23What should detailed transaction information contain?
Normal section:
Payment Details Amount Rs. 500 Type Sent Recipient Bob Date 13 Aug 2026 Method Offline Status Pending Synchronization Transaction ID NPX-...
Advanced section:
Security Details ✓ Digital Signature ✓ Hash Verified ✓ Device Verified ✓ Chain Verified ✓ Authentication Verified Chain of Custody Previous verified links: 10 [ View Verification Details ]
Q52What should a receipt contain?
NexPay Payment Receipt Status: Pending Synchronization Amount: Rs. 500 From: Jitesh To: Bob Date: 13 Aug 2026 20:30 Transaction ID: NPX-XXXXXXXX Payment Method: Offline Verification: Locally Verified
Q53Can users share receipts?
Yes. Generate a receipt that contains safe information.
Sync & Settlement
Q27What happens when internet returns?
Internet Connected Synchronizing... 3 offline transactions found ✓ Transaction 1 verified ✓ Transaction 2 verified ✓ Transaction 3 verified ✓ Transaction graph reconstructed ✓ Security checks completed ✓ Wallet synchronized
Then:
Synchronization Complete 3 transactions processed Rs. 1,250 Your wallet is up to date. [ Done ]
Q28When does an offline transaction become settled?
Only after the server successfully:
- Receives the transaction.
- Verifies signatures.
- Verifies hashes.
- Reconstructs transaction relationships.
- Detects conflicts.
- Performs risk analysis.
- Validates the transaction against server state.
- Completes settlement.
Q29How is the Chain of Custody represented in the app?
Normal users should see:
Payment Verification ✓ Transaction verified Ownership history: Bob → Jitesh 10 previous verified links available
Advanced users can expand:
Transaction Graph A ↓ B ↓ C ↓ D ↓ Current Owner
The device maintains up to 10 previous transaction links as defined by the protocol. The server reconstructs the complete transaction graph after synchronization.
Q30Does maintaining 10 previous links guarantee fraud is impossible?
No. The system must NOT claim that fraud is mathematically impossible. Instead:
The server remains responsible for final reconciliation.
Limits, TTL & Expiry
Q31What happens when an offline transaction reaches its TTL?
The transaction becomes ineligible for further offline circulation.
Offline Transaction Expired This offline payment can no longer be used for another offline transfer. Connect to the internet to synchronize your wallet. [ Synchronize ]
Default TTL currently specified: 30 days. The TTL must remain configurable by server policy.
Q32What if both sender and receiver are offline and the sender's transaction has expired?
Block the payment. Do NOT allow one final offline transaction.
Payment Unavailable Offline Your offline funds require synchronization. Connect to the internet and try again. Your existing balance has not been lost. [ Connect & Synchronize ]
Q45Where should users see transaction limits?
Payment Limits Daily Online Limit Rs. XX,XXX Daily Offline Limit Rs. X,XXX Maximum Offline Reserve 50% of wallet balance
Actual limits should be configurable by policy.
Security & Risk
Q35Should users see their exact fraud-risk score?
Normally, no. Do not display Risk Score: 73/100 unless there is a legitimate product reason. Instead show actionable messages:
Additional verification required. This payment requires stronger security verification.
Q36What happens when the risk engine flags a transaction?
Additional Verification Required For your security, this payment requires additional verification. [ Continue Verification ] [ Cancel ]
For critical risk:
Offline Payment Unavailable This transaction requires online verification. Connect to the internet to continue.
Q41Should a QR code contain private keys or sensitive secrets?
Absolutely not. Never put private keys, passwords, authentication secrets, or sensitive personal information inside QR codes.
Q54How should errors be written?
Never expose internal technical errors to normal users.
Bad: STP_HASH_MISMATCH_ERR_409
Good:
Payment could not be securely verified. No money was transferred.
Technical information can be available under Technical Details for debugging/support.
Q57What should the UI never do?
Never:
- Display private keys.
- Ask users to manually copy private keys.
- Store PINs in plaintext.
- Display sensitive cryptographic secrets.
- Claim an offline transaction is server-settled before synchronization.
- Hide important security warnings.
- Automatically retry an uncertain financial transaction without reconciliation.
Devices & Recovery
Q33What happens if the user's phone is lost?
The recovery flow is:
- User signs in on a new device.
- User completes identity verification.
- Server revokes old device.
- Old device public key is revoked.
- New device generates a new key pair.
- Online wallet is restored.
- Old device Offline Reserve is invalidated.
- New Offline Reserve can be created after synchronization.
Q34What should the user see under device management?
Devices This Device ✓ Trusted Android Last synchronized: Today Other Device Trusted Last active: Yesterday [ Revoke Device ]
Merchants & Refunds
Q49How should merchants receive money?
Merchant opens:
Merchant Mode Today's Sales Rs. 25,500 [ Receive Payment ] [ Generate QR ] [ Transactions ]
For a customer payment:
Enter Amount Rs. [ 500 ] [ Generate Payment QR ]
Customer scans it. If supported offline:
Offline Payment ✓ Customer verified ✓ Payment proof received ✓ Transaction committed Rs. 500 Pending Synchronization
Q50How should refunds work?
Do not simply edit the original transaction. Create a new cryptographically linked refund transaction.
Original Payment
Rs. 500
↓
Refund
+ Rs. 500
The refund should have its own Transaction ID.
Errors & Edge Cases
Q37What happens if synchronization detects conflicting transactions?
The user-facing UI should not expose unnecessary technical information.
Transaction Requires Review We could not automatically verify this transaction. Your account is protected while we investigate the transaction. [ View Details ] [ Contact Support ]
The backend should preserve all evidence.
Q38What happens if payment fails before commit?
Payment Failed No money was transferred. Your balance has not changed. [ Try Again ]
Q39What if internet disappears during an online payment?
NexPay must determine whether the transaction was committed. Never blindly retry.
Checking Payment Status... Please wait.
- If committed → show success.
- If not committed → allow retry.
- If uncertain → reconcile with server before creating another transaction.
Q40What happens if a transaction is uploaded twice?
If both transaction records are identical:
Duplicate record detected. Existing transaction retained.
If the same Transaction ID contains different content:
Security verification required. The transaction could not be reconciled automatically.
Notifications & Accessibility
Q44What security settings should exist?
Include:
- NexPay PIN
- Biometrics
- Device management
- Trusted devices
- Login sessions
- Security notifications
- Transaction authentication
- Recovery options
Q46What notifications should NexPay provide?
Payment Sent Rs. 500 sent to Bob Payment Received Rs. 1,000 received from Suman Synchronization Complete 3 offline transactions verified. Security Alert A new device was added to your account.
Q47Can notifications work offline?
Local notifications can work offline:
Offline payment recorded. Pending synchronization.
Server-dependent notifications require connectivity.
Q55What accessibility requirements exist?
The app should support:
- Screen readers
- Large text
- High contrast
- Keyboard/accessibility navigation where applicable
- Clear labels
- Non-color-only status indicators
- Haptic feedback where appropriate
Q56Should NexPay support multiple languages?
Architecture should support localization from the beginning. Initial languages may include English and Nepali. Future languages can be added without redesigning the application.
Want the full picture?
Explore the world's first offline transaction software — hybrid wallet, STP protocol, two-phase commit and cloud reconciliation.
Read the online vs offline process Why NexPay exists Back to the homepage Try the payment simulator