Instant confirmation
Orders turn paid as soon as the FamPay alert reaches your inbox.
Customers pay your FamPay UPI ID. FamGateway reads the alert email, matches the order and sends your website a signed confirmation, with a clean success or failed page for your customer.
Orders turn paid as soon as the FamPay alert reaches your inbox.
Customers see a clear receipt or a helpful failure page, then return to your site automatically.
Every webhook and redirect is signed with your API key, so nobody can fake a payment.
Revenue, requests and every transaction in one clear view.
Log in with one tap. Your Gmail App Password is stored AES-256 encrypted.
Payments go straight to your UPI ID. We only read the alert.
Your site calls the API with an amount.
They scan the QR or open their UPI app.
FamPay's email is matched to the order.
Webhook fires and the customer lands on the success page.
This is the same flow your customer goes through. Try a successful payment, or let the order expire to see the failed page.
Create an order, send the customer to payment_url, then trust the signed webhook or redirect. Success and failed pages are hosted for you.
<?php
$ch = curl_init('https://famxgateway.flexexp.store/api/create_order.php');
curl_setopt_array($ch, [
CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['X-API-KEY: YOUR_API_KEY'],
CURLOPT_POSTFIELDS => http_build_query([
'mid' => 'YOUR_MID', 'amount' => 499, 'order_id' => 'ORDER123',
'redirect_url' => 'https://yoursite.com/thanks.php',
'webhook_url' => 'https://yoursite.com/webhook.php',
]),
]);
$res = json_decode(curl_exec($ch), true);
header('Location: ' . $res['payment_url']);
const res = await fetch('https://famxgateway.flexexp.store/api/create_order.php', {
method: 'POST',
headers: { 'X-API-KEY': 'YOUR_API_KEY', 'Content-Type': 'application/json' },
body: JSON.stringify({ mid: 'YOUR_MID', amount: 499, order_id: 'ORDER123',
redirect_url: 'https://yoursite.com/thanks',
webhook_url: 'https://yoursite.com/webhook' })
});
const { payment_url } = await res.json();
window.location = payment_url;
curl -X POST https://famxgateway.flexexp.store/api/create_order.php \
-H "X-API-KEY: YOUR_API_KEY" \
-d "mid=YOUR_MID" -d "amount=499" -d "order_id=ORDER123" \
-d "redirect_url=https://yoursite.com/thanks"
<?php // thanks.php and webhook.php
$sign = hash_hmac('sha256',
"$_GET[order_id]|$_GET[status]|$_GET[amount]|$_GET[rrn]", $apiKey);
if (!hash_equals($sign, $_GET['sign'])) die('Fake request');
// webhook: compare X-Signature with
// hash_hmac('sha256', file_get_contents('php://input'), $apiKey)
When a customer pays, FamPay sends a transaction alert to your Gmail. FamGateway reads that alert over IMAP, matches the amount and marks the order as paid within seconds.
No. You only need a FamPay account with its linked Gmail address. Your customers pay your FamPay UPI ID directly, so the money never passes through us.
Your App Password is encrypted with AES-256 before it is stored. It can only read mail, and you can revoke it from your Google account at any time.
To tell two customers apart, each pending order gets a unique amount such as ₹100.03. It is the only reliable way to match a UPI payment to an order automatically.
Fifteen minutes by default. After that the order expires and a new one must be created.
Yes. Pass a webhook_url when you create the order. We send a signed JSON POST as soon as the payment is verified.
This build has no platform fee. You only need hosting with PHP and the IMAP extension.