# Get deposit status

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 |

## cURL example

```bash
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"}'
```

## JavaScript example

```js
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.
