In-App Payments SDK


Square In-App Payments SDK provides a secure, managed payments client for Android, iOS, Flutter, and React Native applications. Use In-App Payments SDK to accept payment cards such as credit cards and digital wallets (Apple Pay, Google Pay, and Secure Remote Commerce) with a fully customized payment screen that seamlessly matches the branding of the application. For more information, see How It Works.


In-App Payments SDK only produces the one-time use secure payment card token (nonce). To complete a payment, send the nonce to your backend Payments API and call the CreatePayment endpoint with the nonce as source_id.

In-App Payments SDK is available for native development on iOS and Android and as an open-source plugin for Flutter and React Native.


Requirements and limitations Permalink Get a link to this section

  • In-App Payments SDK requires a backend service to complete payments and issue refunds.

  • Using In-App Payments SDK to process digital goods, services, or subscriptions might not be allowed by some application distribution platforms.

  • In-App Payments SDK for Android requires the following OS permissions:

    • ACCESS_NETWORK_STATE to access information about networks.

    • INTERNET to open network sockets.

  • In-App Payments SDK for iOS does not require explicit OS permissions.

Payment source support varies by country. For more information, see Supported Payment Methods by Country.

In-App Payments SDK components Permalink Get a link to this section

In-App Payments SDK lets buyers enter their payment information on an entry screen instead of using a Square Reader to tap, dip, or swipe for payment. The SDK collects the payment information and generates a nonce (an encrypted payment token). Your application sends the nonce to your server, which uses the Payments API to capture the payment.

The following components make up an In-App Payments SDK payments solution:

  • Client side. A mobile application using In-App Payments SDK, which captures payment information and returns a valid nonce.

  • Server side. A backend using the Square Payments API , which accepts the nonce and sends create payment requests to Square.

    Did you know?

    If you already have an online payment solution that uses the Square payment form to generate a nonce and send it to your backend, you can use that same backend to complete a payment with your in-app payment application.

Trio of screenshots from the In-App Payments SDK Android sample app

The style of the card entry experience looks great out of the box but can be customized to match the hosting application. In-App Payments SDKs allow customization of fonts, colors, and backgrounds.

Try the In-App Payments SDK Quick Start to see the SDK in action.

Did you know?

In-App Payments SDK is supported in the Square Sandbox.

Related topics Permalink Get a link to this section