Search pages in the SMS Pay documentation.
Matching is how SMS Pay decides whether a provider SMS proves that a payment intent was paid. The rules are deterministic. SMS Pay does not mark payments paid from amount-only, sender-only, receiver-only, or time-proximity guesses.
Merchant admins use Reconciliation when evidence is incomplete, risky, duplicated, expired, or needs manual review.
When a provider SMS contains a reference, SMS Pay compares that reference with pending payment intents in the same merchant environment.
Automatic PAID requires:
| Check | Requirement |
|---|---|
| Reference | SMS reference equals the short customerReference. |
| Amount | SMS amount equals the payment intent amount exactly. |
| Environment | SMS and intent are both sandbox or both live. |
| Payment method | SMS method matches the selected intent method. |
| Receiver | SMS receiver wallet matches the intent receiver. |
| Expiry | Intent is still active. |
| Reuse | SMS event and transaction ID have not confirmed another intent. |
If the reference matches but amount differs, SMS Pay routes the payment to REVIEW_REQUIRED. Do not fulfill until it is resolved.
If the customer paid without the correct reference, checkout can ask for the provider transaction ID. SMS Pay can match that TrxID against stored SMS events.
TrxID recovery still requires exact amount, matching receiver, matching method, same environment, active intent, and unused evidence.
| Status | Merchant action |
|---|---|
PENDING | Wait for SMS evidence, customer TrxID fallback, or expiry. |
PAID | Fulfillment can proceed after webhook verification or server-side status check. |
REVIEW_REQUIRED | Inspect evidence in dashboard. Do not fulfill automatically. |
EXPIRED | Payment window ended. Ask the customer to retry with a new intent if needed. |
REJECTED | Evidence was rejected after review. Do not fulfill. |
Use the Reconciliation and SMS Events pages to inspect:
Manual review is for resolving exceptions. It should not be used to bypass exact amount, expiry, duplicate transaction ID, or environment rules.
| Case | Expected handling |
|---|---|
| Correct reference, wrong amount | Moves to REVIEW_REQUIRED; merchant admin reviews evidence. |
| Correct TrxID, wrong amount | Moves to REVIEW_REQUIRED; merchant admin reviews evidence. |
| Missing or wrong reference | Remains pending unless TrxID recovery succeeds. |
| Duplicate transaction ID | Evidence is rejected or ignored as duplicate. |
| Expired intent | Cannot auto-confirm; create a new intent if customer must pay again. |
Before going live, test these cases in sandbox:
PAID.REVIEW_REQUIRED.