# Multistep Group Execute

Multistep Group Operators provides various Internet Service Providers (ISPs) along with their respective para. Below is the list of ISPs under Multistep:

**ISPs under Package Group:**

* **Subisu :** Operator Id (19)
* **Worldlink :** Operator Id (20)
* **Vianet :** Operator Id (21)
* **Websurfer :** Operator Id (22)
* **Arrownet :** Operator Id (23)
* **SKY Internet :** Operator Id (24)
* **PrabhuNet :** Operator Id (25)
* **Palsnet :** Operator Id (26)
* **Loop Network :** Operator Id (27)
* **Techminds :** Operator Id (30)
* **Classic Tech :** Operator Id (32)
* **Chitrawan :** Operator Id (47)
* **Dolfin Net Communication :** Operator Id (59)
* **Net Max :** Operator Id (60)
* **Alisha Communication :** Operator Id (61)
* **World Fiber Net :** Operator Id (63)
* **Nijgadh Cable :** Operator Id (67)
* **Prime Network :** Operator Id (70)
* **PDS Server Network :** Operator Id (73)
* **Meta Link :** Operator Id (74)
* **DG Link :** Operator Id (82)
* **Dish Home Fiber :** Operator Id (83)
* **Izone :** Operator Id (84)
* **ACME Internet :** Operator Id (85)
* **Smart Link :** Operator Id (94)
* **SKY Broadband :** Operator Id (96)
* **Rapid Unique Net :** Operator Id (98)
* **GRS Internet :** Operator Id (99)
* **Wifi Nepal:** Operator Id (115)

#### How To Use:

1. **Identify the Operator**:
   * First, use the [Operator Lookup API ](/additional-nepal-apis/operator-lookup.md)to get the correct operator based on user input or selection.
2. **Determine Operator Type**:
   * Use the [Operator Type Lookup API ](/additional-nepal-apis/operator-type-lookup.md)to confirm the type (e.g., Mobile, DTH, Internet, etc).
3. Package details
   * &#x20;For the Multistep Group operator, you will need an `package_id , package_name & amount`. Use the [`Internet Package API`](/nepal-recharge/internet/multistep-group-execute/internet-package-api.md) to find the appropriate package list for the user's selection.
4. **Initiate Recharge**:
   * Once you have obtained all the required details (operator, type), you can use the API to initiate a recharge request.

## Execute the recharge for Operator

<mark style="color:green;">`POST`</mark> `/np/recharge/execute`

**Headers**

| Name         | Value              |
| ------------ | ------------------ |
| Content-Type | `application/json` |
| x-auth-token | `<token>`          |

**Body**

<table><thead><tr><th width="217">Name</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><code>operator_id</code></td><td>number</td><td>The ID of the operator for the recharge. e.g 74 , 70 , etc</td></tr><tr><td><code>operator_type_id</code></td><td>number</td><td>The type ID of the operator. e.g. 5</td></tr><tr><td><code>connection_no</code></td><td>string</td><td>Username Provided by Operator</td></tr><tr><td><code>package_id</code></td><td>number</td><td>Package id received from <a href="/pages/65JBnMinDxZvYdaqgcdZ"><code>Internet Package API</code></a></td></tr><tr><td><code>package_name</code></td><td>string</td><td>Selected package name from <a href="/pages/65JBnMinDxZvYdaqgcdZ"><code>Internet Package API</code></a></td></tr><tr><td><code>amount</code></td><td>number</td><td>Selected package amount from <a href="/pages/65JBnMinDxZvYdaqgcdZ"><code>Internet Package API</code></a></td></tr><tr><td><code>reference_no</code></td><td>number</td><td>The unique reference number for the recharge.</td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="200" %}

```json
{
  "error": false,
  "message": "Additional message about the recharge"
 "data" : [
  "transaction_id" => "Transaction ID of the recharge e.g 12345",
  "reference_no"   => "Unique reference number provided by you for later reference",
  "amount"         => "Amount for which recharge has been done",
  "credit_consumed": 
       {
          "service_charge": " Processing fees charged by Company e.g 0.5 ",
          "instant_discount": " Any Discount Offered by Company e.g 0.2 ",
          "debit_amount": " Recharged amount + Service charge - instant discount e.g 10.3 "
        },
   "credit_available": "Available wallet balance after transaction e.g 8313.58",
   "status"         => "Status of the recharge e.g queued, success,failed, etc"
 ]
}
```

{% endtab %}

{% tab title="4XX/5XX" %}

```json
{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "description": "The status of the recharge execution."
    },
    "message": {
      "type": "string",
      "description": "A message providing additional information about the recharge execution."
    },
     "data": {
      "type": "error",
      "description": "Blank array in case of error"
    }
  }
}
```

{% endtab %}

{% tab title="Guzzle" %}

```php
use GuzzleHttp\Client;

$url    = 'np/recharge/execute';

$form_params =
  [
    'operator_type_id' => '5',
    'operator_id'      => '20',
    'connection_no'    => 'rameshsah_fbrgj',
    'reference_no'     => mt_rand(1000000,9999999),
    'amount'           => 'Amount from Selected package',
    'package_id'       => 'Package ID from Internet Package API',
    'package_name'     => 'Package Name from Internet Package API'
  ];
            
$client = new Client([
    'base_uri' => 'https://uatservices.globaltopup.in/api/v1/',
          ]);
          $res = $client->post($url, [
          'json' => $form_params, // Send JSON payload
          'headers' => 
        [
             'x-auth-token' => 'Token Provided by Global Topup',
             'Content-Type' => 'application/json'
        ]
                ]);
              
   $response       =   json_decode($res->getBody()->getContents(), true);

```

{% endtab %}

{% tab title="PHP" %}

```php
$curl = curl_init();

$data = json_encode(array(
    'operator_type_id' => '5',
    'operator_id'      => '20',
    'connection_no'    => 'rameshsah_fbrgj',
    'reference_no'     => mt_rand(1000000,9999999),
    'amount'           => 'Amount from Selected package',
    'package_id'       => 'Package ID from Internet Package API',
    'package_name'     => 'Package Name from Internet Package API'
));

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://uatservices.globaltopup.in/api/v1/np/recharge/execute',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => $data, // Send JSON payload
  CURLOPT_HTTPHEADER => array(
    'x-auth-token: Token Provided by Global Topup',
    'Accept: application/json',
    'Content-Type: application/json'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

```

{% endtab %}

{% tab title="Curl" %}

```

curl -X POST https://uatservices.globaltopup.in/api/v1/np/recharge/execute
     -H 'Content-Type: application/json'
     -H 'Accept: application/json' 
     -H 'x-auth-token: Global Topup Provided Token'
     -d '{"operator_id" : "20","operator_type_id" : "5",
     "package_name" : "Package Name from Internet Package API",
     "connection_no" : "rameshsah_fbrgj",,"package_id" : "Package ID from Internet Package API",
     "reference_no" : "345678","amount" : "Amount from Selected package"}' // Send JSON payload
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.globaltopup.in/nepal-recharge/internet/multistep-group-execute.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
