SUQODocs
User GuideAPI ReferenceSDKs

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-webview

react-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

  • SuqoProvider and useSuqoCheckout() — one provider at the app root, and a hook that returns open() and close().
  • Exactly one outcome per open() — exactly one of onSuccess, onFailure or onClose fires, and the promise open() returns resolves with that same outcome, so you can await instead of passing callbacks.
  • Sandbox by default — mode is '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

On this page