Collection

Create a collection order

One endpoint serves both collection products: pay_type=1 returns a hosted page that renders a UPI QR and wakes the customer’s UPI app, pay_type=2 returns parameters for a checkout you control.

Last updated 2026-10-24

Request parameters

merchant_order_no must be unique per merchant and doubles as your idempotency key.

ParameterRequiredTypeDescription
user_idyesintMerchant ID
merchant_order_noyesstringYour order number, unique per merchant
pay_typeyesint1 = Scan & Pay (hosted), 2 = native
amountyesdecimalINR. Scan & Pay 100–50,000; native 100–5,000
callback_urlyesstringWhere we POST the result
remarknostringFree-form note
signyesstringMD5 signature, see below

Signature

Concatenate the six values in exactly this order, then take the 32-character lowercase MD5.

text
sign = md5(user_id + merchant_order_no + amount + pay_type + callback_url + key)

# example
md5("10093" + "MCH20261024001" + "1000" + "2" +
    "https://merchant.com/callback" + "64967e6b92c11ffde8b804ff4808022f")

Response

status is 1 (pending) on creation. Redirect the customer to pay_link, or render it in a webview.

FieldTypeDescription
platform_order_nostringPlatform order number, appears in the callback
merchant_order_nostringEcho of your order number
amountdecimalOrder amount
feedecimalFee charged on success
pay_linkstringPayment URL to present to the customer
statusint1 pending, 2 paid, 3 failed

Choosing pay_type

Use 1 when you do not want to build a payment screen: mobile web, invoices, chat commerce. The hosted page also solves desktop-to-mobile by rendering a QR.

Use 2 when checkout is your product and every redirect costs conversion. Limits are lower (5,000 per order) and the rate differs.

FAQ

What happens if I send a duplicate merchant_order_no?

It is treated as the same order rather than a new one — which is what you want during network retries, but the fastest way to create a duplicate-order bug if you reuse it accidentally.

Can I change the amount after creation?

No. Create a new order with a new merchant_order_no and let the old one expire.

← OverviewPayout →

Telegram

Need test credentials, or stuck on the integration? Message us directly.

@GGR100