> Documentation index: [Saleor](/llms.txt) · [This section](/developer/llms.txt)
> Source: https://docs.saleor.io/developer/app-store/apps/np-atobarai/migration-from-plugin

# NP Atobarai App - migration from plugin

You should consider migrating from the [NP Atobrai Plugin](/developer/app-store/legacy-plugins/np-atobarai.md) to the App. This document will help you with that.

<a id="why-migrate"></a>

## Why migrate?

Plugins API in Saleor are deprecated, and we are proceeding to remove plugins in favor of Apps. Existing plugins are not maintained. Apps are more powerful, and they are the future of Saleor extensions.

<a id="differences-between-plugin-and-the-app"></a>

## Differences between plugin and the App

| Plugin | App |
| --- | --- |
| Using Payments API | Using Transactions API |

<a id="migration-guide"></a>

## Migration guide

Note down your `merchantCode`, `spCode` and `terminalId` from already existing configuration - they will be needed to create a new one in app. After you create configuration you need to assign it to channel that has currency of `JPY` and then you are ready to use app! See detailed guide on what changed in different steps of the payment process:

<a id="fetching-configuration"></a>

### Fetching configuration

The plugin uses the `avaiablePaymentGateways` query to fetch the configuration of the payment gateway. The App uses the `paymentGatewayInitialize` mutation to fetch the configuration.

<a id="payment-mutations"></a>

### Payment mutations

The Plugin uses `checkoutPaymentCreate` mutation to create a payment. The App uses `transactionInitializeSession` and `transactionProcessSession` mutations to create a payment.

<a id="running-checkoutcomplete"></a>

### Running `checkoutComplete`

The `checkoutComplete` mutation should be now run at the end of the process, when transactions are reported.

`checkoutConfirm` response fields: `confirmationNeeded` and `confirmationData` should be ignored now.
