Fiat (Rupee) Proxy Pay Order UTR Replenishment

# Code Example

TopPaySignUtil Click to Get Code Example

import com.google.gson.Gson;
import java.util.HashMap;
import java.util.Map;

public class PayOrderQuery {
    //MCH_ID: Merchant ID
    //Please log in to the merchant background, click Personal Center > Personal Information, and obtain the merchant ID in the basic information.
    private static final String MCH_ID = "S820211021094748000001";
    private static final String MCH_PRIVATE_KEY = "MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAJU8gKFKD0luIYx7X8+JRdCIE0UDBctS6LjXxWLEv/EO7jDBTid6zYP1KmNgpd2DAWWtBFBSQ+gcNwVZZSBHJiSDqVvvJVs2FEbeBvfdv4X93+IYRAXksBasSW5Tpdshbo82pVL4V7wuKCuFLk9UxBHbpQjWAbfyF66RmwIbZD71AgMBAAECgYBjPe7UU2nDDSfmQg0++CyjNjqKRC5QPfxhH6w1uF1kMueXKJWOj42n2RutJpJmsj31nY8m0u4xpsG4HvCu/GGSFhhKZCHLvzp41oY2ubYj9nuFNU//81LycQjulWo2y0UUBY0k2piEt+SwPaiUNbT6nMxNMjlnjRe2okp/3rw+KQJBANG3YlZWoVbCEqzy64bJJLxiPsCA5ErGB0NzRGitq44xkhqGtR8ZZQyVz40pruNa58d73O2xyJSy5+fmZGn4E+sCQQC2LBnguj0CSCKub0mPDcunTTz9V79VXBBZdlB1/YGmRUx2s4sQrJNZS7rL4EqBQ3maIRnG+s+AXCSTfsYrV6CfAkEAxugnVfpelhoGepEAgNuggyivmgfl/2Gpm/jk5l/qOjib+ZrQiQmeBPzGWX4yiSM8eMDrP2sC8r5pJFMp5DRONwJBAJ4n4XuSFJ9jgwCPy3vvzSv9SYLk6E6yM9uHdUlKgoGYzk6Lh6M9QFuY/J49plFdBDiEnj16yCU3WeXXfTJpzB8CQQDMNMR/rIOTE9xGsybS3mlQbt22AUnO6XhupWcckEKW4nPGxATwYBQzCY3i/9FTGN0vA+9ZPC2cwHtNxI2kXf3Vp";  // Merchant Private Key
    private static final String REQ_URL = "[https://india-openapi.toppay.asia/pay/supplementOrder](https://india-openapi.toppay.asia/pay/supplementOrder)";

    public static void main(String[] args) throws Exception {
        supplementOrder();
    }

    private static void supplementOrder() throws Exception {
        // Assemble parameters according to the interface requirements
        Map<String, String> requestParams = new HashMap<>();
        requestParams.put("merchantCode", MCH_ID);
        requestParams.put("orderNum", "T1642593166888");
        requestParams.put("timestamp", "1745377181");
        requestParams.put("utr", "123456789012");

        // Format the parameters, calculate the signature, and add the signature value to the request parameters
        String source = TopPaySignUtil.paramFormat(requestParams);
        requestParams.put("sign", TopPaySignUtil.sign(MCH_PRIVATE_KEY, source));

        // Serialize the parameters into JSON and initiate a POST request
        String postJson = new Gson().toJson(requestParams);
        System.out.println("Post Json Params:" + postJson);
        String responseJson = TopPaySignUtil.doPost(REQ_URL, postJson);
        System.out.println("Response Msg:" + responseJson);
    }
}
<?php
require_once 'TopPaySignUtil.php';
class PayOrderQuery
{
    // Merchant ID
    const MCH_ID = "S820211021094748000001";

    // Merchant Private Key
    const MCH_PRIVATE_KEY = "MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAJU8gKFKD0luIYx7X8+JRdCIE0UDBctS6LjXxWLEv/EO7jDBTid6zYP1KmNgpd2DAWWtBFBSQ+gcNwVZZSBHJiSDqVvvJVs2FEbeBvfdv4X93+IYRAXksBasSW5Tpdshbo82pVL4V7wuKCuFLk9UxBHbpQjWAbfyF66RmwIbZD71AgMBAAECgYBjPe7UU2nDDSfmQg0++CyjNjqKRC5QPfxhH6w1uF1kMueXKJWOj42n2RutJpJmsj31nY8m0u4xpsG4HvCu/GGSFhhKZCHLvzp41oY2ubYj9nuFNU//81LycQjulWo2y0UUBY0k2piEt+SwPaiUNbT6nMxNMjlnjRe2okp/3rw+KQJBANG3YlZWoVbCEqzy64bJJLxiPsCA5ErGB0NzRGitq44xkhqGtR8ZZQyVz40pruNa58d73O2xyJSy5+fmZGn4E+sCQQC2LBnguj0CSCKub0mPDcunTTz9V79VXBBZdlB1/YGmRUx2s4sQrJNZS7rL4EqBQ3maIRnG+s+AXCSTfsYrV6CfAkEAxugnVfpelhoGepEAgNuggyivmgfl/2Gpm/jk5l/qOjib+ZrQiQmeBPzGWX4yiSM8eMDrP2sC8r5pJFMp5DRONwJBAJ4n4XuSFJ9jgwCPy3vvzSv9SYLk6E6yM9uHdUlKgoGYzk6Lh6M9QFuY/J49plFdBDiEnj16yCU3WeXXfTJpzB8CQQDMNMR/rIOTE9xGsybS3mlQbt22AUnO6XhupWcckEKW4nPGxATwYBQzCY3i/9FTGN0vA+9ZPC2cwHtNxI2kXf3Vp";

    const REQ_URL = "https://india-openapi.toppay.asia/pay/supplementOrder";

    public static function main()
    {
        self::supplementOrder();
    }

    private static function supplementOrder()
    {
        // 1️⃣ Assemble request parameters
        $requestParams = [
            'merchantCode' => self::MCH_ID,
            'orderNum'     => 'T1642593166888',
            'timestamp'    => '1745377181',
            'utr'          => '123456789012'
        ];

        // 2️⃣ Format parameters & generate signature
        $source = TopPaySignUtil::paramFormat($requestParams);
        $sign   = TopPaySignUtil::sign(self::MCH_PRIVATE_KEY, $source);
        $requestParams['sign'] = $sign;

        // 3️⃣ JSON serialization
        $postJson = json_encode($requestParams, JSON_UNESCAPED_SLASHES);
        echo "Post Json Params:\n$postJson\n\n";

        // 4️⃣ Send POST request
        $responseJson = TopPaySignUtil::doPost(self::REQ_URL, $postJson);
        echo "Response Msg:\n$responseJson\n";
    }
}

// Execute
PayOrderQuery::main();

using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

class PayOrderQuery
{
    // Merchant ID
    private const string MCH_ID = "S820211021094748000001";

    // Merchant Private Key
    private const string MCH_PRIVATE_KEY = "MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAJU8gKFKD0luIYx7X8+JRdCIE0UDBctS6LjXxWLEv/EO7jDBTid6zYP1KmNgpd2DAWWtBFBSQ+gcNwVZZSBHJiSDqVvvJVs2FEbeBvfdv4X93+IYRAXksBasSW5Tpdshbo82pVL4V7wuKCuFLk9UxBHbpQjWAbfyF66RmwIbZD71AgMBAAECgYBjPe7UU2nDDSfmQg0++CyjNjqKRC5QPfxhH6w1uF1kMueXKJWOj42n2RutJpJmsj31nY8m0u4xpsG4HvCu/GGSFhhKZCHLvzp41oY2ubYj9nuFNU//81LycQjulWo2y0UUBY0k2piEt+SwPaiUNbT6nMxNMjlnjRe2okp/3rw+KQJBANG3YlZWoVbCEqzy64bJJLxiPsCA5ErGB0NzRGitq44xkhqGtR8ZZQyVz40pruNa58d73O2xyJSy5+fmZGn4E+sCQQC2LBnguj0CSCKub0mPDcunTTz9V79VXBBZdlB1/YGmRUx2s4sQrJNZS7rL4EqBQ3maIRnG+s+AXCSTfsYrV6CfAkEAxugnVfpelhoGepEAgNuggyivmgfl/2Gpm/jk5l/qOjib+ZrQiQmeBPzGWX4yiSM8eMDrP2sC8r5pJFMp5DRONwJBAJ4n4XuSFJ9jgwCPy3vvzSv9SYLk6E6yM9uHdUlKgoGYzk6Lh6M9QFuY/J49plFdBDiEnj16yCU3WeXXfTJpzB8CQQDMNMR/rIOTE9xGsybS3mlQbt22AUnO6XhupWcckEKW4nPGxATwYBQzCY3i/9FTGN0vA+9ZPC2cwHtNxI2kXf3Vp";

    private const string REQ_URL = "https://india-openapi.toppay.asia/pay/supplementOrder";

    static async Task Main(string[] args)
    {
        await SupplementOrder();
    }

    private static async Task SupplementOrder()
    {
        // 1️⃣ Assemble request parameters
        Dictionary<string, string> requestParams = new Dictionary<string, string>
        {
            { "merchantCode", MCH_ID },
            { "orderNum", "T1642593166888" },
            { "timestamp", "1745377181" },
            { "utr", "123456789012" }
        };

        // 2️⃣ Format parameters + generate signature using private key encryption
        string source = TopPaySignUtil.ParamFormat(requestParams);
        string sign = TopPaySignUtil.Sign(MCH_PRIVATE_KEY, source);
        requestParams["sign"] = sign;

        // 3️⃣ JSON serialization
        string postJson = JsonConvert.SerializeObject(requestParams);
        Console.WriteLine("Post Json Params:");
        Console.WriteLine(postJson);

        // 4️⃣ Send POST request
        string responseJson = await TopPaySignUtil.DoPost(REQ_URL, postJson);
        Console.WriteLine("Response Msg:");
        Console.WriteLine(responseJson);
    }
}



package main

import (
    "encoding/json"
    "fmt"
)

const (
    MCH_ID = "S820211021094748000001"

    MCH_PRIVATE_KEY = "MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAJU8gKFKD0luIYx7X8+JRdCIE0UDBctS6LjXxWLEv/EO7jDBTid6zYP1KmNgpd2DAWWtBFBSQ+gcNwVZZSBHJiSDqVvvJVs2FEbeBvfdv4X93+IYRAXksBasSW5Tpdshbo82pVL4V7wuKCuFLk9UxBHbpQjWAbfyF66RmwIbZD71AgMBAAECgYBjPe7UU2nDDSfmQg0++CyjNjqKRC5QPfxhH6w1uF1kMueXKJWOj42n2RutJpJmsj31nY8m0u4xpsG4HvCu/GGSFhhKZCHLvzp41oY2ubYj9nuFNU//81LycQjulWo2y0UUBY0k2piEt+SwPaiUNbT6nMxNMjlnjRe2okp/3rw+KQJBANG3YlZWoVbCEqzy64bJJLxiPsCA5ErGB0NzRGitq44xkhqGtR8ZZQyVz40pruNa58d73O2xyJSy5+fmZGn4E+sCQQC2LBnguj0CSCKub0mPDcunTTz9V79VXBBZdlB1/YGmRUx2s4sQrJNZS7rL4EqBQ3maIRnG+s+AXCSTfsYrV6CfAkEAxugnVfpelhoGepEAgNuggyivmgfl/2Gpm/jk5l/qOjib+ZrQiQmeBPzGWX4yiSM8eMDrP2sC8r5pJFMp5DRONwJBAJ4n4XuSFJ9jgwCPy3vvzSv9SYLk6E6yM9uHdUlKgoGYzk6Lh6M9QFuY/J49plFdBDiEnj16yCU3WeXXfTJpzB8CQQDMNMR/rIOTE9xGsybS3mlQbt22AUnO6XhupWcckEKW4nPGxATwYBQzCY3i/9FTGN0vA+9ZPC2cwHtNxI2kXf3Vp"

    REQ_URL = "https://india-openapi.toppay.asia/pay/supplementOrder"
)

func main() {
    supplementOrder()
}

func supplementOrder() {

    // 1️⃣ Assemble request parameters (equivalent to Java HashMap)
    requestParams := map[string]string{
        "merchantCode": MCH_ID,
        "orderNum":     "T1642593166888",
        "timestamp":    "1745377181",
        "utr":          "123456789012",
    }

    // 2️⃣ Sort parameters + generate signature using private key encryption
    source := paramFormat(requestParams)
    signData := sign(MCH_PRIVATE_KEY, source)
    requestParams["sign"] = signData

    // 3️⃣ JSON serialization
    postJsonBytes, _ := json.Marshal(requestParams)
    postJson := string(postJsonBytes)

    fmt.Println("Post Json Params:")
    fmt.Println(postJson)

    // 4️⃣ HTTP POST request
    resp, err := doPost(REQ_URL, postJson)
    if err != nil {
        panic(err)
    }

    fmt.Println("Response Msg:")
    fmt.Println(resp)
}

    
    import json
from TopPaySignUtil import TopPaySignUtil   # If in the same file, can be used directly

# ================= Constants =================
MCH_ID = "S820211021094748000001"
MCH_PRIVATE_KEY = 'MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAJU8gKFKD0luIYx7X8+JRdCIE0UDBctS6LjXxWLEv/EO7jDBTid6zYP1KmNgpd2DAWWtBFBSQ+gcNwVZZSBHJiSDqVvvJVs2FEbeBvfdv4X93+IYRAXksBasSW5Tpdshbo82pVL4V7wuKCuFLk9UxBHbpQjWAbfyF66RmwIbZD71AgMBAAECgYBjPe7UU2nDDSfmQg0++CyjNjqKRC5QPfxhH6w1uF1kMueXKJWOj42n2RutJpJmsj31nY8m0u4xpsG4HvCu/GGSFhhKZCHLvzp41oY2ubYj9nuFNU//81LycQjulWo2y0UUBY0k2piEt+SwPaiUNbT6nMxNMjlnjRe2okp/3rw+KQJBANG3YlZWoVbCEqzy64bJJLxiPsCA5ErGB0NzRGitq44xkhqGtR8ZZQyVz40pruNa58d73O2xyJSy5+fmZGn4E+sCQQC2LBnguj0CSCKub0mPDcunTTz9V79VXBBZdlB1/YGmRUx2s4sQrJNZS7rL4EqBQ3maIRnG+s+AXCSTfsYrV6CfAkEAxugnVfpelhoGepEAgNuggyivmgfl/2Gpm/jk5l/qOjib+ZrQiQmeBPzGWX4yiSM8eMDrP2sC8r5pJFMp5DRONwJBAJ4n4XuSFJ9jgwCPy3vvzSv9SYLk6E6yM9uHdUlKgoGYzk6Lh6M9QFuY/J49plFdBDiEnj16yCU3WeXXfTJpzB8CQQDMNMR/rIOTE9xGybS3mlQbt22AUnO6XhupWcckEKW4nPGxATwYBQzCY3i/9FTGN0vA+9ZPC2cwHtNxI2kXf3Vp'
REQ_URL = "https://india-openapi.toppay.asia/pay/supplementOrder"


def supplement_order():
    # 1️⃣ Assemble request parameters
    request_params = {
        "merchantCode": MCH_ID,
        "orderNum": "T1642593166888",
        "timestamp": "1745377181",
        "utr": "123456789012"
    }

    # 2️⃣ Format parameters + generate signature using private key encryption
    source = TopPaySignUtil.param_format(request_params)
    sign = TopPaySignUtil.sign(MCH_PRIVATE_KEY, source)
    request_params["sign"] = sign

    # 3️⃣ JSON serialization
    post_json = json.dumps(request_params, separators=(",", ":"))
    print("Post Json Params:")
    print(post_json)

    # 4️⃣ HTTP POST request
    response = TopPaySignUtil.do_post(REQ_URL, post_json)
    print("Response Msg:")
    print(response)


if __name__ == "__main__":
    supplement_order()

        
const https = require('https');
const TopPaySignUtil = require('./TopPaySignUtil'); 
const MCH_ID = 'S820211021094748000001';

const MCH_PRIVATE_KEY = `
-----BEGIN PRIVATE KEY-----
MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAJU8gKFKD0luIYx7X8+JRdCIE0UDBctS6LjXxWLEv/EO7jDBTid6zYP1KmNgpd2DAWWtBFBSQ+gcNwVZZSBHJiSDqVvvJVs2FEbeBvfdv4X93+IYRAXksBasSW5Tpdshbo82pVL4V7wuKCuFLk9UxBHbpQjWAbfyF66RmwIbZD71AgMBAAECgYBjPe7UU2nDDSfmQg0++CyjNjqKRC5QPfxhH6w1uF1kMueXKJWOj42n2RutJpJmsj31nY8m0u4xpsG4HvCu/GGSFhhKZCHLvzp41oY2ubYj9nuFNU//81LycQjulWo2y0UUBY0k2piEt+SwPaiUNbT6nMxNMjlnjRe2okp/3rw+KQJBANG3YlZWoVbCEqzy64bJJLxiPsCA5ErGB0NzRGitq44xkhqGtR8ZZQyVz40pruNa58d73O2xyJSy5+fmZGn4E+sCQQC2LBnguj0CSCKub0mPDcunTTz9V79VXBBZdlB1/YGmRUx2s4sQrJNZS7rL4EqBQ3maIRnG+s+AXCSTfsYrV6CfAkEAxugnVfpelhoGepEAgNuggyivmgfl/2Gpm/jk5l/qOjib+ZrQiQmeBPzGWX4yiSM8eMDrP2sC8r5pJFMp5DRONwJBAJ4n4XuSFJ9jgwCPy3vvzSv9SYLk6E6yM9uHdUlKgoGYzk6Lh6M9QFuY/J49plFdBDiEnj16yCU3WeXXfTJpzB8CQQDMNMR/rIOTE9xGsybS3mlQbt22AUnO6XhupWcckEKW4nPGxATwYBQzCY3i/9FTGN0vA+9ZPC2cwHtNxI2kXf3Vp
-----END PRIVATE KEY-----
`;

const REQ_URL = 'https://india-openapi.toppay.asia/pay/supplementOrder';

async function supplementOrder() {

    // 1️⃣ Assemble request parameters
    const requestParams = {
        merchantCode: MCH_ID,
        orderNum: 'T1642593166888',
        timestamp: '1745377181',
        utr: '123456789012'
    };

    // 2️⃣ Format parameters + generate signature using private key encryption
    const source = TopPaySignUtil.paramFormat(requestParams);
    const sign = TopPaySignUtil.sign(MCH_PRIVATE_KEY, source);
    requestParams.sign = sign;

    // 3️⃣ JSON serialization
    const postJson = JSON.stringify(requestParams);
    console.log('Post Json Params:');
    console.log(postJson);

    // 4️⃣ Send POST request
    try {
        const response = await TopPaySignUtil.doPost(REQ_URL, postJson);
        console.log('Response Msg:');
        console.log(response);
    } catch (e) {
        console.error('Request Error:', e);
    }
}
// Execute
supplementOrder();


# Request Address

  • Request Method : POST
  • Request Address : https://india-openapi.toppay.asia/pay/supplementOrder

# Request Parameters

Parameter Required Description Example
merchantCode Y Merchant ID S820190712000002
orderNum Y Merchant Order Number T1231511321515
utr Y UTR 123456789012
timestamp Y Timestamp (seconds), Get the system real-time time stamp 1745377181
sign Y RSA signature ja6R8eukQ...

# Request Message Example

{
  "merchantCode": "S820211021094748000001",
  "orderNum": "11642593166888",
  "utr": "123456789012",
  "timestamp": "1745377181",
  "sign": "16u1010cult@NGaIq44U2u2bFW56d11JUT/66mQMb18T9dmVAJaLwR125emPDXYSdn0tNxja8642VJ1f4eBCg2HevHo1ebvYzay3ukCguJn"
}

# Response Parameters

  • Outer Unified Return Structure
Parameter Type Required Description Example
code int Y Interface response code 0 represents success, others represent failure
message String Y Interface response message Return specific response information
data Json Y Interface response parameters Interface specific response parameters

# Response Message Example

{
  "code": 0,
  "message": "success",
  "data": "supplement order success"
}