Our Location

IndPay Payment Gateway APIs
Pay In
Order
Status
Pay Out
Order
Status

Pay In Order API Documentation

API Endpoint
https://merchant.indpay.in.net/payin_api.php
HTTP Method

This API uses the POST method with form-data parameters to initiate a payment request.


Request Parameters
Parameter Type Description
order_id String Unique identifier for the order.
name String Name of the customer making the payment.
mobile String Mobile number of the customer.
email String Email address of the customer.
user_token String Unique identifier for the order.
api_password String API password for authentication.
api_merchant_id String Merchant ID provided by IndPay.
redirect_url String URL to redirect the user after payment completion.
Example Request

You can initiate a payment using curl as shown below:

curl --location 'https://merchant.indpay.in.net/payin_api.php' \ 
--form 'order_id="XXXXXX"' \ --form 'amount="1"' \ --form 'name="XXXXX"' \ --form 'mobile="XXXXX"' \ --form 'email="XXXXX"' \ --form 'user_token="XXXXX"' \ --form 'api_password="XXXXX"' \ --form 'api_merchant_id="XXXXX"' \ --form 'redirect_url="XXXXX"'
Response
{
"message": "Transaction Successfully",
"status": "SUCCESS",
"orderId": "xxxxxx",
"Payment_url": "xxxxxxx"
}

Response

The API responds with a JSON object that provides information about the transaction status. Here’s a breakdown of the response fields:

Field Type Description
message String Message indicating the result of the transaction.
status String Status of the transaction (e.g., "SUCCESS").
orderId String Unique identifier of the order.
Payment_url String URL where the user can complete the payment.
Example Response
{
"message": "Transaction Successfully",
"status": "SUCCESS",
"orderId": "xxxxxx",
"Payment_url": "xxxxxxx"
}

More Example Code:

<php
$url = 'https://merchant.indpay.in.net/payin_api.php';

$data = [
    'order_id' => 'XXXXXX',
    'amount' => '1',
    'name' => 'XXXXX',
    'mobile' => 'XXXXX',
    'email' => 'XXXXX',
    'user_token' => 'XXXXX',
    'api_password' => 'XXXXX',
    'api_merchant_id' => 'XXXXX',
    'redirect_url' => 'XXXXX'
];

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$response = curl_exec($ch);
curl_close($ch);

echo $response;
?>                          
Response
{
"message": "Transaction Successfully",
"status": "SUCCESS",
"orderId": "xxxxxx",
"Payment_url": "xxxxxxx"
}
                          
const formData = new FormData();
formData.append('order_id', 'XXXXXX');
formData.append('amount', '1');
formData.append('name', 'XXXXX');
formData.append('mobile', 'XXXXX');
formData.append('email', 'XXXXX');
formData.append('user_token', 'XXXXX');
formData.append('api_password', 'XXXXX');
formData.append('api_merchant_id', 'XXXXX');
formData.append('redirect_url', 'XXXXX');

fetch('https://merchant.indpay.in.net/payin_api.php', {
    method: 'POST',
    body: formData
})
.then(response => response.json())
.then(data => console.log('Success:', data))
.catch(error => console.error('Error:', error));             
                          
Response
{
"message": "Transaction Successfully",
"status": "SUCCESS",
"orderId": "xxxxxx",
"Payment_url": "xxxxxxx"
}
                          
import React from 'react';
import axios from 'axios';

const initiatePayment = () => {
    const formData = new FormData();
    formData.append('order_id', 'XXXXXX');
    formData.append('amount', '1');
    formData.append('name', 'XXXXX');
    formData.append('mobile', 'XXXXX');
    formData.append('email', 'XXXXX');
    formData.append('user_token', 'XXXXX');
    formData.append('api_password', 'XXXXX');
    formData.append('api_merchant_id', 'XXXXX');
    formData.append('redirect_url', 'XXXXX');

    axios.post('https://merchant.indpay.in.net/payin_api.php', formData)
        .then(response => {
            console.log('Success:', response.data);
        })
        .catch(error => {
            console.error('Error:', error);
        });
};

const PaymentButton = () => (
  <button onClick={initiatePayment}>Initiate Payment</button>
);

export default PaymentButton;
                      
Response
{
"message": "Transaction Successfully",
"status": "SUCCESS",
"orderId": "xxxxxx",
"Payment_url": "xxxxxxx"
}

Pay In Status API Documentation

API Endpoint
https://merchant.indpay.in.net/payin_status.php
Method

This API uses the POST method with form-data parameters to initiate a payment request.


Request Parameters
Parameter Type Description
user_token String The user authentication token (example: "b00XXXXXXXXXXXXXXXXXXXXXXe").
api_password String The API password (example: "d57XXXXXXXXXXXXXXXXXXXXXXx1f").
api_merchant_id String Merchant ID provided by IndPay.
order_id String The ID of the order.
Example Request

You can initiate a payment using curl as shown below:


curl --location 'https://merchant.indpay.in.net/payin_status.php' \
--form 'user_token="b00XXXXXXXXXXXXXXXXXXXXXXe"' \
--form 'api_password="d57XXXXXXXXXXXXXXXXXXXXXXx1f"' \
--form 'api_merchant_id=""' \
--form 'order_id=""'
                      
Response
{
"message": "Transaction Successfully",
"amount": "1",
"status": "SUCCESS",
"utr": "429183084237",
"orderId": "730458"
}

Response

The API responds with a JSON object that provides information about the transaction status. Here’s a breakdown of the response fields:

Field Type Description
message String This field provides a short description of the transaction status.
amount String This field shows the transaction amount.
status String Status of the transaction (e.g., "SUCCESS").
utr String UTR stands for Unique Transaction Reference. This number serves as a unique identifier for the transaction, which can be used for tracking purposes.
orderId String This is the ID associated with the specific order.
Example Response
{
  "message": "Transaction Successfully",
  "amount": "1",
  "status": "SUCCESS",
  "utr": "429183084237",
  "orderId": "730458"
}
                        

More Example Code:

<?php
$url = 'https://merchant.indpay.in.net/payin_status.php';

$data = [
    'user_token' => 'b00XXXXXXXXXXXXXXXXXXXXXXe',
    'api_password' => 'd57XXXXXXXXXXXXXXXXXXXXXXx1f',
    'api_merchant_id' => '',
    'order_id' => ''
];

$options = [
    CURLOPT_URL => $url,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => $data,
    CURLOPT_RETURNTRANSFER => true
];

$ch = curl_init();
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);

$result = json_decode($response, true);
print_r($result);
?>                            
Response
{
  "message": "Transaction Successfully",
  "amount": "1",
  "status": "SUCCESS",
  "utr": "429183084237",
  "orderId": "730458"
}
                        
                            
  const getPayoutStatus = async () => {
    const formData = new FormData();
    formData.append('user_token', 'b00XXXXXXXXXXXXXXXXXXXXXXe');
    formData.append('api_password', 'd57XXXXXXXXXXXXXXXXXXXXXXx1f');
    formData.append('api_merchant_id', '');
    formData.append('order_id', '');

    try {
        const response = await fetch('https://merchant.indpay.in.net/payin_status.php', {
            method: 'POST',
            body: formData
        });
        
        if (!response.ok) {
            throw new Error('Network response was not ok ' + response.statusText);
        }

        const data = await response.json();
        console.log('Response:', data);
    } catch (error) {
        console.error('Error:', error);
    }
};

// Call the function to make the API request
getPayoutStatus();
                                    
                            
Response
                                  {
                                    "message": "Transaction Successfully",
                                    "amount": "1",
                                    "status": "SUCCESS",
                                    "utr": "429183084237",
                                    "orderId": "730458"
                                  }
                                                          
                            
import React, { useState } from 'react';
function PayoutStatus() {
    const [response, setResponse] = useState(null);

    const getPayoutStatus = () => {
        const formData = new FormData();
        formData.append('user_token', 'b00XXXXXXXXXXXXXXXXXXXXXXe');
        formData.append('api_password', 'd57XXXXXXXXXXXXXXXXXXXXXXx1f');
        formData.append('api_merchant_id', '');
        formData.append('order_id', '');

        fetch('https://merchant.indpay.in.net/payin_status.php', {
            method: 'POST',
            body: formData
        })
        .then(response => response.json())
        .then(data => setResponse(data))
        .catch(error => console.error('Error:', error));
    };

    return (
        
<button onClick={getPayoutStatus}>Get Payout Status</button> {response && ( <div> <p>Message: {response.message}</p> <p>Amount: {response.amount}</p> <p>Status: {response.status}</p> <p>UTR: {response.utr}</p> <p>Order ID: {response.orderId}</p> </div> )}
); } export default PayoutStatus;
Response
{
  "message": "Transaction Successfully",
  "amount": "1",
  "status": "SUCCESS",
  "utr": "429183084237",
  "orderId": "730458"
}
                        

Pay Out Order API Documentation

API Endpoint
https://merchant.indpay.in.net/payout_root_2.php
HTTP Method

This API uses the POST method with form-data parameters to initiate a payment request.


Request Parameters
Parameter Type Description
order_id String Unique identifier for the order.
transaction_pin String Sended in registered email!.
wallet_id String The wallet ID associated with the payout.
amount String The amount to be paid out. Example: "100".
account_no String The beneficiary's bank account number.
user_token String Unique identifier for the order.
api_password String API password for authentication.
ifsc_code String The IFSC code of the beneficiary's bank.
bene_name String The account holder’s name (beneficiary name).
mobile_no String The mobile number associated with the beneficiary.
email_id String The email ID of the beneficiary.
bank_name String The name of the beneficiary's bank.
transferType String The Transfer type of bank like IMPS.
Example Request

You can initiate a payment using curl as shown below:

                      
curl --request POST \
  --url https://merchant.indpay.in.net/payout_root_2.php \
  --header 'Content-Type: application/json' \
  --data '{
    "order_id": "XXXXXXXXXXXXX",
    "api_password": "XXXXXXXXXX",
    "user_token": "XXXXXXXXXXXXX",
    "wallet_id": "XXXXXXXXXXXXX",
    "amount": "100",
    "account_no": "2851XXXXXXXX",
    "ifsc_code": "IOBXXXXX",
    "bene_name": "RAJXXXXX",
    "mobile_no": "73011XXXXX",
    "email_id": "XXXXXXXXXXXX",
    "transaction_pin": "xxxx"
    "bank_name": "XXXXXXXXX"
    "transferType": "xxxxxxxxxx"
}'
Response
{
  "status": "Process",
  "message": "Transaction Initiated!",
  "txn_id": "TRARXXXXXXX",
  "bank_name": "INDXXXXXXX",
  "ifsc_code": "IOXXXXXXX",
  "account_no": "28XXXXXXXXXX",
  "name": "RAJXXXXXX",
  "amount": "100",
  "order_id": "XXXXXX",
  "mobile_no": "73011XXXXXX",
  "email": "XXXXXXXXXXXX",
  "created_date": "XXXXXXXXXX"
}
                    

Response

The API responds with a JSON object that provides information about the transaction status. Here’s a breakdown of the response fields:

Field Type Description
status String Status of the transaction (e.g., "SUCCESS").
message String Message indicating the result of the transaction.
txn_id String The transaction ID assigned to this payout.
bank_name String The bank name associated with the transaction.
ifsc_code String The IFSC code of the bank.
account_no String The beneficiary's bank account number.
name String The name of the beneficiary.
amount String The transaction amount.
orderId String Unique identifier of the order.
mobile_no String The beneficiary's mobile number
email String The beneficiary's email ID
created_date String The date and time the transaction was created.
Example Response
{
  "status": "Process",
  "message": "Transaction Initiated!",
  "txn_id": "TRARXXXXXXX",
  "bank_name": "INDXXXXXXX",
  "ifsc_code": "IOXXXXXXX",
  "account_no": "28XXXXXXXXXX",
  "name": "RAJXXXXXX",
  "amount": "100",
  "order_id": "XXXXXX",
  "mobile_no": "73011XXXXXX",
  "email": "XXXXXXXXXXXX",
  "created_date": "XXXXXXXXXX"
}
                        

More Example Code:

                            
<?php

$url = 'https://merchant.indpay.in.net/payout_root_2.php';

$data = [
    'order_id' => 'XXXXXXXXXXXXXX',
    'api_password' => 'XXXXXXXXXXXXXX',
    'user_token' => 'XXXXXXXXXXXXXX',
    'wallet_id' => 'XXXXXXXXXXXXXX',
    'amount' => '100',
    'account_no' => '2851XXXXXXXX',
    'ifsc_code' => 'IOBXXXXXX',
    'bene_name' => 'RAJXXXXX',
    'mobile_no' => '73011XXXXXX',
    'email_id' => 'XXXXXXXXXXXXXX',
    'bank_name' => 'XXXXXXXXXX'
];

// Initialize cURL session
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// Execute and get the response
$response = curl_exec($ch);
curl_close($ch);

if ($response) {
    $result = json_decode($response, true);
    print_r($result);
} else {
    echo "Failed to connect to API.";
}

?>
Response
                              {
                                "status": "Process",
                                "message": "Transaction Initiated!",
                                "txn_id": "TRARXXXXXXX",
                                "bank_name": "INDXXXXXXX",
                                "ifsc_code": "IOXXXXXXX",
                                "account_no": "28XXXXXXXXXX",
                                "name": "RAJXXXXXX",
                                "amount": "100",
                                "order_id": "XXXXXX",
                                "mobile_no": "73011XXXXXX",
                                "email": "XXXXXXXXXXXX",
                                "created_date": "XXXXXXXXXX"
                              }
                        

    const payoutRequest = async () => {
      const formData = new FormData();
      formData.append('order_id', 'XXXXXXXXXXXXXX');
      formData.append('api_password', 'XXXXXXXXXXXXXX');
      formData.append('user_token', 'XXXXXXXXXXXXXX');
      formData.append('wallet_id', 'XXXXXXXXXXXXXX');
      formData.append('amount', '100');
      formData.append('account_no', '2851XXXXXXXX');
      formData.append('ifsc_code', 'IOBXXXXXX');
      formData.append('bene_name', 'RAJXXXXX');
      formData.append('mobile_no', '73011XXXXXX');
      formData.append('email_id', 'XXXXXXXXXXXXXX');
      formData.append('bank_name', 'XXXXXXXXXX');
  
      try {
          const response = await fetch('https://merchant.indpay.in.net/payout_root_2.php', {
              method: 'POST',
              body: formData
          });
  
          if (!response.ok) {
              throw new Error(`Error: ${response.statusText}`);
          }
  
          const data = await response.json();
          console.log('Response:', data);
      } catch (error) {
          console.error('Error:', error);
      }
  };
  
  // Call the function
payoutRequest();                                  
                            
Response
                              {
                                "status": "Process",
                                "message": "Transaction Initiated!",
                                "txn_id": "TRARXXXXXXX",
                                "bank_name": "INDXXXXXXX",
                                "ifsc_code": "IOXXXXXXX",
                                "account_no": "28XXXXXXXXXX",
                                "name": "RAJXXXXXX",
                                "amount": "100",
                                "order_id": "XXXXXX",
                                "mobile_no": "73011XXXXXX",
                                "email": "XXXXXXXXXXXX",
                                "created_date": "XXXXXXXXXX"
                              }
                        
                            
import React, { useEffect, useState } from 'react';

const PayoutRequest = () => {
    const [response, setResponse] = useState(null);
    const [error, setError] = useState(null);

    useEffect(() => {
        const makePayoutRequest = async () => {
            const formData = new FormData();
            formData.append('order_id', 'XXXXXXXXXXXXXX');
            formData.append('api_password', 'XXXXXXXXXXXXXX');
            formData.append('user_token', 'XXXXXXXXXXXXXX');
            formData.append('wallet_id', 'XXXXXXXXXXXXXX');
            formData.append('amount', '100');
            formData.append('account_no', '2851XXXXXXXX');
            formData.append('ifsc_code', 'IOBXXXXXX');
            formData.append('bene_name', 'RAJXXXXX');
            formData.append('mobile_no', '73011XXXXXX');
            formData.append('email_id', 'XXXXXXXXXXXXXX');
            formData.append('bank_name', 'XXXXXXXXXX');

            try {
                const response = await fetch('https://merchant.indpay.in.net/payout_root_2.php', {
                    method: 'POST',
                    body: formData
                });

                if (!response.ok) {
                    throw new Error(`Error: ${response.statusText}`);
                }

                const data = await response.json();
                setResponse(data);
            } catch (error) {
                setError(error.message);
            }
        };

        makePayoutRequest();
    }, []);

    return (
        <div>
          <h2>Payout API Response</h2>
            {error && <p style={{ color: 'red' }}>Error: {error}</p>}
            {response ? (
              <pre>{JSON.stringify(response, null, 2)}</pre>
            ) : (
              <p>Loading...</p>
            )}
            </div>
    );
};

export default PayoutRequest;
                              
                        
Response
                              {
                                "status": "Process",
                                "message": "Transaction Initiated!",
                                "txn_id": "TRARXXXXXXX",
                                "bank_name": "INDXXXXXXX",
                                "ifsc_code": "IOXXXXXXX",
                                "account_no": "28XXXXXXXXXX",
                                "name": "RAJXXXXXX",
                                "amount": "100",
                                "order_id": "XXXXXX",
                                "mobile_no": "73011XXXXXX",
                                "email": "XXXXXXXXXXXX",
                                "created_date": "XXXXXXXXXX"
                              }
                        

Pay Out Order API Documentation

The Payout Status API allows you to check the status of a payout transaction. You can use this endpoint to get the current status and details of a specific payout by providing the necessary credentials and identifying information.

API Endpoint
https://merchant.indpay.in.net/payoutStatus.php
HTTP Method

This API uses the POST method with form-data parameters to initiate a payment request.


Request Parameters
Parameter Type Description
order_id String Unique identifier for the order.
user_token String Unique identifier for the order.
api_password String API password for authentication.
wallet_id String The wallet ID associated with the payout.
Example Request

You can initiate a payment using curl as shown below:


curl --request POST \
  --url https://merchant.indpay.in.net/payoutStatus.php \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data 'order_id=XXXXXXXXXXXXXXX&user_token=XXXXXXXXXXXXXXXXX&api_password=XXXXXXXXXXXXXXXXX&wallet_id=XXXXXXXXXXXXXXX'                      
Response
{
  "status":"Process/Success/Fail", 
  "message":"XXXXXXXX", 
  "order_id":"2XXXXXXXX", 
  "amount":"100", 
  "txn_id":XXXXXXX, 
  "bank_name":"INDXXXXXXXX", 
  "ifsc_code":"IOXXXXXXX", 
  "account_no":"28XXXXXXXX562", 
  "name":"RAJXXXXXXXX", 
  "created_date":"XXXXXXXXXXX"
}

Response

The API responds with a JSON object that provides information about the transaction status. Here’s a breakdown of the response fields:

Field Type Description
status String Status of the transaction (e.g., "SUCCESS").
message String Message indicating the result of the transaction.
txn_id String The transaction ID assigned to this payout.
bank_name String The bank name associated with the transaction.
ifsc_code String The IFSC code of the bank.
account_no String The beneficiary's bank account number.
name String The name of the beneficiary.
amount String The transaction amount.
orderId String Unique identifier of the order.
created_date String The date and time the transaction was created.
Example Response
{
    "status": "Success",
    "message": "Transaction Completed",
    "order_id": "2XXXXXXXXX",
    "amount": "100",
    "txn_id": "XXXXXXXXX",
    "bank_name": "INDXXXXXXXX",
    "ifsc_code": "IOXXXXXXX",
    "account_no": "28XXXXXXXXX562",
    "name": "RAJXXXXXXX",
    "created_date": "XXXXXXXXXXXX"
}
                      

More Example Code:


const payoutStatusRequest = async () => {
  const formData = new FormData();
  formData.append('order_id', 'XXXXXXXXXXXXXX');
  formData.append('user_token', 'XXXXXXXXXXXXXX');
  formData.append('api_password', 'XXXXXXXXXXXXXX');
  formData.append('wallet_id', 'XXXXXXXXXXXXXX');

  try {
      const response = await fetch('https://merchant.indpay.in.net/payoutStatus.php', {
          method: 'POST',
          body: formData
      });

      if (!response.ok) {
          throw new Error(`Error: ${response.statusText}`);
      }

      const data = await response.json();
      console.log('Response:', data);
  } catch (error) {
      console.error('Error:', error);
  }
};

// Call the function
payoutStatusRequest();                          
Response
{
      "status":"Process/Success/Fail", 
      "message":"XXXXXXXX", 
      "order_id":"2XXXXXXXX", 
      "amount":"100", 
      "txn_id":XXXXXXX, 
      "bank_name":"INDXXXXXXXX", 
      "ifsc_code":"IOXXXXXXX", 
      "account_no":"28XXXXXXXX562", 
      "name":"RAJXXXXXXXX", 
      "created_date":"XXXXXXXXXXX"
    }

  <?php
  
  $url = 'https://merchant.indpay.in.net/payoutStatus.php';
  
  $data = [
      'order_id' => 'XXXXXXXXXXXXXX',
      'user_token' => 'XXXXXXXXXXXXXX',
      'api_password' => 'XXXXXXXXXXXXXX',
      'wallet_id' => 'XXXXXXXXXXXXXX'
  ];
  
  $ch = curl_init($url);
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  
  $response = curl_exec($ch);
  curl_close($ch);
  
  if ($response) {
      $result = json_decode($response, true);
      print_r($result);
  } else {
      echo "Failed to connect to API.";
  }
  
  ?>
Response
{
              "status":"Process/Success/Fail", 
              "message":"XXXXXXXX", 
              "order_id":"2XXXXXXXX", 
              "amount":"100", 
              "txn_id":XXXXXXX, 
              "bank_name":"INDXXXXXXXX", 
              "ifsc_code":"IOXXXXXXX", 
              "account_no":"28XXXXXXXX562", 
              "name":"RAJXXXXXXXX", 
              "created_date":"XXXXXXXXXXX"
            }
                          
  import React, { useEffect, useState } from 'react';

  const PayoutStatus = () => {
      const [response, setResponse] = useState(null);
      const [error, setError] = useState(null);
  
      useEffect(() => {
          const fetchPayoutStatus = async () => {
              const formData = new FormData();
              formData.append('order_id', 'XXXXXXXXXXXXXX');
              formData.append('user_token', 'XXXXXXXXXXXXXX');
              formData.append('api_password', 'XXXXXXXXXXXXXX');
              formData.append('wallet_id', 'XXXXXXXXXXXXXX');
  
              try {
                  const response = await fetch('https://merchant.indpay.in.net/payoutStatus.php', {
                      method: 'POST',
                      body: formData
                  });
  
                  if (!response.ok) {
                      throw new Error(`Error: ${response.statusText}`);
                  }
  
                  const data = await response.json();
                  setResponse(data);
              } catch (error) {
                  setError(error.message);
              }
          };
  
          fetchPayoutStatus();
      }, []);
  
      return (
          <div>
            <h2>Payout Status API Response</h2>
              {error && <p style={{ color: 'red' }}>Error: {error}</p>}
              {response ? (
                <pre>{JSON.stringify(response, null, 2)}</pre>
              ) : (
                <p>Loading...</p>
              )}
            </div>
      );
  };
  
  export default PayoutStatus;                                                        
                      
Response
{
    "status":"Process/Success/Fail", 
    "message":"XXXXXXXX", 
    "order_id":"2XXXXXXXX", 
    "amount":"100", 
    "txn_id":XXXXXXX, 
    "bank_name":"INDXXXXXXXX", 
    "ifsc_code":"IOXXXXXXX", 
    "account_no":"28XXXXXXXX562", 
    "name":"RAJXXXXXXXX", 
    "created_date":"XXXXXXXXXXX"
  }