The SMS Logs page (labelled SMS Data in the sidebar) is the live audit trail for every text message that has been forwarded from your paired Android devices to the OwnPay server. It tells you at a glance whether each message was successfully parsed and matched to a pending transaction, is still awaiting processing, or failed to match any template. When a customer contacts you to report that their manual wallet payment was not confirmed, the SMS Logs page is the first place to look — the raw message is almost certainly there, waiting for your review.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/own-pay/OwnPay-Documentation/llms.txt
Use this file to discover all available pages before exploring further.
Navigating to SMS Logs
In the OwnPay admin dashboard, expand the MOBILE & SMS section in the left sidebar and click SMS Data. The logs table loads, showing the most recently received messages at the top.What the Logs Show
Every incoming SMS forwarded from a paired device is captured and stored as a log entry, regardless of whether a matching template exists. The log records:- The raw sender identifier and message content
- The extracted amount and Transaction ID (if parsing succeeded)
- Which template and gateway the message was matched to
- The final match status
- The exact timestamp the message was received by the server
Log Status Filters
Use the Match Filters dropdown above the table to isolate entries by their current state:- All
- Matched
- Unmatched
- Pending
Shows every forwarded SMS regardless of match outcome. Use this view for a full audit of all device activity, including spam messages that were correctly ignored.
Log Table Columns
| Column | Description |
|---|---|
| Sender | The source phone number or sender identifier extracted from the SMS “From” field (e.g. NAGAD, bKash). |
| Amount | The payment amount extracted from the message body by the matched template’s Amount Regex. Shown in the gateway’s currency format. |
| Trx ID | The unique Transaction ID extracted from the message body by the template’s TrxID Regex. |
| Gateway | The manual gateway slug associated with the template that matched this message (e.g. nagad-personal). |
| Status | A colour-coded badge — matched (green), unmatched (red), or pending (yellow). |
| Received | The exact timestamp (date and time) when the OwnPay server received the forwarded message from the paired device. |
Understanding Match Statuses
| Status | Meaning |
|---|---|
matched | The Transaction ID extracted from the SMS was found in a pending transaction record on the server. The transaction has been automatically marked completed and the ledger updated. |
unmatched | The SMS was parsed successfully, but the extracted Transaction ID did not correspond to any active checkout transaction. The payment was not auto-confirmed. |
pending | The SMS has been received and stored but has not yet been processed. This may indicate a missing or inactive template for the sender, or a processing queue delay. |
Resolving a Customer’s Missing Payment
When a customer reports that their wallet payment was not confirmed, follow this workflow:Ask for their Transaction ID and sender details
Request the Transaction ID (TrxID) visible on the customer’s wallet receipt, the sending phone number or wallet name (e.g. bKash or Nagad), and the approximate time of transfer.
Filter SMS Logs by Unmatched or Pending
Open Mobile & SMS → SMS Data and set the filter to Unmatched or Pending to narrow results to messages that did not auto-confirm.
Locate the customer's forwarded SMS
Scan the Trx ID and Sender columns for the customer’s transaction details. The Received timestamp helps narrow the search to the correct time window.
Verify amount and transaction match
Confirm that the Amount in the log entry matches the expected checkout total, and that the Trx ID matches what the customer’s wallet receipt shows.
Manually approve the transaction
If the SMS log confirms the correct payment was received, navigate to Payments → Transactions, locate the matching pending transaction, and click Approve to complete it manually.
Troubleshooting Unmatched SMS
The Trx ID matches but the transaction still shows as unmatched
The Trx ID matches but the transaction still shows as unmatched
Check whether the checkout session for that transaction has already expired. OwnPay only matches SMS messages against transactions in
pending state — if the checkout timer ran out before the SMS arrived, the transaction will have transitioned to expired and is no longer available for automatic matching. Approve it manually in the Transactions panel.No SMS log entries are appearing at all
No SMS log entries are appearing at all
The paired device is likely offline or the Companion App’s background service has been paused by Android battery optimisation. Check the Paired Devices page and confirm the device’s Status is
Active and its Last Seen timestamp is recent. On the physical device, verify that the app is excluded from battery optimisation and that SMS permission is still granted.SMS messages appear as Pending and never progress
SMS messages appear as Pending and never progress
Pending status means no active template matched the message’s sender pattern. Open Mobile & SMS → SMS Centre and check whether a template exists for the sender shown in the log. If one exists, verify its Status is
Active and that the Sender Pattern exactly matches (case-sensitively) the Sender value in the log entry.Spam or unrelated SMS messages are appearing in the logs
Spam or unrelated SMS messages are appearing in the logs
Best Practices
Monitor unmatched logs regularly
Review unmatched entries daily during the first week after deploying a new manual gateway. Early detection of regex mismatches lets you fix template patterns before many customers are affected.
Never delete SMS log records
SMS log entries serve as physical payment verification receipts. Only delete them during planned system maintenance. Removing records prematurely eliminates your ability to investigate disputed transactions.
Verify before manually approving
Always confirm that the SMS log’s extracted Amount matches the expected checkout total before manually approving a transaction. Approving a mismatched amount creates a ledger discrepancy.
Cast Transaction IDs as strings
If writing custom scripts to query the SMS logs table, always treat Transaction IDs and UUIDs as strings, not numbers. Numeric casting of alphanumeric TrxIDs will cause query failures.