developer
The Ultimate Payment Gateway for Mobile Apps in India (0% Fees)
How Indian mobile app developers (React Native, Flutter, Android, iOS) are integrating zero-fee UPI intent links to bypass 2% gateway fees and 30% app store taxes.
Building a profitable mobile app in India is incredibly difficult. You have to acquire users, build a great product, and then somehow navigate the complex, expensive world of payment collection.
If you are an app developer searching for a payment gateway for apps, you are typically hit with two massive taxes:
- The App Store Tax: Google Play and Apple taking 15% to 30% for In-App Purchases (IAPs).
- The Gateway Tax: Standard payment aggregators taking 2% + 18% GST for physical goods or external services.
Here is how smart Indian app developers (building in React Native, Flutter, Android, and iOS) are bypassing the 2% aggregator tax entirely by using zero-fee, direct-to-bank UPI Intent links.
The Double Tax on Mobile App Developers
If you are selling physical goods, event tickets, offline consulting, or services consumed outside the app, you are not required to use Apple or Google’s native In-App Purchase billing. You are allowed to use third-party gateways.
However, standard payment aggregators in India still charge 2% + 18% GST on every transaction.
If your app processes ₹10,00,000 (10 Lakhs) a month in gross merchandise value (GMV), you are paying over ₹23,000 every single month just in payment processing fees. For an indie developer or a growing startup, this is a massive drain on runway.
The Power of Deep Linking (UPI Intent)
You don’t need a heavy, crash-prone, 50MB SDK to accept payments in your app. In India, the NPCI has standardized the upi://pay URI scheme.
This means that any app on the user’s phone can trigger a deep link that automatically opens GPay, PhonePe, or Paytm with the exact payment details pre-filled.
The Flow:
- User clicks “Checkout” in your app.
- Your backend generates an order ID and creates a URI:
upi://pay?pa=merchant@bank&pn=YourApp&am=499.00&tr=ORDER123 - Your app triggers this deep link.
- The OS presents a bottom sheet asking the user to select their preferred UPI app.
- The user enters their PIN to pay.
Because this routes the funds directly over NPCI rails into your existing bank account, VyaparGateway can process this with a 0% transaction fee.
Implementation in React Native and Flutter
Triggering a UPI intent from a cross-platform framework is incredibly simple. You use the native URL launcher libraries.
React Native Example:
import { Linking, Alert } from 'react-native';
const handleUPICheckout = async (upiString) => {
try {
const supported = await Linking.canOpenURL(upiString);
if (supported) {
await Linking.openURL(upiString);
} else {
Alert.alert("No UPI App Found", "Please install GPay, PhonePe, or Paytm.");
}
} catch (error) {
console.error("An error occurred", error);
}
};
Flutter Example:
import 'package:url_launcher/url_launcher.dart';
Future<void> handleUPICheckout(String upiString) async {
final Uri upiUri = Uri.parse(upiString);
if (await canLaunchUrl(upiUri)) {
await launchUrl(upiUri, mode: LaunchMode.externalApplication);
} else {
print("Could not launch UPI app.");
}
}
Secure Server-Side Verification
The biggest mistake app developers make is trusting the client-side app to verify the payment.
If your React Native app checks a status and says, “Payment Successful, unlock the premium feature”, a malicious user can easily decompile your app, intercept the network request using a proxy tool like Charles, and forge a success response.
You must use Server-to-Server Webhooks.
When the user pays via the UPI app, the NPCI clears the funds directly into your bank account. VyaparGateway immediately fires an HTTP POST request to your backend server:
{
"event": "intent.paid",
"data": {
"client_reference_id": "ORDER123",
"amount": 499.00,
"status": "COMPLETED"
}
}
Your backend server verifies the HMAC SHA-256 signature of this webhook to guarantee it came securely from VyaparGateway, and then your backend updates the database to mark ORDER123 as paid. The client app simply polls your backend or listens via WebSockets to see when the order status changes.
Stop paying a 2% tax on your mobile app revenue. Build with VyaparGateway’s zero-fee, developer-first UPI infrastructure today.
Direct answers
Frequently asked questions
- How do I integrate UPI payments into my React Native or Flutter app?
- Instead of using heavy, complex SDKs, you simply generate a standard NPCI UPI URI string (e.g., upi://pay?...) on your backend. In your app, you use the native 'Linking' (React Native) or 'url_launcher' (Flutter) module to trigger the URI. This automatically opens the user's installed UPI apps like GPay or PhonePe.
- Does this bypass the 30% Google Play or Apple App Store commission?
- If you are selling physical goods or services consumed outside the app (e.g., ecommerce, food delivery, cab booking, real-world consulting), you are generally allowed to use third-party payment gateways and bypass the 30% in-app purchase (IAP) tax.
- How does my backend know if the user actually paid in the UPI app?
- Never trust the client-side app to verify a payment, as users can intercept network requests. When the transaction clears on the NPCI network, VyaparGateway fires a secure, HMAC-signed server-to-server webhook. Your backend listens for this webhook to safely fulfill the order.
- Are there any transaction fees?
- Unlike standard aggregators that charge 2% + GST, VyaparGateway routes funds directly to your existing bank account via direct-to-bank UPI rails. This means you pay 0% transaction fees.
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.