Skip to main content
Consumer Present Mode (CPM) is used for in-person barcode payments.
The customer presents a dynamic barcode from their wallet app, and the merchant scans it to initiate payment.
This mode is designed exclusively for offline, face-to-face transactions (e.g. retail stores, restaurants, physical POS terminals).
CPM process-flow

When to Use CPM

Use CPM when:
  • The customer is physically present
  • The customer displays a wallet barcode
  • The merchant scans the barcode using a POS device or scanner
  • Immediate payment confirmation is required

API Endpoint

Endpoint : /trade/v1/payment
Method : POST

Supported PayTypes

Refer to Signature Generation for request signing instructions.

Request Parameters


Example Request

HTTP

Example Response

JSON

Response Behaviour

respcd indicates transaction result:
  • 0000 → Payment successful
  • 1143 or 1145 → Transaction is still processing
When 1143 or 1145 is returned:
  • The customer may still be entering their password
  • The wallet provider may still be confirming the payment
  • The transaction is not final
Merchants should call the Transaction Enquiry API to retrieve the final status.

Integration Notes

  • CPM is synchronous but may return a processing state (1143 / 1145).
  • Always treat 1143 / 1145 as pending, not failure.
  • Do not immediately retry a payment if processing is returned.
  • Use Transaction Enquiry to confirm final status.
  • Store the QFPay Transaction ID (syssn) for reconciliation.
  • Implement idempotency using your out_trade_no.

Response Parameters