# Coinvay React Native integration · 1.2.0 Copy CoinvayCheckout.tsx into your existing React Native iOS/Android application. It opens hosted checkout in the system browser and checks payment through your server. No wallet private keys or merchant API keys belong in the app. Deploy the included `server/` and read BACKEND.md for its full setup. Node 22.13+, a private SQLite file, HTTPS reverse proxy, merchant API key, signed webhook and/or real cron polling are required. Use your existing authenticated order system to create the trusted order on `/internal/orders`, then return its orderId + per-order accessToken only to the rightful customer. Never call the internal route from the mobile application or embed its admin key. Pass `{backend:'https://your-backend.example',orderId,accessToken}` to the component. Your app may obtain these values after login from its own backend. Do not store the token in analytics or public URLs. Order-specific paid status is server-confirmed; your server's delivery worker still controls actual product access. Polling does not require a Coinvay webhook plan. The component provides Pay with crypto and Check payment. The customer returns manually from the browser. Deep-link returns, push notifications, app-specific routing, native wallet SDKs, app-store distribution and your app authentication are not included. This is an integration component and backend source, not a compiled APK/IPA. Your existing app supplies React and React Native dependencies. Test on real iOS and Android devices: browser opening, manual return, lost network, late confirmation, invalid/expired order token and two accounts attempting the same order. No device builds or real payments were performed in this environment. Refunds and automatic subscriptions are separate flows. ## Branding The updated Coinvay logo assets and usage instructions are included in [BRANDING.md](BRANDING.md). Use SVG on supported web surfaces and PNG for native/platform restrictions. ## Original store currency The currency-aware backend uses `currency` with a trusted decimal `amount` when creating a saved order, or integer `cents` in that currency’s minor units when calling the SDK directly (legacy field name). USD is the default for existing records. Example: `{reference:"order-123", amount:"1000.00", currency:"INR", email:"buyer@example.com"}` for `Store.create`; for `Coinvay.create`, use `{reference:"order-123", cents:100000, currency:"INR"}`. The server catalog may set `currency`. The Shopify adapter takes currency only from its authenticated payment session. Coinvay returns USD amount/currency plus originalAmount/originalCurrency and the rate snapshot. Save and compare both source and USD totals before fulfillment. Kit database upgrades add the original currency and locked USD amount without changing old USD orders. Actual FX availability and codes come from /api/currencies. No fiat conversion/remittance is performed. ## Manual or automatic account connection · 1.2.0 Use **Connect to Coinvay** to sign in and authorize this store, or retain manual API-key setup. This release adds separate checkout business name/logo and per-store signed webhooks without changing other stores. Read **CONNECT.md**, included in this package, for exact controls, environment variables, administrator-session integration, encryption/backups, permissions and staging checks. Custom app kits require your existing administrator authentication; Shopify remains subject to platform approval.