> ## Documentation Index
> Fetch the complete documentation index at: https://razorpay-60c89f9a-mintlify-audit-missing-sections-1778528421.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Fetch a Payment with Expanded Offers Details

> **GET** `/v1/payments/:id/?expand[]=offers`

Use this endpoint to retrieve the details of all the payments that you created, with the `offer` parameter expanded in the payments object.

### Request

````curl: Curl theme={null}
curl -u [YOUR_KEY_ID]:[YOUR_KEY_SECRET]
-X GET https://api.razorpay.com/v1/payments/pay_Exez1iJzI3hqR5/?expand[]=offers

```java: Java
RazorpayClient razorpay = new RazorpayClient("[YOUR_KEY_ID]", "[YOUR_KEY_SECRET]");

String paymentId = "pay_JqLHMVryzMEafT";

JSONObject request = new JSONObject();
request.put("expand[]","offers");

Entity payment = razorpay.payments.get("payments/"+paymentId, request);

```python: Python
import razorpay

client = razorpay.Client(auth=("YOUR_ID", "YOUR_SECRET"))

client.payment.fetch("pay_JqLHMVryzMEafT",{"expand[]":"offers"})

```ruby: Ruby
require "razorpay"

Razorpay.setup('YOUR_KEY_ID', 'YOUR_SECRET')

paymentId = "pay_JLcbRwKkgDlWWJ"

para_attr = {
    "expand[]": "offers"
}

Razorpay::Payment.request.get paymentId , para_attr

```go: Go
import ( razorpay "github.com/razorpay/razorpay-go" )
client := razorpay.NewClient("YOUR_KEY_ID", "YOUR_SECRET")

data:= map[string]interface{}{
    "expand[]":"offers",
}

paymentId := "pay_JqLHMVryzMEafT"

body, err := client.Payment.Fetch(paymentId, data, nil)

```php: PHP
$api = new Api($key_id, $secret);

$paymentId = "pay_MLzFlOC98cJmHQ";

$api->payment->fetch($paymentId)->expandedDetails(["expand[]"=> "emi"]);

```javascript: Node.js
var instance = new Razorpay({ key_id: 'YOUR_KEY_ID', key_secret: 'YOUR_SECRET' })

paymentId = "pay_JqLHMVryzMEafT"  

instance.payments.fetch(paymentId,{"expand[]":"offers"})

```csharp: .NET
RazorpayClient client = new RazorpayClient("[YOUR_KEY_ID]", "[YOUR_KEY_SECRET]");

Dictionary param = new Dictionary();
param.Add("expand[]", "offers");

Payment payment = client.Payment.Fetch("pay_XXXXXXXXXXXXXX").ExpandedDetails(param);
````

### Response

````json: Success theme={null}
{
  "id": "pay_G8VaL2Z68LRtDs",
  "entity": "payment",
  "amount": 900,
  "currency": "INR",
  "status": "captured",
  "order_id": "order_G8VXfKDWDEOHHd",
  "invoice_id": null,
  "international": false,
  "method": "netbanking",
  "amount_refunded": 0,
  "refund_status": null,
  "captured": true,
  "offers": {
    "entity": "collection",
    "count": 1,
    "items": [
      {
        "id": "offer_G8VXOp0qNuEXzh"
      }
    ]
  },
  "description": "Purchase Shoes",
  "card_id": null,
  "bank": "KKBK",
  "wallet": null,
  "vpa": null,
  "email": "gaurav.kumar@example.com",
  "contact": "+919000090000",
  "customer_id": "cust_DitrYCFtCIokBO",
  "notes": [],
  "fee": 22,
  "tax": 4,
  "error_code": null,
  "error_description": null,
  "error_source": null,
  "error_step": null,
  "error_reason": null,
  "acquirer_data": {
    "bank_transaction_id": "0125836177",
    "authentication_reference_number": "100222021120200000000742753928"
  },
  "created_at": 1606985740
}

```json: Failure
{
    "error": {
        "code": "BAD_REQUEST_ERROR",
        "description": "The api key provided is invalid",
        "source": "NA",
        "step": "NA",
        "reason": "NA",
        "metadata": {}
    }
}
````

### Parameters

`id` *mandatory*
: `string` Unique identifier of the payment to be retrieved.

### Parameters

`expand[]=offers`
: `string` Use to expand the offers applied to a payment, wherever applicable.

### Parameters

`id`
: `string` Unique identifier of the payment.

`entity`
: `string` Indicates the type of entity.

`amount`
: `integer` The payment amount in currency subunits. For example, for an amount of 1 enter 100.

`currency`
: `string` The currency in which the payment is made. Refer to the list of [international currencies](/payments/international-payments#supported-currencies) that we support.

`status`
: `string` The status of the payment. Possible values:

* `created`
* `authorized`
* `captured`
* `refunded`
* `failed`

`method`
: `string` The payment method used for making the payment. Possible values:

* `card`
* `netbanking`
* `wallet`
* `emi`
* `upi`

`order_id`
: `string` Order id, if provided. Know more about [Orders](/payments/orders).

`description`
: `string` Description of the payment, if any.

`international`
: `boolean` Indicates whether the payment is done via an international card or a domestic one. Possible values:

* `true`: Payment made using international card.
* `false`: Payment not made using international card.

`refund_status`
: `string` The refund status of the payment. Possible values:

* `null`
* `partial`
* `full`

`amount_refunded`
: `integer` The amount refunded in currency subunits. For example, if `amount_refunded = 100`, it is equal to 1.

`captured`
: `boolean` Indicates if the payment is captured. Possible values:

* `true`: Payment has been captured.
* `false`: Payment has not been captured.

`email`
: `string` Customer email address used for the payment.

`contact`
: `string` Customer contact number used for the payment.

`fee`
: `integer` Fee (including GST) charged by Razorpay.

`tax`
: `integer` GST charged for the payment.

`error_code`
: `string` Error that occurred during payment. For example, `BAD_REQUEST_ERROR`.

`error_description`
: `string` Description of the error that occurred during payment. For example, `Payment processing failed because of incorrect OTP`.

`error_source`
: `string` The point of failure. For example, `customer`.

`error_step`
: `string` The stage where the transaction failure occurred. The stages can vary depending on the payment method used to complete the transaction. For example, `payment_authentication`.

`error_reason`
: `string` The exact error reason. For example, `incorrect_otp`.

`notes`
: `json object` Contains user-defined fields, stored for reference purposes.

`created_at`
: `integer` Timestamp, in UNIX format, on which the payment was created.

`card_id`
: `string` The unique identifier of the card used by the customer to make the payment.

`card`
: `object` Details of the card used to make the payment.

`id`
: `string` The unique identifier of the card used by the customer to make the payment.

`entity`
: `string` The name of the entity. Here, it is `card`.

`name`
: `string` Name of the cardholder.

`last4`
: `integer` The last 4 digits of the card number.

`network`
: `string` The card network. Possible values:

* `American Express`
* `Diners Club`
* `Maestro`
* `MasterCard`
* `RuPay`
* `Unknown`
* `Visa`

`type`
: `string` The card type. Possible values:

* `credit`
* `debit`
* `prepaid`
* `unknown`

`issuer`
: `string` The card issuer. The 4-character code denotes the issuing bank. This attribute will not be set for the card issued by a foreign bank.

`emi`
: `boolean` Indicates whether the card can be used for EMI payment method. Possible values:

* `true`: Card can be used for EMI payments.
* `false`: Card cannot be used for EMI payments.

`sub_type`
: `string` The sub-type of the customer's card. Possible values:

* `customer`
* `business`

Know how to accept payments made by customers using [corporate cards](/payments/payment-methods/cards/corporate-cards).

`upi`
: `object` Details of the UPI payment received. Only applicable if `method` is `upi`.

`payer_account_type`
: `string` The payment method used for making the payment. Possible values:

* `bank_account`
* `credit_card`
* `wallet`

`vpa`
: `string` The customer's VPA (Virtual Payment Address) or UPI id used to make the payment. For example, `gauravkumar@exampleupi`.

`flow`
: `string` The type of UPI flow. Possible value `in_app`. The field `flow` is present only in the case of Turbo UPI Payments.

`bank`
: `string` The 4-character bank code which the customer's account is associated with. For example, `UTIB` for Axis Bank.

`vpa`
: `string` The customer's VPA (Virtual Payment Address) or UPI id used to make the payment. For example, `gauravkumar@exampleupi`.

`wallet`
: `string` The name of the wallet used by the customer to make the payment. For example, `payzapp`.

`acquirer_data`
: `array` A dynamic array consisting of a unique reference numbers.

`rrn`
: `string` A unique bank reference number provided by the banking partner when a refund is processed. This reference number can be used by the customer to track the status of the refund with the bank.

`authentication_reference_number`
: `string` A unique reference number generated for RuPay card payments.

`bank_transaction_id`
: `string` A unique reference number provided by the banking partner in case of netbanking payments.

### Errors

The API \{key/secret} provided is invalid.

* code: 4xx
* description: The API credentials passed in the API call differ from the ones generated on the Dashboard.
* solution: The API keys must be active and entered correctly with no whitespace before or after.
