> ## 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 Orders (With Expand Card Payments)

> Expand card object when fetching payents for Orders using Razorpay Orders API.

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

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

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

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

  List<Order> order = instance.orders.fetchAll(params);
  ```

  ```python Python theme={null}
  import razorpay
  client = razorpay.Client(auth=("YOUR_ID", "YOUR_SECRET"))
  client.order.all({
    "expand[]":  "payments.card"
  })
  ```

  ```php PHP theme={null}
  $api = new Api($key_id, $secret);
  $api->order->all(array("expand[]" => "payments.card"));
  ```

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

  option = {"expand[]": "payments.card"}

  Razorpay::Order.all(option)
  ```

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

  instance.orders.all({
    "expand[]":  "payments.card"
  })
  ```

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

  options := map[string]interface{}{
    "expand[]":  "payments.card",
  }
  body, err := client.Order.All(options, nil)
  ```

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

  Dictionary<string, object> orderRequest = new Dictionary<string, object>();
  orderRequest.Add("expand[]","payments.card");

  List<Order> order = client.Order.All(orderRequest);
  ```

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

<ResponseExample>
  ```json Success theme={null}
  {
    "entity": "collection",
    "count": 1,
    "items": [
      {
        "id": "order_MjehF7I6RXSm2o",
        "entity": "order",
        "amount": 500,
        "amount_paid": 500,
        "amount_due": 0,
        "currency": "MYR",
        "receipt": null,
        "payments": {
          "entity": "collection",
          "count": 1,
          "items": [
            {
              "id": "pay_MjehkbJc3pPERF",
              "entity": "payment",
              "amount": 500,
              "currency": "MYR",
              "status": "captured",
              "order_id": "order_MjehF7I6RXSm2o",
              "invoice_id": null,
              "international": false,
              "method": "card",
              "amount_refunded": 0,
              "refund_status": null,
              "captured": true,
              "description": null,
              "card_id": "card_MjehkeMkNIzhOb",
              "card": {
                "id": "card_MjehkeMkNIzhOb",
                "entity": "card",
                "name": "",
                "last4": "0153",
                "network": "Visa",
                "type": "debit",
                "issuer": null,
                "international": false,
                "emi": false,
                "sub_type": "consumer",
                "token_iin": null
              },
              "bank": null,
              "wallet": null,
              "vpa": null,
              "email": "<email>",
              "contact": "<phone>",
              "notes": [],
              "fee": 10,
              "tax": 0,
              "error_code": null,
              "error_description": null,
              "error_source": null,
              "error_step": null,
              "error_reason": null,
              "acquirer_data": {
                "auth_code": "486881"
              },
              "created_at": 1696318958
            }
          ]
        },
        "offer_id": null,
        "status": "paid",
        "attempts": 1,
        "notes": [],
        "created_at": 1696318929
      }
    ]
  }
  ```

  ```json Failure theme={null}
  {
      "error": {
          "code": "BAD_REQUEST_ERROR",
          "description": "The api key provided is invalid",
          "source": "NA",
          "step": "NA",
          "reason": "NA",
          "metadata": {}
      }
  }
  ```
</ResponseExample>

## Query Parameters

<ParamField query="expand[]=payments.card" type="string">
  Use to expand the card payments made for an order.
</ParamField>

## Response Parameters

<ResponseField name="id" type="string">
  The unique identifier of the order.
</ResponseField>

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

<ResponseField name="amount" type="integer">
  The amount for which the order was created, in currency subunits. For example, for an amount of , enter `29500`.
</ResponseField>

<ResponseField name="amount_paid" type="integer">
  The amount paid against the order.
</ResponseField>

<ResponseField name="amount_due" type="integer">
  The amount pending against the order.
</ResponseField>

<ResponseField name="currency" type="string" required>
  ISO code for the currency in which you want to accept the payment. The default length is 3 characters.
</ResponseField>

<ResponseField name="receipt" type="string">
  Receipt number that corresponds to this order. Can have a maximum length of 40 characters and has to be unique.
</ResponseField>

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

  * `created`: When you create an order it is in the `created` state. It stays in this state till a payment is attempted on it.
  * `attempted`: An order moves from `created` to `attempted` state when a payment is first attempted on it. It remains in the `attempted` state till one payment associated with that order is captured.
  * `paid`: After the successful capture of the payment, the order moves to the `paid` state. No further payment requests are permitted once the order moves to the `paid` state. The order stays in the `paid` state even if the payment associated with the order is refunded.
</ResponseField>

<ResponseField name="attempts" type="integer">
  The number of payment attempts, successful and failed, that have been made against this order.
</ResponseField>

<ResponseField name="notes" type="json object">
  Key-value pair that can be used to store additional information about the entity. Maximum 15 key-value pairs, 256 characters (maximum) each. For example, `"note_key": "Beam me up Scotty”`.
</ResponseField>

<ResponseField name="created_at" type="integer">
  Indicates the Unix timestamp when this order was created.
</ResponseField>

<ResponseField name="payments" type="object">
  Details of the payment.
</ResponseField>

<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  enter 100.
</ResponseField>

<ResponseField name="currency" type="string">
  The currency in which the payment is made.
</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`
  * `upi`
  * `emi`
</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 .
</ResponseField>

<ResponseField name="captured" type="boolean">
  Indicates if the payment is 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 tax) charged by us.
</ResponseField>

<ResponseField name="tax" type="integer">
  Tax 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="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="array">
  A dynamic array consisting of a 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="bank" type="string">
  The 4-character bank code which the customer's account is associated with. For example, `UTIB` for HSBC Bank.
</ResponseField>

<br />

<ResponseField name="upi" type="object">
  Details of the UPI payment received. 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="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="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.

  `network`
</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">
  Determines if card can be used for EMI payments. `true` if EMI payments are supported on card. `false` if EMI payments are not supported on card.
</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](/docs/payments/payment-methods/cards/corporate-cards).
</ResponseField>

<ResponseField name="offer_id" type="string">
  Unique identifier of the offer associated with this order.
</ResponseField>

<ResponseField name="token" type="object">
  The recurring-payment token created when the order was authorised on a subscription / recurring flow. Present on orders that resulted in a token-bearing payment.
</ResponseField>

<ResponseField name="auth_type" type="string">
  The authentication type used to create the token. One of `3ds`, `otp`, `aadhaar`, or `physical` for emandate / `mandate_otp` for UPI.
</ResponseField>

<ResponseField name="expire_at" type="integer">
  Unix timestamp when the token expires.
</ResponseField>

<ResponseField name="failure_reason" type="string">
  Human-readable reason if the token-creation flow failed. `null` on success.
</ResponseField>

<ResponseField name="first_payment_amount" type="integer">
  Amount of the first recurring payment, in the smallest currency unit (paise for INR).
</ResponseField>

<ResponseField name="frequency" type="string">
  Frequency of the recurring debit. One of `as_presented`, `daily`, `weekly`, `monthly`, `yearly`, etc.
</ResponseField>

<ResponseField name="max_amount" type="integer">
  Maximum amount that can be debited per cycle, in the smallest currency unit (paise for INR).
</ResponseField>

<ResponseField name="recurring_status" type="string">
  Lifecycle state of the recurring token. One of `initiated`, `confirmed`, `rejected`, `cancelled`, `paused`, or `expired`.
</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>
</AccordionGroup>
