Stripe Payment Integration for Indian Businesses
How a Stripe integration works for an Indian business selling abroad: invite-only accounts, export declarations, Checkout, signed webhooks and idempotent fulfilment.
- Organisation
- WavX Solutions
- Telephone
- +919310079927
Description
Integration Stripe integration: checkout, webhooks and India's export rules
Stripe suits an Indian business that sells to customers abroad and can get an account: as of October 2026 Stripe is invite-only in India, focused on businesses expanding internationally, and export payments need the customer's name, billing address and a description on every charge. The integration creates a Checkout Session on your server, fulfils orders from verified webhooks, and never from the success page alone.
Discuss an integration Last updated 2 October 2026
Who Stripe is for, from India
Stripe is the gateway international buyers recognise, and it is what overseas clients often expect to see at checkout or on an invoice. For an Indian business, it fits a specific case: you sell services or goods to customers outside India and you have, or can get, a Stripe India account.
Three facts from Stripe's own pages, as of October 2026, decide whether that case is yours:
Accounts are invite-only in India. New Indian businesses cannot sign up on the website and must request an invite through Stripe's sales team. Stripe says it supports a select number of businesses, with a focus on international expansion.
Export payments carry extra data. The business must be registered (not an individual), opt in to exports, choose one transaction purpose code, and hold an Importer Exporter Code if it sells physical goods. Every export charge needs the customer's name, billing address and description, and a shipping address for goods. International card payments require 3D Secure.
No UPI on an Indian account. Stripe's UPI page lists the countries whose accounts can accept UPI; India is not one of them.
If most of your customers pay in rupees, start with an Indian gateway; the Razorpay integration page covers that route. Many businesses run Razorpay for India and Stripe for abroad.
Data flow: a one-off payment through Stripe Checkout
Customer clicks Pay
Your server ── create Customer (name, billing address)
── create Checkout Session (line items, currency, description,
metadata.order_id, success_url with {CHECKOUT_SESSION_ID})
+ Idempotency-Key header
Stripe-hosted Checkout ── card, 3D Secure
├──▶ webhook: checkout.session.completed (Stripe-Signature header)
│ │
│ ▼
│ Your server ── verify signature on the raw body ── reply 200 at once
│ ── queue: fulfil_checkout(session_id)
│ retrieve session, check payment_status,
│ mark order paid once, record Stripe ids
└──▶ redirect to success_url ── same fulfil_checkout(session_id), then show result
Stripe calls the fulfilment function from two directions on purpose, so it must be safe to run twice, even at the same moment.
Field mapping
Your system
Stripe object and field
Notes
Order number
Checkout Session metadata.order_id ; also client_reference_id
How the webhook finds your order
Customer name and billing address
Customer name , address (country as a two-letter ISO code)
Required on every export charge
Shipping address
shipping.address
Required for physical goods sent abroad
What was sold
description and line items
Must describe the product or service accurately; Stripe builds invoice descriptions from the items
Amount
amount in the currency's smallest unit
1099 means 10.99 in USD
Currency
currency
Presenting in the buyer's currency needs the export details above
Payment status
Session payment_status ; PaymentIntent status
Fulfil only when not unpaid
Stripe ids
Session id, PaymentIntent id, Customer id
Store all three for refunds, disputes and reconciliation
Limits and rules Stripe documents
Rule
As read on 2 October 2026
Webhook signature
Stripe-Signature header, HMAC SHA-256; libraries reject events older than 5 minutes by default; the raw request body must be used
Reply
Return a 2xx quickly, before any slow work
Retries
Up to three days with exponential backoff in live mode; three times over a few hours in a sandbox
Duplicates
The same event can arrive more than once; log event ids and skip repeats
Ordering
Not guaranteed; do not use the created time to order events
Endpoints
Up to 16 webhook endpoints; HTTPS with TLS 1.2 or higher in live mode
Idempotency keys
Accepted on all POST requests, up to 255 characters; keys may be pruned after 24 hours
Standard India pricing
2% for Visa and Mastercard cards issued in India; 3% for those issued abroad; 3.5% for American Express issued abroad; 4.3% for international cards with USD or other currency presentment; plus 2% where currency conversion applies
Prices change and negotiated plans differ; check Stripe's India pricing page before budgeting. The fee comparison with Razorpay and UPI is on payment gateway integration .
Gotchas
Fulfilling from the success page. The commonest bug. A customer who closes the tab after paying never triggers it.
Signature checks that always fail. A framework that parses JSON before the check alters the raw body, and verification breaks. The webhook route must read the raw bytes.
Export charges missing data. A charge to a foreign card without name, billing address or description can fail. Collect them in the form, not afterwards.
Double orders on a retry. A network timeout followed by a retry creates two sessions unless the call carries an idempotency key derived from your order.
Test and live secrets mixed up. Each endpoint has a different signing secret in test and live modes.
Assuming one country's rules. Advice written for a US Stripe account (UPI, instant sign-up, payment methods) often does not apply to an Indian one.
What WavX builds
WavX builds Stripe into websites, web apps and mobile apps: server-side Checkout or Payment Element flows with the export fields India requires, a verified webhook receiver with a queue, idempotent fulfilment, refunds and dispute notices into your admin, subscriptions through Stripe Billing where needed, and a daily reconciliation of orders against Stripe payments and payouts. Where a business also collects rupees, WavX builds both gateways behind one order model, so the rest of the system does not care which one was used.
Effort band
Within a build, the cost model lists payments at ₹90,000 for a web or software build and ₹80,000 on a mobile app, as line items in a planning range; see the software cost estimator . Adding Stripe to software another team built is quoted after reading the code. Stripe's fees are paid to Stripe and are separate.
When not to build it
If you sell only to Indian customers, use an Indian gateway. If you only need to send an occasional invoice to a foreign client, Stripe's own invoicing or a payment link, once your account is approved, may need no development at all. Custom integration is for a store, app or platform where payments must update orders, access or accounts automatically.
Frequently asked questions
Can an Indian business open a Stripe account?
Only by invitation. Stripe's support page says businesses in India cannot sign up through its website and must request an invite, and that it supports a select number of businesses with a focus on international expansion. Existing Indian accounts keep working. Check Stripe's page before planning around it, since the position can change.
Can we take UPI through Stripe from Indian customers?
Not on an Indian Stripe account. Stripe's UPI documentation lists the countries whose Stripe accounts can accept UPI, and India is not among them as of October 2026. For rupee payments from Indian customers, an Indian gateway such as Razorpay is the practical route; many businesses run both.
What do we need to accept international payments from India?
Stripe's India exports guide asks for a registered business (sole proprietorship, LLP or company, not an individual), an opt-in to exports, a transaction purpose code, and an Importer Exporter Code if you sell physical goods. Each export charge must carry the customer's name, billing address and a description, plus a shipping address for goods.
Why not just mark the order paid when the customer reaches the thank-you page?
Because the customer may never reach it. Stripe's fulfilment guide says a customer can pay and lose their connection before the landing page loads, so webhooks are required. We fulfil from the verified webhook and use the landing page only to show the result sooner.
Sources
Stripe support: Stripe accounts are invite-only in India · read 2 October 2026
Stripe docs: Accept international payments from India · read 2 October 2026
Stripe support: Accepting international payments from Stripe accounts in India · read 2 October 2026
Stripe pricing (India) · read 2 October 2026
Stripe docs: UPI payments · read 2 October 2026
Stripe docs: Receive Stripe events in your webhook endpoint · read 2 October 2026
Stripe docs: Fulfil orders (hosted Checkout) · read 2 October 2026
Stripe API reference: Idempotent requests · read 2 October 2026
Related
Payment gateway integration
Razorpay integration
What is a webhook?
Web application development
API and system integration services
Build your own software — your way, your pricing.
WavX Solutions is here to create your own software in a fully custom way, built exactly how you work — with a pricing model that fits your business. Connect now and let's build it.
Contact Now helpwavx@gmail.com