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

# Fetch an Invoice With ID

> Fetch the details of an Invoice using this endpoint.

<div style={{display:"flex",flexWrap:"wrap",alignItems:"center",gap:"0.35rem 0.9rem",border:"1px solid rgba(128,128,128,0.28)",borderRadius:"0.5rem",padding:"0.45rem 0.75rem",margin:"0 0 1.25rem",fontSize:"0.875rem"}}>
  <span style={{fontWeight:600}}>Available in</span>
  <span>🇮🇳 India</span>
  <span>🇸🇬 Singapore</span>
  <span>🇺🇸 United States</span>
</div>

Use this endpoint to retrieve all the details of an invoice.

<RequestExample>
  ```bash Curl theme={null}
  curl -u [YOUR_KEY_ID]:[YOUR_KEY_SECRET]
  -X GET https://api.razorpay.com/v1/invoices/inv_E7q0tqkxBRzdau
  -H 'content-type:application/json'
  ```

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

  String invoiceId = "inv_E7q0tqkxBRzdau";

  Invoice invoice = razorpay.invoices.fetch(invoiceId);
  ```

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

  client.invoice.fetch(invoiceId)
  ```

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

  body, err := client.Invoice.Fetch("<invoiceId>", nil, nil)
  ```

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

  Razorpay::Invoice.fetch(invoiceId)
  ```

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

  $api->invoice->fetch($invoiceId);
  ```

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

  instance.invoices.fetch(invoiceId)
  ```

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

  string invoiceId = "inv_Z6t7VFTb9xHeOs";

  Invoice invoice = client.Invoice.Fetch(invoiceId);
  ```

  ```bash CLI theme={null}
  razorpay invoices fetch inv_ABC123
  ```
</RequestExample>

<ResponseExample>
  ```json Success theme={null}
  {
    "id": "inv_E7q0tqkxBRzdau",
    "entity": "invoice",
    "receipt": null,
    "invoice_number": null,
    "customer_id": "cust_E7q0trFqXgExmT",
    "customer_details": {
      "id": "cust_E7q0trFqXgExmT",
      "name": "<name>",
      "email": "<email>",
      "contact": "<phone>",
      "gstin": null,
      "billing_address": {
        "id": "addr_E7q0ttqh4SGhAC",
        "type": "billing_address",
        "primary": true,
        "line1": "Bakers Street",
        "line2": "Country Road",
        "zipcode": "560068",
        "city": "Bengaluru",
        "state": "Karnataka",
        "country": "in"
      },
      "shipping_address": {
        "id": "addr_E7q0ttKwVA1h2V",
        "type": "shipping_address",
        "primary": true,
        "line1": "Bakers Street",
        "line2": "Country Road",
        "zipcode": "560068",
        "city": "Bengaluru",
        "state": "Karnataka",
        "country": "in"
      },
      "customer_name": "<name>",
      "customer_email": "<email>",
      "customer_contact": "<phone>"
    },
    "order_id": "order_E7q0tvRpC0WJwg",
    "line_items": [
      {
        "id": "li_E7q0tuPNg84VbZ",
        "item_id": null,
        "ref_id": null,
        "ref_type": null,
        "name": "Master Cloud Computing in 30 Days",
        "description": "Book by Ravena Ravenclaw",
        "amount": 399,
        "unit_amount": 399,
        "gross_amount": 399,
        "tax_amount": 0,
        "taxable_amount": 399,
        "net_amount": 399,
        "currency": "SGD",
        "type": "invoice",
        "tax_inclusive": false,
        "hsn_code": null,
        "sac_code": null,
        "tax_rate": null,
        "unit": null,
        "quantity": 1,
        "taxes": []
      }
    ],
    "payment_id": null,
    "status": "issued",
    "expire_by": 1589765167,
    "issued_at": 1579765167,
    "paid_at": null,
    "cancelled_at": null,
    "expired_at": null,
    "sms_status": "pending",
    "email_status": "pending",
    "date": 1579765167,
    "terms": null,
    "partial_payment": true,
    "gross_amount": 399,
    "tax_amount": 0,
    "taxable_amount": 399,
    "amount": 399,
    "amount_paid": 0,
    "amount_due": 399,
    "currency": "SGD",
    "currency_symbol": "₹",
    "description": "Invoice for the month of January 2020",
    "notes": [],
    "comment": null,
    "short_url": "https://rzp.io/i/2wxV8Xs",
    "view_less": true,
    "billing_start": null,
    "billing_end": null,
    "type": "invoice",
    "group_taxes_discounts": false,
    "created_at": 1579765167,
    "idempotency_key": null
  }
  ```

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

## Path Parameters

<ParamField path="id" type="string" required>
  The unique identifier of the invoice.
</ParamField>

## Response Parameters

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

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

<ResponseField name="type" type="string">
  Here, it should be `invoice`.
</ResponseField>

<ResponseField name="invoice_number" type="string">
  Unique number you added for internal reference. The minimum character length is 1 and maximum is 40.
</ResponseField>

<ResponseField name="customer_id" type="string">
  The unique identifier of the customer. You can create `customer_id` using the [Customers API](/docs/sg/api/customers). Alternatively, you can pass the customer object described in the below fields.
</ResponseField>

<ResponseField name="customer_details" type="object">
  Details of the customer.
</ResponseField>

<ResponseField name="id" type="string">
  Unique identifier of the customer. For example, `cust_1Aa00000000004`.
</ResponseField>

<ResponseField name="name" type="string">
  Customer's name. Alphanumeric, with period (.), apostrophe (') and parentheses allowed. The name must be between 3-50 characters in length. For example, `Gaurav Kumar`.
</ResponseField>

<ResponseField name="email" type="string">
  The customer's email address. A maximum length of 64 characters. For example, `gaurav.kumar@example.com`.
</ResponseField>

<ResponseField name="contact" type="string">
  The customer's phone number. A maximum length of 15 characters including country code. For example, `+919876543210`.
</ResponseField>

<ResponseField name="billing_address" type="object">
  Details of the customer's billing address.
</ResponseField>

<ResponseField name="id" type="string">
  The unique identifier generated for the customer's billing address.
</ResponseField>

<ResponseField name="type" type="string">
  The customer address type. Here it is `billing_address`.
</ResponseField>

<ResponseField name="primary" type="boolean">
  Defines if this is the primary address.

  * `true`: It is the customer's primary address.
  * `false`: It is not the customer's primary address.
</ResponseField>

<ResponseField name="line1" type="string">
  The first line of the customer's address.
</ResponseField>

<ResponseField name="line2" type="string">
  The second line of the customer's address.
</ResponseField>

<ResponseField name="city" type="string">
  The city.
</ResponseField>

<ResponseField name="zipcode" type="string">
  The zipcode.
</ResponseField>

<ResponseField name="state" type="string">
  The state.
</ResponseField>

<ResponseField name="country" type="string">
  The country.
</ResponseField>

<ResponseField name="shipping_address" type="object">
  Details of the customer's shipping address.
</ResponseField>

<ResponseField name="id" type="string">
  The unique identifier generated for the customer's shipping address.
</ResponseField>

<ResponseField name="type" type="string">
  The customer address type. Here it is `shipping_address`.
</ResponseField>

<ResponseField name="primary" type="boolean">
  Defines if this is the primary address.

  * `true`: It is the customer's primary address.
  * `false`: It is not the customer's primary address.
</ResponseField>

<ResponseField name="line1" type="string">
  The first line of the customer's address.
</ResponseField>

<ResponseField name="line2" type="string">
  The second line of the customer's address.
</ResponseField>

<ResponseField name="city" type="string">
  The city.
</ResponseField>

<ResponseField name="zipcode" type="string">
  The zipcode.
</ResponseField>

<ResponseField name="state" type="string">
  The state.
</ResponseField>

<ResponseField name="country" type="string">
  The country.
</ResponseField>

<ResponseField name="order_id" type="string">
  The unique identifier of the order associated with the invoice.
</ResponseField>

<ResponseField name="line_items" type="object">
  Details of the line item that is billed in the invoice. Maximum of 50 line items.
</ResponseField>

<ResponseField name="id" type="string">
  Unique identifier that is generated if a new item has been created while creating the invoice.
</ResponseField>

<ResponseField name="item_id" type="string">
  Unique identifier of the item generated using Items API that has been billed in the invoice.
</ResponseField>

<ResponseField name="name" type="string">
  The item's name.
</ResponseField>

<ResponseField name="description" type="string">
  A brief description of the item.
</ResponseField>

<ResponseField name="amount" type="integer">
  The price of the item.
</ResponseField>

<ResponseField name="currency" type="string">
  The currency associated with the item. Default is `INR`. Know about the [list of supported international currencies](/docs/sg/payments/international-payments#supported-currencies).
</ResponseField>

<ResponseField name="type" type="string">
  Here, it is `invoice`.
</ResponseField>

<ResponseField name="quantity" type="integer">
  The quantity of the item billed in the invoice. Defaults to `1`.
</ResponseField>

<ResponseField name="payment_id" type="string">
  Unique identifier of a payment made against this invoice.
</ResponseField>

<ResponseField name="status" type="string">
  The status of the invoice. Know more about [Invoice States](/docs/sg/payments/invoices/states). Possible values:

  * `draft`
  * `issued`
  * `partially_paid`
  * `paid`
  * `cancelled`
  * `expired`
  * `deleted`
</ResponseField>

<ResponseField name="expire_by" type="integer">
  Timestamp, in Unix format, at which the invoice will expire.
</ResponseField>

<ResponseField name="issued_at" type="integer">
  Timestamp, in Unix format, at which the invoice was issued to the customer.
</ResponseField>

<ResponseField name="paid_at" type="integer">
  Timestamp, in Unix format, at which the payment was made.
</ResponseField>

<ResponseField name="cancelled_at" type="integer">
  Timestamp, in Unix format, at which the invoice was cancelled.
</ResponseField>

<ResponseField name="expired_at" type="integer">
  Timestamp, in Unix format, at which the invoice expired.
</ResponseField>

<ResponseField name="sms_status" type="string">
  The delivery status of the SMS notification for the invoice sent to the customer. Possible values:

  * `pending`
  * `sent`
</ResponseField>

<ResponseField name="email_status" type="string">
  The delivery status of the email notification for the invoice sent to the customer. Possible values:

  * `pending`
  * `sent`
</ResponseField>

<ResponseField name="partial_payment" type="boolean">
  Indicates whether the customer can make a partial payment on the invoice. Possible values:

  * `true`:  The customer can make partial payments.
  * `false` (default): The customer cannot make partial payments.
</ResponseField>

<ResponseField name="amount" type="integer">
  Amount to be paid using the invoice. Must be in the smallest unit of the currency. For example, if the amount to be received from the customer is , pass the value as `30000`.
</ResponseField>

<ResponseField name="amount_paid" type="integer">
  Amount paid by the customer against the invoice.
</ResponseField>

<ResponseField name="amount_due" type="integer">
  The remaining amount to be paid by the customer for the issued invoice.
</ResponseField>

<ResponseField name="currency" type="string">
  The currency associated with the invoice. You must mandatorily pass this parameter if accepting international payments. If you have passed `currency` as a sub-parameter in the `line_item` object, you must ensure that the same currency is passed in both places. Know about the [list of supported international currencies.](/docs/sg/payments/international-payments#supported-currencies)
</ResponseField>

<ResponseField name="description" type="string">
  A brief description of the invoice. The maximum character length is 2048.
</ResponseField>

<ResponseField name="notes" type="object">
  Any custom notes added to the invoice. Maximum of 2048 characters.
</ResponseField>

<ResponseField name="short_url" type="string">
  The short URL that is generated. Share this link with customers to accept payments.
</ResponseField>

<ResponseField name="date" type="integer">
  Timestamp, in Unix format, that indicates the issue date of the invoice.
</ResponseField>

<ResponseField name="terms" type="string">
  Any terms to be included in the invoice. Maximum of 2048 characters.
</ResponseField>

<ResponseField name="comment" type="string">
  Any comments to be added in the invoice. Maximum of 2048 characters.
</ResponseField>

<ResponseField name="ref_num" type="string">
  A unique reference number for the invoice, used for internal tracking and reconciliation.
</ResponseField>

<ResponseField name="receipt" type="string">
  A unique receipt number that you can provide for the invoice, for your internal reference.
</ResponseField>

<ResponseField name="currency_symbol" type="string">
  For example, `₹`.
</ResponseField>

<ResponseField name="idempotency_key" type="string">
  A unique key used to ensure idempotency of the invoice creation request, preventing duplicate invoices.
</ResponseField>

<ResponseField name="billing_end" type="integer">
  Unix timestamp marking the end of the billing period for the invoice.
</ResponseField>

<ResponseField name="gross_amount" type="integer">
  The gross amount for this invoice, in the smallest currency unit (paise for INR). For example, `50000`.
</ResponseField>

<ResponseField name="subscription_id" type="string">
  Unique identifier of the subscription this invoice was generated for. `null` for one-off invoices.
</ResponseField>

## Errors

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

    The API key or secret are not entered or an invalid API key is used.

    **Solution:** Use and enter the correct API details while executing the API.
  </Accordion>

  <Accordion title="The id provided does not exist.">
    **Code:** `400`

    The invoice id entered is either invalid or does not belong to the requester account.

    **Solution:** Enter a valid invoice id.
  </Accordion>
</AccordionGroup>
