> ## 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.

# Product Configuration APIs

> You can use the Product Configuration APIs to configure and activate Razorpay products for a sub-merchant account according to their requirements. For example, if you need our Payment Gateway product for all sub-merchants or Payment Gateway for one sub-merchant and Payment Link product for another sub-merchant, you can do so using this API.

You can create, fetch and update product configuration requests using these APIs.

You can even accept terms and conditions for the requested product using these APIs. You can fetch the terms and conditions using the [Fetch Terms and Conditions API](/api/partners/terms-conditions/fetch).

<Info>
  **Handy Tips**
</Info>

* In the requirements section of Documents API, depending upon the requirement, you can classify it into two types:

* Optional document

field\_reference: "proof\_type.document\_type"

Example: `business_proof_of_identification.business_pan_url`

This means as a sub-merchant you need to upload the `business_pan_url` document in order to get the optional requirement fulfilled.

* Selected optional document

field\_reference : "proof\_type"

Example: `individual_proof_of_address`

This means as a merchant you can upload from ONE of the following groups, that is  submit \[`aadhar_front` ,`aadhar_back`] or \[`voter_id_front`, `voter_id_back`] or \[`passport_front`, `passport_back`]. Once all the documents from any ONE of the groups are uploaded, the optional requirement gets fulfilled.

* The products Payment Links and Payment Gateway have similar requirements. If a requirement is submitted through a product configuration for payment\_gateway, the same will be applicable for other product configurations, such as payment\_links, and vice versa.

You can try out our APIs on the Razorpay Postman Public Workspace.

[](https://www.postman.com/razorpaydev/workspace/razorpay-public-workspace/folder/12492020-07bc4970-f967-4020-922f-8adb7ea407e8)

## Product Configuration Entity

### Entity Parameters

`id`
: `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.

`product_name`
: `string` The product(s) to be configured. Possible values:

* `payment_gateway`
* `payment_links`

`tnc`
: `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 following fields:

`id`
: `string` The unique identifier representing the acceptance of terms and conditions for a product by a user.

`accepted`
: `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.

`accepted_at`
: `integer` The Unix timestamp at which the terms and conditions were accepted by the user for the requested product.

`activation_status`
: `string` The status of the product activation.

* `requested`
* `needs_clarification`
* `under_review`
* `activated_kyc_pending`
* `activated`
* `suspended`

`otp`
: `object` OTP specific details of the merchant.

`contact_mobile`
: `string` The contact number for which the OTP details have been submitted.

<Info>
  **Handy Tips**
</Info>

This number should be the same as the one provided during account creation.

`external_reference_number`
: `string` Used to search the OTP verification logs on your (partner's) system in case of an enquiry. Ideally, this is a reference number that you use to track OTP verification.

`otp_submission_timestamp`
: `string` The timestamp of OTP submission to user.

`otp_verification_timestamp`
: `string` The timestamp of OTP verification by partner.

`configuration`
: The following are the possible configurations:

`payment_methods`
: `object` The payment methods configured, such as, netbanking, UPI, Wallet and EMI.

`upi`
: `object` The UPI type payment method.

`status`
: `string` The status of UPI payment method.

`instrument`
: `array` The list of UPI instruments requested or enabled.

`netbanking`
: `object` The netbanking type payment method.

`status`
: `string` The status of the netbanking payment method.

`instrument`
: `array` The netbanking instrument object.

`type`
: `string` The type of netbanking payment method. Possible values:

* Retail

* Corporate

`bank`
: `array` The list of netbanking banks requested or enabled. Refer the [Appendix](/partners/aggregators/onboarding-api/appendix#netbanking-bank-codes) page for netbanking bank codes.

`wallet`
: `object` The Wallet type payment method.

`status`
: `string` The status of the Wallet payment method.

`instrument`
: `array` The list of Wallet instruments requested or enabled.

`emi`
: `string` The EMI type payment method.

`status`
: `string` The status of EMI payment method.

`instrument`
: `array` The EMI instrument object.

`type`
: `string` The type of EMI payment method. Possible values:

* `card_emi`
* `cardless_emi`

`partner`
: `array` The list of EMI partners requested or enabled. Possible values:

* For `card_emi`: `debit` and `credit`.
* For `cardless_emi`: `zestmoney` and `earlysalary`.

`paylater`
: `object` The payment method to be enabled.

`enabled`
: `boolean` Enables or disables the payment method. Possible values:

* `true`: Enables the `paylater` payment method.
* `false`: Does not enable the `paylater` payment method.

`instrument`
: `string` The Paylater service provider. Possible values are:

* `epaylater`
* `getsimpl`

`payment_capture`
: `object` The payment capture settings object.

`mode`
: `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.

`automatic_expiry`
: `numeric` This denotes the time in minutes when the payment is in the authorized state. This is auto-captured.

`manual_expiry`
: `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.

`settlements`
: `object` The Settlement settings object.

`account_number`
: `string` The bank account number to which settlements are made. Account details can be found on the Dashboard. For example, 7878780080316316

`ifsc_code`
: `string` The IFSC associated with the bank account. For example, `RATN0VAAPIS`.

`beneficiary_name`
: `string` The name of the beneficiary associated with the bank account.

<Info>
  **Handy Tip**
</Info>

This API parameter is needed complete the KYC process. However, it is optional for this API.

`refund`
: `object` This denotes the payment refund settings.

`default_refund_speed`
: `string` Speed at which the refund is to be processed. Possible values are:

* 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.

`checkout`
: `object` The checkout form of the payment capture.

`theme_color`
: `string` The theme color for sub-merchant's checkout page

`logo`
: `string` The logo of the sub-merchant's business on the checkout page.

`flash_checkout`
: `boolean` The flagging options **Enable** or **Disable** for Razorpay's Flash Checkout to securely save the card details of your customers.

`notifications`
: `object` This denotes the notifications settings.

`email`
: `string` The email addresses that will receive notifications regarding payments, settlements, daily payment reports, webhooks, and so on.

`whatsapp`
: `boolean` The WhatsApp notifications you receive regarding payments, settlements, daily payment reports, webhooks, etc.

`sms`
: `boolean` The SMS notifications you receive regarding payments, settlements, daily payment reports, webhooks, etc. This attribute will be set to `false`.

`requested_configuration`
: `object` The configuration of the product requested by the user that is yet to be set as active.

`active_configuration`
: `object` The configuration of the product that has been set as active.

`requirements`
: `object` The list of requirements to be enabled for this product or some of the configurations under this product.

`field_reference`
: `string` The field which is in issue or missing. The JSON key path in resolution URL.

`resolution_url`
: `string` The URL to address the requirement. The API endpoint to be used for updating missing fields or documents.

`status`
: `string` The status of the requirement.

`reason_code`
: `string` The reason code for showing in the requirement. Description will be sent only when reason code is "". Possible values are:

* `field_missing`
* `needs_clarification`
* `document_missing`

`description`
: `string` This parameter is displayed when the reason\_code is `needs_clarification`.

`requested_at`
: `integer` The Unix timestamp at which the product configuration is requested.

### Sample Entity

````json: PG Sample Entity 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": false,
      "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": "otp.contact_mobile",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/products/acc_prd_JnvWa1Ggyr1MN7",
      "status": "required",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "otp.external_reference_number",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/products/acc_prd_JnvWa1Ggyr1MN7",
      "status": "optional",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "otp.otp_submission_timestamp",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/products/acc_prd_JnvWa1Ggyr1MN7",
      "status": "optional",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "otp.otp_verification_timestamp",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/products/acc_prd_JnvWa1Ggyr1MN7",
      "status": "optional",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "name",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/stakeholders",
      "status": "required",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "kyc.pan",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/stakeholders",
      "status": "required",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "settlements.beneficiary_name",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/products/acc_prd_JnvWa1Ggyr1MN7",
      "status": "required",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "settlements.account_number",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/products/acc_prd_JnvWa1Ggyr1MN7",
      "status": "required",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "settlements.ifsc_code",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/products/acc_prd_JnvWa1Ggyr1MN7",
      "status": "required",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "individual_proof_of_address",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/stakeholders/{stakeholderId}/documents",
      "status": "optional",
      "reason_code": "document_missing"
    },
    {
      "field_reference": "individual_proof_of_identification.personal_pan",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/stakeholders/{stakeholderId}/documents",
      "status": "optional",
      "reason_code": "document_missing"
    },
    {
      "field_reference": "business_proof_of_identification.business_proof_url",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/documents",
      "status": "optional",
      "reason_code": "document_missing"
    },
    {
      "field_reference": "customer_facing_business_name",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC",
      "status": "optional",
      "reason_code": "field_missing"
    }
  ],
  "tnc": {
    "id": "tnc_IgohZaDBHRGjPv",
    "accepted": true,
    "accepted_at": 1641550798
  },
  "id": "acc_prd_JnvWa1Ggyr1MN7",
  "account_id": "acc_JnvU4bvDf8rmEC",
  "product_name": "payment_gateway",
  "activation_status": "needs_clarification",
  "requested_at": 162547884
}
```json: PL Sample Entity
{
  "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": false,
      "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": "otp.contact_mobile",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/products/acc_prd_JnvWa1Ggyr1MN7",
      "status": "required",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "otp.external_reference_number",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/products/acc_prd_JnvWa1Ggyr1MN7",
      "status": "optional",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "otp.otp_submission_timestamp",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/products/acc_prd_JnvWa1Ggyr1MN7",
      "status": "optional",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "otp.otp_verification_timestamp",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/products/acc_prd_JnvWa1Ggyr1MN7",
      "status": "optional",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "name",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/stakeholders",
      "status": "required",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "kyc.pan",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/stakeholders",
      "status": "required",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "settlements.beneficiary_name",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/products/acc_prd_JnvWa1Ggyr1MN7",
      "status": "required",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "settlements.account_number",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/products/acc_prd_JnvWa1Ggyr1MN7",
      "status": "required",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "settlements.ifsc_code",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/products/acc_prd_JnvWa1Ggyr1MN7",
      "status": "required",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "individual_proof_of_address",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/stakeholders/{stakeholderId}/documents",
      "status": "optional",
      "reason_code": "document_missing"
    },
    {
      "field_reference": "individual_proof_of_identification.personal_pan",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/stakeholders/{stakeholderId}/documents",
      "status": "optional",
      "reason_code": "document_missing"
    },
    {
      "field_reference": "business_proof_of_identification.business_proof_url",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/documents",
      "status": "optional",
      "reason_code": "document_missing"
    },
    {
      "field_reference": "customer_facing_business_name",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC",
      "status": "optional",
      "reason_code": "field_missing"
    }
  ],
  "tnc": {
    "id": "tnc_IgohZaDBHRGjPv",
    "accepted": true,
    "accepted_at": 1641550798
  },
  "id": "acc_prd_JnvWa1Ggyr1MN7",
  "account_id": "acc_JnvU4bvDf8rmEC",
  "product_name": "payment_links",
  "activation_status": "needs_clarification",
  "requested_at": 162547884
}
````

## Request a Product Configuration

You can even accept terms and conditions for the requested product using these APIs.

<Info>
  **Handy Tips**
</Info>

As a partner, you can fetch the Razorpay terms and conditions using the [Fetch Terms and Conditions API](/api/partners/terms-conditions/fetch).

Use the following API endpoint to request for a product configuration:

/accounts/:account\_id/products

````Curl: PG Request theme={null}
curl -u : \
-X POST https://api.razorpay.com/v2/accounts/acc_JnvU4bvDf8rmEC/products \
-H "Content-Type: application/json" \
-d '{
  "product_name": "payment_gateway",
  "tnc_accepted": true,
  "ip": "233.233.233.234"
}'
```json: PG Response
{
  "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": false,
      "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": "otp.contact_mobile",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/products/acc_prd_JnvWa1Ggyr1MN7",
      "status": "required",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "otp.external_reference_number",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/products/acc_prd_JnvWa1Ggyr1MN7",
      "status": "optional",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "otp.otp_submission_timestamp",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/products/acc_prd_JnvWa1Ggyr1MN7",
      "status": "optional",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "otp.otp_verification_timestamp",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/products/acc_prd_JnvWa1Ggyr1MN7",
      "status": "optional",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "name",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/stakeholders",
      "status": "required",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "kyc.pan",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/stakeholders",
      "status": "required",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "settlements.beneficiary_name",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/products/acc_prd_JnvWa1Ggyr1MN7",
      "status": "required",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "settlements.account_number",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/products/acc_prd_JnvWa1Ggyr1MN7",
      "status": "required",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "settlements.ifsc_code",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/products/acc_prd_JnvWa1Ggyr1MN7",
      "status": "required",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "individual_proof_of_address",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/stakeholders/{stakeholderId}/documents",
      "status": "optional",
      "reason_code": "document_missing"
    },
    {
      "field_reference": "individual_proof_of_identification.personal_pan",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/stakeholders/{stakeholderId}/documents",
      "status": "optional",
      "reason_code": "document_missing"
    },
    {
      "field_reference": "business_proof_of_identification.business_proof_url",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/documents",
      "status": "optional",
      "reason_code": "document_missing"
    },
    {
      "field_reference": "customer_facing_business_name",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC",
      "status": "optional",
      "reason_code": "field_missing"
    }
  ],
  "tnc": {
    "id": "tnc_IgohZaDBHRGjPv",
    "accepted": true,
    "accepted_at": 1641550798
  },
  "id": "acc_prd_JnvWa1Ggyr1MN7",
  "account_id": "acc_JnvU4bvDf8rmEC",
  "product_name": "payment_gateway",
  "activation_status": "needs_clarification",
  "requested_at": 162547884
}
```Curl: PL Request
curl -u : \
-X POST https://api.razorpay.com/v2/accounts/acc_HQVlm3bnPmccC0/products \
-H "Content-Type: application/json" \
-d '{
  "product_name": "payment_links",
  "tnc_accepted": true,
  "ip": "233.233.233.234"
}'
```json: PL Response
{
  "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": false,
      "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": "otp.contact_mobile",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/products/acc_prd_JnvWa1Ggyr1MN7",
      "status": "required",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "otp.external_reference_number",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/products/acc_prd_JnvWa1Ggyr1MN7",
      "status": "optional",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "otp.otp_submission_timestamp",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/products/acc_prd_JnvWa1Ggyr1MN7",
      "status": "optional",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "otp.otp_verification_timestamp",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/products/acc_prd_JnvWa1Ggyr1MN7",
      "status": "optional",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "name",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/stakeholders",
      "status": "required",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "kyc.pan",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/stakeholders",
      "status": "required",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "settlements.beneficiary_name",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/products/acc_prd_JnvWa1Ggyr1MN7",
      "status": "required",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "settlements.account_number",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/products/acc_prd_JnvWa1Ggyr1MN7",
      "status": "required",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "settlements.ifsc_code",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/products/acc_prd_JnvWa1Ggyr1MN7",
      "status": "required",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "individual_proof_of_address",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/stakeholders/{stakeholderId}/documents",
      "status": "optional",
      "reason_code": "document_missing"
    },
    {
      "field_reference": "individual_proof_of_identification.personal_pan",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/stakeholders/{stakeholderId}/documents",
      "status": "optional",
      "reason_code": "document_missing"
    },
    {
      "field_reference": "business_proof_of_identification.business_proof_url",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC/documents",
      "status": "optional",
      "reason_code": "document_missing"
    },
    {
      "field_reference": "customer_facing_business_name",
      "resolution_url": "/accounts/acc_JnvU4bvDf8rmEC",
      "status": "optional",
      "reason_code": "field_missing"
    }
  ],
  "tnc": {
    "id": "tnc_IgohZaDBHRGjPv",
    "accepted": true,
    "accepted_at": 1641550798
  },
  "id": "acc_prd_JnvWa1Ggyr1MN7",
  "account_id": "acc_JnvU4bvDf8rmEC",
  "product_name": "payment_links",
  "activation_status": "needs_clarification",
  "requested_at": 162547884
}
````

### Path Parameter

`account_id`
: `string` The unique identifier of the sub-merchant account generated by Razorpay. For example, `acc_HQVlm3bnPmccC0`. This id is used to fetch or update a product. The product is created for this sub-merchant account id.

### Request Parameters

`product_name` *mandatory*
: `string` The product(s) to be configured. Possible values:

* `payment_gateway`
* `payment_links`

`tnc_accepted` *optional*
: `boolean` Pass this parameter to accept terms and conditions. Send this parameter along with the `ip` parameter when the `tnc` is accepted. Possible value is `true` which indicates acceptance of terms and conditions.

`ip` *optional*
: `string` The IP address of the merchant while accepting the terms and conditions. Send this parameter along with the `tnc_accepted` parameter when the `tnc` is accepted.

### Response Parameters

`requested_configuration`
: `object` The configuration of the product requested by the user that is yet to be set as active.

`tnc`
: `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 following fields:

`id`
: `string` The unique identifier representing the acceptance of terms and conditions for a product by a user.

`accepted`
: `boolean` The flag that represents whether the terms and conditions were accepted by the user.

* `true`: Terms and conditions are accepted by user.
* `false`: Terms and conditions are not accepted by user.

`accepted_at`
: `integer` The Unix timestamp at which the terms and conditions were accepted by the user for the requested product.

`active_configuration`
: `object` The configuration of the product that has been set as active.

`payment_capture`
: `object` The Payment Capture Settings Object

`mode`
: `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.

`automatic_expiry`
: `numeric` This denotes the time in minutes when the payment is in the authorized state. This is auto-captured.

`manual_expiry`
: `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.

`settlements`
: `object` The Settlement settings object.
`account_number`
: `string` The bank account number to which settlements are made. Account details can be found on the Dashboard. For example, 7878780080316316

`ifsc_code`
: `string` The IFSC associated with the bank account. For example, `RATN0VAAPIS`.

`beneficiary_name`
: `string` The name of the beneficiary associated with the bank account.

`checkout`
: `object` The checkout form of the payment capture.

`theme_color`
: `string` The theme color for sub-merchant's checkout page.

`logo`
: `string` The logo of the sub-merchant's business on the checkout page.

`flash_checkout`
: `boolean` The flagging options **Enable** or **Disable** for Razorpay's Flash Checkout to securely save the card details of your customers.

`refund`
: `object` This denotes the payment refund settings.

`default_refund_speed`
: `string` Speed at which the refund is to be processed. Possible values are:

* normal: Indicates that the refund will be processed via 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.

`notifications`
: `object` This denotes the notifications settings.

`email`
: `string` The email addresses that will receive notifications regarding payments, settlements, daily payment reports, webhooks, and so on.

`whatsapp`
: `boolean` The WhatsApp notifications you receive regarding payments, settlements, daily payment reports, webhooks, etc.

`sms`
: `boolean` The SMS notifications you receive regarding payments, settlements, daily payment reports, webhooks, etc. This attribute will be set to `false`.

`payment_methods` *optional*
: `object` Details of the payment method you want to enable for the product.

`netbanking`\
: `object` The payment method to be enabled.

`enabled`
: `boolean` Enables or disables the payment method. Possible values:

* `true`: Enables the `netbanking` payment method.
* `false`: Does not enable the `netbanking` payment method.

`instrument`
: `object` Details regarding the bank. Possible value:

`type`
: `string` The type of bank. Possible values are `retail` and `corporate`.

`bank`
: `string` The bank code. Refer to the [list of bank codes](/partners/aggregators/onboarding-api/appendix#netbanking-bank-codes).

`card`
: `object` The payment method to be enabled.

`enabled`
: `boolean` Enables or disables the payment method. Possible values:

* `true`: Enables the `card` payment method.
* `false`: Does not enable the `card` payment method.

`instrument`
: `object` Details regarding the card. Possible value:

`type`
: `string` Possible value is `domestic`.

`issuer`
: `string` The card issuer. Possible values for issuer are:

* `amex`
* `dicl`
* `maestro`
* `mastercard`
* `rupay`
* `visa`

`wallet`
: `object` The payment method to be enabled.

`enabled`
: `boolean` Enables or disables the payment method. Possible values:

* `true`: Enables the `wallet` payment method.
* `false`: Does not enable the `wallet` payment method.

`instrument`
: `string` The wallet issuer. Possible values are:

* `airtelmoney`
* `amazonpay`
* `jiomoney`
* `mobiwik`
* `mpesa`
* `olamoney`
* `paytm`
* `payzapp`
* `payumoney`
* `phonepe`
* `phonepeswitch`
* `sbibuddy`

`upi`
: `object` The payment method to be enabled.

`enabled`
: `boolean` Enables or disables the payment method. Possible values:

* `true`: Enables the `upi` payment method.
* `false`: Does not enable the `upi` payment method.

`instrument`
: `string` The UPI service provider. Possible values are:

* `google_pay`
* `upi`

`paylater`
: `object` The payment method to be enabled.

`enabled`
: `boolean` Enables or disables the payment method. Possible values:

* `true`: Enables the `paylater` payment method.
* `false`: Does not enable the `paylater` payment method.

`instrument`
: `string` The Paylater service provider. Possible values are:

* `epaylater`
* `getsimpl`

`emi`
: `object` The payment method to be enabled.

`enabled`
: `boolean` Enables or disables the payment method. Possible values:

* `true`: Enables the `paylater` payment method.
* `false`: Does not enable the `paylater` payment method.

`instrument`
: `object` The EMI instrument object.

`type`
: `string` The type of EMI payment method. Possible values:

* `card_emi`
* `cardless_emi`

`partner`
: `string` The list of EMI partners requested or enabled. Possible values:

* For `card_emi`: `debit` and `credit`.
* For `cardless_emi`: `zestmoney` and `earlysalary`.

`requirements`
: `object` The list of requirements to be enabled for this product or some of the configurations under this product.

`field_reference`
: `string` The field which is in issue or missing. The JSON key path in resolution URL.

`resolution_url`
: `string` The URL to address the requirement. The API endpoint to be used for updating missing fields or documents.

`status`
: `string` The status of the requirement. Possible values are:

* `optional`
* `required`

`reason_code`
: `string` The reason code for showing in the requirement. Possible values are:

* `field_missing`
* `needs_clarification`
* `document_missing`

`id`
: `string` The unique identifier of the sub-merchant product account generated by Razorpay. For example, `acc_prd_HEgNpywUFctQ9e`. The product is created for this sub-merchant account id.

`account_id`
: `string` The unique identifier of the sub-merchant generated by Razorpay. For example, `acc_HQVlm3bnPmccC0`.

`product_name`
: `string` The product(s) to be configured. Possible values:

* `payment_gateway`
* `payment_links`

`activation_status`
: `string` The status of the product activation.

* `requested`
* `needs_clarification`
* `under_review`
* `activated_kyc_pending`
* `activated`
* `suspended`

`requested_at`
: `integer` The Unix timestamp at which the product configuration has been requested.

### Error Response Parameters

Know about the [various error responses](/api/partners/errors) for this API.

## Update a Product Configuration

Use the following endpoint to update a product's configuration:

/accounts/:account\_id/products/:product\_id

<Warning>
  **Watch Out!**

  Currently, we do not support making concurrent requests to the following Onboarding APIs including their combination on the same `account_id`:

  * [Update Account API](/api/partners/account-onboarding/update)
  * [Update Product Configuration API](/api/partners/product-configuration/update-settlement-account-details)
  * [Update Stakeholder API](/api/partners/stakeholder/update)
    Please wait for the response of these APIs before making subsequent requests.
</Warning>

### Use Cases

You can update the following details for Payment Gateway and Payment Links using the Update a Product Configuration API. However, whether the details can be updated or not depends upon the [**product activation status**](#product-activation-status).

* OTP specific details: You can share OTP-specific details using the `otp` object.

* Settlement Bank Account Details: You can update the `settlement` object with the new bank account details based on the product activation status.

* Request Additional Payment Methods: You can request various payment methods and related instruments to be enabled using the `payment_methods` object. However, you can request for only one payment method at a time. For example, if you want to enable HDFC Netbanking and Rupay Domestic Card payment methods, you should send two separate API requests. You cannot send a consolidated request using this API.

* Update Notifications Settings: You can update the email, WhatsApp and SMS settings using the `notifications` object.

* Configure Checkout Features: You can change the checkout theme colour, add a logo and enable the saving of customer card details using the `checkout` object.

* Configure Refund Speed: You can configure the default refund speed using the `refund` object.

* Accept of Terms and Conditions: You can accept Razorpay terms and conditions.

### Product Activation Status and Updates Permitted

## Activation Status | Update Permitted

## `requested` | You can update the details for all the fields.

`needs_clarification` | The fields you can update depend on the reason\_code mentioned in the requirements object in the [Request a Product Activation API](/api/partners/product-configuration/request): - **document\_missing** or **field\_missing**: You can update all the fields.

* **needs\_clarification**: You can update only the specific field for which Razorpay is seeking clarification for.

***

## `under_review` | You cannot update any field.

## `activated_kyc_pending` | You cannot update any field.

`activated` | You cannot use this API to update any fields as your account is already active.

### Update Settlement Account and Providing OTP Details

The settlement account details and OTP-specific details are provided in the sample code given below. Payment methods object is not used here.

````Curl: PG  theme={null}
curl -u : \
-X PATCH https://api.razorpay.com/v2/accounts/acc_HQVlm3bnPmccC0/products/acc_prd_HEgNpywUFctQ9e/ \
-d '{
  "otp": {
    "external_reference_number": "123ABCD",
    "contact_mobile": "9820202020",
    "otp_submission_timestamp": "3632201810011343123",
    "otp_verification_timestamp": "3632201810011354123"
  },
  "notifications": {
    "email": [
      "gaurav.kumar@example.com",
      "acd@gmail.com"
    ]
  },
  "checkout": {
    "theme_color": "#528FFF"
  },
  "refund": {
    "default_refund_speed": "optimum"
  },
  "settlements": {
    "account_number": "1234567890",
    "ifsc_code": "HDFC0000317",
    "beneficiary_name": "Gaurav Kumar"
  },
  "tnc_accepted": true,
  "ip": "233.233.233.234"
}'

```json: Response
{
  "requested_configuration": [],
  "active_configuration": {
    "otp": {
      "external_reference_number": "123ABCD",
      "contact_mobile": "9820202020",
      "otp_submission_timestamp": "3632201810011343123",
      "otp_verification_timestamp": "3632201810011354123"
    },
    "payment_capture": {
      "mode": "automatic",
      "refund_speed": "normal",
      "automatic_expiry_period": 7200
    },
    "settlements": {
      "account_number": "1234567890",
      "ifsc_code": "HDFC0000317",
      "beneficiary_name": "Gaurav Kumar"
    },
    "checkout": {
      "theme_color": "#528FFF",
      "flash_checkout": true
    },
    "refund": {
      "default_refund_speed": "optimum"
    },
    "notifications": {
      "whatsapp": true,
      "sms": false,
      "email": [
        "gaurav.kumar@example.com",
        "acd@gmail.com"
      ]
    }
  },
  "requirements": [
    {
      "field_reference": "name",
      "resolution_url": "/accounts/acc_Jo1v32EQBvySEd/stakeholders",
      "status": "required",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "kyc.pan",
      "resolution_url": "/accounts/acc_Jo1v32EQBvySEd/stakeholders",
      "status": "required",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "individual_proof_of_address",
      "resolution_url": "/accounts/acc_Jo1v32EQBvySEd/stakeholders/{stakeholderId}/documents",
      "status": "optional",
      "reason_code": "document_missing"
    },
    {
      "field_reference": "individual_proof_of_identification.personal_pan",
      "resolution_url": "/accounts/acc_Jo1v32EQBvySEd/stakeholders/{stakeholderId}/documents",
      "status": "optional",
      "reason_code": "document_missing"
    },
    {
      "field_reference": "business_proof_of_identification.business_proof_url",
      "resolution_url": "/accounts/acc_Jo1v32EQBvySEd/documents",
      "status": "optional",
      "reason_code": "document_missing"
    },
    {
      "field_reference": "customer_facing_business_name",
      "resolution_url": "/accounts/acc_Jo1v32EQBvySEd",
      "status": "optional",
      "reason_code": "field_missing"
    }
  ],
  "tnc": {
    "id": "tnc_IgohZaDBHRGjPv",
    "accepted": true,
    "accepted_at": 1641550798
  },
  "id": "acc_prd_HEgNpywUFctQ9e",
  "account_id": "acc_Jo1v32EQBvySEd",
  "product_name": "payment_gateway",
  "activation_status": "needs_clarification",
  "requested_at": 1625478849
}

```Curl: PL
curl -u : \
-X PATCH https://api.razorpay.com/v2/accounts/acc_HQVlm3bnPmccC0/products/acc_prd_HEgNpywUFctQ9f/ \
-d '{
  "otp": {
    "external_reference_number": "123ABCD",
    "contact_mobile": "9820202020",
    "otp_submission_timestamp": "3632201810011343123",
    "otp_verification_timestamp": "3632201810011354123"
  },
  "notifications": {
    "email": [
      "gaurav.kumar@example.com",
      "acd@gmail.com"
    ]
  },
  "checkout": {
    "theme_color": "#528FFF"
  },
  "refund": {
    "default_refund_speed": "optimum"
  },
  "settlements": {
    "account_number": "1234567890",
    "ifsc_code": "HDFC0000317",
    "beneficiary_name": "Gaurav Kumar"
  },
  "tnc_accepted": true,
  "ip": "233.233.233.234"
}'

```json: Response
{
  "requested_configuration": [],
  "active_configuration": {
    "otp": {
      "external_reference_number": "123ABCD",
      "contact_mobile": "9820202020",
      "otp_submission_timestamp": "3632201810011343123",
      "otp_verification_timestamp": "3632201810011354123"
    },
    "payment_capture": {
      "mode": "automatic",
      "refund_speed": "normal",
      "automatic_expiry_period": 7200
    },
    "settlements": {
      "account_number": "1234567890",
      "ifsc_code": "HDFC0000317",
      "beneficiary_name": "Gaurav Kumar"
    },
    "checkout": {
      "theme_color": "#528FFF",
      "flash_checkout": true
    },
    "refund": {
      "default_refund_speed": "optimum"
    },
    "notifications": {
      "whatsapp": true,
      "sms": false,
      "email": [
        "gaurav.kumar@example.com",
        "acd@gmail.com"
      ]
    }
  },
  "requirements": [
    {
      "field_reference": "name",
      "resolution_url": "/accounts/acc_Jo1v32EQBvySEd/stakeholders",
      "status": "required",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "kyc.pan",
      "resolution_url": "/accounts/acc_Jo1v32EQBvySEd/stakeholders",
      "status": "required",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "individual_proof_of_address",
      "resolution_url": "/accounts/acc_Jo1v32EQBvySEd/stakeholders/{stakeholderId}/documents",
      "status": "optional",
      "reason_code": "document_missing"
    },
    {
      "field_reference": "individual_proof_of_identification.personal_pan",
      "resolution_url": "/accounts/acc_Jo1v32EQBvySEd/stakeholders/{stakeholderId}/documents",
      "status": "optional",
      "reason_code": "document_missing"
    },
    {
      "field_reference": "business_proof_of_identification.business_proof_url",
      "resolution_url": "/accounts/acc_Jo1v32EQBvySEd/documents",
      "status": "optional",
      "reason_code": "document_missing"
    },
    {
      "field_reference": "customer_facing_business_name",
      "resolution_url": "/accounts/acc_Jo1v32EQBvySEd",
      "status": "optional",
      "reason_code": "field_missing"
    }
  ],
  "tnc": {
    "id": "tnc_IgohZaDBHRGjPv",
    "accepted": true,
    "accepted_at": 1641550798
  },
  "id": "acc_prd_HEgNpywUFctQ9e",
  "account_id": "acc_Jo1v32EQBvySEd",
  "product_name": "payment_links",
  "activation_status": "needs_clarification",
  "requested_at": 1625478849
}
````

### Request Payment Methods

Given below is the Payment Gateway product sample code when you request for a specific payment method.  Here the `payment_method` object is used.

<Warning>
  **Watch Out!**

  You can send request for only *one payment method at a time*. For example, if you want to enable HDFC Netbanking and Rupay Domestic Card payment methods, you should send two separate API requests. You cannot send a consolidated request using this API.

  ````Curl: Netbanking theme={null}
  curl -u : \
  -X PATCH https://api.razorpay.com/v2/accounts/acc_HQVlm3bnPmccC0/products/acc_prd_HEgNpywUFctQ9e/ \
  -d '{
    "notifications": {
      "email": [
        "gaurav.kumar@example.com",
        "acd@gmail.com"
      ]
    },
    "checkout": {
      "theme_color": "#528FFF"
    },
    "refund": {
      "default_refund_speed": "optimum"
    },
    "settlements": {
      "account_number": "1234567890",
      "ifsc_code": "HDFC0000317",
      "beneficiary_name": "Gaurav Kumar"
    },
    "payment_methods": {
      "netbanking": {
        "enabled": true,
        "instrument": {
          "type": "retail",
          "bank": "utib"
        }
      }
    }
  }'

  ```json: Response
  {
    "requested_configuration": {
      "payment_methods": {
        "netbanking": {
          "enabled": true,
          "instrument": [
            {
              "type": "retail",
              "bank": [
                "utib"
              ]
            }
          ]
        }
      }
    },
  // already activated payment methods
    "active_configuration": {
      "payment_methods": {
        "netbanking": {
          "enabled": true,
          "instrument": [
            {
              "type": "retail",
              "bank": [
                "hdfc",
                "sbin"
              ]
            }
          ]
        },
        "cards": {
          "enabled": true,
          "instrument": [
            {
              "issuer": "rupay",
              "type": [
                "domestic"
              ]
            }
          ]
        },
        "wallet": {
          "enabled": true,
          "instrument": [
            "airtelmoney"
          ]
        }
      }
    }
  }

  ```curl: Card
  curl -u : \
  -X PATCH https://api.razorpay.com/v2/accounts/acc_HQVlm3bnPmccC0/products/acc_prd_HEgNpywUFctQ9e/ \
  -d'{
    "notifications": {
      "email": [
        "gaurav.kumar@example.com",
        "acd@gmail.com"
      ]
    },
    "checkout": {
      "theme_color": "#528FFF"
    },
    "refund": {
      "default_refund_speed": "optimum"
    },
    "settlements": {
      "account_number": "1234567890",
      "ifsc_code": "HDFC0000317",
      "beneficiary_name": "Gaurav Kumar"
    },
    "payment_methods": {
      "cards": {
        "enabled": true,
        "instrument": {
          "issuer": "rupay",
          "type": "domestic"
        }
      }
    }
  }'

  ```json: Response
  {
    "requested_configuration": {
      "payment_methods": {
        "cards": {
          "enabled": true,
          "instrument": [
            {
              "issuer": "rupay",
              "type": [
                "domestic"
              ]
            }
          ]
        }
      }
    },
    // already activated payment methods
    "active_configuration": {
      "payment_methods": {
        "netbanking": {
          "enabled": true,
          "instrument": [
            {
              "type": "retail",
              "bank": [
                "hdfc",
                "sbin"
              ]
            }
          ]
        },
        "wallet": {
          "enabled": true,
          "instrument": [
            "airtelmoney"
          ]
        }
      }
    }
  }

  ```curl: Wallet
  curl -u : \
  -X PATCH https://api.razorpay.com/v2/accounts/acc_HQVlm3bnPmccC0/products/acc_prd_HEgNpywUFctQ9e/ \
  -d'{
    "notifications": {
      "email": [
        "gaurav.kumar@example.com",
        "acd@gmail.com"
      ]
    },
    "checkout": {
      "theme_color": "#528FFF"
    },
    "refund": {
      "default_refund_speed": "optimum"
    },
    "settlements": {
      "account_number": "1234567890",
      "ifsc_code": "HDFC0000317",
      "beneficiary_name": "Gaurav Kumar"
    },
    "payment_methods": {
      "wallet": {
        "enabled": true,
        "instrument": "airtelmoney"
      }
    }
  }'

  ```json: Response
  {
    "requested_configuration": {
      "payment_methods": {
        "wallet": {
          "enabled": true,
          "instrument": [
            "airtelmoney"
          ]
        }
      }
    },
    // already activated payment methods
    "active_configuration": {
      "payment_methods": {
        "netbanking": {
          "enabled": true,
          "instrument": [
            {
              "type": "retail",
              "bank": [
                "hdfc",
                "sbin"
              ]
            }
          ]
        }
      }
    }
  }

  ```curl: UPI
  curl -u : \
  -X PATCH https://api.razorpay.com/v2/accounts/acc_HQVlm3bnPmccC0/products/acc_prd_HEgNpywUFctQ9e/ \
  -d'{
    "notifications": {
      "email": [
        "gaurav.kumar@example.com",
        "acd@gmail.com"
      ]
    },
    "checkout": {
      "theme_color": "#528FFF"
    },
    "refund": {
      "default_refund_speed": "optimum"
    },
    "settlements": {
      "account_number": "1234567890",
      "ifsc_code": "HDFC0000317",
      "beneficiary_name": "Gaurav Kumar"
    },
    "payment_methods": {
      "upi": {
        "enabled": true,
        "instrument": "upi"
      }
    }
  }'

  ```json: Response
  {
    "requested_configuration": {
      "payment_methods": {
        "upi": {
          "enabled": true,
          "instrument": [
            "upi"
          ]
        }
      }
    },
    // already activated payment methods
    "active_configuration": {
      "payment_methods": {
        "netbanking": {
          "enabled": true,
          "instrument": [
            {
              "type": "retail",
              "bank": [
                "hdfc",
                "sbin"
              ]
            }
          ]
        },
        "wallet": {
          "enabled": true,
          "instrument": [
            "airtelmoney"
          ]
        }
      }
    }
  }

  ```curl: Paylater
  curl -u : \
  -X PATCH https://api.razorpay.com/v2/accounts/acc_HQVlm3bnPmccC0/products/acc_prd_HEgNpywUFctQ9e/ \
  -d'{
    "notifications": {
      "email": [
        "gaurav.kumar@example.com",
        "acd@gmail.com"
      ]
    },
    "checkout": {
      "theme_color": "#528FFF"
    },
    "refund": {
      "default_refund_speed": "optimum"
    },
    "settlements": {
      "account_number": "1234567890",
      "ifsc_code": "HDFC0000317",
      "beneficiary_name": "Gaurav Kumar"
    },
    "payment_methods": {
      "paylater": {
        "enabled": true,
        "instrument": "epaylater"
      }
    }
  }'

  ```json: Response
  {
    "requested_configuration": {
      "payment_methods": {
        "paylater": {
          "enabled": true,
          "instrument": [
            "epaylater"
          ]
        }
      }
    },
    // already activated payment methods
    "active_configuration": {
      "payment_methods": {
        "netbanking": {
          "enabled": true,
          "instrument": [
            {
              "type": "retail",
              "bank": [
                "hdfc",
                "sbin"
              ]
            }
          ]
        },
        "wallet": {
          "enabled": true,
          "instrument": [
            "airtelmoney"
          ]
        }
      }
    }
  }

  ```curl: EMI
  curl -u : \
  -X PATCH https://api.razorpay.com/v2/accounts/acc_HQVlm3bnPmccC0/products/acc_prd_HEgNpywUFctQ9e/ \
  -d'{
    "notifications": {
      "email": [
        "gaurav.kumar@example.com",
        "acd@gmail.com"
      ]
    },
    "checkout": {
      "theme_color": "#528FFF"
    },
    "refund": {
      "default_refund_speed": "optimum"
    },
    "settlements": {
      "account_number": "1234567890",
      "ifsc_code": "HDFC0000317",
      "beneficiary_name": "Gaurav Kumar"
    },
    "payment_methods": {
      "emi": {
        "enabled": true,
        "instrument": {
          "type": "cardless_emi",
          "partner": "zestmoney"
        }
      }
    }
  }'

  ```json: Response
  {
    "requested_configuration": {
      "payment_methods": {
        "emi": {
          "enabled": true,
          "instrument": {
            "type": "cardless_emi",
            "partner": "zestmoney"
          }
        }
      }
    },
    // already activated payment methods
    "active_configuration": {
      "payment_methods": {
        "netbanking": {
          "enabled": true,
          "instrument": [
            {
              "type": "retail",
              "bank": [
                "hdfc",
                "sbin"
              ]
            }
          ]
        },
        "wallet": {
          "enabled": true,
          "instrument": [
            "airtelmoney"
          ]
        }
      }
    }
  }
  ````
</Warning>

### Path Parameters

`account_id` *mandatory*
: `string` The unique identifier of a sub-merchant account generated by Razorpay. For example, `acc_HQVlm3bnPmccC0`.

`id` *mandatory*
: `string` The unique identifier of a product generated by Razorpay. For example, `acc_prd_HEgNpywUFctQ9e`.

### Request Parameters

`otp` *conditional*
: `object` OTP specific details of the merchant.

`contact_mobile` *mandatory*
: `string` The contact number for which the OTP details have been submitted.

<Info>
  **Handy Tips**
</Info>

This number should be the same as the one provided during account creation.

`external_reference_number` *optional*
: `string` Used to search the OTP verification logs on your (partner's) system in case of an enquiry. Ideally, this is a reference number that you use to track OTP verification.

`otp_submission_timestamp` *optional*
: `string` The timestamp of OTP submission to user.

`otp_verification_timestamp` *optional*
: `string` The timestamp of OTP verification by partner.

`notifications` *optional*
: `object` This denotes the notifications settings.

`email`
: `string` The email addresses that will receive notifications regarding payments, settlements, daily payment reports, webhooks, and so on.

`whatsapp`
: `boolean` The WhatsApp notifications you receive regarding payments, settlements, daily payment reports, webhooks, etc.

`sms`
: `boolean` The SMS notifications you receive regarding payments, settlements, daily payment reports, webhooks, etc. This attribute will be set to `false`.

`checkout` *optional*
: `object` The checkout form of the payment capture.

`theme_color`
: `string` The theme color for sub-merchant's checkout page

`logo`
: `string` The logo of the sub-merchant's business on the checkout page.

`flash_checkout`
: `boolean` The flagging options **Enable** or **Disable** for Razorpay's Flash Checkout to securely save the card details of your customers.

`refund` *optional*
: `object` This denotes the payment refund settings.

`default_refund_speed`
: `string` Speed at which the refund is to be processed. Possible values are:

* normal: Indicates that the refund will be processed at 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.

`settlements` *conditional*
: `object` The Settlement settings object.

`account_number`
: `string` The bank account number to which settlements are made. Account details can be found on the Dashboard. For example, 7878780080316316

`ifsc_code`
: `string` The IFSC associated with the bank account. For example, `RATN0VAAPIS`.

`beneficiary_name`
: `string` The name of the beneficiary associated with the bank account.

`tnc_accepted` *optional*
: `boolean` Pass this parameter to accept terms and conditions. Send this parameter along with the `ip` parameter when the `tnc` is accepted. Possible value is `true` which indicates acceptance of terms and conditions.

`ip` *optional*
: `string` The IP address of the merchant while accepting the terms and conditions. Send this parameter along with the `tnc_accepted` parameter when the `tnc` is accepted.

`payment_methods` *optional*
: `object` Details of the payment method you want to enable for the product.

`netbanking`\
: `object` The payment method to be enabled.

`enabled`
: `boolean` Enables or disables the payment method. Possible values:

* `true`: Enables the `netbanking` payment method.
* `false`: Does not enable the `netbanking` payment method.

`instrument`
: `object` Details regarding the bank. Possible value:

`type`
: `string` The type of bank. Possible values are `retail` and `corporate`.

`bank`
: `string` The bank code. Refer to the [list of bank codes](/partners/aggregators/onboarding-api/appendix#netbanking-bank-codes).

`card`
: `object` The payment method to be enabled.

`enabled`
: `boolean` Enables or disables the payment method. Possible values:

* `true`: Enables the `card` payment method.
* `false`: Does not enable the `card` payment method.

`instrument`
: `object` Details regarding the card. Possible value:

`type`
: `string` Possible value is `domestic`.

`issuer`
: `string` The card issuer. Possible values for issuer are:

* `amex`
* `dicl`
* `maestro`
* `mastercard`
* `rupay`
* `visa`

`wallet`
: `object` The payment method to be enabled.

`enabled`
: `boolean` Enables or disables the payment method. Possible values:

* `true`: Enables the `wallet` payment method.
* `false`: Does not enable the `wallet` payment method.

`instrument`
: `string` The wallet issuer. Possible values are:

* `airtelmoney`
* `amazonpay`
* `jiomoney`
* `mobiwik`
* `mpesa`
* `olamoney`
* `paytm`
* `payzapp`
* `payumoney`
* `phonepe`
* `phonepeswitch`
* `sbibuddy`

`upi`
: `object` The payment method to be enabled.

`enabled`
: `boolean` Enables or disables the payment method. Possible values:

* `true`: Enables the `upi` payment method.
* `false`: Does not enable the `upi` payment method.

`instrument`
: `string` The UPI service provider. Possible values are:

* `google_pay`
* `upi`

`paylater`
: `object` The payment method to be enabled.

`enabled`
: `boolean` Enables or disables the payment method. Possible values:

* `true`: Enables the `paylater` payment method.
* `false`: Does not enable the `paylater` payment method.

`instrument`
: `string` The Paylater service provider. Possible values are:

* `epaylater`
* `getsimpl`

`emi`
: `object` The payment method to be enabled.

`enabled`
: `boolean` Enables or disables the payment method. Possible values:

* `true`: Enables the `paylater` payment method.
* `false`: Does not enable the `paylater` payment method.

`instrument`
: `object` The EMI instrument object.

`type`
: `string` The type of EMI payment method. Possible values:

* `card_emi`
* `cardless_emi`

`partner`
: `string` The list of EMI partners requested or enabled. Possible values:

* For `card_emi`: `debit` and `credit`.
* For `cardless_emi`: `zestmoney` and `earlysalary`.

### Error Response Parameters

Know about the [various error responses](/api/partners/errors) for this API.

## Fetch a Product Configuration

Use the following endpoint to retrieve the details of a product for a given sub-merchant's account:

/accounts/:account\_id/products/:product\_id

````Curl: PG Request theme={null}
curl -u : \
- X GET https://api.razorpay.com/v2/accounts/acc_HQVlm3bnPmccC0/products/acc_prd_HEgNpywUFctQ9e/ \
```json: PG Response
{
  "requested_configuration": [],
  "active_configuration": {
    "otp": {
      "external_reference_number": "123ABCD",
      "contact_mobile": "9820202020",
      "otp_submission_timestamp": "3632201810011343123",
      "otp_verification_timestamp": "3632201810011354123"
    },
    "payment_capture": {
      "mode": "automatic",
      "refund_speed": "normal",
      "automatic_expiry_period": 7200
    },
    "settlements": {
      "account_number": "1234567890",
      "ifsc_code": "HDFC0000317",
      "beneficiary_name": "Gaurav Kumar"
    },
    "checkout": {
      "theme_color": "#528FFF",
      "flash_checkout": true
    },
    "refund": {
      "default_refund_speed": "optimum"
    },
    "notifications": {
      "whatsapp": false,
      "sms": false,
      "email": [
        "gaurav.kumar@example.com",
        "acd@gmail.com"
      ]
    }
  },
  "requirements": [
    {
      "field_reference": "name",
      "resolution_url": "/accounts/acc_JpAjoRj0urWjA9/stakeholders",
      "status": "required",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "kyc.pan",
      "resolution_url": "/accounts/acc_JpAjoRj0urWjA9/stakeholders",
      "status": "required",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "individual_proof_of_address",
      "resolution_url": "/accounts/acc_JpAjoRj0urWjA9/stakeholders/{stakeholderId}/documents",
      "status": "optional",
      "reason_code": "document_missing"
    },
    {
      "field_reference": "individual_proof_of_identification.personal_pan",
      "resolution_url": "/accounts/acc_JpAjoRj0urWjA9/stakeholders/{stakeholderId}/documents",
      "status": "optional",
      "reason_code": "document_missing"
    },
    {
      "field_reference": "business_proof_of_identification.business_proof_url",
      "resolution_url": "/accounts/acc_JpAjoRj0urWjA9/documents",
      "status": "optional",
      "reason_code": "document_missing"
    },
    {
      "field_reference": "customer_facing_business_name",
      "resolution_url": "/accounts/acc_JpAjoRj0urWjA9",
      "status": "optional",
      "reason_code": "field_missing"
    }
  ],
  "tnc": {
    "id": "tnc_JpAkSSpke9hRIl",
    "accepted": true,
    "accepted_at": 1656912244
  },
  "id": "acc_prd_JpAkSWjRpNrCWN",
  "product_name": "payment_gateway",
  "activation_status": "needs_clarification",
  "account_id": "acc_JpAjoRj0urWjA9",
  "requested_at": 1656912246
}
```Curl: PL Request
curl -u : \
- X GET https://api.razorpay.com/v2/accounts/acc_HQVlm3bnPmccC0/products/acc_prd_HEgNpywUFctQ9f/ \
```json: PL Response
{
  "requested_configuration": [],
  "active_configuration": {
    "otp": {
      "external_reference_number": "123ABCD",
      "contact_mobile": "9820202020",
      "otp_submission_timestamp": "3632201810011343123",
      "otp_verification_timestamp": "3632201810011354123"
    },
    "payment_capture": {
      "mode": "automatic",
      "refund_speed": "normal",
      "automatic_expiry_period": 7200
    },
    "settlements": {
      "account_number": "1234567890",
      "ifsc_code": "HDFC0000317",
      "beneficiary_name": "Gaurav Kumar"
    },
    "checkout": {
      "theme_color": "#528FFF",
      "flash_checkout": true
    },
    "refund": {
      "default_refund_speed": "optimum"
    },
    "notifications": {
      "whatsapp": false,
      "sms": false,
      "email": [
        "gaurav.kumar@example.com",
        "acd@gmail.com"
      ]
    }
  },
  "requirements": [
    {
      "field_reference": "name",
      "resolution_url": "/accounts/acc_JpAjoRj0urWjA9/stakeholders",
      "status": "required",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "kyc.pan",
      "resolution_url": "/accounts/acc_JpAjoRj0urWjA9/stakeholders",
      "status": "required",
      "reason_code": "field_missing"
    },
    {
      "field_reference": "individual_proof_of_address",
      "resolution_url": "/accounts/acc_JpAjoRj0urWjA9/stakeholders/{stakeholderId}/documents",
      "status": "optional",
      "reason_code": "document_missing"
    },
    {
      "field_reference": "individual_proof_of_identification.personal_pan",
      "resolution_url": "/accounts/acc_JpAjoRj0urWjA9/stakeholders/{stakeholderId}/documents",
      "status": "optional",
      "reason_code": "document_missing"
    },
    {
      "field_reference": "business_proof_of_identification.business_proof_url",
      "resolution_url": "/accounts/acc_JpAjoRj0urWjA9/documents",
      "status": "optional",
      "reason_code": "document_missing"
    },
    {
      "field_reference": "customer_facing_business_name",
      "resolution_url": "/accounts/acc_JpAjoRj0urWjA9",
      "status": "optional",
      "reason_code": "field_missing"
    }
  ],
  "tnc": {
    "id": "tnc_JpAkSSpke9hRIl",
    "accepted": true,
    "accepted_at": 1656912244
  },
  "id": "acc_prd_JpAkSWjRpNrCWN",
  "product_name": "payment_links",
  "activation_status": "needs_clarification",
  "account_id": "acc_JpAjoRj0urWjA9",
  "requested_at": 1656912246
}
````

### Path Parameters

`account_id` *mandatory*
: `string` The unique identifier of a sub-merchant account generated by Razorpay. For example, `acc_HQVlm3bnPmccC0`.

`id` *mandatory*
: `string` The unique identifier of a product generated by Razorpay. For example, `acc_prd_HEgNpywUFctQ9e`.

### Error Response Parameters

Know about the [various error responses](/api/partners/errors) for this API.

### Related Information

* [Xpress Onboarding](/partners/aggregators/xpress-onboarding)
