Submits the payment UTR for a pending deposit. This endpoint uses the same merchant API key and merchant ownership rules as Create Deposit.
Request fields#
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
transaction_id | String | Yes | Non-empty | Merchant transaction ID used to create the deposit |
utr | String | Yes | Exactly 12 characters | Payment UTR or reference number |
upi_id | String | No | Must match the deposit payment slot | Omit it to let NiriPay select the deposit slot automatically |
Request example
Server-side
curl -X POST https://api.niripay.com/api/v1/merchant/deposits/submit-utr \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"transaction_id": "TXN123456789",
"utr": "123456789012"
}'const utrResult = await niripayJson("/api/v1/merchant/deposits/submit-utr", {
transaction_id: "TXN123456789",
utr: "123456789012"
});Success response#
JSON
{
"status": "success",
"message": "UTR submitted successfully",
"data": {
"transaction_id": "TXN123456789",
"internal_transaction_id": "abc123internal456",
"submission_type": "utr",
"manual_verification_status": "checking_by_gateway"
}
}Submission rules#
- The deposit must belong to the authenticated merchant.
- Evidence is accepted only while the deposit is pending.
- Do not submit the same UTR twice.
- If
upi_idis provided, it must belong to this deposit's payment slot.