Create Dynamic QR Code

Post  https://payin.oqpay.in/api/V5/Payin/DynamicQRCode


In this API, you will provide the user's unique registration identifier along with the payable amount to initiate or validate a transaction. These values are essential to associate the transaction with the correct user and ensure accurate processing of the specified amount.

Body Parameters
{
  "customerName": "Ajay Singh",
  "customerMobile": "9876543210",
  "customerEmail": "ajaysingh1898@gmail.com",
  "amount": 500,
  "registrationID": "OQP-XXX"
}
Note : Amount cannot be less than ₹300
Request Parameters
Name Type Description
registrationID String Unique registration identifier, often tied to the user.
amount Integer The amount being paid by the customer in this transaction. The amount cannot be less than ₹300.
customerEmail String Email address of the customer.
customerMobile String Mobile number of the customer.
customerName String Name of the customer.
HEADERS

Content-Type string

application/json

Responses

200

200

Response

200

RESPONSE BODY

object

success    string

data    object

txnId    string

refId    string

amount    integer

qrString    string

upiLink    string

status    string

expiresAt    string

expiresInSeconds    string

txnDate    string

apiStatus    string

transactionId    string

message    string

400

400

Response

400

RESPONSE BODY

Object

status string

subCode string

message string


Did this page help you?     Yes    No

Language
shell Shell
python Python
node Node
c# C#
php PHP

cURL

curl --location 'https://payin.oqpay.in/api/V5/Payin/DynamicQRCode' \
--header 'Content-Type: application/json' \
--data  '{
"customerName": "Ajay Singh",
"customerMobile": "9876543210",
"customerEmail": "ajaysingh1898@gmail.com",
"amount": 500,
"registrationID": "OQP-XXX"
}'
                                
import requests
import json

url = 'https://payin.oqpay.in/api/V5/Payin/DynamicQRCode'
payload = json.dumps({
"customerName": "Ajay Singh",
"customerMobile": "9876543210",
"customerEmail": "ajaysingh1898@gmail.com",
"amount": 500,
"registrationID": "OQP-XXX"
}) 

headers = {
  "Content-type" : "application/json"
}

response = requests.request("POST", url, headers=headers, data=payload)

print (response.text)
                                
var requests = require("request");
var options = { 
  "method" : "POST",
  "url" : 'https://payin.oqpay.in/api/V5/Payin/DynamicQRCode',
  "headers" : {
    "Content-Type" : 'application/json'
  },
  body: JSON.stringify({
"customerName": "Ajay Singh",
"customerMobile": "9876543210",
"customerEmail": "ajaysingh1898@gmail.com",
"amount": 500,
"registrationID": "OQP-XXX"
  }) 
}; 
request(options, function(error, response){
   if(error) throw new Error(error);
   console.log(response.body); 
}); 
                                
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post,'https://payin.oqpay.in/api/V5/Payin/DynamicQRCode')
var content = new StringContent(
  "{
"customerName": "Ajay Singh",
"customerMobile": "9876543210",
"customerEmail": "ajaysingh1898@gmail.com",
"amount": 500,
"registrationID": "OQP-XXX"
  }",
  null,"application/json"
); 

request.Content = content;
var response =  await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
                                
<?php
$curl =  curl_init();
curl_setopt_array($curl, array(
  CURLOPT_URL =>  'https://payin.oqpay.in/api/V5/Payin/DynamicQRCode',
  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 =>  '{
"customerName": "Ajay Singh",
"customerMobile": "9876543210",
"customerEmail": "ajaysingh1898@gmail.com",
"amount": 500,
"registrationID": "OQP-XXX"
}',
  CURLOPT_HTTPHEADER =>  array(
    'Content-Type: application/json'
  ),
));
$response =  curl_exec($curl);
curl_close($curl);
echo $response;
                                

RESPONSE

200

400

-Result

Example

 
{
    "success": true,
    "data": {
        "txnId": "TPAY202602230723071213842",
        "refId": "REF-OQP1001V3463548",
        "amount": 500,
        "qrString": "upi://pay?pa=shoppingair.payu@axisbank&pn=ABPYM INFOMATIC SOLUTION OPC PRIVATE LIMITED&tr=27417015484&tid=PPPL27417015484230226125309699c005d&am=500.00&cu=INR&tn=UPIIntent",
        "upiLink": "upi://pay?pa=shoppingair.payu@axisbank&pn=ABPYM INFOMATIC SOLUTION OPC PRIVATE LIMITED&tr=27417015484&tid=PPPL27417015484230226125309699c005d&am=500.00&cu=INR&tn=UPIIntent",
        "status": "PENDING",
        "expiresAt": "2026-02-23T07:28:09.435Z",
        "expiresInSeconds": 300,
        "txnDate": "2026-02-23 07:23:08",
        "apiStatus": "Success",
        "transactionId": "cmlyuntvg01bp01s6q27lgaol"
    },
    "message": "QR Successfully Generated"
}
{
  "status": "ERROR",
  "subCode": "400",
  "message": "VPA does not exist for the account provided"
}