developer
Accepting UPI Payments in Bubble.io: API Connector & Webhooks Guide
Step-by-step tutorial on integrating direct UPI payments in Bubble.io apps using the API Connector, dynamic QR display, and backend webhook workflows.
Bubble.io is the premier no-code platform for building complete software products, SaaS applications, and interactive marketplaces. Indian founders frequently use Bubble to launch minimum viable products (MVPs) in weeks instead of months.
However, monetizing an Indian Bubble app often presents challenges. Most Bubble tutorials teach Stripe integration, which requires credit cards that most Indian consumers do not use for local software. Furthermore, standard Indian payment aggregator plugins charge 2% + 18% GST and introduce complex JavaScript iframe conflicts.
Here is the complete visual programming guide to accepting direct UPI payments in Bubble.io using the native API Connector and Backend Workflows.
Why Indian Bubble.io Founders Need Native UPI
In India, credit card ownership is under 5% of the adult population, whereas UPI active users exceed 350 million. If your Bubble app only accepts cards:
- Conversion drops by 70%: Users abandon checkout when prompted for 16-digit card numbers and OTPs.
- Aggregators charge 2%: Third-party aggregators deduct a percentage on every transaction and hold payouts in escrow for 48 hours.
By integrating VyaparGateway via Bubble’s official API Connector, you collect payments directly into your own bank account with 0% transaction deductions and instant T+0 settlement.
The Bubble Payment Workflow Architecture
[User clicks "Upgrade to Pro" in Bubble App]
│
▼
[Trigger Bubble Workflow: Call API Connector]
└── POST https://api.vyapargateway.com/v1/orders/create
│
▼
[API returns: qr_image_url, upi_intent_url, order_id]
│
┌────────────────┴──────────────────────────────────┐
│ Mobile Device: Opens UPI App directly │
│ Desktop: Displays Dynamic QR in a Bubble Popup │
└────────────────┬──────────────────────────────────┘
│ (User approves in PhonePe / GPay)
▼
[Bank fires Webhook to Bubble Backend Workflow API]
└── POST https://your-app.bubbleapps.io/api/1.1/wf/upi_webhook
│
▼
[Bubble Action: Make changes to Current User -> Set 'is_pro = yes']
Configuring the Bubble API Connector
1. Install the API Connector
Navigate to the Plugins tab in your Bubble editor, search for API Connector by Bubble, and click Install.
2. Configure the Create Order Call
Add a new API called VyaparGateway UPI:
- Authentication: Private key in header
- Key name:
Authorization - Key value:
Bearer YOUR_API_KEY
API Call: Create UPI Order
- Use as: Action
- Data type: JSON
- Method: POST
- URL: https://api.vyapargateway.com/v1/orders/create
- Body (JSON):
{
"amount": <amount>,
"orderId": "<order_id>",
"customerName": "<customer_name>",
"customerPhone": "<customer_phone>",
"redirectUrl": "https://yourapp.bubbleapps.io/dashboard"
}
(Make <amount> and <order_id> dynamic parameters by unchecking the “Private” checkbox in Bubble).
Setting Up Backend Webhook Workflows in Bubble
To listen for real-time payment confirmations from the bank:
1. Enable Backend Workflows
In Bubble Settings > API, check the box: Enable Workflow API and backend workflows.
2. Create the Webhook Endpoint
- Go to the Backend Workflows page from your page selector.
- Click New API Workflow and name it
upi_webhook. - Check the box: Expose as a public API workflow.
- Parameter definition: Select Detect request data.
- Copy the initialized URL and paste it into your VyaparGateway portal.
3. Define the Fulfillment Logic
Once the initial payload is detected, configure your workflow actions:
- Action 1: Search for Order where
order_id = Request Data's orderId. - Action 2: Make changes to Order: Set
status = "PAID",utr = Request Data's utr. - Action 3: Make changes to User: Set
plan_active = yes,credits = credits + 100.
UX Best Practices: Responsive QR & Mobile Intent
To optimize conversion across mobile and desktop devices in Bubble:
┌──────────────────────────────────────────────────────────────────┐
│ Conditionals for Responsive Checkout │
├──────────────────────────────────────────────────────────────────┤
│ │
│ WHEN Current Page Width < 768px (Mobile): │
│ • Display "Pay with GPay / PhonePe" Button │
│ • Workflow Action: Open external website: [upi_intent_url] │
│ │
│ WHEN Current Page Width >= 768px (Desktop): │
│ • Show Bubble Popup containing [qr_image_url] │
│ • Animate subtle pulsating ring around the QR code │
│ • Start a 3-second 'Do every 3 seconds' check on order status │
│ │
└──────────────────────────────────────────────────────────────────┘
By leveraging Bubble’s visual workflow engine alongside VyaparGateway’s direct UPI API, you create an enterprise-grade payment flow without writing custom server code, avoiding third-party commissions and receiving 100% of your software revenue directly into your bank account.
Direct answers
Frequently asked questions
- Can you accept Indian UPI payments in a Bubble.io web app?
- Yes. By using the official Bubble API Connector plugin, you can call VyaparGateway's REST API to generate dynamic UPI QR codes and intent links, receiving automated order confirmations via Bubble Backend Workflows.
- Do I need a paid Bubble plan to receive payment webhooks?
- Yes. To expose a public API endpoint in Bubble (Backend Workflows) capable of receiving bank webhooks without human intervention, you need at least a Bubble Starter plan.
- How fast is payment status confirmation in Bubble.io?
- When a customer pays via UPI, the bank webhook triggers your Bubble Backend Workflow within 500 milliseconds, instantly updating the user's account state, activating subscriptions, or unlocking SaaS credits.
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.