Payments

This section contains the details of the Payment APIs that are used for making a payment in Razorpay.

Payment Entity#

To ease your understanding, the response for each request is shown on the right panel. The responses can be formatted either in JSON, the default pattern, or the object form, if you are using the language SDKs.

The various parameters are explained below:

id string
Unique ID that identifies your payment on the gateway.
entity string
Indicates type of entity.
amount string
The amount of payment in paisa. e.g. If amount = 100, it means Rs 1.
currency string
The currency in which the payment is made. Refer the list of international cuurencies that we support.
status string
The status of payment. It can be created, authorized, captured, refunded, failed.
method string
Method used during payment, Can be card,netbanking, wallet or emi.
order string
Order ID if provided.
description string
Description, if any as provided.
international bool
Whether the payment is done via an international card.
refund_status string
The refund status of payment. Can be null, partial or full.
amount_refunded integer
The amount refunded in paisa.
For example, amount = 100, it means ₹ 1
captured bool
The payment has been captured or not.
email string
Customer email address used for the payment.
contact string
Customer contact number for the payment.
fee string
Indicates type of entity.
amount string
Fee charged by us including GST.
tax integer
GST charged.
error_code string
Error description of an error during payment.
notes json object
Contains user defined fields, stored for reference purposes.
created_at timestamp
Timestamp of payment creation.
Wallet string
Mobikwik, PayUMoney, JioMoney
UPI Hot
Universal Payments Interface Can be spread in multiple lines

Capture a Payment#

The below end-point captures a payment.

/payments/:id/capture

Request Parameters#

id string
The ID of the payment to capture
amount string
The amount to be captured (should be equal to the authorized amount, in paise.)

This endpoint captures a specific payment. Capture is done after a payment status has been successfully set as “authorized”.

After capture the funds are transferred to your account in T + 3 days. The amount sent in the capture request must come from a verified source and be the amount that you are expecting to receive. This could be from the database order amount, for eg.

Please do not accept the capture amount from the user, for security reasons.

Note:
Check the status of payment has been successfully set to captured after the request and there is no error in response.

Note:
Attempting to capture a payment whose status is not authorized will produce an error.

Fetch a Payment#

The following endpoint is used for retrieving a specific payment object using its payment id.

/payment/:id

Request Parameters#

id: string The id of the payment to be retrieved. A sample payment id: pay_29QQoUBi66xm2f

Fetch Multiple Payments#

The following endpoint is used for retrieving list of payments based on optional parameters:

/payments

Request Parameters#

from timestamp
The timestamp in seconds after which the payments were created.
to timestamp
The timestamp in seconds after which the payments were created.
count integer
The number of payments to fetch.
skip integer
The number of payments to be skipped.

Note:
By default only last 10 are returned. You can use count and skip parameters to change that behavior.

Fetch Payments based on Orders#

The following endpoint retrieves payments corresponding to an order:

/orders/:id/payments

Fetch the Card Details for a Payment#

You can retrieve the details of the card that has been used to make a payment.

Request Parameters#

The following endpoint is used for retrieving the card details of a payment:

/payments/:id/card

Response Entities#

Attribute

Type

Description

id

string

Unique ID of a card used for the payment

entity

string

The value for this attribute will always be card

name

string

Name of the card holder

last4

string

The last 4 digits of the card number

network

string

The card network

Possible values:
- American Express
- Diners Club
- Discover
- JCB
- Maestro
- MasterCard
- RuPay
- Unknown
- Visa
- Union Pay

type

string

Possible values include:
- Credit
- Debit
- Unknown

issuer

string

The card issuer

4-character code denoting the issuing bank

This attribute will not be set for the card that has been issued by a foreign bank

international

boolean

This attribute will be set to true if the card has been issued by a foreign bank

emi

boolean

This attribute is set to true if the card can be used for EMI payment method

Update the Payment#

You can modify an existing payment to update the Notes field only. Notes can be used to record additional information about the payment. You can add up to 15 key-value pairs with each value of the key not exceeding 256 characters.

Using the PATCH operation, you can replace the entire notes object for the entity.

Request Parameters#

To modify the Notes field in a particular payment, construct the API request as follows:

/payments/:id/
id required
ID of the payment, which requires the Notes field to be updated
notes required
Notes of the entity to be modified
Curl
PHP
Python
Ruby
.NET
Java
Node