> ## Documentation Index
> Fetch the complete documentation index at: https://docs.y.uno/llms.txt
> Use this file to discover all available pages before exploring further.

# Migration Overview

> Move from any legacy Yuno SDK mode to the unified Transaction API.

The unified SDK replaces all previous SDK modes (Full, Lite, Seamless, Render, Headless, and Secure Fields) with a single `Transaction` class. If you're currently using any of those modes, pick your platform and legacy mode from the table below.

## Find your guide

| Legacy mode | iOS | Android | Web |
| - | - | - | - |
| **Lite**: pre-selected method, SDK manages the form | [iOS](/docs/yuno-sdk/migration/ios/payment/lite) | [Android](/docs/yuno-sdk/migration/android/payment/lite) | [Web](/docs/yuno-sdk/migration/web/lite) |
| **Full**: SDK renders the payment methods list | [iOS](/docs/yuno-sdk/migration/ios/payment/full) | [Android](/docs/yuno-sdk/migration/android/payment/full) | [Web](/docs/yuno-sdk/migration/web/full) |
| **Render**: you embed the SDK's form in your own layout | [iOS](/docs/yuno-sdk/migration/ios/payment/render) | [Android](/docs/yuno-sdk/migration/android/payment/render) | *(not applicable)* |
| **Headless**: you collect data in your own UI | [iOS](/docs/yuno-sdk/migration/ios/payment/headless) | [Android](/docs/yuno-sdk/migration/android/payment/headless) | [Web](/docs/yuno-sdk/migration/web/headless) |
| **Seamless**: SDK-managed payment creation with merchant-triggered start | [iOS](/docs/yuno-sdk/migration/ios/payment/seamless) | [Android](/docs/yuno-sdk/migration/android/payment/seamless) | [Web](/docs/yuno-sdk/migration/web/seamless) |
| **Seamless Lite**: Seamless with a pre-selected method | *(not applicable)* | *(not applicable)* | [Web](/docs/yuno-sdk/migration/web/seamless-lite) |
| **Secure Fields**: card data collected in PCI-compliant iframes | *(not applicable)* | *(not applicable)* | [Web](/docs/yuno-sdk/migration/web/secure-fields) |
| **Enrollment**: save a payment method without charging | [Lite](/docs/yuno-sdk/migration/ios/enrollment/lite) · [Render](/docs/yuno-sdk/migration/ios/enrollment/render) · [Headless](/docs/yuno-sdk/migration/ios/enrollment/headless) | [Lite](/docs/yuno-sdk/migration/android/enrollment/lite) · [Render](/docs/yuno-sdk/migration/android/enrollment/render) · [Headless](/docs/yuno-sdk/migration/android/enrollment/headless) | [Web](/docs/yuno-sdk/migration/web/enrollment) |
| **Status**: standalone payment status screen | *(not applicable)* | *(not applicable)* | [Web](/docs/yuno-sdk/migration/web/status) |
| **Fraud**: device fingerprinting | *(not applicable)* | *(not applicable)* | [Web](/docs/yuno-sdk/migration/web/fraud) |

## What changed

Every legacy mode maps to the same `Transaction` class. The mode name is gone. What you pass to the config and which controllers you override determines the behavior:

* **Session type** (`checkoutSession` vs `customerSession`) determines payment vs enrollment.
* **`createPayment` controller** determines whether the SDK creates the payment or your backend does. If you don't override it, the SDK manages payment creation end-to-end (the Seamless equivalent).
* **`showView` controller** (iOS, Android) determines whether the SDK presents the form full-screen or hands you the view to embed (the Render equivalent).
* **`transactionData` on `PaymentMethodSelected`** (iOS, Android) or **`data` on the `paymentMethod` you pass to `start()`** (Web) determines whether the SDK shows a form or tokenizes data you've already collected (the Headless equivalent).
* **`getPaymentMethodsViews`** replaces all legacy list-mounting and external wallet button APIs (the Full equivalent).

Each guide has the same shape: what to settle before you start, a side-by-side code comparison, and one table of what changes, with what to do about each change.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.