BipinOne Developer Platform • UPI Gateway REST API v1.2

UPI Gateway API Documentation

Zero-fee developer API for automated UPI payments. Generate dynamic Paytm Business QR codes, launch native deep-link intents (PhonePe, GPay, Paytm, BHIM), and receive cryptographically verified webhook notifications.

Merchant Authentication

Production API Credentials & Webhooks

To view or regenerate your private production API Key, set your Webhook URL, and manage HMAC secrets, access your Developer Console.

Base API URL: https://www.bipinone.com/api
Payload Parameter: "key": "YOUR_KEY"
Webhook Authentication: HMAC-SHA256

Direct Settlement

Zero merchant commission or gateway holds. Payments settle directly into your linked bank account via Paytm Business QR.

Multi-App Intent

Automatically opens installed UPI banking applications on mobile (Google Pay, PhonePe, Paytm, FamPay, BHIM) with pre-filled amounts.

HMAC-SHA256 Webhooks

Instant callback notifications delivered to your backend URL upon UTR settlement with tamper-proof cryptographic signatures.

1

Create Order & Generate QR Code

Call this endpoint from your backend server to initiate a payment transaction and receive dynamic QR URLs & intent strings.

POST https://www.bipinone.com/api/create_order
Alias: /api/v1/upi/create_order
Request Parameters (JSON Body)
Field Type Required Description
key string Required Your production merchant API Key. Retrieve from Developer Console →
client_txn_id string Required Unique transaction identifier generated by your application (e.g. ORD_100248). Max 50 chars.
amount numeric Required Order amount in INR (minimum 1.00, up to 2 decimal places).
p_info string Required Product or service description shown to the customer (e.g. Pro Membership).
customer_name string Required Full name of the paying customer.
customer_email string Required Customer email address for automated receipt generation.
customer_mobile string Required 10-digit mobile number of customer.
redirect_url string Required URL where customer is redirected after payment verification.
udf1, udf2, udf3 string Optional Custom merchant metadata (e.g. user_id, cart_id) returned back in webhooks.
curl -X POST https://www.bipinone.com/api/create_order \
  -H "Content-Type: application/json" \
  -d '{
    "key": "YOUR_API_KEY",
    "client_txn_id": "ORD_1793151603",
    "amount": "100.00",
    "p_info": "Premium Membership Plan",
    "customer_name": "Developer Test",
    "customer_email": "developer@bipinone.com",
    "customer_mobile": "9876543210",
    "redirect_url": "https://yourdomain.com/payment-complete",
    "udf1": "user_id_42"
  }'
Successful Response (HTTP 200 OK)
{
  "status": true,
  "msg": "Order Created Successfully",
  "data": {
    "order_id": 1042,
    "order_token": "bb0cbadc86a0117595f1095ec1372134",
    "payment_url": "https://www.bipinone.com/upigateway/pay/bb0cbadc86a0117595f1095ec1372134",
    "upi_id_hash": "8fcf91373767e1d82abb736c9f50c05892b32ac13aa7eaf36c460f33eab4757a",
    "upi_url": "upi://pay?pa=paytmqr5tv1kn@ptys&pn=Paytm+Business+QR&am=100.00&cu=INR&tn=ORD_1719283748",
    "client_txn_id": "ORD_1719283748",
    "amount": "100.00"
  }
}
2

Check Order Status

Poll or verify settlement status using your unique client_txn_id and transaction date.

POST https://www.bipinone.com/api/check_order_status
Alias: /api/v1/upi/check_order_status
Parameters (JSON Body)
Field Type Required Description
key string Required Your production merchant API Key.
client_txn_id string Required The order identifier sent during order creation.
txn_date string Required Date of order creation in format DD-MM-YYYY (e.g. 28-10-2026).
curl -X POST https://www.bipinone.com/api/check_order_status \
  -H "Content-Type: application/json" \
  -d '{
    "key": "YOUR_API_KEY",
    "client_txn_id": "ORD_1234567890",
    "txn_date": "28-10-2026"
  }'
Successful Verification Response (200 OK)
{
  "status": true,
  "msg": "Transaction Details",
  "data": {
    "id": 1042,
    "client_txn_id": "ORD_1234567890",
    "customer_name": "Jon Doe",
    "customer_email": "jondoe@gmail.com",
    "customer_mobile": "9876543210",
    "p_info": "Premium Plan",
    "amount": "100.00",
    "status": "success",
    "remark": "UTR Verified",
    "udf1": "user_id_45",
    "udf2": "",
    "udf3": "",
    "redirect_url": "https://yourdomain.com/payment-complete",
    "upi_txn_id": "928374829102",
    "created_at": "2026-10-28 01:40:03"
  }
}
3

Automated Webhooks & HMAC Verification

Instant callback POST dispatch when a customer completes payment. Verified via HMAC-SHA256 signature in headers.

Whenever a transaction settles, our server sends an HTTP POST request (application/x-www-form-urlencoded) to your Webhook URL configured in the merchant console.

Header X-Webhook-Signature contains the HMAC-SHA256 hash computed over the raw request payload using your secret key.

// BipinOne Native Webhook Verification (No SDK Needed)
$rawPayload = file_get_contents('php://input');
$signature  = $_SERVER['HTTP_X_WEBHOOK_SIGNATURE'] ?? '';
$secret     = 'YOUR_WEBHOOK_SECRET_KEY';

$expectedSignature = hash_hmac('sha256', $rawPayload, $secret);

if (hash_equals($expectedSignature, $signature)) {
    $status      = $_POST['status'];       // 'success' / 'failure'
    $clientTxnId = $_POST['client_txn_id'];
    $utrNumber   = $_POST['upi_txn_id'];   // Bank settlement UTR
    $amount      = $_POST['amount'];

    if ($status === 'success') {
        // 1. Mark order paid in your database
        // 2. Unlock digital product or subscription
    }

    http_response_code(200);
    echo json_encode(['status' => 'success']);
    exit;
} else {
    http_response_code(401);
    echo 'Invalid signature';
    exit;
}
4

Official SDKs & Integration Kits

Plug-and-play packages for backend and mobile apps with ready-to-run helpers.

Free on Store

PHP & Laravel SDK (v1.0)

Zero-dependency PHP 7.4 - 8.3+ and Laravel 8-11 SDK. Includes automatic HTTP client, service provider, Facade, webhook verification, and example controllers.

Get Free on BipinOne Store
Native Java / Kotlin

Android UPI Intent Helper

Native Java / Kotlin helper that takes the upi_url from Create Order response and launches the installed UPI app chooser on customer phones.

Android Native Intent Trigger (Java)
// UpiCheckoutHelper.java - Trigger installed UPI apps
package com.bipinone.upigateway;

import android.content.Intent;
import android.net.Uri;
import androidx.appcompat.app.AppCompatActivity;

public class UpiCheckoutHelper {
    public static void launchUpiIntent(AppCompatActivity activity, String upiUri, int requestCode) {
        Uri uri = Uri.parse(upiUri);
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setData(uri);

        Intent chooser = Intent.createChooser(intent, "Pay using UPI");
        if (chooser.resolveActivity(activity.getPackageManager()) != null) {
            activity.startActivityForResult(chooser, requestCode);
        }
    }
}

Need Custom Gateway Integration or Support?

We offer end-to-end integration for your custom Node.js, Python/Django, WordPress, WooCommerce, or mobile applications.