Payonclick Developer Docs
v1

Start Transaction

POST https://payonclick.in/ext/v1/matm/transactions
Requires matm Signed request Counts toward your 60 req/min

Create a transaction and get the SDK launch values


Body Params

NameTypeDescription
merchant_ref required string The outlet where the card is read
client_reference required string Your unique id and the idempotency key. 1–64 characters: letters, digits, hyphen, underscore
service required string CW (cash withdrawal) | BE (balance enquiry) | MS (mini statement)
amount optional int CW only: ₹100 – ₹10,000, multiple of ₹100
latitude required number Outlet GPS latitude
longitude required number Outlet GPS longitude
device optional string MOREFUN | PAX | NEWLAND — fills sdk.MICROATM_MANUFACTURER

Responses

StatusDescription
201 Created Create a transaction and get the SDK launch values — 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/transactions\n{TIMESTAMP}\n{BODY_SHA256}. The samples on the right compute it for you; the rules are in Request Signing.

📘
Good to know

Put every key of sdk on the SDK intent as an extra of the same name and type (strings stay strings; TYPE and MICROATM_MANUFACTURER are ints, LATITUDE/LONGITUDE doubles, AMOUNT_EDITABLE a boolean) — see Android SDK Integration. TXN_ID is the reference_id: it ties the bank network’s confirmation to this transaction, so never change it. Treat sdk as a secret: pass it from your server to your app over your own authenticated channel and do not log it. Launch within launch_before. Re-sending the same client_reference returns the original with duplicate: true and sdk: null. At most 3 unfinished transactions per outlet at a time (TOO_MANY_OPEN).