# SDK

GlomoPay provides native SDKs for mobile platforms to help you embed payment checkout flows directly into your applications with minimal setup.

## Available SDKs

### React Native SDK

The React Native SDK enables you to embed the GlomoPay LRS checkout flow inside your React Native application. It renders a secure WebView-based checkout modal and exposes simple callbacks for payment outcomes.

- **Supported Payment Flows:** LRS (Liberalised Remittance Scheme)
- **Platforms:** iOS and Android
- **Language:** TypeScript / JavaScript


[View React Native SDK →](/product-guide/sdk/react-native-sdk)

### Flutter SDK

The Flutter SDK provides a native widget (`GlomoPayCheckout`) for embedding GlomoPay checkout into Flutter applications. It supports multiple payment flows and handles device security compliance out of the box.

- **Supported Payment Flows:** LRS (Liberalised Remittance Scheme), NRI Payments
- **Platforms:** iOS and Android
- **Language:** Dart


[View Flutter SDK →](/product-guide/sdk/flutter-sdk)

### Unified SDK (Web)

The Unified SDK enables you to embed the GlomoPay checkout flow directly into your web application. It supports standard payments, LRS, subscriptions, and payment sessions with automatic flow detection.

- **Supported Payment Flows:** Standard, LRS, Subscriptions, Payment Sessions
- **Platforms:** Web (all modern browsers)
- **Language:** JavaScript / TypeScript


[View Unified SDK (Web) →](/product-guide/sdk/unified-sdk)

## Payment Flow Support

| Payment Flow | React Native SDK | Flutter SDK | Unified SDK (Web) |
|  --- | --- | --- | --- |
| LRS (Liberalised Remittance Scheme) | ✅ | ✅ | ✅ |
| NRI Payments | ❌ | ✅ | ❌ |
| Standard Payments | ❌ | ❌ | ✅ |
| Subscriptions | ❌ | ❌ | ✅ |
| Payment Sessions | ❌ | ❌ | ✅ |


## How It Works

All GlomoPay SDKs follow the same integration pattern:

1. **Create an order** on your backend using the GlomoPay API to obtain an `order_id`.
2. **Initialise the SDK** in your app with your `publicKey` and the `order_id`.
3. **Start the checkout** by calling the SDK's `start()` method — this launches the secure checkout UI.
4. **Handle callbacks** for `onPaymentSuccess`, `onPaymentFailure`, `onPaymentTerminate`, and `onSdkError` to update your app state and backend accordingly.


## Security

All SDKs are built with the following security measures:

- **WebView-based checkout** — payment data is handled within a secure, isolated WebView and never passes through your application code.
- **Signature verification** — every payment success or failure callback includes a `signature` field for backend verification.
- **Device compliance checks** — the SDKs detect rooted (Android) or jailbroken (iOS) devices and block checkout initiation on non-compliant devices, in line with regulatory requirements.
- **Mock mode isolation** — using a `test_` public key automatically enables mock mode, ensuring test transactions are completely isolated from live payments.


## Choosing the Right SDK

- If you are building a **web application**, use the [Unified SDK (Web)](/product-guide/sdk/unified-sdk).
- If your app is built with **React Native**, use the [React Native SDK](/product-guide/sdk/react-native-sdk).
- If your app is built with **Flutter**, use the [Flutter SDK](/product-guide/sdk/flutter-sdk).
- If you need **NRI payment flow** support, the [Flutter SDK](/product-guide/sdk/flutter-sdk) is currently the only option.