---
description: Unofficial Capacitor plugin for Square Mobile Payments SDK to accept payments in your Android and iOS apps.
title: Capacitor Square Mobile Payments Plugin for Android & iOS - Capawesome
image: https://capawesome.io/docs/assets/images/social/plugins/square-mobile-payments.png
---

[ Skip to content](#capawesomecapacitor-square-mobile-payments) 

[ 🎉 Introducing **Capawesome Platform** — one platform for Live Updates, Native Builds, App Store Publishing, and Insider SDKs.](https://capawesome.io) 

* [  Formbricks ](/docs/plugins/formbricks/)
* [  Geocoder ](/docs/plugins/geocoder/)
* [  Google Sign-In ](/docs/plugins/google-sign-in/)
* [  libSQL ](/docs/plugins/libsql/)
* [  Live Update ](/docs/plugins/live-update/)
* [  Managed Configurations ](/docs/plugins/managed-configurations/)
* [  Media Session ](/docs/plugins/media-session/)
* [  ML Kit ](/docs/plugins/mlkit/)
* [  NFC ](/docs/plugins/nfc/)
* [  OAuth ](/docs/plugins/oauth/)
* [  Pedometer ](/docs/plugins/pedometer/)
* [  Photo Editor ](/docs/plugins/photo-editor/)
* [  PostHog ](/docs/plugins/posthog/)
* [  Printer ](/docs/plugins/printer/)
* [  Purchases ](/docs/plugins/purchases/)
* [  RealtimeKit ](/docs/plugins/realtimekit/)
* [  Screen Orientation ](/docs/plugins/screen-orientation/)
* [  Screenshot ](/docs/plugins/screenshot/)
* [  Secure Preferences ](/docs/plugins/secure-preferences/)
* [  Speech Recognition ](/docs/plugins/speech-recognition/)
* [  Speech Synthesis ](/docs/plugins/speech-synthesis/)
* [  Share Target ](/docs/plugins/share-target/)
* Square Mobile Payments [  Square Mobile Payments ](/docs/plugins/square-mobile-payments/)
* [  iOS ](#ios)
* [  Configuration ](#configuration)
* [  Usage ](#usage)
* [  API ](#api)
* [  Type Aliases ](#type-aliases)
* [  Enums ](#enums)
* [  Changelog ](#changelog)
* [  License ](#license)
* [  SQLite ](/docs/plugins/sqlite/)
* [  Superwall ](/docs/plugins/superwall/)
* [  Torch ](/docs/plugins/torch/)
* [  Wifi ](/docs/plugins/wifi/)
* [  Zip ](/docs/plugins/zip/)
* [  Cloud ](/docs/cloud/)
* [  Live Updates ](/docs/cloud/live-updates/)
* Advanced
* Integrations
* [  Native Builds ](/docs/cloud/native-builds/)
* [  Configuration ](/docs/cloud/native-builds/configuration/)
* [  Environments ](/docs/cloud/native-builds/environments/)
* Guides
* [  Sample Projects ](/docs/cloud/native-builds/sample-projects/)
* [  Troubleshooting ](/docs/cloud/native-builds/troubleshooting/)
* [  Automations ](/docs/cloud/automations/)
* [  Assist ](/docs/cloud/assist/)
* Account
* Organizations
* [  Organization and User Management ](/docs/cloud/organizations/memberships/)
* [  Single Sign-On (SSO) ](/docs/cloud/organizations/sso/)
* [  Teams ](/docs/cloud/organizations/teams/)
* [  Two-Factor Authentication ](/docs/cloud/organizations/two-factor-authentication/)
* [  Integrations ](/docs/cloud/integrations/)
* [  License Keys ](/docs/cloud/license-keys/)
* [  Webhooks ](/docs/cloud/webhooks/)
* [  Pricing ](https://capawesome.io/pricing/)
* [  FAQ ](/docs/cloud/faq/)
* [  Support ](/docs/cloud/support/)
* [  Contributing ](/docs/contributing/)
* [  LLMs ](/docs/llms/)
* [  Insiders ](/docs/insiders/)
* [  License ](https://capawesome.io/legal/eula/)
* [  Support ](/docs/insiders/support/)
* [  FAQ ](/docs/insiders/faq/)
* [  Blog ](/blog/)
* Categories

* [  iOS ](#ios)
* [  Configuration ](#configuration)
* [  Usage ](#usage)
* [  API ](#api)
* [  Type Aliases ](#type-aliases)
* [  Enums ](#enums)
* [  Changelog ](#changelog)
* [  License ](#license)

# @capawesome/capacitor-square-mobile-payments[¶](#capawesomecapacitor-square-mobile-payments "Permanent link")

Unofficial Capacitor plugin for [Square Mobile Payments SDK](https://developer.squareup.com/docs/mobile-payments-sdk).[1](#fn:1)

[ ![Deliver Live Updates to your Capacitor app with Capawesome Cloud](../../assets/external/cloud.capawesome.io/assets/banners/cloud-build-and-deploy-capacitor-apps.69628c3f.png) ](https://cloud.capawesome.io/) 

## Features[¶](#features "Permanent link")

This plugin provides a comprehensive integration with Square's Mobile Payments SDK for in-person payment processing. Here are some of the key features:

* 🖥️ **Cross-platform**: Supports Android and iOS.
* 💳 **Payment Processing**: Accept in-person payments with Square card readers.
* 📱 **Reader Management**: Pair, manage, and monitor Square card readers.
* 🔐 **Secure Authorization**: OAuth-based authorization with Square access tokens.
* 🎨 **Flexible UI**: Choose between Square's default payment UI or build your own custom interface.
* 📊 **Real-time Updates**: Listen to reader status changes, pairing events, and payment completion.
* 💰 **Multiple Payment Methods**: Support for contactless (tap), chip (dip), swipe, and manual entry.
* 🌐 **Online & Offline**: Process payments online or offline with automatic sync.
* 🧾 **Receipt Data**: Access card details, authorization codes, and EMV data for compliant receipts.
* 🔁 **Up-to-date**: Always supports the latest Capacitor version.

Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look!

## Newsletter[¶](#newsletter "Permanent link")

Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/).

## Compatibility[¶](#compatibility "Permanent link")

| Plugin Version | Capacitor Version | Status         |
| -------------- | ----------------- | -------------- |
| 0.1.x          | \>=8.x.x          | Active support |

## Installation[¶](#installation "Permanent link")

You can use our **AI-Assisted Setup** to install the plugin. Add the [Capawesome Skills](https://github.com/capawesome-team/skills) to your AI tool using the following command:

`[](#%5F%5Fcodelineno-0-1)npx skills add capawesome-team/skills --skill capacitor-plugins
`

Then use the following prompt:

`` [](#%5F%5Fcodelineno-1-1) Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-square-mobile-payments` plugin in my project.
 ``

If you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below:

`[](#%5F%5Fcodelineno-2-1)npm install @capawesome/capacitor-square-mobile-payments
[](#%5F%5Fcodelineno-2-2)npx cap sync
`

### Android[¶](#android "Permanent link")

#### SDK Initialization[¶](#sdk-initialization "Permanent link")

The Square Mobile Payments SDK must be initialized in your `Application` class before using the plugin. Create a custom `Application` class (if you don't already have one) and add the following code:

1. Create a file `MainApplication.java` in your app's `android/app/src/main/java/<your-package>/` directory:

`[](#%5F%5Fcodelineno-3-1)package com.example.app;
[](#%5F%5Fcodelineno-3-2)
[](#%5F%5Fcodelineno-3-3)import android.app.Application;
[](#%5F%5Fcodelineno-3-4)import com.squareup.sdk.mobilepayments.MobilePaymentsSdk;
[](#%5F%5Fcodelineno-3-5)
[](#%5F%5Fcodelineno-3-6)public class MainApplication extends Application {
[](#%5F%5Fcodelineno-3-7)
[](#%5F%5Fcodelineno-3-8)    @Override
[](#%5F%5Fcodelineno-3-9)    public void onCreate() {
[](#%5F%5Fcodelineno-3-10)        super.onCreate();
[](#%5F%5Fcodelineno-3-11)        MobilePaymentsSdk.initialize("YOUR_SQUARE_APPLICATION_ID", this);
[](#%5F%5Fcodelineno-3-12)    }
[](#%5F%5Fcodelineno-3-13)}
`

**Note**: Replace `YOUR_SQUARE_APPLICATION_ID` with your actual Square Application ID.

1. Register the custom `Application` class in your `AndroidManifest.xml`:

`[](#%5F%5Fcodelineno-4-1)<application
[](#%5F%5Fcodelineno-4-2)    android:name=".MainApplication"
[](#%5F%5Fcodelineno-4-3)    ...>
`

#### Variables[¶](#variables "Permanent link")

If needed, you can define the following project variable in your app's `variables.gradle` file to change the default version of the dependency:

* `$squareMobilePaymentsSdkVersion` version of `com.squareup.sdk:mobile-payments-sdk` (default: `2.3.4`)

This can be useful if you encounter dependency conflicts with other plugins in your project.

### iOS[¶](#ios "Permanent link")

#### SDK Initialization[¶](#sdk-initialization%5F1 "Permanent link")

The Square Mobile Payments SDK must be initialized in your `AppDelegate.swift` file before using the plugin. Add the following code to your `AppDelegate.swift`:

1. Import the `SquareMobilePaymentsSDK` at the top of the file:

`[](#%5F%5Fcodelineno-5-1)import SquareMobilePaymentsSDK
`

1. Add the Square Application ID to your `Info.plist` file:

`[](#%5F%5Fcodelineno-6-1)<key>SquareApplicationID</key>
[](#%5F%5Fcodelineno-6-2)<string>YOUR_SQUARE_APPLICATION_ID_HERE</string>
`

**Note**: Replace `YOUR_SQUARE_APPLICATION_ID_HERE` with your actual Square Application ID. Do not use the placeholder value in production.

1. Initialize the SDK in the `application(_:didFinishLaunchingWithOptions:)` method:

`[](#%5F%5Fcodelineno-7-1)func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
[](#%5F%5Fcodelineno-7-2)    // Initialize Square Mobile Payments SDK
[](#%5F%5Fcodelineno-7-3)    // Get the Square Application ID from info.plist
[](#%5F%5Fcodelineno-7-4)    if let squareAppID = Bundle.main.object(forInfoDictionaryKey: "SquareApplicationID") as? String,
[](#%5F%5Fcodelineno-7-5)       !squareAppID.isEmpty && squareAppID != "YOUR_SQUARE_APPLICATION_ID_HERE" {
[](#%5F%5Fcodelineno-7-6)        MobilePaymentsSDK.initialize(
[](#%5F%5Fcodelineno-7-7)            applicationLaunchOptions: launchOptions,
[](#%5F%5Fcodelineno-7-8)            squareApplicationID: squareAppID
[](#%5F%5Fcodelineno-7-9)        )
[](#%5F%5Fcodelineno-7-10)    }
[](#%5F%5Fcodelineno-7-11)
[](#%5F%5Fcodelineno-7-12)    // Override point for customization after application launch.
[](#%5F%5Fcodelineno-7-13)    return true
[](#%5F%5Fcodelineno-7-14)}
`

#### Build Phases[¶](#build-phases "Permanent link")

Add a new "Run Script Phase" in Xcode to run the Square SDK setup script by following these steps:

1. On the **Build Phases** tab for your application target in Xcode, choose the + button (at the top left of the pane).
2. Choose **New Run Script Phase**. The new run script phase should be the last build phase.
3. Expand the new Run Script phase and enter the following script:

`[](#%5F%5Fcodelineno-8-1)FRAMEWORKS="${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}"
[](#%5F%5Fcodelineno-8-2)"${FRAMEWORKS}/SquareMobilePaymentsSDK.framework/setup"
`

More details can be found in the [Square Mobile Payments SDK iOS setup guide](https://developer.squareup.com/docs/mobile-payments-sdk/ios).

#### Privacy Descriptions[¶](#privacy-descriptions "Permanent link")

Add the `NSLocationWhenInUseUsageDescription`, `NSBluetoothAlwaysUsageDescription`, and `NSMicrophoneUsageDescription` keys to the `ios/App/App/Info.plist` file, which tells the user why your app is requesting location, Bluetooth, and microphone permissions:

`[](#%5F%5Fcodelineno-9-1)<key>NSBluetoothAlwaysUsageDescription</key>
[](#%5F%5Fcodelineno-9-2)<string>We need Bluetooth access to connect to Square card readers.</string>
[](#%5F%5Fcodelineno-9-3)<key>NSLocationWhenInUseUsageDescription</key>
[](#%5F%5Fcodelineno-9-4)<string>We need your location to confirm payments are occurring in a supported Square location.</string>
[](#%5F%5Fcodelineno-9-5)<key>NSMicrophoneUsageDescription</key>
[](#%5F%5Fcodelineno-9-6)<string>We need microphone access to receive data from magstripe card readers.</string>
`

## Configuration[¶](#configuration "Permanent link")

No configuration required for this plugin.

## Usage[¶](#usage "Permanent link")

`[](#%5F%5Fcodelineno-10-1)import { SquareMobilePayments, CardInputMethod } from '@capawesome/capacitor-square-mobile-payments';
[](#%5F%5Fcodelineno-10-2)
[](#%5F%5Fcodelineno-10-3)const initializeSDK = async () => {
[](#%5F%5Fcodelineno-10-4)  await SquareMobilePayments.initialize({
[](#%5F%5Fcodelineno-10-5)    locationId: 'YOUR_LOCATION_ID',
[](#%5F%5Fcodelineno-10-6)  });
[](#%5F%5Fcodelineno-10-7)
[](#%5F%5Fcodelineno-10-8)  await SquareMobilePayments.authorize({
[](#%5F%5Fcodelineno-10-9)    accessToken: 'YOUR_ACCESS_TOKEN',
[](#%5F%5Fcodelineno-10-10)  });
[](#%5F%5Fcodelineno-10-11)};
[](#%5F%5Fcodelineno-10-12)
[](#%5F%5Fcodelineno-10-13)const checkAuthorization = async () => {
[](#%5F%5Fcodelineno-10-14)  const { authorized } = await SquareMobilePayments.isAuthorized();
[](#%5F%5Fcodelineno-10-15)  console.log('Authorized:', authorized);
[](#%5F%5Fcodelineno-10-16)};
[](#%5F%5Fcodelineno-10-17)
[](#%5F%5Fcodelineno-10-18)const pairReader = async () => {
[](#%5F%5Fcodelineno-10-19)  await SquareMobilePayments.startPairing();
[](#%5F%5Fcodelineno-10-20)};
[](#%5F%5Fcodelineno-10-21)
[](#%5F%5Fcodelineno-10-22)const getReaders = async () => {
[](#%5F%5Fcodelineno-10-23)  const { readers } = await SquareMobilePayments.getReaders();
[](#%5F%5Fcodelineno-10-24)  for (const reader of readers) {
[](#%5F%5Fcodelineno-10-25)    console.log('Reader:', reader.serialNumber, reader.model, reader.status);
[](#%5F%5Fcodelineno-10-26)  }
[](#%5F%5Fcodelineno-10-27)};
[](#%5F%5Fcodelineno-10-28)
[](#%5F%5Fcodelineno-10-29)const processPayment = async () => {
[](#%5F%5Fcodelineno-10-30)  await SquareMobilePayments.startPayment({
[](#%5F%5Fcodelineno-10-31)    paymentParameters: {
[](#%5F%5Fcodelineno-10-32)      amountMoney: {
[](#%5F%5Fcodelineno-10-33)        amount: 100,
[](#%5F%5Fcodelineno-10-34)        currency: 'USD',
[](#%5F%5Fcodelineno-10-35)      },
[](#%5F%5Fcodelineno-10-36)      paymentAttemptId: crypto.randomUUID(),
[](#%5F%5Fcodelineno-10-37)    },
[](#%5F%5Fcodelineno-10-38)    promptParameters: {
[](#%5F%5Fcodelineno-10-39)      mode: 'DEFAULT',
[](#%5F%5Fcodelineno-10-40)      additionalMethods: ['KEYED'],
[](#%5F%5Fcodelineno-10-41)    },
[](#%5F%5Fcodelineno-10-42)  });
[](#%5F%5Fcodelineno-10-43)};
[](#%5F%5Fcodelineno-10-44)
[](#%5F%5Fcodelineno-10-45)const listenToPaymentEvents = () => {
[](#%5F%5Fcodelineno-10-46)  SquareMobilePayments.addListener('paymentDidFinish', (event) => {
[](#%5F%5Fcodelineno-10-47)    console.log('Payment completed:', event.payment.id);
[](#%5F%5Fcodelineno-10-48)    console.log('Amount:', event.payment.amountMoney.amount);
[](#%5F%5Fcodelineno-10-49)    console.log('Card:', event.payment.cardDetails?.card.lastFourDigits);
[](#%5F%5Fcodelineno-10-50)  });
[](#%5F%5Fcodelineno-10-51)
[](#%5F%5Fcodelineno-10-52)  SquareMobilePayments.addListener('paymentDidFail', (event) => {
[](#%5F%5Fcodelineno-10-53)    console.error('Payment failed:', event.message);
[](#%5F%5Fcodelineno-10-54)  });
[](#%5F%5Fcodelineno-10-55)
[](#%5F%5Fcodelineno-10-56)  SquareMobilePayments.addListener('paymentDidCancel', (event) => {
[](#%5F%5Fcodelineno-10-57)    console.log('Payment cancelled');
[](#%5F%5Fcodelineno-10-58)  });
[](#%5F%5Fcodelineno-10-59)};
[](#%5F%5Fcodelineno-10-60)
[](#%5F%5Fcodelineno-10-61)const listenToReaderEvents = () => {
[](#%5F%5Fcodelineno-10-62)  SquareMobilePayments.addListener('readerWasAdded', (event) => {
[](#%5F%5Fcodelineno-10-63)    console.log('Reader added:', event.reader.serialNumber);
[](#%5F%5Fcodelineno-10-64)  });
[](#%5F%5Fcodelineno-10-65)
[](#%5F%5Fcodelineno-10-66)  SquareMobilePayments.addListener('readerDidChange', (event) => {
[](#%5F%5Fcodelineno-10-67)    console.log('Reader changed:', event.reader.serialNumber, event.change);
[](#%5F%5Fcodelineno-10-68)  });
[](#%5F%5Fcodelineno-10-69)
[](#%5F%5Fcodelineno-10-70)  SquareMobilePayments.addListener('availableCardInputMethodsDidChange', (event) => {
[](#%5F%5Fcodelineno-10-71)    console.log('Available methods:', event.cardInputMethods);
[](#%5F%5Fcodelineno-10-72)  });
[](#%5F%5Fcodelineno-10-73)};
[](#%5F%5Fcodelineno-10-74)
[](#%5F%5Fcodelineno-10-75)const getAvailableMethods = async () => {
[](#%5F%5Fcodelineno-10-76)  const { cardInputMethods } = await SquareMobilePayments.getAvailableCardInputMethods();
[](#%5F%5Fcodelineno-10-77)  console.log('Available card input methods:', cardInputMethods);
[](#%5F%5Fcodelineno-10-78)};
`

## API[¶](#api "Permanent link")

* [initialize(...)](#initialize)
* [authorize(...)](#authorize)
* [isAuthorized()](#isauthorized)
* [deauthorize()](#deauthorize)
* [showSettings()](#showsettings)
* [showMockReader()](#showmockreader)
* [hideMockReader()](#hidemockreader)
* [getSettings()](#getsettings)
* [startPairing()](#startpairing)
* [stopPairing()](#stoppairing)
* [isPairingInProgress()](#ispairinginprogress)
* [getReaders()](#getreaders)
* [forgetReader(...)](#forgetreader)
* [retryConnection(...)](#retryconnection)
* [startPayment(...)](#startpayment)
* [cancelPayment()](#cancelpayment)
* [getAvailableCardInputMethods()](#getavailablecardinputmethods)
* [linkAppleAccount()](#linkappleaccount)
* [relinkAppleAccount()](#relinkappleaccount)
* [isAppleAccountLinked()](#isappleaccountlinked)
* [isDeviceCapable()](#isdevicecapable)
* [checkPermissions()](#checkpermissions)
* [requestPermissions()](#requestpermissions)
* [addListener('readerPairingDidBegin', ...)](#addlistenerreaderpairingdidbegin-)
* [addListener('readerPairingDidSucceed', ...)](#addlistenerreaderpairingdidsucceed-)
* [addListener('readerPairingDidFail', ...)](#addlistenerreaderpairingdidfail-)
* [addListener('readerWasAdded', ...)](#addlistenerreaderwasadded-)
* [addListener('readerWasRemoved', ...)](#addlistenerreaderwasremoved-)
* [addListener('readerDidChange', ...)](#addlistenerreaderdidchange-)
* [addListener('availableCardInputMethodsDidChange', ...)](#addlisteneravailablecardinputmethodsdidchange-)
* [addListener('paymentDidFinish', ...)](#addlistenerpaymentdidfinish-)
* [addListener('paymentDidFail', ...)](#addlistenerpaymentdidfail-)
* [addListener('paymentDidCancel', ...)](#addlistenerpaymentdidcancel-)
* [removeAllListeners()](#removealllisteners)
* [Interfaces](#interfaces)
* [Type Aliases](#type-aliases)
* [Enums](#enums)

### initialize(...)[¶](#initialize "Permanent link")

`[](#%5F%5Fcodelineno-11-1)initialize(options: InitializeOptions) => Promise<void>
`

Initialize the Square Mobile Payments SDK.

This method must be called before any other method.

Only available on Android and iOS.

| Param       | Type                                    |
| ----------- | --------------------------------------- |
| **options** | [InitializeOptions](#initializeoptions) |

**Since:** 0.0.1

---

### authorize(...)[¶](#authorize "Permanent link")

`[](#%5F%5Fcodelineno-12-1)authorize(options: AuthorizeOptions) => Promise<void>
`

Authorize the SDK with a Square access token.

Only available on Android and iOS.

| Param       | Type                                  |
| ----------- | ------------------------------------- |
| **options** | [AuthorizeOptions](#authorizeoptions) |

**Since:** 0.0.1

---

### isAuthorized()[¶](#isauthorized "Permanent link")

`[](#%5F%5Fcodelineno-13-1)isAuthorized() => Promise<IsAuthorizedResult>
`

Check if the SDK is currently authorized.

Only available on Android and iOS.

**Returns:** `Promise<[IsAuthorizedResult](#isauthorizedresult)>`

**Since:** 0.0.1

---

### deauthorize()[¶](#deauthorize "Permanent link")

`[](#%5F%5Fcodelineno-14-1)deauthorize() => Promise<void>
`

Deauthorize the SDK and clear the current authorization.

Only available on Android and iOS.

**Since:** 0.0.1

---

### showSettings()[¶](#showsettings "Permanent link")

`[](#%5F%5Fcodelineno-15-1)showSettings() => Promise<void>
`

Show the Square settings screen.

This displays a pre-built settings UI where merchants can view and manage their paired readers.

Only available on Android and iOS.

**Since:** 0.0.1

---

### showMockReader()[¶](#showmockreader "Permanent link")

`[](#%5F%5Fcodelineno-16-1)showMockReader() => Promise<void>
`

Show the Mock Reader UI for testing.

This displays a mock reader interface for testing payment flows without physical hardware. This is only for development and testing purposes and is therefore only available in debug builds.

Only available on Android and iOS.

**Since:** 0.1.1

---

### hideMockReader()[¶](#hidemockreader "Permanent link")

`[](#%5F%5Fcodelineno-17-1)hideMockReader() => Promise<void>
`

Hide the Mock Reader UI.

Only available on Android and iOS.

**Since:** 0.1.1

---

### getSettings()[¶](#getsettings "Permanent link")

`[](#%5F%5Fcodelineno-18-1)getSettings() => Promise<GetSettingsResult>
`

Get the current SDK settings.

Only available on Android and iOS.

**Returns:** `Promise<[GetSettingsResult](#getsettingsresult)>`

**Since:** 0.0.1

---

### startPairing()[¶](#startpairing "Permanent link")

`[](#%5F%5Fcodelineno-19-1)startPairing() => Promise<void>
`

Start pairing with a Square reader.

This initiates the reader pairing process. The SDK will search for nearby readers and pair with the first one found.

Only available on Android and iOS.

**Since:** 0.0.1

---

### stopPairing()[¶](#stoppairing "Permanent link")

`[](#%5F%5Fcodelineno-20-1)stopPairing() => Promise<void>
`

Stop the reader pairing process.

Only available on Android and iOS.

**Since:** 0.0.1

---

### isPairingInProgress()[¶](#ispairinginprogress "Permanent link")

`[](#%5F%5Fcodelineno-21-1)isPairingInProgress() => Promise<IsPairingInProgressResult>
`

Check if a pairing process is currently in progress.

Only available on Android and iOS.

**Returns:** `Promise<[IsPairingInProgressResult](#ispairinginprogressresult)>`

**Since:** 0.0.1

---

### getReaders()[¶](#getreaders "Permanent link")

`[](#%5F%5Fcodelineno-22-1)getReaders() => Promise<GetReadersResult>
`

Get a list of all paired readers.

Only available on Android and iOS.

**Returns:** `Promise<[GetReadersResult](#getreadersresult)>`

**Since:** 0.0.1

---

### forgetReader(...)[¶](#forgetreader "Permanent link")

`[](#%5F%5Fcodelineno-23-1)forgetReader(options: ForgetReaderOptions) => Promise<void>
`

Forget a paired reader.

Only available on Android and iOS.

| Param       | Type                                        |
| ----------- | ------------------------------------------- |
| **options** | [ForgetReaderOptions](#forgetreaderoptions) |

**Since:** 0.0.1

---

### retryConnection(...)[¶](#retryconnection "Permanent link")

`[](#%5F%5Fcodelineno-24-1)retryConnection(options: RetryConnectionOptions) => Promise<void>
`

Retry connecting to a reader.

Only available on Android and iOS.

| Param       | Type                                              |
| ----------- | ------------------------------------------------- |
| **options** | [RetryConnectionOptions](#retryconnectionoptions) |

**Since:** 0.0.1

---

### startPayment(...)[¶](#startpayment "Permanent link")

`[](#%5F%5Fcodelineno-25-1)startPayment(options: StartPaymentOptions) => Promise<void>
`

Start a payment flow.

This presents the payment UI and processes the payment using the specified parameters. Only one payment can be active at a time.

Only available on Android and iOS.

| Param       | Type                                        |
| ----------- | ------------------------------------------- |
| **options** | [StartPaymentOptions](#startpaymentoptions) |

**Since:** 0.0.1

---

### cancelPayment()[¶](#cancelpayment "Permanent link")

`[](#%5F%5Fcodelineno-26-1)cancelPayment() => Promise<void>
`

Cancel an ongoing payment.

Only available on Android and iOS.

**Since:** 0.0.1

---

### getAvailableCardInputMethods()[¶](#getavailablecardinputmethods "Permanent link")

`[](#%5F%5Fcodelineno-27-1)getAvailableCardInputMethods() => Promise<GetAvailableCardInputMethodsResult>
`

Get the currently available card input methods.

This returns the card entry methods that are available based on the connected readers (e.g., TAP, DIP, SWIPE, KEYED).

Only available on Android and iOS.

**Returns:** `Promise<[GetAvailableCardInputMethodsResult](#getavailablecardinputmethodsresult)>`

**Since:** 0.0.1

---

### linkAppleAccount()[¶](#linkappleaccount "Permanent link")

`[](#%5F%5Fcodelineno-28-1)linkAppleAccount() => Promise<void>
`

Link a Square seller account with an Apple ID for Tap to Pay on iPhone.

Presents an Apple sheet prompting the user to accept the Tap to Pay on iPhone terms and conditions.

Only available on iOS.

**Since:** 0.1.3

---

### relinkAppleAccount()[¶](#relinkappleaccount "Permanent link")

`[](#%5F%5Fcodelineno-29-1)relinkAppleAccount() => Promise<void>
`

Re-link a Square seller account with a different Apple ID.

Presents an Apple sheet to change the associated Apple ID by showing the Tap to Pay terms and conditions again.

Only available on iOS.

**Since:** 0.1.3

---

### isAppleAccountLinked()[¶](#isappleaccountlinked "Permanent link")

`[](#%5F%5Fcodelineno-30-1)isAppleAccountLinked() => Promise<IsAppleAccountLinkedResult>
`

Check if an Apple ID is already linked to a Square seller account.

Only available on iOS.

**Returns:** `Promise<[IsAppleAccountLinkedResult](#isappleaccountlinkedresult)>`

**Since:** 0.1.3

---

### isDeviceCapable()[¶](#isdevicecapable "Permanent link")

`[](#%5F%5Fcodelineno-31-1)isDeviceCapable() => Promise<IsDeviceCapableResult>
`

Check if the device is capable of Tap to Pay on iPhone.

Only available on iOS.

**Returns:** `Promise<[IsDeviceCapableResult](#isdevicecapableresult)>`

**Since:** 0.1.3

---

### checkPermissions()[¶](#checkpermissions "Permanent link")

`[](#%5F%5Fcodelineno-32-1)checkPermissions() => Promise<PermissionStatus>
`

Check the current permission status.

Only available on Android and iOS.

**Returns:** `Promise<[PermissionStatus](#permissionstatus)>`

**Since:** 0.0.1

---

### requestPermissions()[¶](#requestpermissions "Permanent link")

`[](#%5F%5Fcodelineno-33-1)requestPermissions() => Promise<PermissionStatus>
`

Request the required permissions.

Only available on Android and iOS.

**Returns:** `Promise<[PermissionStatus](#permissionstatus)>`

**Since:** 0.0.1

---

### addListener('readerPairingDidBegin', ...)[¶](#addlistenerreaderpairingdidbegin "Permanent link")

`[](#%5F%5Fcodelineno-34-1)addListener(eventName: 'readerPairingDidBegin', listenerFunc: ReaderPairingDidBeginListener) => Promise<PluginListenerHandle>
`

Listen for reader pairing events.

Only available on Android and iOS.

| Param            | Type                                                            |
| ---------------- | --------------------------------------------------------------- |
| **eventName**    | 'readerPairingDidBegin'                                         |
| **listenerFunc** | [ReaderPairingDidBeginListener](#readerpairingdidbeginlistener) |

**Returns:** `Promise<[PluginListenerHandle](#pluginlistenerhandle)>`

**Since:** 0.0.1

---

### addListener('readerPairingDidSucceed', ...)[¶](#addlistenerreaderpairingdidsucceed "Permanent link")

`[](#%5F%5Fcodelineno-35-1)addListener(eventName: 'readerPairingDidSucceed', listenerFunc: ReaderPairingDidSucceedListener) => Promise<PluginListenerHandle>
`

Listen for successful reader pairing events.

Only available on Android and iOS.

| Param            | Type                                                                |
| ---------------- | ------------------------------------------------------------------- |
| **eventName**    | 'readerPairingDidSucceed'                                           |
| **listenerFunc** | [ReaderPairingDidSucceedListener](#readerpairingdidsucceedlistener) |

**Returns:** `Promise<[PluginListenerHandle](#pluginlistenerhandle)>`

**Since:** 0.0.1

---

### addListener('readerPairingDidFail', ...)[¶](#addlistenerreaderpairingdidfail "Permanent link")

`[](#%5F%5Fcodelineno-36-1)addListener(eventName: 'readerPairingDidFail', listenerFunc: ReaderPairingDidFailListener) => Promise<PluginListenerHandle>
`

Listen for failed reader pairing events.

Only available on Android and iOS.

| Param            | Type                                                          |
| ---------------- | ------------------------------------------------------------- |
| **eventName**    | 'readerPairingDidFail'                                        |
| **listenerFunc** | [ReaderPairingDidFailListener](#readerpairingdidfaillistener) |

**Returns:** `Promise<[PluginListenerHandle](#pluginlistenerhandle)>`

**Since:** 0.0.1

---

### addListener('readerWasAdded', ...)[¶](#addlistenerreaderwasadded "Permanent link")

`[](#%5F%5Fcodelineno-37-1)addListener(eventName: 'readerWasAdded', listenerFunc: ReaderWasAddedListener) => Promise<PluginListenerHandle>
`

Listen for reader added events.

Only available on Android and iOS.

| Param            | Type                                              |
| ---------------- | ------------------------------------------------- |
| **eventName**    | 'readerWasAdded'                                  |
| **listenerFunc** | [ReaderWasAddedListener](#readerwasaddedlistener) |

**Returns:** `Promise<[PluginListenerHandle](#pluginlistenerhandle)>`

**Since:** 0.0.1

---

### addListener('readerWasRemoved', ...)[¶](#addlistenerreaderwasremoved "Permanent link")

`[](#%5F%5Fcodelineno-38-1)addListener(eventName: 'readerWasRemoved', listenerFunc: ReaderWasRemovedListener) => Promise<PluginListenerHandle>
`

Listen for reader removed events.

Only available on Android and iOS.

| Param            | Type                                                  |
| ---------------- | ----------------------------------------------------- |
| **eventName**    | 'readerWasRemoved'                                    |
| **listenerFunc** | [ReaderWasRemovedListener](#readerwasremovedlistener) |

**Returns:** `Promise<[PluginListenerHandle](#pluginlistenerhandle)>`

**Since:** 0.0.1

---

### addListener('readerDidChange', ...)[¶](#addlistenerreaderdidchange "Permanent link")

`[](#%5F%5Fcodelineno-39-1)addListener(eventName: 'readerDidChange', listenerFunc: ReaderDidChangeListener) => Promise<PluginListenerHandle>
`

Listen for reader status and property changes.

Only available on Android and iOS.

| Param            | Type                                                |
| ---------------- | --------------------------------------------------- |
| **eventName**    | 'readerDidChange'                                   |
| **listenerFunc** | [ReaderDidChangeListener](#readerdidchangelistener) |

**Returns:** `Promise<[PluginListenerHandle](#pluginlistenerhandle)>`

**Since:** 0.0.1

---

### addListener('availableCardInputMethodsDidChange', ...)[¶](#addlisteneravailablecardinputmethodsdidchange "Permanent link")

`[](#%5F%5Fcodelineno-40-1)addListener(eventName: 'availableCardInputMethodsDidChange', listenerFunc: AvailableCardInputMethodsDidChangeListener) => Promise<PluginListenerHandle>
`

Listen for available card input method changes.

Only available on Android and iOS.

| Param            | Type                                                                                      |
| ---------------- | ----------------------------------------------------------------------------------------- |
| **eventName**    | 'availableCardInputMethodsDidChange'                                                      |
| **listenerFunc** | [AvailableCardInputMethodsDidChangeListener](#availablecardinputmethodsdidchangelistener) |

**Returns:** `Promise<[PluginListenerHandle](#pluginlistenerhandle)>`

**Since:** 0.0.1

---

### addListener('paymentDidFinish', ...)[¶](#addlistenerpaymentdidfinish "Permanent link")

`[](#%5F%5Fcodelineno-41-1)addListener(eventName: 'paymentDidFinish', listenerFunc: PaymentDidFinishListener) => Promise<PluginListenerHandle>
`

Listen for successful payment completion events.

Only available on Android and iOS.

| Param            | Type                                                  |
| ---------------- | ----------------------------------------------------- |
| **eventName**    | 'paymentDidFinish'                                    |
| **listenerFunc** | [PaymentDidFinishListener](#paymentdidfinishlistener) |

**Returns:** `Promise<[PluginListenerHandle](#pluginlistenerhandle)>`

**Since:** 0.0.1

---

### addListener('paymentDidFail', ...)[¶](#addlistenerpaymentdidfail "Permanent link")

`[](#%5F%5Fcodelineno-42-1)addListener(eventName: 'paymentDidFail', listenerFunc: PaymentDidFailListener) => Promise<PluginListenerHandle>
`

Listen for failed payment events.

Only available on Android and iOS.

| Param            | Type                                              |
| ---------------- | ------------------------------------------------- |
| **eventName**    | 'paymentDidFail'                                  |
| **listenerFunc** | [PaymentDidFailListener](#paymentdidfaillistener) |

**Returns:** `Promise<[PluginListenerHandle](#pluginlistenerhandle)>`

**Since:** 0.0.1

---

### addListener('paymentDidCancel', ...)[¶](#addlistenerpaymentdidcancel "Permanent link")

`[](#%5F%5Fcodelineno-43-1)addListener(eventName: 'paymentDidCancel', listenerFunc: PaymentDidCancelListener) => Promise<PluginListenerHandle>
`

Listen for cancelled payment events.

Only available on Android and iOS.

| Param            | Type                                                  |
| ---------------- | ----------------------------------------------------- |
| **eventName**    | 'paymentDidCancel'                                    |
| **listenerFunc** | [PaymentDidCancelListener](#paymentdidcancellistener) |

**Returns:** `Promise<[PluginListenerHandle](#pluginlistenerhandle)>`

**Since:** 0.0.1

---

### removeAllListeners()[¶](#removealllisteners "Permanent link")

`[](#%5F%5Fcodelineno-44-1)removeAllListeners() => Promise<void>
`

Remove all listeners for this plugin.

Only available on Android and iOS.

**Since:** 0.0.1

---

### Interfaces[¶](#interfaces "Permanent link")

#### InitializeOptions[¶](#initializeoptions "Permanent link")

| Prop           | Type   | Description             | Since |
| -------------- | ------ | ----------------------- | ----- |
| **locationId** | string | The Square location ID. | 0.0.1 |

#### AuthorizeOptions[¶](#authorizeoptions "Permanent link")

| Prop            | Type   | Description              | Since |
| --------------- | ------ | ------------------------ | ----- |
| **accessToken** | string | The Square access token. | 0.0.1 |

#### IsAuthorizedResult[¶](#isauthorizedresult "Permanent link")

| Prop           | Type    | Description                              | Since |
| -------------- | ------- | ---------------------------------------- | ----- |
| **authorized** | boolean | Whether the SDK is currently authorized. | 0.0.1 |

#### GetSettingsResult[¶](#getsettingsresult "Permanent link")

| Prop            | Type                        | Description              | Since |
| --------------- | --------------------------- | ------------------------ | ----- |
| **version**     | string                      | The SDK version.         | 0.0.1 |
| **environment** | [Environment](#environment) | The current environment. | 0.0.1 |

#### IsPairingInProgressResult[¶](#ispairinginprogressresult "Permanent link")

| Prop           | Type    | Description                                         | Since |
| -------------- | ------- | --------------------------------------------------- | ----- |
| **inProgress** | boolean | Whether a pairing process is currently in progress. | 0.0.1 |

#### GetReadersResult[¶](#getreadersresult "Permanent link")

| Prop        | Type           | Description                 | Since |
| ----------- | -------------- | --------------------------- | ----- |
| **readers** | ReaderInfo\[\] | The list of paired readers. | 0.0.1 |

#### ReaderInfo[¶](#readerinfo "Permanent link")

| Prop                          | Type                                            | Description                                                                                                | Since |
| ----------------------------- | ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ----- |
| **serialNumber**              | string                                          | The reader's serial number.                                                                                | 0.0.1 |
| **model**                     | [ReaderModel](#readermodel)                     | The reader's model.                                                                                        | 0.0.1 |
| **status**                    | [ReaderStatus](#readerstatus)                   | The reader's current status.                                                                               | 0.0.1 |
| **firmwareVersion**           | string                                          | The reader's firmware version.                                                                             | 0.0.1 |
| **batteryLevel**              | number                                          | The reader's battery level (0-100).                                                                        | 0.0.1 |
| **isCharging**                | boolean                                         | Whether the reader is currently charging.                                                                  | 0.0.1 |
| **supportedCardInputMethods** | CardInputMethod\[\]                             | The card input methods supported by this reader.                                                           | 0.0.1 |
| **unavailableReasonInfo**     | [UnavailableReasonInfo](#unavailablereasoninfo) | Additional information about why the reader is unavailable. Only present when status is ReaderUnavailable. | 0.0.1 |

#### UnavailableReasonInfo[¶](#unavailablereasoninfo "Permanent link")

| Prop        | Type                                    | Description                                                        | Since |
| ----------- | --------------------------------------- | ------------------------------------------------------------------ | ----- |
| **reason**  | [UnavailableReason](#unavailablereason) | The reason code why the reader is unavailable.                     | 0.0.1 |
| **message** | string                                  | A human-readable message describing why the reader is unavailable. | 0.0.1 |

#### ForgetReaderOptions[¶](#forgetreaderoptions "Permanent link")

| Prop             | Type   | Description                                | Since |
| ---------------- | ------ | ------------------------------------------ | ----- |
| **serialNumber** | string | The serial number of the reader to forget. | 0.0.1 |

#### RetryConnectionOptions[¶](#retryconnectionoptions "Permanent link")

| Prop             | Type   | Description                                          | Since |
| ---------------- | ------ | ---------------------------------------------------- | ----- |
| **serialNumber** | string | The serial number of the reader to retry connection. | 0.0.1 |

#### StartPaymentOptions[¶](#startpaymentoptions "Permanent link")

| Prop                  | Type                                    | Description             | Since |
| --------------------- | --------------------------------------- | ----------------------- | ----- |
| **paymentParameters** | [PaymentParameters](#paymentparameters) | The payment parameters. | 0.0.1 |
| **promptParameters**  | [PromptParameters](#promptparameters)   | The prompt parameters.  | 0.0.1 |

#### PaymentParameters[¶](#paymentparameters "Permanent link")

| Prop                 | Type                              | Description                                                                                                                                                 | Default                   | Since |
| -------------------- | --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- | ----- |
| **amountMoney**      | [Money](#money)                   | The amount of money to charge.                                                                                                                              | 0.0.1                     |       |
| **paymentAttemptId** | string                            | A unique identifier for this payment attempt. This is used for idempotent payment requests.                                                                 | 0.0.1                     |       |
| **processingMode**   | [ProcessingMode](#processingmode) | The processing mode for this payment.                                                                                                                       | ProcessingMode.AutoDetect | 0.0.1 |
| **referenceId**      | string                            | A user-defined reference ID to associate with the payment.                                                                                                  | 0.0.1                     |       |
| **note**             | string                            | An optional note to add to the payment.                                                                                                                     | 0.0.1                     |       |
| **orderId**          | string                            | The Square order ID to associate with this payment.                                                                                                         | 0.0.1                     |       |
| **tipMoney**         | [Money](#money)                   | The tip amount.                                                                                                                                             | 0.0.1                     |       |
| **applicationFee**   | [Money](#money)                   | The application fee.                                                                                                                                        | 0.0.1                     |       |
| **autocomplete**     | boolean                           | Whether to automatically complete the payment. If false, the payment will be authorized but not captured, requiring manual completion via the Payments API. | true                      | 0.0.1 |
| **delayDuration**    | string                            | The duration to delay before automatically completing or canceling the payment. Only applicable when autocomplete is false.                                 | 0.0.1                     |       |
| **delayAction**      | [DelayAction](#delayaction)       | The action to take when the delay duration expires. Only applicable when autocomplete is false.                                                             | 0.0.1                     |       |

#### Money[¶](#money "Permanent link")

| Prop         | Type                          | Description                                                     | Since |
| ------------ | ----------------------------- | --------------------------------------------------------------- | ----- |
| **amount**   | number                        | The amount in the smallest currency unit (e.g., cents for USD). | 0.0.1 |
| **currency** | [CurrencyCode](#currencycode) | The ISO 4217 currency code.                                     | 0.0.1 |

#### PromptParameters[¶](#promptparameters "Permanent link")

| Prop                  | Type                        | Description                          | Default            | Since |
| --------------------- | --------------------------- | ------------------------------------ | ------------------ | ----- |
| **mode**              | [PromptMode](#promptmode)   | The prompt mode.                     | PromptMode.Default | 0.0.1 |
| **additionalMethods** | AdditionalPaymentMethod\[\] | Additional payment methods to allow. | \[\]               | 0.0.1 |

#### GetAvailableCardInputMethodsResult[¶](#getavailablecardinputmethodsresult "Permanent link")

| Prop                 | Type                | Description                       | Since |
| -------------------- | ------------------- | --------------------------------- | ----- |
| **cardInputMethods** | CardInputMethod\[\] | The available card input methods. | 0.0.1 |

#### IsAppleAccountLinkedResult[¶](#isappleaccountlinkedresult "Permanent link")

| Prop       | Type    | Description                                                 | Since |
| ---------- | ------- | ----------------------------------------------------------- | ----- |
| **linked** | boolean | Whether an Apple ID is linked to the Square seller account. | 0.1.3 |

#### IsDeviceCapableResult[¶](#isdevicecapableresult "Permanent link")

| Prop        | Type    | Description                                            | Since |
| ----------- | ------- | ------------------------------------------------------ | ----- |
| **capable** | boolean | Whether the device is capable of Tap to Pay on iPhone. | 0.1.3 |

#### PermissionStatus[¶](#permissionstatus "Permanent link")

| Prop                 | Type                                | Description                                                                                                                                 | Since |
| -------------------- | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ----- |
| **location**         | [PermissionState](#permissionstate) | Permission state for accessing location. Required to confirm that payments are occurring in a supported Square location.                    | 0.0.1 |
| **recordAudio**      | [PermissionState](#permissionstate) | Permission state for recording audio. Required to receive data from magstripe readers.                                                      | 0.0.1 |
| **bluetoothConnect** | [PermissionState](#permissionstate) | Permission state for Bluetooth connect. Required to receive data from contactless and chip readers. Only available on Android.              | 0.0.1 |
| **bluetoothScan**    | [PermissionState](#permissionstate) | Permission state for Bluetooth scan. Required to store information during checkout. Only available on Android.                              | 0.0.1 |
| **readPhoneState**   | [PermissionState](#permissionstate) | Permission state for reading phone state. Required to identify the device sending information to Square servers. Only available on Android. | 0.0.1 |
| **bluetooth**        | [PermissionState](#permissionstate) | Permission state for using Bluetooth. Only available on iOS.                                                                                | 0.0.1 |

#### PluginListenerHandle[¶](#pluginlistenerhandle "Permanent link")

| Prop       | Type                |
| ---------- | ------------------- |
| **remove** | () => Promise<void> |

#### ReaderPairingDidFailEvent[¶](#readerpairingdidfailevent "Permanent link")

| Prop        | Type   | Description        | Since |
| ----------- | ------ | ------------------ | ----- |
| **code**    | string | The error code.    | 0.0.1 |
| **message** | string | The error message. | 0.0.1 |

#### ReaderWasAddedEvent[¶](#readerwasaddedevent "Permanent link")

| Prop       | Type                      | Description                | Since |
| ---------- | ------------------------- | -------------------------- | ----- |
| **reader** | [ReaderInfo](#readerinfo) | The reader that was added. | 0.0.1 |

#### ReaderWasRemovedEvent[¶](#readerwasremovedevent "Permanent link")

| Prop       | Type                      | Description                  | Since |
| ---------- | ------------------------- | ---------------------------- | ----- |
| **reader** | [ReaderInfo](#readerinfo) | The reader that was removed. | 0.0.1 |

#### ReaderDidChangeEvent[¶](#readerdidchangeevent "Permanent link")

| Prop       | Type                          | Description                       | Since |
| ---------- | ----------------------------- | --------------------------------- | ----- |
| **reader** | [ReaderInfo](#readerinfo)     | The reader that changed.          | 0.0.1 |
| **change** | [ReaderChange](#readerchange) | The type of change that occurred. | 0.0.1 |

#### AvailableCardInputMethodsDidChangeEvent[¶](#availablecardinputmethodsdidchangeevent "Permanent link")

| Prop                 | Type                | Description                       | Since |
| -------------------- | ------------------- | --------------------------------- | ----- |
| **cardInputMethods** | CardInputMethod\[\] | The available card input methods. | 0.0.1 |

#### PaymentDidFinishEvent[¶](#paymentdidfinishevent "Permanent link")

| Prop        | Type                | Description            | Since |
| ----------- | ------------------- | ---------------------- | ----- |
| **payment** | [Payment](#payment) | The completed payment. | 0.0.1 |

#### Payment[¶](#payment "Permanent link")

| Prop               | Type                                      | Description                                                                                  | Since |
| ------------------ | ----------------------------------------- | -------------------------------------------------------------------------------------------- | ----- |
| **id**             | string \| null                            | The unique identifier for this payment. For offline payments, this may be null until synced. | 0.0.1 |
| **type**           | [PaymentType](#paymenttype)               | The payment type.                                                                            | 0.0.1 |
| **status**         | [PaymentStatus](#paymentstatus)           | The payment status.                                                                          | 0.0.1 |
| **amountMoney**    | [Money](#money)                           | The amount paid.                                                                             | 0.0.1 |
| **tipMoney**       | [Money](#money)                           | The tip amount.                                                                              | 0.0.1 |
| **applicationFee** | [Money](#money)                           | The application fee.                                                                         | 0.0.1 |
| **referenceId**    | string                                    | The reference ID provided in the payment parameters.                                         | 0.0.1 |
| **orderId**        | string                                    | The order ID associated with this payment.                                                   | 0.0.1 |
| **cardDetails**    | [CardPaymentDetails](#cardpaymentdetails) | [Card](#card) payment details. Only present for card payments.                               | 0.0.1 |
| **createdAt**      | string                                    | The time the payment was created (ISO 8601 format).                                          | 0.0.1 |
| **updatedAt**      | string                                    | The time the payment was updated (ISO 8601 format).                                          | 0.0.1 |

#### CardPaymentDetails[¶](#cardpaymentdetails "Permanent link")

| Prop                  | Type                                | Description                     | Since |
| --------------------- | ----------------------------------- | ------------------------------- | ----- |
| **card**              | [Card](#card)                       | The card information.           | 0.0.1 |
| **entryMethod**       | [CardInputMethod](#cardinputmethod) | The card entry method used.     | 0.0.1 |
| **authorizationCode** | string                              | The authorization code.         | 0.0.1 |
| **applicationName**   | string                              | The EMV application name.       | 0.0.1 |
| **applicationId**     | string                              | The EMV application identifier. | 0.0.1 |

#### Card[¶](#card "Permanent link")

| Prop                | Type                    | Description                              | Since |
| ------------------- | ----------------------- | ---------------------------------------- | ----- |
| **brand**           | [CardBrand](#cardbrand) | The card brand.                          | 0.0.1 |
| **lastFourDigits**  | string                  | The last four digits of the card number. | 0.0.1 |
| **cardholderName**  | string                  | The cardholder name.                     | 0.0.1 |
| **expirationMonth** | number                  | The card expiration month (1-12).        | 0.0.1 |
| **expirationYear**  | number                  | The card expiration year.                | 0.0.1 |

#### PaymentDidFailEvent[¶](#paymentdidfailevent "Permanent link")

| Prop        | Type                | Description         | Since |
| ----------- | ------------------- | ------------------- | ----- |
| **payment** | [Payment](#payment) | The failed payment. | 0.0.1 |
| **code**    | string              | The error code.     | 0.0.1 |
| **message** | string              | The error message.  | 0.0.1 |

#### PaymentDidCancelEvent[¶](#paymentdidcancelevent "Permanent link")

| Prop        | Type                | Description            | Since |
| ----------- | ------------------- | ---------------------- | ----- |
| **payment** | [Payment](#payment) | The cancelled payment. | 0.0.1 |

### Type Aliases[¶](#type-aliases "Permanent link")

#### CurrencyCode[¶](#currencycode "Permanent link")

`string`

#### PermissionState[¶](#permissionstate "Permanent link")

`'prompt' | 'prompt-with-rationale' | 'granted' | 'denied'`

#### ReaderPairingDidBeginListener[¶](#readerpairingdidbeginlistener "Permanent link")

Callback to receive reader pairing start notifications.

`(): void`

#### ReaderPairingDidSucceedListener[¶](#readerpairingdidsucceedlistener "Permanent link")

Callback to receive reader pairing success notifications.

`(): void`

#### ReaderPairingDidFailListener[¶](#readerpairingdidfaillistener "Permanent link")

Callback to receive reader pairing failure notifications.

`(event: [ReaderPairingDidFailEvent](#readerpairingdidfailevent)): void`

#### ReaderWasAddedListener[¶](#readerwasaddedlistener "Permanent link")

Callback to receive reader added notifications.

`(event: [ReaderWasAddedEvent](#readerwasaddedevent)): void`

#### ReaderWasRemovedListener[¶](#readerwasremovedlistener "Permanent link")

Callback to receive reader removed notifications.

`(event: [ReaderWasRemovedEvent](#readerwasremovedevent)): void`

#### ReaderDidChangeListener[¶](#readerdidchangelistener "Permanent link")

Callback to receive reader change notifications.

`(event: [ReaderDidChangeEvent](#readerdidchangeevent)): void`

#### AvailableCardInputMethodsDidChangeListener[¶](#availablecardinputmethodsdidchangelistener "Permanent link")

Callback to receive available card input method change notifications.

`(event: [AvailableCardInputMethodsDidChangeEvent](#availablecardinputmethodsdidchangeevent)): void`

#### PaymentDidFinishListener[¶](#paymentdidfinishlistener "Permanent link")

Callback to receive payment completion notifications.

`(event: [PaymentDidFinishEvent](#paymentdidfinishevent)): void`

#### PaymentDidFailListener[¶](#paymentdidfaillistener "Permanent link")

Callback to receive payment failure notifications.

`(event: [PaymentDidFailEvent](#paymentdidfailevent)): void`

#### PaymentDidCancelListener[¶](#paymentdidcancellistener "Permanent link")

Callback to receive payment cancellation notifications.

`(event: [PaymentDidCancelEvent](#paymentdidcancelevent)): void`

### Enums[¶](#enums "Permanent link")

#### Environment[¶](#environment "Permanent link")

| Members        | Value        | Description                      | Since |
| -------------- | ------------ | -------------------------------- | ----- |
| **Production** | 'production' | Production environment.          | 0.0.1 |
| **Sandbox**    | 'sandbox'    | Sandbox environment for testing. | 0.0.1 |

#### ReaderModel[¶](#readermodel "Permanent link")

| Members                | Value                    | Description                             | Since |
| ---------------------- | ------------------------ | --------------------------------------- | ----- |
| **ContactlessAndChip** | 'CONTACTLESS\_AND\_CHIP' | Square Reader for contactless and chip. | 0.0.1 |
| **Magstripe**          | 'MAGSTRIPE'              | Square Reader for magstripe.            | 0.0.1 |
| **Stand**              | 'STAND'                  | Square Stand.                           | 0.0.1 |
| **TapToPay**           | 'TAP\_TO\_PAY'           | Tap to Pay on iPhone.                   | 0.1.3 |
| **Unknown**            | 'UNKNOWN'                | Unknown reader model.                   | 0.0.1 |

#### ReaderStatus[¶](#readerstatus "Permanent link")

| Members                | Value                    | Description                                                          | Since |
| ---------------------- | ------------------------ | -------------------------------------------------------------------- | ----- |
| **Ready**              | 'READY'                  | Reader is paired, connected, and ready to accept payments.           | 0.0.1 |
| **ConnectingToSquare** | 'CONNECTING\_TO\_SQUARE' | Reader is connecting to Square servers.                              | 0.0.1 |
| **ConnectingToDevice** | 'CONNECTING\_TO\_DEVICE' | Reader is connecting to the mobile device.                           | 0.0.1 |
| **Faulty**             | 'FAULTY'                 | Reader has a hardware or connection error in an unrecoverable state. | 0.0.1 |
| **ReaderUnavailable**  | 'READER\_UNAVAILABLE'    | Reader is connected but unable to process payments.                  | 0.0.1 |

#### CardInputMethod[¶](#cardinputmethod "Permanent link")

| Members   | Value   | Description                 | Since |
| --------- | ------- | --------------------------- | ----- |
| **Tap**   | 'TAP'   | Contactless card tap (NFC). | 0.0.1 |
| **Dip**   | 'DIP'   | EMV chip card insertion.    | 0.0.1 |
| **Swipe** | 'SWIPE' | Magnetic stripe swipe.      | 0.0.1 |
| **Keyed** | 'KEYED' | Manually keyed card entry.  | 0.0.1 |

#### UnavailableReason[¶](#unavailablereason "Permanent link")

| Members                      | Value                          | Description                                               | Since |
| ---------------------------- | ------------------------------ | --------------------------------------------------------- | ----- |
| **BluetoothError**           | 'BLUETOOTH\_ERROR'             | Bluetooth connection issue. Only available on iOS.        | 0.0.1 |
| **BluetoothFailure**         | 'BLUETOOTH\_FAILURE'           | Bluetooth failure. Only available on Android.             | 0.0.1 |
| **BluetoothDisabled**        | 'BLUETOOTH\_DISABLED'          | Bluetooth is disabled. Only available on Android.         | 0.0.1 |
| **FirmwareUpdate**           | 'FIRMWARE\_UPDATE'             | Reader firmware is updating. Only available on iOS.       | 0.0.1 |
| **BlockingUpdate**           | 'BLOCKING\_UPDATE'             | Blocking firmware update. Only available on Android.      | 0.0.1 |
| **ReaderUnavailableOffline** | 'READER\_UNAVAILABLE\_OFFLINE' | Reader is unavailable offline. Only available on Android. | 0.0.1 |
| **DeviceDeveloperMode**      | 'DEVICE\_DEVELOPER\_MODE'      | Device is in developer mode. Only available on Android.   | 0.0.1 |
| **Unknown**                  | 'UNKNOWN'                      | Unknown reason.                                           | 0.0.1 |

#### ProcessingMode[¶](#processingmode "Permanent link")

| Members         | Value           | Description                                                        | Since |
| --------------- | --------------- | ------------------------------------------------------------------ | ----- |
| **AutoDetect**  | 'AUTO\_DETECT'  | Automatically detect the best processing mode (online or offline). | 0.0.1 |
| **OnlineOnly**  | 'ONLINE\_ONLY'  | Process the payment online only.                                   | 0.0.1 |
| **OfflineOnly** | 'OFFLINE\_ONLY' | Allow offline payment processing.                                  | 0.0.1 |

#### DelayAction[¶](#delayaction "Permanent link")

| Members      | Value      | Description                                                | Since |
| ------------ | ---------- | ---------------------------------------------------------- | ----- |
| **Complete** | 'COMPLETE' | Automatically complete the payment when the delay expires. | 0.0.1 |
| **Cancel**   | 'CANCEL'   | Automatically cancel the payment when the delay expires.   | 0.0.1 |

#### PromptMode[¶](#promptmode "Permanent link")

| Members     | Value     | Description                        | Since |
| ----------- | --------- | ---------------------------------- | ----- |
| **Default** | 'DEFAULT' | Use the default Square payment UI. | 0.0.1 |
| **Custom**  | 'CUSTOM'  | Use a custom payment UI.           | 0.0.1 |

#### AdditionalPaymentMethod[¶](#additionalpaymentmethod "Permanent link")

| Members   | Value   | Description                      | Since |
| --------- | ------- | -------------------------------- | ----- |
| **Keyed** | 'KEYED' | Allow manually keyed card entry. | 0.0.1 |
| **Cash**  | 'CASH'  | Allow cash payments.             | 0.0.1 |

#### ReaderChange[¶](#readerchange "Permanent link")

| Members                     | Value                           | Description                                                        | Since |
| --------------------------- | ------------------------------- | ------------------------------------------------------------------ | ----- |
| **BatteryDidBeginCharging** | 'BATTERY\_DID\_BEGIN\_CHARGING' | Reader battery started charging. Only available on iOS.            | 0.0.1 |
| **BatteryDidEndCharging**   | 'BATTERY\_DID\_END\_CHARGING'   | Reader battery stopped charging. Only available on iOS.            | 0.0.1 |
| **BatteryLevelDidChange**   | 'BATTERY\_LEVEL\_DID\_CHANGE'   | Reader battery level changed. Only available on iOS.               | 0.0.1 |
| **BatteryCharging**         | 'BATTERY\_CHARGING'             | Reader battery charging status changed. Only available on Android. | 0.0.1 |
| **Added**                   | 'ADDED'                         | Reader was added. Only available on Android.                       | 0.0.1 |
| **Removed**                 | 'REMOVED'                       | Reader was removed. Only available on Android.                     | 0.0.1 |
| **StatusDidChange**         | 'STATUS\_DID\_CHANGE'           | Reader status changed.                                             | 0.0.1 |

#### PaymentType[¶](#paymenttype "Permanent link")

| Members     | Value     | Description                            | Since |
| ----------- | --------- | -------------------------------------- | ----- |
| **Online**  | 'ONLINE'  | [Payment](#payment) processed online.  | 0.0.1 |
| **Offline** | 'OFFLINE' | [Payment](#payment) processed offline. | 0.0.1 |

#### PaymentStatus[¶](#paymentstatus "Permanent link")

| Members       | Value       | Description                                             | Since |
| ------------- | ----------- | ------------------------------------------------------- | ----- |
| **Completed** | 'COMPLETED' | [Payment](#payment) was completed successfully.         | 0.0.1 |
| **Approved**  | 'APPROVED'  | [Payment](#payment) was approved but not yet completed. | 0.0.1 |
| **Canceled**  | 'CANCELED'  | [Payment](#payment) was canceled.                       | 0.0.1 |
| **Failed**    | 'FAILED'    | [Payment](#payment) failed.                             | 0.0.1 |
| **Pending**   | 'PENDING'   | [Payment](#payment) is pending.                         | 0.0.1 |

#### CardBrand[¶](#cardbrand "Permanent link")

| Members             | Value               | Description                  | Since |
| ------------------- | ------------------- | ---------------------------- | ----- |
| **Visa**            | 'VISA'              | Visa card.                   | 0.0.1 |
| **Mastercard**      | 'MASTERCARD'        | Mastercard.                  | 0.0.1 |
| **AmericanExpress** | 'AMERICAN\_EXPRESS' | American Express card.       | 0.0.1 |
| **Discover**        | 'DISCOVER'          | Discover card.               | 0.0.1 |
| **DiscoverDiners**  | 'DISCOVER\_DINERS'  | Discover Diners card.        | 0.0.1 |
| **Jcb**             | 'JCB'               | JCB card.                    | 0.0.1 |
| **UnionPay**        | 'UNION\_PAY'        | UnionPay card.               | 0.0.1 |
| **Interac**         | 'INTERAC'           | Interac card.                | 0.0.1 |
| **Eftpos**          | 'EFTPOS'            | Eftpos card.                 | 0.0.1 |
| **Other**           | 'OTHER'             | Other or unknown card brand. | 0.0.1 |

## Changelog[¶](#changelog "Permanent link")

See [CHANGELOG.md](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/square-mobile-payments/CHANGELOG.md).

## License[¶](#license "Permanent link")

See [LICENSE](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/square-mobile-payments/LICENSE).

---

1. This project is not affiliated with, endorsed by, sponsored by, or approved by Square, Inc. or any of their affiliates or subsidiaries. [↩](#fnref:1 "Jump back to footnote 1 in the text")

May 17, 2026 

 Back to top 