developer
How to Integrate Direct UPI in Shopify India (No 2% Commissions)
Step-by-step guide to integrating direct UPI QR and intent checkout on Shopify India. Bypass 2% payment aggregator commissions and achieve instant T+0 settlement.
Shopify is the preferred platform for Indian direct-to-consumer (D2C) brands. From apparel to specialty coffee and consumer electronics, founders appreciate Shopify’s inventory management and marketing ecosystem.
However, operating a Shopify store in India comes with a significant margin penalty: paying 2% plus 18% GST to payment aggregators on every transaction, compounded by Shopify’s own platform fees. When 85% of your customers choose UPI at checkout, paying a 2% middleman cut on a zero-interchange payment rail directly reduces your ad spend and operating profit.
Here is the complete technical guide on integrating direct UPI QR and mobile intent checkout in Shopify India with zero percentage-based commissions.
The Shopify India Payment Commission Problem
Traditional payment aggregator integrations on Shopify create multiple layers of fee extraction:
The Double Fee Squeeze on Shopify India:
┌─────────────────────────────────────────────────────────────┐
│ 1. Shopify Subscription Fee: $39 to $399 / month │
│ 2. Payment Gateway Commission: 2.00% of Gross Revenue │
│ 3. 18% GST on Gateway Fees: 0.36% of Gross Revenue │
│ 4. Settlement Delay: 48 to 72 Hours (T+2) │
│ Total Effective Payment Loss: 2.36% of every order! │
└─────────────────────────────────────────────────────────────┘
For a D2C store generating ₹25 Lakhs per month, that represents over ₹59,000 lost every single month—funds that could otherwise be allocated to Meta ads or influencer collaborations.
How Direct UPI Works with Shopify Checkout
Instead of routing customers through a centralized third-party aggregator pool, VyaparGateway creates an automated peer-to-merchant connection between Shopify and your bank account:
[Customer at Shopify Checkout]
│
▼
[Selects "Instant UPI (GPay / PhonePe / Paytm)"]
│
┌─────────┴─────────────────────────────────────────┐
│ Mobile Device: Opens UPI App directly via Intent │
│ Desktop Browser: Displays Real-Time Dynamic QR │
└───────────────────┬───────────────────────────────┘
│ (Customer Enters PIN)
▼
[Bank Account Credited Directly in Real Time (T+0)]
│
▼
[VyaparGateway Webhook fires to Shopify Admin API]
│
▼
[Shopify Order Status: Marked PAID & Inventory Allocated]
Step-by-Step Integration with VyaparGateway
Step 1: Create a Private Shopify App
- In your Shopify Admin, navigate to Settings > Apps and sales channels > Develop apps.
- Click Create an app and name it
VyaparGateway Direct UPI. - Under Configuration > Admin API integration, grant the following scopes:
write_orders,read_orderswrite_fulfillments,read_fulfillments
- Install the app and copy your Admin API Access Token.
Step 2: Configure Custom Payment Method in Shopify
- Navigate to Settings > Payments > Manual payment methods.
- Click Add manual payment method > Custom payment method.
- Name:
UPI (Google Pay / PhonePe / Paytm / CRED - 0% Fee). - In the instructions box, insert instructions informing the user that an instant QR modal or intent trigger will confirm their order automatically upon payment.
Automating Order Status Updates via Webhooks (Code)
When a customer pays your direct UPI QR code or mobile intent link, VyaparGateway receives the bank webhook and updates Shopify’s order status via GraphQL/REST:
import { Request, Response } from "express";
import crypto from "crypto";
import axios from "axios";
const SHOPIFY_ADMIN_URL = `https://${process.env.SHOPIFY_SHOP_NAME}.myshopify.com/admin/api/2026-01`;
const SHOPIFY_ACCESS_TOKEN = process.env.SHOPIFY_ADMIN_ACCESS_TOKEN!;
export async function handleShopifyUpiWebhook(req: Request, res: Response) {
// 1. Verify cryptographic signature from VyaparGateway
const signature = req.headers["x-vyapar-signature"] as string;
const hash = crypto
.createHmac("sha256", process.env.VYAPAR_SECRET!)
.update(JSON.stringify(req.body))
.digest("hex");
if (signature !== hash) {
return res.status(401).json({ error: "Invalid webhook signature" });
}
const { shopifyOrderId, utr, amountPaid, status } = req.body;
if (status !== "SUCCESS") {
return res.status(200).json({ status: "IGNORED" });
}
try {
// 2. Mark the Order as PAID in Shopify via Admin API
const response = await axios.post(
`${SHOPIFY_ADMIN_URL}/orders/${shopifyOrderId}/transactions.json`,
{
transaction: {
kind: "capture",
status: "success",
amount: amountPaid,
gateway: "VyaparGateway UPI",
authorization: utr,
},
},
{
headers: {
"X-Shopify-Access-Token": SHOPIFY_ACCESS_TOKEN,
"Content-Type": "application/json",
},
}
);
console.log(`Shopify Order #${shopifyOrderId} marked PAID with UTR: ${utr}`);
return res.status(200).json({ success: true, transactionId: response.data.transaction.id });
} catch (error: any) {
console.error("Failed to update Shopify order:", error.response?.data || error.message);
return res.status(500).json({ error: "Shopify API synchronization failure" });
}
}
Financial ROI: Calculating Annual Savings
| Monthly Shopify Sales | Standard 2% PG + GST | VyaparGateway Flat Plan | Annual Profit Retained |
|---|---|---|---|
| ₹ 10,00,000 | ₹ 23,600 / mo | ₹ 1,999 / mo | ₹ 2,59,212 |
| ₹ 30,00,000 | ₹ 70,800 / mo | ₹ 2,999 / mo | ₹ 8,13,612 |
| ₹ 75,00,000 | ₹ 1,77,000 / mo | ₹ 4,999 / mo | ₹ 20,64,012 |
| ₹ 1.5 Crore | ₹ 3,54,000 / mo | ₹ 9,999 / mo | ₹ 41,28,012 |
By deploying VyaparGateway on your Shopify store, you eliminate intermediary transaction fees, receive funds directly into your bank in real time, and protect your store from sudden aggregator account holds.
Direct answers
Frequently asked questions
- Can I accept UPI payments on Shopify without Razorpay or Cashfree?
- Yes. By using custom payment apps or manual payment methods connected to VyaparGateway's direct UPI webhook engine, Shopify merchants can collect UPI payments directly into their own bank account with 0% transaction commission.
- Does Shopify charge additional fees for third-party manual payment gateways?
- When configured as a custom app or custom manual payment method with automated webhook verification, Shopify does not levy the standard 0.5% to 2% third-party gateway surcharge that applies to centralized third-party aggregators.
- How does the customer experience work on mobile Shopify stores?
- On mobile devices, clicking 'Pay with UPI' initiates a deep-link intent trigger that automatically opens Google Pay, PhonePe, or Paytm with the exact order amount pre-filled. Once authenticated, the order updates to 'Paid' instantly.
Build your payment flow
Explore the API and browser-only merchant tools.
Create UPI checkout orders, verify signed events, or test the free calculators and generators without exposing credentials.