> ## Documentation Index
> Fetch the complete documentation index at: https://doc-test-my.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Fetch All Payments (With Expanded EMI Details)

> Fetch all Payments (With Expanded EMI Details) using Razorpay Curlec Payments API.

Use this endpoint to retrieve the expanded EMI plan details of the payments, in which the payment method is `emi`.

<RequestExample>
  ```bash Curl theme={null}
  curl -u [YOUR_KEY_ID]:[YOUR_KEY_SECRET]
  -X GET https://api.razorpay.com/v1/payments?expand[]=emi
  ```

  ```java Java theme={null}
  RazorpayClient razorpay = new RazorpayClient("[YOUR_KEY_ID]", "[YOUR_KEY_SECRET]");

  JSONObject params = new JSONObject();
  params.put("expand[]","emi");

  List<Payment> payment = razorpay.payments.fetchAll(params);
  ```

  ```python Python theme={null}
  import razorpay
  client = razorpay.Client(auth=("YOUR_ID", "YOUR_SECRET"))

  client.payment.all({'expand[]':'emi'})
  ```

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

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

  body, err := client.Payment.All(data, nil)
  ```

  ```php PHP theme={null}
  $api = new Api($key_id, $secret);

  $api->payment->all(array('expand[]'=>'emi')
  ```

  ```ruby Ruby theme={null}
  require "razorpay"
  Razorpay.setup('YOUR_KEY_ID', 'YOUR_SECRET')

  Razorpay::Payment.all({'expand[]':'emi'})
  ```

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

  instance.payments.all({'expand[]':'emi'})
  ```

  ```csharp .NET theme={null}
  RazorpayClient client = new RazorpayClient("[YOUR_KEY_ID]", "[YOUR_KEY_SECRET]");

  Dictionary<string, object> paramRequest = new Dictionary<string, object>();
  paramRequest.Add("expand[]","emi");

  List<Payment> payment = client.Payment.All(paramRequest);
  ```

  ```bash CLI theme={null}
  razorpay payments list --expand emi
  ```
</RequestExample>

<ResponseExample>
  ```json Success theme={null}
  {
    "entity": "collection",
    "count": 2,
    "items": [
      {
        "id": "pay_KbCVlLqUbb3VhA",
        "entity": "payment",
        "amount": 400000,
        "currency": "INR",
        "status": "authorized",
        "order_id": null,
        "invoice_id": null,
        "international": false,
        "method": "emi",
        "amount_refunded": 0,
        "refund_status": null,
        "captured": false,
        "description": "Test Transaction",
        "card_id": "card_KbCVlPnxWRlOpH",
        "bank": "HDFC",
        "wallet": null,
        "vpa": null,
        "email": "gaurav.kumar@example.com",
        "contact": "+919000090000",
        "notes": {
          "address": "Razorpay Corporate Office"
        },
        "fee": null,
        "tax": null,
        "error_code": null,
        "error_description": null,
        "error_source": null,
        "error_step": null,
        "error_reason": null,
        "acquirer_data": {
          "auth_code": "205480"
        },
        "emi": {
          "issuer": "HDFC",
          "type": "credit",
          "rate": 1500,
          "duration": 24
        },
        "created_at": 1667398779
      },
      {
        "id": "pay_KbCUSPzYZdEVGA",
        "entity": "payment",
        "amount": 300000,
        "currency": "INR",
        "status": "authorized",
        "order_id": null,
        "invoice_id": null,
        "international": false,
        "method": "emi",
        "amount_refunded": 0,
        "refund_status": null,
        "captured": false,
        "description": "Test Transaction",
        "card_id": "card_KbCUSTVRUci85O",
        "bank": "HDFC",
        "wallet": null,
        "vpa": null,
        "email": "gaurav.kumar@example.com",
        "contact": "+919000090000",
        "notes": {
          "address": "Razorpay Corporate Office"
        },
        "fee": null,
        "tax": null,
        "error_code": null,
        "error_description": null,
        "error_source": null,
        "error_step": null,
        "error_reason": null,
        "acquirer_data": {
          "auth_code": "102251"
        },
        "emi": {
          "issuer": "HDFC",
          "type": "credit",
          "rate": 1500,
          "duration": 12
        },
        "created_at": 1667398705
      }
    ]
  }
  ```

  ```json Failure theme={null}
  {
      "error": {
          "code": "BAD_REQUEST_ERROR",
          "description": "Value of each expand must be one of following types: card, emi, transaction, transaction.settlement, refunds, offers, token",
          "source": "business",
          "step": "payment_initiation",
          "reason": "input_validation_failed",
          "metadata": {},
          "field": "expand.0"
      }
  }
  ```
</ResponseExample>

## Query Parameters

<ParamField query="from" type="integer">
  UNIX timestamp, in seconds, from when payments are to be fetched.
</ParamField>

<ParamField query="to" type="integer">
  UNIX timestamp, in seconds, till when payments are to be fetched.
</ParamField>

<ParamField query="count" type="integer">
  Number of payments to be fetched. <br /> Default value is 10. Maximum value is 100. This can be used for pagination, in combination with the `skip` parameter.
</ParamField>

<ParamField query="skip" type="integer">
  Number of records to be skipped while fetching the payments.
</ParamField>

<ParamField query="expand[]" type="array">
  Used to retrieve additional information about the payment, the method used to make the payment. The response will include a sub-entity if this parameter is used. <br />Possible values:

  * `card`: Expanded card details, usable for card and EMI payments.
  * `emi`: Expanded EMI plan details, usable for EMI payments.
</ParamField>

## Response Parameters

<ResponseField name="id" type="string">
  Unique identifier of the payment.
</ResponseField>

<ResponseField name="entity" type="string">
  Indicates the type of entity.
</ResponseField>

<ResponseField name="amount" type="integer">
  The payment amount in currency subunits. For example, for an amount of ₹1 enter 100.
</ResponseField>

<ResponseField name="currency" type="string">
  The currency in which the payment is made. Refer to the list of [international currencies](/docs/payments/international-payments#supported-currencies) that we support.
</ResponseField>

<ResponseField name="status" type="string">
  The status of the payment. Possible values:

  * `created`
  * `authorized`
  * `captured`
  * `refunded`
  * `failed`
</ResponseField>

<ResponseField name="method" type="string">
  The payment method used for making the payment. Possible values:

  * `card`
  * `netbanking`
  * `wallet`
  * `emi`
  * `upi`
</ResponseField>

<ResponseField name="order_id" type="string">
  Order id, if provided. Know more about [Orders](/docs/payments/orders).
</ResponseField>

<ResponseField name="description" type="string">
  Description of the payment, if any.
</ResponseField>

<ResponseField name="international" type="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.
</ResponseField>

<ResponseField name="refund_status" type="string">
  The refund status of the payment. Possible values:

  * `null`
  * `partial`
  * `full`
</ResponseField>

<ResponseField name="amount_refunded" type="integer">
  The amount refunded in currency subunits. For example, if `amount_refunded = 100`, it is equal to ₹1.
</ResponseField>

<ResponseField name="captured" type="boolean">
  Indicates if the payment is captured. Possible values:

  * `true`: Payment has been captured.
  * `false`: Payment has not been captured.
</ResponseField>

<ResponseField name="email" type="string">
  Customer email address used for the payment.
</ResponseField>

<ResponseField name="contact" type="string">
  Customer contact number used for the payment.
</ResponseField>

<ResponseField name="fee" type="integer">
  Fee (including GST) charged by Razorpay Curlec.
</ResponseField>

<ResponseField name="tax" type="integer">
  GST charged for the payment.
</ResponseField>

<ResponseField name="error_code" type="string">
  Error that occurred during payment. For example, `BAD_REQUEST_ERROR`.
</ResponseField>

<ResponseField name="error_description" type="string">
  Description of the error that occurred during payment. For example, `Payment processing failed because of incorrect OTP`.
</ResponseField>

<ResponseField name="error_source" type="string">
  The point of failure. For example, `customer`.
</ResponseField>

<ResponseField name="error_step" type="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`.
</ResponseField>

<ResponseField name="error_reason" type="string">
  The exact error reason. For example, `incorrect_otp`.
</ResponseField>

<ResponseField name="notes" type="json object">
  Contains user-defined fields, stored for reference purposes.
</ResponseField>

<ResponseField name="created_at" type="integer">
  Timestamp, in UNIX format, on which the payment was created.
</ResponseField>

<ResponseField name="card_id" type="string">
  The unique identifier of the card used by the customer to make the payment.
</ResponseField>

<ResponseField name="card" type="object">
  Details of the card used to make the payment.
</ResponseField>

<ResponseField name="id" type="string">
  The unique identifier of the card used by the customer to make the payment.
</ResponseField>

<ResponseField name="entity" type="string">
  The name of the entity. Here, it is `card`.
</ResponseField>

<ResponseField name="name" type="string">
  Name of the cardholder.
</ResponseField>

<ResponseField name="last4" type="integer">
  The last 4 digits of the card number.
</ResponseField>

<ResponseField name="network" type="string">
  The card network. Possible values:

  * `American Express`
  * `Diners Club` (Only available for private limited and registered businesses)
  * `Maestro`
  * `MasterCard`
  * `RuPay`
  * `Unknown`
  * `Visa`
</ResponseField>

<ResponseField name="type" type="string">
  The card type. Possible values:

  * `credit`
  * `debit`
  * `prepaid`
  * `unknown`
</ResponseField>

<ResponseField name="issuer" type="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.
</ResponseField>

<ResponseField name="emi" type="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.
</ResponseField>

<ResponseField name="sub_type" type="string">
  The sub-type of the customer's card. Possible values:

  * `customer`
  * `business`<br />

  Know how to accept payments made by customers using corporate cards.
</ResponseField>

<ResponseField name="upi" type="object">
  Details of the UPI payment received. Only applicable if `method` is `upi`.
</ResponseField>

<ResponseField name="payer_account_type" type="string">
  The payment method used for making the payment. Possible values:

  * `bank_account`
  * `credit_card`
  * `wallet`
</ResponseField>

<ResponseField name="vpa" type="string">
  The customer's VPA (Virtual Payment Address) or UPI id used to make the payment. For example, `gauravkumar@exampleupi`.
</ResponseField>

<ResponseField name="flow" type="string">
  The type of UPI flow. Possible value `in_app`. The field `flow` is present only in the case of Turbo UPI Payments.
</ResponseField>

<ResponseField name="bank" type="string">
  The 4-character bank code which the customer's account is associated with. For example, `UTIB` for Axis Bank.
</ResponseField>

<ResponseField name="vpa" type="string">
  The customer's VPA (Virtual Payment Address) or UPI id used to make the payment. For example, `gauravkumar@exampleupi`.
</ResponseField>

<ResponseField name="wallet" type="string">
  The name of the wallet used by the customer to make the payment. For example, `payzapp`.
</ResponseField>

<ResponseField name="acquirer_data" type="object">
  An object containing unique reference numbers.
</ResponseField>

<ResponseField name="rrn" type="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.
</ResponseField>

<ResponseField name="authentication_reference_number" type="string">
  A unique reference number generated for RuPay card payments.
</ResponseField>

<ResponseField name="bank_transaction_id" type="string">
  A unique reference number provided by the banking partner in case of netbanking payments.
</ResponseField>

<ResponseField name="token_id" type="string">
  Unique identifier of the token associated with this payment.
</ResponseField>

<ResponseField name="invoice_id" type="string">
  Unique identifier of the invoice associated with this payment.
</ResponseField>

## Errors

<AccordionGroup>
  <Accordion title="The API {key/secret} provided is invalid.">
    **Code:** `4xx`

    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.
  </Accordion>

  <Accordion title="Value of each expand must be one of following types: card, emi, transaction, refunds, offers, token, transaction.settlement.">
    **Code:** `400`

    The value for the `expand` parameter is incorrect.

    **Solution:** Enter the correct value for the `expand` parameter. Here it is `emi`.
  </Accordion>
</AccordionGroup>
