---
title: "Update a payment"
method: PATCH
path: "/payments/{id}"
tags: ["Payments"]
---

# Update a payment

`PATCH /payments/{id}`

Update the notes field of a payment. Only notes can be modified.

## Path parameters

- `id` string, required

## Request body

- object
  - `notes` Notes, required — Key-value pairs for storing custom metadata. Maximum 15 pairs. Each key and value must not exceed 256 characters.

## Response `200`

Updated payment.

- Payment
  - `id` string — Unique payment identifier. Prefix: pay_
  - `entity` 'payment'
  - `amount` integer — Payment amount in paise.
  - `currency` string
  - `status` 'created' | 'authorized' | 'captured' | 'refunded' | 'failed' — created: initiated. authorized: bank approved, not yet captured. captured: funds collected. refunded: fully refunded. failed: transaction failed.
  - `order_id` string — Associated order ID (order_*).
  - `invoice_id` string
  - `international` boolean
  - `method` 'card' | 'netbanking' | 'wallet' | 'emi' | 'upi'
  - `amount_refunded` integer — Total refunded amount in paise.
  - `refund_status` 'null' | 'partial' | 'full'
  - `captured` boolean
  - `description` string
  - `card_id` string
  - `card` CardDetails
    - `id` string — Card token identifier (card_*).
    - `entity` string
    - `name` string — Cardholder name.
    - `last4` string — Last 4 digits of the card number.
    - `network` string — Card network. Examples: Visa, MasterCard, RuPay, Amex.
    - `type` string — Card type: credit or debit.
    - `issuer` string — 4-character code of the issuing bank.
    - `emi` boolean — Whether EMI is available on this card.
    - `sub_type` string — Card sub-type (e.g. consumer, corporate).
  - `bank` string — Bank code for netbanking. Example: HDFC.
  - `wallet` string — Wallet name. Examples: paytm, mobikwik.
  - `vpa` string
  - `upi` UpiDetails
    - `payer_account_type` string
    - `vpa` string — Customer UPI VPA (Virtual Payment Address). Example: user@upi.
    - `flow` string — UPI flow used: collect, intent, or in_app.
  - `email` string
  - `contact` string
  - `customer_id` string
  - `token_id` string
  - `notes` Notes — Key-value pairs for storing custom metadata. Maximum 15 pairs. Each key and value must not exceed 256 characters.
  - `fee` integer — Razorpay fee charged (paise).
  - `tax` integer — GST on the fee (paise).
  - `error_code` string
  - `error_description` string
  - `error_source` string
  - `error_step` string
  - `error_reason` string
  - `acquirer_data` AcquirerData
    - `rrn` string — Bank RRN (Retrieval Reference Number).
    - `authentication_reference_number` string
    - `bank_transaction_id` string
    - `transaction_id` string
  - `created_at` integer

## Other responses

- `400` — Bad request. Invalid parameters or missing required fields.
- `401` — Authentication failed. Invalid or missing API key credentials.
- `404` — Resource not found.
- `429` — Rate limit exceeded. Implement exponential backoff with jitter before retrying.

---

[API](https://skmtc.net/curlec/apis/razorpay-api.md) · [All operations](https://skmtc.net/curlec/apis/razorpay-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/curlec/razorpay-api/revisions/824ca9e6faef/schema)
