Verify Google Play and Apple purchases from Expo apps — server-side, via REST API. Use any IAP library; Tierux handles verification from your backend.
Tierux is IAP-library agnostic. Use react-native-iap with a dev client or EAS Build — any library that gives you a purchase token. Tierux handles verification server-side.
// Install react-native-iap (with dev client / EAS Build) npx expo install react-native-iap // Then rebuild with: npx expo run:android # or run:ios
After a successful purchase, send the token or transaction data to your backend for server-side verification. The client never holds your API key.
// In your Expo app import RNIap, { PurchaseError } from 'react-native-iap'; // After purchase completes, send token to your backend const handlePurchase = async (purchase: Purchase) => { const result = await fetch('https://your-api.com/verify', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ platform: Platform.OS, purchaseToken: purchase.transactionReceipt, productId: purchase.productId, packageName: 'com.yourapp', }), }); await RNIap.finishTransaction({ purchase, isConsumable: false }); return result.json(); };
Your backend calls Tierux's REST API. Any backend works — Node, Python, Go, or even Edge Functions.
// Your backend (Node.js example) app.post('/verify', async (req, res) => { const { platform, purchaseToken, productId, userId } = req.body; const endpoint = platform === 'android' ? '/v1/purchases/google-play/verify' : '/v1/purchases/apple/verify'; const verification = await fetch( `https://tierux.com/api${endpoint}`, { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json', }, body: JSON.stringify({ appId: 'app_123', userId, packageName: 'com.yourapp', productId, purchaseToken, }), } ); const data = await verification.json(); res.json({ active: data.active, entitlement: data.entitlement }); });
Your backend returns the entitlement state. Use it in your Expo app to conditionally render premium features.
// In your Expo app — gate premium features const { active, entitlement } = await result.json(); if (active) { // Show premium content return; } // Show paywall or limited content return ;
Deep dive on how Tierux verifies tokens server-side for Google Play and Apple.
Similar REST-first pattern — verify purchases from any React Native app.
Full integration path with curl examples and language-agnostic endpoints.
Free tier — unlimited apps, 1 paywall. No credit card, no revenue share.
Start free