# Submit a UTR

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 |

## cURL example

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

## JavaScript example

```js
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_id` is provided, it must belong to this deposit's payment slot.
