Payonclick Developer Docs
v1

Report SDK Result

POST https://payonclick.in/ext/v1/matm/transaction/{reference_id}/result
Requires matm Signed request Counts toward your 60 req/min

Tell us what the SDK returned on the phone — send PayonclickMatmResult.toReportJson()


Body Params

NameTypeDescription
reference_id required path From POST /transactions
status required bool|string The SDK’s TRANS_STATUS (true / false), or "CANCELLED" / "NO_RESPONSE" when the SDK gave no result
message optional string MESSAGE
response_code optional string RESPONSE_CODE (or STATUS_CODE)
rrn optional string RRN
provider_txn_id optional string The provider transaction id (PayonclickMatmResult.providerTxnId)
card_number optional string CARD_NUM (masked by the SDK)
card_type optional string CARD_TYPE
bank_name optional string BANK_NAME
balance optional number BALANCE_AMOUNT
terminal_id optional string TERMINAL_ID
device optional string The card reader model
device_serial optional string The card reader serial number
mini_statement optional array MS: the LIST rows as {date, txnType, amount, narration}

Responses

StatusDescription
200 OK Tell us what the SDK returned on the phone — send PayonclickMatmResult.toReportJson() — see the example on the right.
4xx / 5xx { "success": false, "error": { "code": "…", "message": "…" } } — every code is listed under Error Codes.
🔏
This call must be signed

POST carries an X-Signature header over POST\n/ext/v1/matm/transaction/{reference_id}/result\n{TIMESTAMP}\n{BODY_SHA256}. The samples on the right compute it for you; the rules are in Request Signing.

📘
Good to know

Always report, also when the SDK was cancelled or returned nothing — it is what support reads in a dispute. A reported true keeps the transaction PENDING until the bank network confirms it; a reported failure makes it FAILED, and if the bank network later confirms it anyway, it still becomes SUCCESS and is credited. A report on a transaction that is already final answers recorded: false.