INTEGRATION · PAYMENTS · RAZORPAY · STRIPE · UPI
AVAILABLE FOR WORKFreelance · Contract · Full-time

Payment gateway integration for Flutter apps.

Taking money in a mobile app is mostly not about the checkout screen. It is about orders that cannot be paid twice, webhooks that actually arrive, subscriptions that renew, and a ledger that reconciles at the end of the month. I build that whole path.

Razorpay · Stripe · PhonePe · PayU · UPI · Subscriptions · GST invoices

01 · THE HARD PART

A checkout button is the easy 10%

The visible part of payments is a screen with a pay button. The rest is state: an order created on your server, a payment intent or order id passed to the gateway, a result returned to the app, and a webhook that confirms the truth even when the user closes the app mid-payment.

Most production payment bugs come from trusting the client. A Flutter app can be interrupted, backgrounded or killed during a redirect, so the server and the webhook must be the source of truth for whether money moved.

02 · GATEWAYS

Which provider fits which business

For Indian customers, Razorpay and PhonePe cover UPI, cards, netbanking and wallets with familiar flows. Stripe is usually the better fit for international cards and subscription billing outside India, and PayPal still matters for some export and freelance use cases. Cashfree and PayU appear where payouts or enterprise contracts require them.

I integrate the provider that matches your customers and settlement needs, and can support more than one so domestic and international payments take the right route.

03 · SUBSCRIPTIONS

Recurring revenue without manual chasing

Subscriptions add plan changes, trials, proration, retries on failed cards, dunning messages, cancellation and access control tied to billing state. If entitlement is checked only at purchase, users keep access after a failed renewal — or lose it while a retry is still in progress.

The backend owns subscription state; the app asks for entitlement and renders accordingly. That keeps web, mobile and TV products consistent when they share one account.

04 · OPERATIONS

Reconciliation, refunds and GST

Every payment needs to appear in your books with the right reference. That means storing gateway order ids, payment ids, amounts, fees, tax and status, then matching them against settlement reports instead of guessing from app logs.

Refunds, partial refunds, failed payouts and GST invoices are part of the build, not an afterthought. I also make the test path realistic: sandbox keys, test cards, UPI success and failure simulation, and webhook replay.

WHAT'S INCLUDED

The payment path from tap to settlement

  • ✓
    Server-side orders
    Order and intent creation on your backend, never trusted to the client.
  • ✓
    Webhooks
    Signed webhook handling with retries, idempotency and status sync.
  • ✓
    UPI and cards
    Razorpay, PhonePe, PayU, Cashfree and UPI collect flows.
  • ✓
    International
    Stripe and PayPal for cards, wallets and cross-border billing.
  • ✓
    Subscriptions
    Plans, trials, renewals, proration and entitlement checks.
  • ✓
    Refunds
    Full and partial refunds with ledger updates and customer notices.
  • ✓
    Invoices
    GST-ready invoices and receipts generated from payment records.
  • ✓
    Reconciliation
    Settlement matching so finance is not reading app logs.
COMMON QUESTIONS

Working together

Which payment gateway is best for a Flutter app in India?

Razorpay or PhonePe usually suit Indian customers because UPI, cards and netbanking are first-class. Stripe is better for international cards and subscription billing. Many products support two providers so domestic and cross-border payments route correctly.

Why do payments fail even though the app shows success?

The app is confirming what the client saw, not what the bank did. The reliable source is the server-side verification and the gateway webhook. Building around the webhook instead of the client callback removes most duplicate and phantom-payment problems.

Can you add subscriptions to an existing app?

Yes. That usually means adding plan definitions, a billing record on your backend, webhook handling for renewals and failures, and entitlement checks in the app.

Do you handle App Store and Play Store billing?

Where Apple or Google require their billing for digital goods, yes. Physical goods and services can use a normal gateway. Getting this distinction right avoids store rejections.

LET’S TALK

Need this kind of help on your product?

Share the product, current stage and the support you need. I will review the context and suggest a practical next step.