The SDK ships with an Expo config plugin that automatically configures the native permissions and settings required for both iOS and Android.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/stripe/stripe-terminal-react-native/llms.txt
Use this file to discover all available pages before exploring further.
Installation
Add the plugin
Add@stripe/stripe-terminal-react-native to the plugins array in your app.json or app.config.js:
app.json
Plugin options
You can pass optional configuration to customize the permission descriptions and enable optional features:app.json
| Option | Type | Description |
|---|---|---|
bluetoothBackgroundMode | boolean | Adds bluetooth-central to UIBackgroundModes in Info.plist |
locationWhenInUsePermission | string | Custom description for NSLocationWhenInUseUsageDescription |
bluetoothPeripheralPermission | string | Custom description for NSBluetoothPeripheralUsageDescription |
bluetoothAlwaysUsagePermission | string | Custom description for NSBluetoothAlwaysUsageDescription |
localNetworkUsagePermission | string | Custom description for NSLocalNetworkUsageDescription |
tapToPayCheck | boolean | Injects the TapToPay.isInTapToPayProcess() guard into MainApplication |
appDelegate | boolean | Injects TerminalApplicationDelegate.onCreate(this) into MainApplication |
What the plugin does
When you runexpo prebuild (or EAS Build), the plugin automatically applies the following native configuration:
iOS (Info.plist)
- Adds
NSBluetoothAlwaysUsageDescription - Adds
NSBluetoothPeripheralUsageDescription - Adds
NSLocationWhenInUseUsageDescription - Adds
NSLocalNetworkUsageDescription - Optionally adds
bluetooth-centraltoUIBackgroundModes - Adds a blank Swift file required for native modules with Swift files
AndroidManifest.xml)
- Adds
BLUETOOTH_CONNECTandBLUETOOTH_SCANpermissions - Adds
ACCESS_FINE_LOCATIONandACCESS_COARSE_LOCATIONpermissions - Adds
android.jetifier.ignorelist=jackson-coretogradle.properties
Managed vs. bare workflow
- Managed workflow
- Bare workflow
In a managed Expo project, the plugin handles all native configuration. You do not need to edit any native files manually.
Version requirements
This SDK uses
@expo/config-plugins version 7.8.4 or above. This corresponds to Expo SDK 50+. If you are on an older Expo SDK, upgrade before adding the plugin.