Returns the current payment and manual-verification state of a deposit owned by the authenticated merchant.
Request fields#
| Field | Type | Required | Description |
|---|---|---|---|
transaction_id | String | Yes | Merchant transaction ID used to create the deposit |
Request example
Server-side
curl -X POST https://api.niripay.com/api/v1/merchant/deposits/status \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"transaction_id":"TXN123456789"}'const depositStatus = await niripayJson("/api/v1/merchant/deposits/status", {
transaction_id: "TXN123456789"
});Example response#
JSON
{
"status": "success",
"message": "Deposit status fetched successfully",
"data": {
"transaction_id": "TXN123456789",
"internal_transaction_id": "abc123internal456",
"intent_url": "upi://pay?pa=merchant@upi&am=1000&cu=INR",
"amount": 1000,
"status": "pending",
"manual_verification_status": "need_pdf_video",
"fees": {
"percentage": 3,
"fixed_amount": 2,
"total_amount": 32.0,
"net_credit_amount": 968.0
}
}
}Manual verification states#
| State | Meaning or next action |
|---|---|
need_screenshot | Upload the payment screenshot |
screenshot_submitted | Screenshot was received |
checking_by_gateway | UTR or evidence is being checked |
need_pdf_video | Upload both PDF and video |
pdf_video_submitted | PDF and video were received for review |
invalid_screenshot | Screenshot could not be accepted |
rejected | Manual verification was rejected |
wrong_order | Evidence does not match the order |
not_received | Payment was not received |
duplicate | Evidence or payment appears duplicated |
duplicate_success | A matching payment was already completed successfully |
Use the status API after receiving a webhook to reconcile your local state, and as a fallback when a webhook does not arrive.