React Native SDK
Official SUQO SDK for React Native.
Collect a SUQO payment in a React Native full-screen sheet. Your backend creates a checkout session through SUQO's API and hands your app its id; this package opens SUQO's own checkout page for that id, lets the buyer pay, and tells you how it went.
Source: github.com/suqo-ai/suqo-react-native · npm: @suqo/react-native · v0.0.1
No credential in the app. This package makes no SUQO API calls of its own and holds no API key. The session id is the only thing it knows — single-use, short-lived, and carrying no buyer details — so nothing sensitive and nothing long-lived ever sits in your app bundle.
Install
npm install @suqo/react-native react-native-webviewreact-native-webview is the only native dependency — it works in Expo Go and bare React Native with no config plugin. Peer dependencies: react >=18, react-native >=0.72, react-native-webview >=13.
What's included
SuqoProvideranduseSuqoCheckout()— one provider at the app root, and a hook that returnsopen()andclose().- Exactly one outcome per
open()— exactly one ofonSuccess,onFailureoronClosefires, and the promiseopen()returns resolves with that same outcome, so you canawaitinstead of passing callbacks. - Sandbox by default —
modeis'sandbox'unless you say'live', so an app that names neither cannot take a live payment by accident. - Gateway hand-off handled for you — bank and wallet deeplinks are passed to the OS, and the buyer returns to the screen exactly as they left it.
- No navigation library needed — the screen is a full-screen
Modal, not a route, and Android's hardware back button dismisses it.
The session must already have a customer. There is no buyer-detail field anywhere on
open(). A session created without a customer shows the page's own "can't be paid" explanation and reports onEvent({ type: 'unavailable', reason: 'no-customer' }). Assign the customer on your backend, through the checkout-session API, before you hand the id to open().Next
- Quickstart — mount the provider and open your first payment.
- Configure the provider —
mode,baseUrl, labels, safe-area insets and exports. - Handle outcomes —
onSuccess,onFailure,onClose, and what to trust. - Debug with events — the
onEventstream and theunavailableevent. - Troubleshooting — by error-panel copy.
- Changelog — what shipped.