> ## 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 a Product Configuration

> Fetch a Product Configuration using Razorpay Partners APIs.

<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 the details of a product for a given sub-merchant's account. Know about the [various error responses](/docs/sg/api/partners/errors) for this API.

<RequestExample>
  ```bash Curl theme={null}
  curl -X GET https://api.razorpay.com/v2/accounts/acc_HQVlm3bnPmccC0/products/acc_prd_HEgNpywUFctQ9e/ \
  -u <ACCESS_TOKEN> \
  ```

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

  String accountId = "acc_GP4lfNA0iIMn5B";

  String productId = "acc_prd_HEgNpywUFctQ9e";

  Account product = instance.product.fetch(accountId, productId);
  ```

  ```php PHP theme={null}
  $api = new Api(null, null, "<ACCESS_TOKEN>");

  $accountId = "acc_GP4lfNA0iIMn5B";
  $productId = "acc_prd_HEgNpywUFctQ9e";

  $products = $api->account->fetch($accountId)->products();

  $products->fetch($productId);
  ```

  ```javascript Node.js theme={null}
  const instance = new Razorpay({
    oauthToken: "<ACCESS_TOKEN>"
  );

  const accountId = "acc_GP4lfNA0iIMn5B";

  const productId = "acc_prd_HEgNpywUFctQ9e";

  instance.products.fetch(accountId, productId);
  ```

  ```ruby Ruby theme={null}
  require "razorpay"
  Razorpay.setup('ACCESS_TOKEN')
  accountId = "acc_GP4lfNA0iIMn5B"

  productId = "acc_prd_HEgNpywUFctQ9e"

  Razorpay::Product.fetch(accountId, productId)
  ```

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

  string accountId = "acc_Z6t7VFTb9xHeOs";

  string productId = "acc_prd_Z6t7VFTb9xHeOs";

  Product product = client.Product.Fetch(accountId, productId)
  ```
</RequestExample>

<ResponseExample>
  ```json PG Success theme={null}
  {
    "requested_configuration": {
      "payment_methods": []
    },
    "active_configuration": {
      "payment_capture": {
        "mode": "automatic",
        "refund_speed": "normal",
        "automatic_expiry_period": 7200
      },
      "settlements": {
        "account_number": null,
        "ifsc_code": null,
        "beneficiary_name": null
      },
      "checkout": {
        "theme_color": "#FFFFFF",
        "flash_checkout": true
      },
      "refund": {
        "default_refund_speed": "normal"
      },
      "notifications": {
        "whatsapp": true,
        "sms": false,
        "email": [
          "b963e252-1201-45b0-9c39-c53eceb0cfd6_load@gmail.com"
        ]
      },
      "payment_methods": {
        "netbanking": {
          "enabled": true,
          "instrument": [
            {
              "type": "retail",
              "bank": [
                "hdfc",
                "sbin",
                "utib",
                "icic",
                "scbl",
                "yesb"
              ]
            }
          ]
        },
        "wallet": {
          "enabled": true,
          "instrument": [
            "airtelmoney",
            "jiomoney",
            "olamoney",
            "payzapp",
            "mobikwik"
          ]
        },
        "upi": {
          "enabled": true,
          "instrument": [
            "upi"
          ]
        }
      }
    },
    "requirements": [
      {
        "field_reference": "individual_proof_of_address",
        "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/stakeholders/{stakeholderId}/documents",
        "status": "required",
        "reason_code": "document_missing"
      },
      {
        "field_reference": "individual_proof_of_identification",
        "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/stakeholders/{stakeholderId}/documents",
        "status": "required",
        "reason_code": "document_missing"
      },
      {
        "field_reference": "business_proof_of_identification",
        "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/documents",
        "status": "required",
        "reason_code": "document_missing"
      },
      {
        "field_reference": "settlements.beneficiary_name",
        "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/products/acc_prd_HEgNpywUFctQ9e",
        "status": "required",
        "reason_code": "field_missing"
      },
      {
        "field_reference": "settlements.account_number",
        "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/products/acc_prd_HEgNpywUFctQ9e",
        "status": "required",
        "reason_code": "field_missing"
      },
      {
        "field_reference": "settlements.ifsc_code",
        "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/products/acc_prd_HEgNpywUFctQ9e",
        "status": "required",
        "reason_code": "field_missing"
      },
      {
        "field_reference": "contact_name",
        "resolution_url": "/accounts/acc_HQVlm3bnPmccC0",
        "status": "required",
        "reason_code": "field_missing"
      },
      {
        "field_reference": "name",
        "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/stakeholders",
        "status": "required",
        "reason_code": "field_missing"
      },
      {
        "field_reference": "customer_facing_business_name",
        "resolution_url": "/accounts/acc_HQVlm3bnPmccC0",
        "status": "required",
        "reason_code": "field_missing"
      },
      {
        "field_reference": "kyc.pan",
        "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/stakeholders",
        "status": "required",
        "reason_code": "field_missing"
      }
    ],
    "tnc":{
      "id": "tnc_IgohZaDBHRGjPv",
      "accepted": true,
      "accepted_at": 1641550798
    },
    "id": "acc_prd_HEgNpywUFctQ9e",
    "account_id": "acc_HQVlm3bnPmccC0",
    "product_name": "payment_gateway",
    "activation_status": "needs_clarification",
    "requested_at": 1625478849
  }
  ```

  ```json PL Success theme={null}
  {
    "requested_configuration": {
      "payment_methods": []
    },
    "active_configuration": {
      "payment_capture": {
        "mode": "automatic",
        "refund_speed": "normal",
        "automatic_expiry_period": 7200
      },
      "settlements": {
        "account_number": null,
        "ifsc_code": null,
        "beneficiary_name": null
      },
      "checkout": {
        "theme_color": "#FFFFFF",
        "flash_checkout": true
      },
      "refund": {
        "default_refund_speed": "normal"
      },
      "notifications": {
        "whatsapp": true,
        "sms": false,
        "email": [
          "b963e252-1201-45b0-9c39-c53eceb0cfd6_load@gmail.com"
        ]
      },
      "payment_methods": {
        "netbanking": {
          "enabled": true,
          "instrument": [
            {
              "type": "retail",
              "bank": [
                "hdfc",
                "sbin",
                "utib",
                "icic",
                "scbl",
                "yesb"
              ]
            }
          ]
        },
        "wallet": {
          "enabled": true,
          "instrument": [
            "airtelmoney",
            "jiomoney",
            "olamoney",
            "payzapp",
            "mobikwik"
          ]
        },
        "upi": {
          "enabled": true,
          "instrument": [
            "upi"
          ]
        }
      }
    },
    "requirements": [
      {
        "field_reference": "individual_proof_of_address",
        "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/stakeholders/{stakeholderId}/documents",
        "status": "required",
        "reason_code": "document_missing"
      },
      {
        "field_reference": "individual_proof_of_identification",
        "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/stakeholders/{stakeholderId}/documents",
        "status": "required",
        "reason_code": "document_missing"
      },
      {
        "field_reference": "business_proof_of_identification",
        "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/documents",
        "status": "required",
        "reason_code": "document_missing"
      },
      {
        "field_reference": "settlements.beneficiary_name",
        "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/products/acc_prd_HEgNpywUFctQ9f",
        "status": "required",
        "reason_code": "field_missing"
      },
      {
        "field_reference": "settlements.account_number",
        "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/products/acc_prd_HEgNpywUFctQ9f",
        "status": "required",
        "reason_code": "field_missing"
      },
      {
        "field_reference": "settlements.ifsc_code",
        "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/products/acc_prd_HEgNpywUFctQ9f",
        "status": "required",
        "reason_code": "field_missing"
      },
      {
        "field_reference": "contact_name",
        "resolution_url": "/accounts/acc_HQVlm3bnPmccC0",
        "status": "required",
        "reason_code": "field_missing"
      },
      {
        "field_reference": "name",
        "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/stakeholders",
        "status": "required",
        "reason_code": "field_missing"
      },
      {
        "field_reference": "customer_facing_business_name",
        "resolution_url": "/accounts/acc_HQVlm3bnPmccC0",
        "status": "required",
        "reason_code": "field_missing"
      },
      {
        "field_reference": "kyc.pan",
        "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/stakeholders",
        "status": "required",
        "reason_code": "field_missing"
      }
    ],
    "tnc":{
      "id": "tnc_IgohZaDBHRGjPv",
      "accepted": true,
      "accepted_at": 1641550798
    },
    "id": "acc_prd_HEgNpywUFctQ9f",
    "account_id": "acc_HQVlm3bnPmccC0",
    "product_name": "payment_links",
    "activation_status": "needs_clarification",
    "requested_at": 1625478849
  }
  ```
</ResponseExample>

## Path Parameters

<ParamField path="account_id" type="string" required>
  The unique identifier of a sub-merchant account generated by Razorpay. For example, `acc_HQVlm3bnPmccC0`.
</ParamField>

<ParamField path="id" type="string" required>
  The unique identifier of a product generated by Razorpay. For example, `acc_prd_HEgNpywUFctQ9e`.
</ParamField>

## Response Parameters

<ResponseField name="id" type="string">
  The unique identifier of a product generated by Razorpay for a sub-merchant account. This id is used to fetch or update a product.
</ResponseField>

<ResponseField name="product_name" type="string">
  The product(s) to be configured. Possible values:

  * `payment_gateway`
  * `payment_links`
</ResponseField>

<ResponseField name="tnc" type="object">
  It consists of the configuration for the accepted terms and conditions by the merchant for the requested product. If the terms and conditions are accepted by the user for the requested product, it would consist of the following fields:
</ResponseField>

<ResponseField name="id" type="string">
  The unique identifier representing the acceptance of terms and conditions for a product by a user.
</ResponseField>

<ResponseField name="accepted" type="boolean">
  The flag that represents whether the terms and conditions are accepted by the user.

  * `true`: Terms and conditions are accepted by user.
  * `false`: Terms and conditions are not accepted by user.
</ResponseField>

<ResponseField name="accepted_at" type="integer">
  The Unix timestamp at which the terms and conditions were accepted by the user for the requested product.
</ResponseField>

<ResponseField name="activation_status" type="string">
  The status of the [product activation](/docs/sg/partners/aggregators/onboarding-api/product-activation).

  * `requested`
  * `needs_clarification`
  * `under_review`
  * `activated`
  * `suspended`
</ResponseField>

<ResponseField name="configuration" type="object">
  The following are the possible configurations:
</ResponseField>

<ResponseField name="payment_methods" type="object">
  The payment methods configured, such as, netbanking, UPI, Wallet and EMI.
</ResponseField>

<ResponseField name="upi" type="object">
  The UPI type payment method.
</ResponseField>

<ResponseField name="status" type="string">
  The status of UPI payment method.
</ResponseField>

<ResponseField name="instrument" type="array">
  The list of UPI instruments requested or enabled.
</ResponseField>

<ResponseField name="netbanking" type="object">
  The netbanking type payment method.
</ResponseField>

<ResponseField name="status" type="string">
  The status of the netbanking payment method.
</ResponseField>

<ResponseField name="instrument" type="array">
  The netbanking instrument object.
</ResponseField>

<ResponseField name="type" type="string">
  The type of netbanking payment method. Possible values:<br />

  * Retail<br />
  * Corporate
</ResponseField>

<ResponseField name="bank" type="array">
  The list of netbanking banks requested or enabled. Refer the [Appendix](/docs/sg/partners/aggregators/onboarding-api/appendix#netbanking-bank-codes) page for netbanking bank codes.
</ResponseField>

<ResponseField name="wallet" type="object">
  The Wallet type payment method.
</ResponseField>

<ResponseField name="status" type="string">
  The status of the Wallet payment method.
</ResponseField>

<ResponseField name="instrument" type="array">
  The list of Wallet instruments requested or enabled.
</ResponseField>

<ResponseField name="emi" type="string">
  The EMI type payment method.
</ResponseField>

<ResponseField name="status" type="string">
  The status of EMI payment method.
</ResponseField>

<ResponseField name="instrument" type="array">
  The EMI instrument object.
</ResponseField>

<ResponseField name="type" type="string">
  The type of EMI payment method. Possible values:

  * `card_emi`
  * `cardless_emi`
</ResponseField>

<ResponseField name="partner" type="array">
  The list of EMI partners requested or enabled. Possible values:

  * For `card_emi`: `debit` and `credit`.
  * For `cardless_emi`: `zestmoney` and `earlysalary`.
</ResponseField>

<ResponseField name="paylater" type="object">
  The payment method to be enabled.
</ResponseField>

<ResponseField name="enabled" type="boolean">
  Enables or disables the payment method. Possible values:

  * `true`: Enables the `paylater` payment method.
  * `false`: Does not enable the `paylater` payment method.
</ResponseField>

<ResponseField name="instrument" type="string">
  The Paylater service provider. Possible values:

  * `epaylater`
  * `getsimpl`
</ResponseField>

<ResponseField name="payment_capture" type="object">
  The payment capture settings object.
</ResponseField>

<ResponseField name="mode" type="string">
  The mode through which payment capture is done. Possible values:

  * `automatic`: Payments are auto-captured (default)
  * `manual`: You have to manually capture payments using our Capture API or from the Partner's Dashboard.
</ResponseField>

<ResponseField name="automatic_expiry" type="numeric">
  This denotes the time in minutes when the payment is in the authorized state. This is auto-captured.
</ResponseField>

<ResponseField name="manual_expiry" type="numeric">
  This denotes the time in minutes until you can manually capture payments in the authorized state.

  * Must be equal to or greater than the `automatic_expire_period` value.
  * The default and the maximum value is 7200 minutes.
  * The payments in the authorized state after the `manual_expiry_period` are auto-refunded.
</ResponseField>

<ResponseField name="settlements" type="object">
  The Settlement settings object.
</ResponseField>

<ResponseField name="account_number" type="string">
  The bank account number to which settlements are made. Account details can be found on the Dashboard. For example, 7878780080316316.
</ResponseField>

<ResponseField name="ifsc_code" type="string">
  The IFSC associated with the bank account. For example, `RATN0VAAPIS`.
</ResponseField>

<ResponseField name="beneficiary_name" type="string">
  The name of the beneficiary associated with the bank account. This API parameter is needed complete the KYC process. However, it is optional for this API.
</ResponseField>

<ResponseField name="refund" type="object">
  This denotes the payment refund settings.
</ResponseField>

<ResponseField name="default_refund_speed" type="string">
  Speed at which the refund is to be processed. Possible values:

  * normal: Indicates that the refund will be processed at the normal speed. By default, the refund will take 5-7 working days.
  * optimum: Indicates that the refund will be processed at an optimal speed based on Razorpay's internal fund transfer logic. That is:
    * If the refund can be processed instantly, Razorpay will initiate the process irrespective of the payment method used to make the payment.
    * If an instant refund is not made, Razorpay will initiate a refund that is processed at the normal speed. For example, payments made using debit cards, netbanking or unsupported credit cards.
</ResponseField>

<ResponseField name="checkout" type="object">
  The checkout form of the payment capture.
</ResponseField>

<ResponseField name="theme_color" type="string">
  The theme color for sub-merchant's checkout page
</ResponseField>

<ResponseField name="logo" type="string">
  The logo of the sub-merchant's business on the checkout page.
</ResponseField>

<ResponseField name="flash_checkout" type="boolean">
  The flagging options **Enable** or **Disable** for Razorpay's Flash Checkout to securely save the card details of your customers.
</ResponseField>

<ResponseField name="notifications" type="object">
  This denotes the notifications settings.
</ResponseField>

<ResponseField name="email" type="string">
  The email addresses that will receive notifications regarding payments, settlements, daily payment reports, webhooks, and so on.
</ResponseField>

<ResponseField name="whatsapp" type="boolean">
  The WhatsApp notifications you receive regarding payments, settlements, daily payment reports, webhooks, etc.
</ResponseField>

<ResponseField name="sms" type="boolean">
  The SMS notifications you receive regarding payments, settlements, daily payment reports, webhooks, etc. This attribute will be set to `false`.
</ResponseField>

<ResponseField name="requested_configuration" type="object">
  The configuration of the product requested by the user that is yet to be set as active.
</ResponseField>

<ResponseField name="active_configuration" type="object">
  The configuration of the product that has been set as active.
</ResponseField>

<ResponseField name="requirements" type="object">
  The list of requirements to be enabled for this product or some of the configurations under this product.
</ResponseField>

<ResponseField name="field_reference" type="string">
  The field which is in issue or missing. The JSON key path in resolution URL.
</ResponseField>

<ResponseField name="resolution_url" type="string">
  The URL to address the requirement. The API endpoint to be used for updating missing fields or documents.
</ResponseField>

<ResponseField name="status" type="string">
  The status of the requirement.
</ResponseField>

<ResponseField name="reason_code" type="string">
  The reason code for showing in the requirement. Description will be sent only when reason code is "". Possible values:

  * `field_missing`
  * `needs_clarification`
  * `document_missing`
</ResponseField>

<ResponseField name="description" type="string">
  This parameter is displayed when the reason\_code is `needs_clarification`.
</ResponseField>

<ResponseField name="requested_at" type="integer">
  The Unix timestamp at which the product configuration is requested.
</ResponseField>
