# PayMV QR Screen Handles both sides of PayMV/Favara QR payments: generating a receive-payment QR code and scanning a QR code to initiate a transfer. --- ## Fragment — `PayMvQrFragment` Two tabs: **Receive** (generate QR) and **Send** (scan QR). --- ## Receive Tab — Generate QR Generates a static PayMV QR code that others can scan to pay the user. ### Fields | Field | Notes | |---|---| | Source account | Dropdown of all visible accounts; determines acquirer BIC | | Amount | Optional — leave blank for open-amount QR | | Purpose | Optional free-text payment purpose | | Name | Auto-filled from the selected account's holder name | ### Generation On tap **Generate**, the fragment builds a decimal TLV payload per the [PayMV QR Format](18-paymv-qr-format.md) spec: 1. Assembles all TLV fields (format indicator, point-of-initiation, tag 26 container, MCC, currency, amount if set, country, name, tag 62 container, tag 80 container) 2. Selects the acquirer BIC from the source account's bank (`MALBMVMV` / `MADVMVMV` / `FAHIMVMV`) 3. Appends `"6304"` and computes CRC-16/CCITT-FALSE over the full string 4. Renders the complete string as a QR code bitmap using the ZXing encoder 5. Displays the QR code full-screen with the account number and name below ### Share A **Share** button exports the QR bitmap via the system share sheet (image/png). --- ## Send Tab — Scan QR Scans a QR code and pre-fills the transfer screen. ### Scanner Opens the device camera with a QR viewfinder overlay. Supported QR formats: | QR type | Handling | |---|---| | PayMV / Favara decimal TLV | Parse account number (tag 26→03), amount (tag 54), name (tag 59), purpose (tag 62→08); navigate to `TransferFragment` pre-filled | | BML plain URL (`https://pay.bml.com.mv/app/...`) | Navigate to `BmlQrPayFragment` | | BML embedded in combined QR (root tag 35 → sub 20 → sub-sub 01) | Extract URL; navigate to `BmlQrPayFragment` | ### Error Handling If the scanned code is not a recognized format, a `Snackbar` error is shown and the scanner remains open. ---   --- [← OTP Screen](10-otp-screen.md)     **Next →** [BML QR Pay](12-bml-qr-pay.md)